'Zmianna globalna
Public x Asinteger'Stała globalna
Public Const y = 10
'Tablice
Dim tablica(10) AsIntegerFor i=0 to 9 Step 1
MsgBox("Element " & i & " wartość " & tablica(i))
Next i
Sub odczytZPliku()
'
' Przykładowe makro związane z odczytem danych z plików i odwołaniami w MS Excel
'
Range("A1") = "Komórka A1"'Odwołanie do konkretnej komórki
Dim s AsStringDim i AsInteger
i = 1
Open"test.txt"ForInputAs #1
DoWhileNot EOF(1)
Input #1, linia
Cells(i, 3) = linia
i = i + 1
s = s + linia + Chr(10) + Chr(13)
Loop
MsgBox s
Close #1
EndSub
Zapis do pliku w VBA
Sub zapisDoPliku()
'
' Przykładowe makro związane z zapisem danych do plików
'
Open"test.txt"ForOutputAs #1
For i = 1 To 10 Step 1
Print #1, Cells(i, 1) 'Gdzie '1' oznacza kolumnę 'A', natomiast zmienna 'i' określa numer wiersza
Next i
Close #1
EndSub
Podstawowe operacje na łańcuchach znaków
Sub lancuchy()
'
' Przykładowe makro związane odczytem danych plików i odwołaniami w MS Excel
'
Dim s AsString
s = "Ala ma kota"'Łańcuchy liczymy od '1'
MsgBox Left(s, 3) 'Wyświetli trzy pierwsze znaki: "Ala"
MsgBox Right(s, 3) 'Wyświetli trzy ostatnie znaki: "ota"
MsgBox Mid(s, 8, 3) 'Wyświetli trzy znaki, zaczynając od ósmego: "kot"
MsgBox Len(s) 'Wyświetli długość łańcucha
MsgBox LCase(s) 'Wyświetli łańcuch, w którym wszystkie litery zmienione zostały na małe
MsgBox UCase(s) 'Wyświetli łańcuch, w którym wszystkie litery zmienione zostały na wielkie
MsgBox InStr(s, "ma") 'Wyświetli pozycję łańcucha "ma" w łańcuchu s
MsgBox InStr(s, "Ola") 'Wyświetli 0, bo nie znalazł łańcucha "Ola" w łańcuchu s
MsgBox InStr(7, s, "a") 'Wyświetli pozycję łańcucha "a" w łańcuchu s, zaczynając od pozycji 7
MsgBox Asc("a") 'Wyświetli pozycję znaku 'a' w tabeli kodów ASCII
MsgBox Chr(65) 'Wyświetli znak będący na 65-tej pozycji w tabeli kodów ASCII
s = " Ala ma kota "
MsgBox ">>" & Trim(s) & "<<"'Wycięcie białych znaków po obydwóch stronach
MsgBox ">>" & LTrim(s) & "<<"'Wycięcie białych znaków po lewej stronie
MsgBox ">>" & RTrim(s) & "<<"'Wycięcie białych znaków po prawej stronie
EndSub
Odczyt z pliku znak po znaku
Sub odczytZnakPoZnaku()
'
' Przykładowe makro związane z odczytem danych z plików, znak po znaku w MS Excel
'
Range("A1") = "Komórka A1"'Odwołanie do konkretnej komórki
Dim s AsStringDim i AsInteger
wiersz = 1
Open"test.txt"ForInputAs #1
DoWhileNot EOF(1)
Input #1, linia
For i = 1 To Len(linia) Step 1
Cells(wiersz, 1) = Mid(linia, i, 1)
wiersz = wiersz + 1
Next i
LoopClose #1
EndSub
Suma cyfr w łańcuchu znaków
Sub sumaCyfr()
'
' Przykładowe makro związane obliczeniem sumy cyfr w łańcuchu znaków (MS Excel)
'
Dim s AsStringDim s2 AsString
s = "Ala ma 15 kotów i 2 psy"'Łańcuchy liczymy od '1'
Dim suma AsIntegerFor i = 1 To Len(s) Step 1
If Mid(s, i, 1) >= "0"And Mid(s, i, 1) <= "9"Then
suma = suma + Mid(s, i, 1)
EndIfNext i
MsgBox "Suma cyfr w łańcuchu wynosi " & suma
EndSub
Zadania do wykonania
1. Palindrom
2. Szyfr Cezara
3. Zamiana liczby z dziesiętnej na binarną (z linii pliku do komórek)
4. Liczenie liczby wszystkich fraz w pliku lub liczby wszystkich fraz w komórkach.
5. Podział danych z pliku na komórki w Excelu, według białych znaków
6. Przepisanie z pliku tylko liczb do komórek Excela
7. Zamiana małych liter na wielkie i wielkich na małe
8. i inne
Zadania związane z VBA – Excel
Ćwiczenia w VB
Ćwiczenia w VB (prostsze)
Odczyt z pliku w VBA
Zapis do pliku w VBA
Podstawowe operacje na łańcuchach znaków
Odczyt z pliku znak po znaku
Suma cyfr w łańcuchu znaków
Zadania do wykonania
1. Palindrom
2. Szyfr Cezara
3. Zamiana liczby z dziesiętnej na binarną (z linii pliku do komórek)
4. Liczenie liczby wszystkich fraz w pliku lub liczby wszystkich fraz w komórkach.
5. Podział danych z pliku na komórki w Excelu, według białych znaków
6. Przepisanie z pliku tylko liczb do komórek Excela
7. Zamiana małych liter na wielkie i wielkich na małe
8. i inne
Parsowanie XML:
XML
XML2
NBP