Underbart!!  
 
   
 
Tack till alla som engagerat sig...
Jag har inte förstått skillnaden mellan "innanför" / "utanför"  void setup()
Är void setup() en "vanlig" funktion som endast utförs en gång?
(Kunde setup() ha namngetts med vad som helst? eller måste den heta setup() )
Om jag förstått rätt finns nu åäöÅÄÖ i det icke flyktiga minnet CGROM och kommer att finnas kvar till något annat skrivs i dessa celler. (och behöver inte skapas igen - kan vara viktigt med Arduino UNO:s begränsade minne.)
Har ingen aning om Arduino editorn sparar sina filer i UTF-8 eller...
Har förstått att det finns LCD-displayer med olika ROM. Finns med Asiatisk eller Europeisk ASCII tabell.
Kanske är mitt CGROM Asiatiskt, även om LCD-displayen köptes från Tyskland.
Har inte heller testat om alla adresser i LCD-displayen går att förändra.
(inte bara de 8 adresser som är dedikerade till egna tecken)
Måste först kunna hantera displayen - t.ex. spara nuvarande ASCII-tabell...
Slutresultatet för hantering av åäö resulterade till följande kod  

  .: 
Kod: Markera allt
/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>
/* -----( Declare Constants )----- */
byte AwithRing[8] = {  //å
  B00100,
  B01010,
  B01110,
  B00001,
  B01111,
  B10001,
  B01111,
};
byte AwithDots[8] = {  //ä
  B01010,
  B00000,
  B01110,
  B00001,
  B01111,
  B10001,
  B01111,
};
  
byte OwithDots[8] = {  //ö
  B01010,
  B00000,
  B01110,
  B10001,
  B10001,
  B10001,
  B01110,
};
byte BigAwithRing[8] = {  //Å
  0b00100,
  0b01010,
  0b01110,
  0b10001,
  0b11111,
  0b10001,
  0b10001,
  0b00000
};
byte BigAwithDots[8] = {  //Ä
  0b01010,
  0b00000,
  0b01110,
  0b10001,
  0b11111,
  0b10001,
  0b10001,
  0b00000
};
byte BigOwithDots[8] = {  //Ö
  0b01010,
  0b01110,
  0b10001,
  0b10001,
  0b10001,
  0b10001,
  0b01110,
  0b00000
};
    
/*
byte Minus[8] = {
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b11111,
  0b00000,
  0b00000,
  0b00000
};
*/
/* -----( Declare objects )-----   */
// set the LCD address to 0x27 for a 16 chars 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
// String message = "åäö - ÅÄÖ - öäå";
String message = "å -What I want!";
char TextLCD[30] = "";
/*----( SETUP: RUNS ONCE )----*/
void setup() {
  Serial.begin(115200);  // Used to type in characters
  lcd.init();
  
  //-------- Write characters on the display ------------------
  lcd.createChar(1, AwithRing);     //å
  lcd.createChar(2, AwithDots);     //ä
  lcd.createChar(3, OwithDots);     //ö
  lcd.createChar(4, BigAwithRing);  //Å
  lcd.createChar(5, BigAwithDots);  //Ä
  lcd.createChar(6, BigOwithDots);  //Ö
  message.replace("å", "\1");
  message.replace("ä", "\2");
  message.replace("ö", "\3");
  message.replace("Å", "\4");
  message.replace("Ä", "\5");
  message.replace("Ö", "\6");
  message.toCharArray(TextLCD, 30);
  lcd.backlight();
} /*--(end setup )---*/
void loop() {   /*----( LOOP: RUNS CONSTANTLY )----*/
  int pos = 0;
  while (pos < strlen(TextLCD)) {
    lcd.setCursor(pos, 0);    // pos & col
    lcd.print(TextLCD[pos]);
    delay(500);
    pos += 1;  // Nästa tecken
    
  }
  delay (1000);
  lcd.clear();
  delay (1000);
En annan finess jag misslyckades med, var att påverka fördröjningen mellan varje tecken.
Om tecknet INTE är ett blanksteg = fördröjning på 0,5s, annars ingen fördröjning.
t.ex. 
if (TextLCD[pos] <> " "); delay(500);
Men det kan bli en senare fråga...