Obsługa blędów i zewnętrznych plików

Podobne dokumenty
Programowanie arkuszy kalkulacyjnych (VBA)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

4.1. Analiza AWN jest dokonywana na poziomie VBA

Arkusze kalkulacyjne i VBA

Visual Basic Debugging and Error Handling

Zadanie. Menu Plik niech posiada dwie pozycje: Tekstowy i Excel, a każda z nich niech posiada dwie pozycje Otwórz i Zapisz, patrz rys. 2.

Visual Basic for Application (VBA)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Visual Basic for Application (VBA)

Visual Basic for Application (VBA)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

Pliki. Operacje na plikach w Pascalu

Wprowadzenie do programowania w VBA

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Ćwiczenie VB3.4 Struktura Try...Catch, obiekt Err, metoda Err.Raise (Strukturalna obsługa wyjątków)

Wykład 4. Tablice. Pliki

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp)

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Podstawy i języki programowania

Akademia Morska w Szczecinie Wydział Nawigacyjny TRANSPORT MORSKI

Programowanie w językach

Makra VBA w Excelu dla początkujących

Automatyzacja pracy w AutoCAD

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

LibreOffice Calc VBA

Materiały do laboratorium MS ACCESS BASIC

Visual Basic for Applications. Wstęp

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Instrukcje cykliczne (pętle) WHILE...END WHILE

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Laboratorium Programowania Kart Elektronicznych

Deklarowanie kursora

INSTRUKCJA SKOKU GOTO

Algorytmika i Programowanie VBA 1 - podstawy

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Manipulowanie danymi przy użyciu DAO

Laboratorium Programowania Kart Elektronicznych

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

Technologia informacyjna programowanie Janusz Uriasz

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Technologie informacyjne: Excel i VBA

MsgBox(Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext])

VBA ZAJĘCIA NR 7! praca z plikami (kontynuacja zajęć 6)

Automatyzacja plików graficznych

Platforma.NET laboratorium 1. Visual Basic.NET podstawowe elementy języka. Wykonanie warunkowe If End If

Aplikacje w środowisku VBA. Visual Basic for Aplications

Technologie informacyjne: Excel i Python

Język PL/SQL. Rozdział 2. Kursory

Bazy Danych. Wykład VII Makropolecenia. Copyright by Arkadiusz Rzucidło 1

Programowanie i struktury danych

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Instrukcje sterujące. Programowanie komputerowe

Działki Przygotowanie organizacyjne

Tablice. Jones Stygar na tropie zmiennych

Delphi Laboratorium 3

Class1.vb. _Dlugosc_stopnia = value End Set End Property Public Property Faza As Single Get Return _Faza End Get

Wykład PASCAL - Pliki tekstowe

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Rozwiązywanie równań nieliniowych

G PROGRAMMING. Part #6

ODCZYT PRZEZ ZŁĄCZE OBD

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Arkusze kalkulacyjne i VBA

Funkcje wbudowane - numeryczne

PRACA Z FORMULARZAMI UserForm

Użycie Visual Basic for Applications ("VBA")

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Integracja sklepu internetowego z serwisem aukcyjnym Swistak.pl

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

M a k r a i d o d a t k o w e f o r m a n t y

Kursor. Rozdział 10a Kursory. Otwieranie kursora. Deklarowanie kursora

VBA-podstawy cz. 1. Począwszy od wersji Office 2010 skoroszyty Excel wsparte makrami VB mają rozszerzenie.xlsm

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Makropolecenia w Excelu

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 3. Programowanie komputerowe

1 second UPS. Poziom trudności: łatwy. Wersja dokumentacji: 1.3. Aktualizacja: Beckhoff Automation Sp. z o. o.

Dokumentacja. Portal Mathfinance dla rynku equity kalkulatora. Dorota Toczydłowska

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Zaawansowany kurs języka Python

Formy dialogowe w środowisku Gnome

Programowanie mikrokontrolerów - laboratorium

Wysyłanie pliku na serwer. Plik na serwerze.

Host skryptów systemu Windows (WSH, Windows Scripting Host)

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

PODSTAWY BAZ DANYCH 13. PL/SQL

Pętle instrukcje powtórzeo

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Parę uwag, uzupełnień

Transkrypt:

Obsługa blędów i zewnętrznych plików Rafał Zduńczyk Programowanie arkuszy kalkulacyjnych 2017

Wyłapanie błędu Sub error1() Dim x, y, z x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 On Error poprzedza komendę mogącą dawać błąd z = x / y MsgBox z reszta kodu Exit Sub wyjście przed kodem obługującym błąd handler1: kod obsługujący błąd MsgBox "Division by 0"

Rozróżnianie błędów Sub error1() Dim x, y, z x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 On Error poprzedza komendę mogącą dawać błąd z = x / y MsgBox z reszta kodu Exit Sub wyjście przed kodem obługującym błąd handler1: kod obsługujący błąd MsgBox "Division by 0",, Err.Number dzielenie przez zero i przez string

Rozróżnianie błędów Własności Number oraz Description pozwalają lepiej zidentyfikować i opisać błąd:

Rozróżnianie błędów Własności Number oraz Description pozwalają lepiej zidentyfikować i opisać błąd: Sub error2() Dim x, y, z x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "Division by 0",, Err.Number & " " & Err.Description Case 13 MsgBox "Can t be a string!",, Err.Number & " " & Err.Description End Select

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z a = InputBox("a:") b = InputBox("b:") c = a / b Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z a = InputBox("a:") b = InputBox("b:") c = a / b Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select Błąd jest źle wyłapany (np. x = y = a = 1, b = 0). Program nie wie o co chodzi.

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z a = InputBox("a:") b = InputBox("b:") c = a / b Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z a = InputBox("a:") b = InputBox("b:") Domyślamy się, że tu jest pies pogrzebany c = a / b Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z a = InputBox("a:") b = InputBox("b:") On Error GoTo 0 c = a / b Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox z a = InputBox("a:") b = InputBox("b:") On Error GoTo 0 Roboczo wyłączmy obsługę błędow, żeby c = a / b zobaczyć w czym problem Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select

Źle wyłapany błąd On Error działa aż do kolejnego On Error lub wyłączenia błędów komendą On Error GoTo 0 Sub error3() Dim x, y, z, a, b, c [...] On Error GoTo handler2 c = a / b Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "y can t be 0",, Err.Number Case 13 MsgBox "y can t be a string!",, Err.Number End Select handler2: Select Case Err.Number Case 11 MsgBox "b can t be 0",, Err.Number Case 13 MsgBox "b can t be a string!",, Err.Number End Select

Naprawa błędu: Resume oraz Resume Next Resume Next powoduje powrót do linii następnej po generującej błąd: Sub error2() Dim x, y, z x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox "x/y = " & x & "/" & y & " = " & z Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "Division by 0",, Err.Number & " " & Err.Description Case 13 MsgBox "Can t be a string!",, Err.Number & " " & Err.Description End Select y = 1: z = x Resume Next

Naprawa błędu: Resume oraz Resume Next Resume powoduje powrót do linii generującej błąd: Sub error2() Dim x, y, z x = InputBox("x:") y = InputBox("y:") On Error GoTo handler1 z = x / y MsgBox "x/y = " & x & "/" & y & " = " & z Exit Sub handler1: Select Case Err.Number Case 11 MsgBox "Division by 0",, Err.Number & " " & Err.Description Case 13 MsgBox "Can t be a string!",, Err.Number & " " & Err.Description End Select y = InputBox("Podaj y nie równe zero i nie tekst") Resume

Ignorowanie błędów Można użyć On Error Resume Next, by zignorować błąd: Sub error4() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error Resume Next z = x / y MsgBox "x/y = " & x & "/" & y & " = " & z

Ignorowanie błędów Można użyć On Error Resume Next, by zignorować błąd: Sub error4() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error Resume Next z = x / y MsgBox "x/y = " & x & "/" & y & " = " & z Przeskakiwanie bloku instrukcji Jeśli po obsłudze błędu chcemy wrócić do jakiejś dalszej linii, można użyć Resume następująco On Error Goto handler1 [komenda genrująca błąd] [inne komendy]... [inne komendy] comeback1: Stąd chcemy kontynuować [komendy]... [komendy]

Ignorowanie błędów Można użyć On Error Resume Next, by zignorować błąd: Sub error4() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error Resume Next z = x / y MsgBox "x/y = " & x & "/" & y & " = " & z Przeskakiwanie bloku instrukcji Jeśli po obsłudze błędu chcemy wrócić do jakiejś dalszej linii, można użyć Resume następująco On Error Goto handler1 [komenda genrująca błąd] [inne komendy]... [inne komendy] comeback1: Stąd chcemy kontynuować [komendy]... [komendy] Exit Sub handler1: [naprawa błędu] Resume comeback1

Ignorowanie błędów Można użyć On Error Resume Next, by zignorować błąd: Sub error4() Dim x, y, z, a, b, c x = InputBox("x:") y = InputBox("y:") On Error Resume Next z = x / y MsgBox "x/y = " & x & "/" & y & " = " & z Przeskakiwanie bloku instrukcji Jeśli po obsłudze błędu chcemy wrócić do jakiejś dalszej linii, można użyć Resume następująco On Error Goto handler1 [komenda genrująca błąd] [inne komendy]... [inne komendy] comeback1: Stąd chcemy kontynuować [komendy]... [komendy] Exit Sub handler1: [naprawa błędu] Resume comeback1 Uwaga! Etykieta comeback1 jest poniżej On Error Goto handler1

Błąd w błędzie Sub error5() Dim x On Error GoTo handler1 x = 1 / 0 Exit Sub handler1: MsgBox "Handler1 entered" On Error GoTo handler2 x = 1 / 0 Exit Sub handler2: MsgBox "Handler2 entered"

Błąd w błędzie Sub error5() Dim x On Error GoTo handler1 x = 1 / 0 Exit Sub handler1: MsgBox "Handler1 entered" On Error GoTo handler2 x = 1 / 0 Exit Sub handler2: MsgBox "Handler2 entered"

Błąd w błędzie Sub error5() Dim x On Error GoTo handler1 x = 1 / 0 Exit Sub handler1: MsgBox "Handler1 entered" On Error GoTo -1 On Error GoTo handler2 x = 1 / 0 Exit Sub handler2: MsgBox "Handler2 entered"

Celowe wywoływanie błędów Komenda Error 13 genruje błąd o podanym numerze (tu: 13).

Celowe wywoływanie błędów Komenda Error 13 genruje błąd o podanym numerze (tu: 13). Odradza się jej stosowanie. Jest lepsza alternatywa: Err.Raise numer, źródło, opis

Celowe wywoływanie błędów Komenda Error 13 genruje błąd o podanym numerze (tu: 13). Odradza się jej stosowanie. Jest lepsza alternatywa: Err.Raise numer, źródło, opis Wolne numery są od 513 do 65535.

Celowe wywoływanie błędów Komenda Error 13 genruje błąd o podanym numerze (tu: 13). Odradza się jej stosowanie. Jest lepsza alternatywa: Err.Raise numer, źródło, opis Wolne numery są od 513 do 65535. Jako źródło można podać nazwę makra lub dokładniejsze współrzędne.

Celowe wywoływanie błędów Komenda Error 13 genruje błąd o podanym numerze (tu: 13). Odradza się jej stosowanie. Jest lepsza alternatywa: Err.Raise numer, źródło, opis Wolne numery są od 513 do 65535. Jako źródło można podać nazwę makra lub dokładniejsze współrzędne. Będzie to przypisane do własności Source, zatem można się do niej odwołać przez Err.Source

Celowe wywoływanie błędów Komenda Error 13 genruje błąd o podanym numerze (tu: 13). Odradza się jej stosowanie. Jest lepsza alternatywa: Err.Raise numer, źródło, opis Wolne numery są od 513 do 65535. Jako źródło można podać nazwę makra lub dokładniejsze współrzędne. Będzie to przypisane do własności Source, zatem można się do niej odwołać przez Err.Source, zaś do opisu przez Err.Description

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle) 1. vbnormalfocus (otwiera się domyślnie)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle) 1. vbnormalfocus (otwiera się domyślnie) 2. vbminimizedfocus (zminimalizowana, ale aktywna)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle) 1. vbnormalfocus (otwiera się domyślnie) 2. vbminimizedfocus (zminimalizowana, ale aktywna) 3. vbmaximizedfocus (zmaksymalizowan, aktywna)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle) 1. vbnormalfocus (otwiera się domyślnie) 2. vbminimizedfocus (zminimalizowana, ale aktywna) 3. vbmaximizedfocus (zmaksymalizowan, aktywna) 4. vbnormalnofocus (otwarta normalnie, nieaktywna)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle) 1. vbnormalfocus (otwiera się domyślnie) 2. vbminimizedfocus (zminimalizowana, ale aktywna) 3. vbmaximizedfocus (zmaksymalizowan, aktywna) 4. vbnormalnofocus (otwarta normalnie, nieaktywna) 6. vbminimizednofocus (sensowniejsze niż 2)

Zewnętrzne pliki otwieranie daną aplikacją Otwieranie pliku tekstowego notatnikiem: Sub OpenInNotepad() Dim MyTxtFile MyTxtFile = Shell("C:\WINDOWS\notepad.exe C:\...\file.txt", 1) Dostępne opcje: 0. vbhide (jako proces w tle) 1. vbnormalfocus (otwiera się domyślnie) 2. vbminimizedfocus (zminimalizowana, ale aktywna) 3. vbmaximizedfocus (zmaksymalizowan, aktywna) 4. vbnormalnofocus (otwarta normalnie, nieaktywna) 6. vbminimizednofocus (sensowniejsze niż 2) Otwieranie samej aplikacji Sub LaunchNotepad() Call Shell("Explorer.exe C:\Windows\system32\notepad.exe", vbnormalfocus)

Pliki CSV

Pliki CSV (Comma Separated Value)

Pliki CSV (Comma Separated Value) Następująca komenda służy do otwierania plików Open [co] For [po co] As [Nr pliku]

Pliki CSV (Comma Separated Value) Następująca komenda służy do otwierania plików Open [co] For [po co] As [Numer pliku] przy czym: [co] musi zawierać pełną ścieżkę z nazwą pliku i rozszerzeniem (.txt lub.csv) [po co] może przyjąć wartości:

Pliki CSV (Comma Separated Value) Następująca komenda służy do otwierania plików Open [co] For [po co] As [Nr pliku] przy czym: [co] musi zawierać pełną ścieżkę z nazwą pliku i rozszerzeniem (.txt lub.csv) [po co] może przyjąć wartości: Append dopisywanie na końcu pliku Ouptut nadpisywanie Input odczyt Binary, Random nie będą nam potrzebne na razie.

Pliki CSV (Comma Separated Value) Następująca komenda służy do otwierania plików Open [co] For [po co] As [Nr pliku] przy czym: [co] musi zawierać pełną ścieżkę z nazwą pliku i rozszerzeniem (.txt lub.csv) [po co] może przyjąć wartości: Append dopisywanie na końcu pliku Ouptut nadpisywanie Input odczyt Binary, Random nie będą nam potrzebne na razie. [Nr pliku] musi być w formacie #5

Pliki CSV (Comma Separated Value) Następująca komenda służy do otwierania plików Open [co] For [po co] As [Nr pliku] przy czym: [co] musi zawierać pełną ścieżkę z nazwą pliku i rozszerzeniem (.txt lub.csv) [po co] może przyjąć wartości: Append dopisywanie na końcu pliku Ouptut nadpisywanie Input odczyt Binary, Random nie będą nam potrzebne na razie. [Nr pliku] musi być w formacie #5 (5 to oczywiście tylko przykład) Uwaga! Po zakończeniu pracy z plikiem koniecznie pamiętaj o zamknięciu go Close #5

Operacje na otwartym pliku Jeśli plik otwarty For Input dostępne są funkcja EOF End of File, zmienną jest numer pliku bez #, wartości to True oraz False komenda LineInput z dwoma parametrami: nr pliku poprzedzony # oraz zmnienna, pod którą będzie podstawiony odczytany tekst Najprostszy schemat (przepisanie pliku do arkusza) Open... For Input As #1 row = 0 Do Untill EOF(1) LineInput 1, line ActiveCell.Offset(row,0).value = line row = row +1 Loop Close #1

Operacje na otwartym pliku Jeśli plik otwarty For Input dostępne są funkcja EOF End of File, zmienną jest numer pliku bez #, wartości to True oraz False komenda LineInput z dwoma parametrami: nr pliku poprzedzony # oraz zmnienna, pod którą będzie podstawiony odczytany tekst Najprostszy schemat (przepisanie pliku do arkusza) Open... For Input As #1 row = 0 Do Untill EOF(1) LineInput 1, line ActiveCell.Offset(row,0).value = line row = row +1 Loop Close #1 Jeśli plik otwary For Output lub For Append, to dostępna jest komenda Write też z dwoma parametrami: nr pliku (poprzedzony #) oraz co zapisać, czyli odwołanie do zmiennej lub tekst wprost (w cudzysłowie) Uwaga! Zapis do pliku otwartego For Output wykasuje bez ostrzeżenia dane z tego pliku!

Manipulowanie plikami http://www.exceltrick.com/formulas_macros/filesystemobject-in-vba/ http://www.experts-exchange.com/articles/3022/manipulating-local-files-using-vba. html http://excelexperts.com/file-manipulation-from-vba