Korzystając z anglojęzycznej wersji Excela, musimy wpisywać nazwy funkcji w tym języku. Jeżeli do tej pory używaliśmy polskiego Excela – możemy czuć się nieco zagubieni. A co jeżeli chcemy korzystać z polskich funkcji w anglojęzycznym Excelu? Da się to zrobić!
Autokorekta?…
Przyznam, że na pierwszy rzut oka, temat wydał mi się nie do przeskoczenia. Po dłuższej refleksji, postanowiłem się z nim zmierzyć i wykorzystać do tego celu mało popularną opcję autokorekty.
Domyślnie służy ona do poprawiania błędów pisowni w arkuszu. Przykład? Słowo ktory, automatycznie zamienia się na który. Warto odnotować, że autokorekta działa nie tylko w Excelu. Reguły zdefiniowane w tym programie będą obowiązywać we wszystkich aplikacjach Office.
Możemy pisać w komórkach arkusza lub na pasku formuły – mechanizm zadziała w obu przypadkach.
Tabela odpowiedników
W pierwszej kolejności musimy utworzyć tabelę z listą polskich funkcji wraz z ich angielskimi odpowiednikami. Możemy wypisać wszystkie funkcje, lub tylko te, których będziemy używać.

Do nazw funkcji obowiązkowo musimy dodać pojedynczy nawias. W przeciwnym razie reguła nie zadziała!
Kod makra
Następnie użyjemy poniższego makra, aby dodać sparowane funkcje do autokorekty.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Sub DodajDoAutoKorekty() ' Makro dodaje do autokorekty sparowane nazwy funkcji. ' Nazwy polskie mają zostać automatycznie zamienione na angielskie. Dim avTabela As Variant ' Tabela danych wraz z nagłówkami Dim sNazwaPL As String ' Nazwa funkcji po polsku Dim sNazwaEN As String ' Nazwa funkcji po angielsku Dim x As Long ' Licznik pętli ' Przenieś do tablicy dwukolumnowy zakres. W pierwszej kolumnie ' znajdują się nazwy polskie, w drugiej angielskie odpowiedniki 1 avTabela = Arkusz1.Range("A1:B6") ' Przejdź w pętli przez wszystkie funkcje 2 For x = LBound(avTabela, 1) To UBound(avTabela, 1) 3 sNazwaPL = UCase(avTabela(x, 1)) ' Zaczytaj polską nazwę 4 sNazwaEN = UCase(avTabela(x, 2)) ' Zaczytaj nazwę angielską ' Dodaj do autokorekty! 5 Application.AutoCorrect.AddReplacement _ What:=sNazwaPL, Replacement:=sNazwaEN 6 Next x '// For x = LBound(avTabela, 1) To UBound(avTabela, 1) End Sub |
Odpowiedniki nazw zostały dodane do słownika.

Efekt końcowy
Jak widać na poniższym obrazku, zamiana działa. Możemy w anglojęzycznym Excelu korzystać z polskich nazw funkcji – lub odwrotnie.

Plik XLSM
W pliku poniżej znajduje się makro, które kasuje wprowadzone zmiany autokorekty.
