Advertisement
darkman110697

bazy danych zmienne

Jan 25th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.78 KB | None | 0 0
  1. http://www.zstrybnik.pl/sd/2015_2016/3Ti/gr3/VBA_ACCESS.pdf
  2.  
  3.  
  4. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 1
  5. Visual Basic dla Aplikacji Visual Basic dla Aplikacji Visual Basic dla Aplikacji
  6. Kod Visual Basic Kod Visual Basic Kod Visual Basic -- Podstawy Podstawy Podstawy
  7. Wykład
  8. dr inż. Zbigniew Zakrzewski . Zbigniew Zakrzewski v. 1.2.2 v. 1.2.2
  9. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 2
  10. Zastosowanie języka Visual Basic
  11. 1. MS Office (95, 97, 2000, XP, 2003, 2007) – jako VBA:
  12. ƒ Word,
  13. ƒ Excel,
  14. ƒ PowerPoint,
  15. ƒ Access,
  16. ƒ Publisher,
  17. ƒ Visio.
  18. 2. MS Windows (Win95 i NT) – jako VBS lub WSH.
  19. 3. MS Server – jako VBS lub ASP (Active Server Pages).
  20. 4. MS Outlook – jako VBS oraz VBA.
  21. 5. MS Internet Explorer – jako VBS.
  22. 6. AutoCAD firmy AutoDesk – jako VBS.
  23. 7. Corel (pakiet graficzny) – jako VBA.
  24. 1. MS Office (95, 97, 2000, XP, 2003, 2007) – jako VBA:
  25. ƒ Word,
  26. ƒ Excel,
  27. ƒ PowerPoint,
  28. ƒ Access,
  29. ƒ Publisher,
  30. ƒ Visio.
  31. 2. MS Windows (Win95 i NT) – jako VBS lub WSH.
  32. 3. MS Server – jako VBS lub ASP (Active Server Pages).
  33. 4. MS Outlook – jako VBS oraz VBA.
  34. 5. MS Internet Explorer – jako VBS.
  35. 6. AutoCAD firmy AutoDesk – jako VBS.
  36. 7. Corel (pakiet graficzny) – jako VBA.
  37. Windows Script Host
  38. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 3
  39. Zasadnicze elementy języka wysokiego poziomu
  40. 1. Projekt (zestaw modułów oraz formularzy);
  41. 2. Moduł (zestaw procedur oraz funkcji);
  42. 3. Procedura (podprogram zawierający instrukcje);
  43. 4. Instrukcja (słowo kluczowe samodzielne lub grupowe);
  44. 5. Zmienna (statyczna lub dynamiczna, dane);
  45. 6. Stała (zmienna z wartością ustaloną przy deklaracji);
  46. 7. Operator (pojedynczy znak symbolizujący operację);
  47. 8. Przedrostek (znak lub zestaw znaków, skrót polecenia).
  48. 1. Projekt (zestaw modułów oraz formularzy);
  49. 2. Moduł (zestaw procedur oraz funkcji);
  50. 3. Procedura (podprogram zawierający instrukcje);
  51. 4. Instrukcja (słowo kluczowe samodzielne lub grupowe);
  52. 5. Zmienna (statyczna lub dynamiczna, dane);
  53. 6. Stała (zmienna z wartością ustaloną przy deklaracji);
  54. 7. Operator (pojedynczy znak symbolizujący operację);
  55. 8. Przedrostek (znak lub zestaw znaków, skrót polecenia).
  56. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy
  57. 4
  58. Etykieta w programowaniu VBA
  59. Poprawne nazewnictwo zmiennych i obiektów:
  60. nazwa winna rozpoczyna
  61. ć si
  62. ę od litery;
  63. – w
  64. e
  65. w
  66. n
  67. ątrz nazwy mo
  68. żna u
  69. żywa
  70. ć znaku podkre
  71. ślenia;
  72. nazwa nie mo
  73. że zawiera
  74. ć znaków interpunkcyjnych:
  75. ! @ & ‘
  76. $ # ? , * . { } ( ) [ ] = + -
  77. ^ % / \
  78. ~ < > : ; ”
  79. nazwa nie mo
  80. że zawiera
  81. ć spacji;
  82. nie wskazane jest stosowanie w nazwach polskich liter;
  83. nazwa zmiennej mo
  84. że maksymalnie zawiera
  85. ć 255 znaków;
  86. nazwa formularza lub formantu mo
  87. że zawiera
  88. ć do 40 znaków;
  89. nazwa nie mo
  90. że by
  91. ć taka sama jak nazwa funkcji, instrukcji lub metody
  92. wbudowanej;
  93. – m
  94. o
  95. du
  96. ł kodu nie mo
  97. że zawiera
  98. ć procedur o tych samych nazwach;
  99. nazwy zmiennych mog
  100. ą si
  101. ę powtarza
  102. ć, gdy s
  103. ą deklarowane lokalnie w
  104. procedurach, a nie w sekcji deklaracji modu
  105. łu;
  106. – n
  107. a
  108. l
  109. e
  110. ży zwróci
  111. ć uwag
  112. ę, że VBA nie rozró
  113. żnia wielkich i ma
  114. łych liter.
  115. Poprawne nazewnictwo zmiennych i obiektów:
  116. nazwa winna rozpoczyna
  117. ć si
  118. ę od litery;
  119. – w
  120. e
  121. w
  122. n
  123. ątrz nazwy mo
  124. żna u
  125. żywa
  126. ć znaku podkre
  127. ślenia;
  128. nazwa nie mo
  129. że zawiera
  130. ć znaków interpunkcyjnych:
  131. ! @ & ‘
  132. $ # ? , * . { } ( ) [ ] = + -
  133. ^ % / \
  134. ~ < > : ; ”
  135. nazwa nie mo
  136. że zawiera
  137. ć spacji;
  138. nie wskazane jest stosowanie w nazwach polskich liter;
  139. nazwa zmiennej mo
  140. że maksymalnie zawiera
  141. ć 255 znaków;
  142. nazwa formularza lub formantu mo
  143. że zawiera
  144. ć do 40 znaków;
  145. nazwa nie mo
  146. że by
  147. ć taka sama jak nazwa funkcji, instrukcji lub metody
  148. wbudowanej;
  149. – m
  150. o
  151. du
  152. ł kodu nie mo
  153. że zawiera
  154. ć procedur o tych samych nazwach;
  155. nazwy zmiennych mog
  156. ą si
  157. ę powtarza
  158. ć, gdy s
  159. ą deklarowane lokalnie w
  160. procedurach, a nie w sekcji deklaracji modu
  161. łu;
  162. – n
  163. a
  164. l
  165. e
  166. ży zwróci
  167. ć uwag
  168. ę, że VBA nie rozró
  169. żnia wielkich i ma
  170. łych liter.
  171. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 5
  172. Etykieta w programowaniu VBA c.d.
  173. Poprawianie czytelności kodu poprzez wstawianie wcięć.
  174. Cel: wyróżnianie bloków kodu, np. wyróżnianie zagnieżdżonych instrukcji:
  175. warunku If ... Then ...Else, pętli Do ... Loop lub pętli For ... Next.
  176. Przykład:
  177. Do While x3 <> 20 ‘ Początek pętli
  178. x1 = x1 +1
  179. If x1 = x2 Then ‘ Początek warunku
  180. x1 = 5 ‘ Podprogram warunku spełnionego
  181. x2 = 10
  182. Else ‘ W innym przypadku
  183. x1 = x2 ‘ Podprogram dla warunku
  184. x3 = 20 ‘ niespełnionego
  185. End If
  186. Loop ‘ Koniec pętli
  187. Poprawianie czytelności kodu poprzez wstawianie wcięć.
  188. Cel: wyróżnianie bloków kodu, np. wyróżnianie zagnieżdżonych instrukcji:
  189. warunku If ... Then ...Else, pętli Do ... Loop lub pętli For ... Next.
  190. Przykład:
  191. Do While x3 <> 20 ‘ Początek pętli
  192. x1 = x1 +1
  193. If x1 = x2 Then ‘ Początek warunku
  194. x1 = 5 ‘ Podprogram warunku spełnionego
  195. x2 = 10
  196. Else ‘ W innym przypadku
  197. x1 = x2 ‘ Podprogram dla warunku
  198. x3 = 20 ‘ niespełnionego
  199. End If
  200. Loop ‘ Koniec pętli
  201. Kod
  202. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 6
  203. Etykieta w programowaniu VBA c.d.
  204. Kontynuacja wiersza kodu w nowej linii.
  205. Cel: Możliwość wizualnej analizy długiego wiersza poleceń jako całości.
  206. Przykład:
  207. MsgBox ”Aby przenieść część instrukcji VBA do ” & _
  208. ”następnego wiersza kodu, wpisz znak spacji” & _
  209. ” oraz znak podkreślenia na końcu wiersza.”
  210. Opatrywanie kodu VBA w komentarze.
  211. Public Sub Zmienne Rem Deklaracja nowej procedury
  212. Dim x , y As Integer Rem Deklaracja zmiennych
  213. x = 10 ‘ Przypisanie wartości zmiennej x
  214. y = 20 ‘ Przypisanie wartośći zmiennej y
  215. End Sub ‘ Zakończenie kodu procedury
  216. Kontynuacja wiersza kodu w nowej linii.
  217. Cel: Możliwość wizualnej analizy długiego wiersza poleceń jako całości.
  218. Przykład:
  219. MsgBox ”Aby przenieść część instrukcji VBA do ” & _
  220. ”następnego wiersza kodu, wpisz znak spacji” & _
  221. ” oraz znak podkreślenia na końcu wiersza.”
  222. Opatrywanie kodu VBA w komentarze.
  223. Public Sub Zmienne Rem Deklaracja nowej procedury
  224. Dim x , y As Integer Rem Deklaracja zmiennych
  225. x = 10 ‘ Przypisanie wartości zmiennej x
  226. y = 20 ‘ Przypisanie wartośći zmiennej y
  227. End Sub ‘ Zakończenie kodu procedury
  228. Kod
  229. Kod
  230. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 7
  231. Typy danych
  232. Typ Opis Zakres wartości Pamięć
  233. Boolean Wartość logiczna Prawda (True) lub Fałsz (False) 2 bajty
  234. Byte Mała liczba całkowita Od 0 do 255 1 bajt
  235. Integer Liczba całkowita Od -32 768 do 32 767 2 bajty
  236. Long Liczba całkowita Od -2 147 483 648 do 2 147 483 647 4 bajty
  237. Single Wartość
  238. zmiennoprzecinkowa
  239. pojedynczej precyzji
  240. Od -3.402823E38 do -1.401298E-45
  241. dla ujemnych wartości oraz od
  242. 1.401298E-45 do 3.402823E38 dla
  243. dodatnich wartości
  244. 4 bajty
  245. Double Wartość
  246. zmiennoprzecinkowa
  247. podwójnej precyzji
  248. Od -1.79769313486231E308 do
  249. -4.94065645841247E-324 dla
  250. dodatnich wartości oraz od
  251. 4.94065645841247E-324 do
  252. 1.79769313486232E308 dla ujemnych
  253. 8 bajtów
  254. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 8
  255. Typy danych c.d.
  256. Typ Opis Zakres wartości Pamięć
  257. Currency Duża precyzyjna
  258. liczba (do 19
  259. cyfr)
  260. Od –922 337 203 685 477, 5808 do 922
  261. 337 203 685 477,5807; cztery cyfry na
  262. prawo od przecinka
  263. 8 bajtów
  264. Decimal Bardzo duża,
  265. bardzo
  266. precyzyjna
  267. liczba (do 29
  268. cyfr)
  269. +/-79228162514264337593543950335
  270. bez przecinka ;
  271. +/-7.9228162514264337593543950335 z
  272. 28 miejscami na prawo od przecinka;
  273. najmniejsza niezerowa liczba:
  274. +/-0.0000000000000000000000000001
  275. 14 bajtów
  276. Date Daty i godziny Od 1 stycznia 100r. do 31 grudnia 9999r. 8 bajtów
  277. Object Obiekt Odniesienie do obiektu 4 bajty
  278. String Tekst o
  279. zmiennej
  280. długości
  281. Od 0 do około 2 miliardów znaków 10 bajtów
  282. +długość
  283. łańcucha
  284. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 9
  285. Typy danych c.d.
  286. Typ Opis Zakres wartości Pamięć
  287. String Tekst o stałej
  288. długości
  289. Od 1 do około 65400
  290. znaków
  291. długość
  292. łańcucha
  293. Variant Dowolna
  294. wartość
  295. Wartość numeryczna – typ
  296. Double. Tekst o zmiennej
  297. długości od 0 do około 2
  298. miliardów znaków
  299. 22 bajty +
  300. długość
  301. łańcucha
  302. Typ niestandardowy
  303. zdefiniowany za
  304. pomocą struktury Type
  305. Grupa
  306. zmiennych
  307. używana jako
  308. całość
  309. Dopuszczalna wartość
  310. konkretnej zmiennej
  311. tworzącej grupę zależy od
  312. typu tej zmiennej
  313. zależna od
  314. składników
  315. Type DanePersonalne ‘ Tworzę typ zmiennej użytkownika.
  316. ID As Integer ‘ Tworzę elementy danych typu użytkownika.
  317. Nazwisko As String * 20
  318. Adres As String * 30
  319. End Type
  320. Kod
  321. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 10
  322. Deklaracja zmiennych
  323. Option Explicit Pozycja – początek modułu.Wymuszenie deklaracji zmiennych. Przejrzystość kodu.
  324. Zasadnicza składnia podstawowego sposobu deklaracji zmiennej:
  325. Dim Zmienna As Typ_Danych
  326. Static Zmienna1 As Typ_Danych1
  327. Dynamiczna
  328. Statyczna
  329. Przykłady:
  330. Dim x1 As Integer, x2 As Integer
  331. Dim z2 As Double
  332. Dim tekst1 As string*56
  333. Static tekst2 As string
  334. Kod
  335. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 11
  336. Deklaracja zmiennej i jej zasięg
  337. Zasięg zmiennej zależy od:
  338. • miejsca, w którym zmienna jest zadeklarowana (sekcja
  339. deklaracji modułu, wnętrze procedury);
  340. • słowa kluczowego służącego do deklarowania zmiennej (Dim,
  341. Public, Private lub Static).
  342. Przykłady:
  343. Private Slowo As String ‘Deklaracja lokalna
  344. Dim Komunikat As String ‘Deklaracja lokalna
  345. Public Licznik As Long ‘Deklaracja
  346. ‘globalna
  347. Static Numer As Integer ‘Deklaracja lokalna
  348. Zasięg zmiennej zależy od:
  349. • miejsca, w którym zmienna jest zadeklarowana (sekcja
  350. deklaracji modułu, wnętrze procedury);
  351. • słowa kluczowego służącego do deklarowania zmiennej (Dim,
  352. Public, Private lub Static).
  353. Przykłady:
  354. Private Slowo As String ‘Deklaracja lokalna
  355. Dim Komunikat As String ‘Deklaracja lokalna
  356. Public Licznik As Long ‘Deklaracja
  357. ‘globalna
  358. Static Numer As Integer ‘Deklaracja lokalna
  359. Kod
  360. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 12
  361. Deklaracja zmiennej statycznej
  362. Cechy:
  363. • zmienna statyczna nie zmienia swojej wartości po wykonaniu
  364. procedury;
  365. • globalna deklaracja w funkcji lub procedurze zamienia wszystkie
  366. deklaracje na statyczne.
  367. Przykłady:
  368. Static Numer As Integer
  369. Private Static Sub Procedura()
  370. Static Function Suma(x1 As Integer, _
  371. x2 As Integer) As Double
  372. Cechy:
  373. • zmienna statyczna nie zmienia swojej wartości po wykonaniu
  374. procedury;
  375. • globalna deklaracja w funkcji lub procedurze zamienia wszystkie
  376. deklaracje na statyczne.
  377. Przykłady:
  378. Static Numer As Integer
  379. Private Static Sub Procedura()
  380. Static Function Suma(x1 As Integer, _
  381. x2 As Integer) As Double
  382. Kod
  383. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 13
  384. Deklarowanie wielu zmiennych w wierszu
  385. Poprawna deklaracja zawiera (w kolejności):
  386. 1. Słowo kluczowe (Dim, Private, Public),
  387. 2. Nazwę zmiennej,
  388. 3. Słowo kluczowe (As),
  389. 4. Typ zmiennej.
  390. Po umieszczeniu znaku przecinka można powtórzyć punkty 2, 3 i 4.
  391. Dim x1 As Integer, x2 As Integer, x3 As Integer
  392. Dim a1 As Currency, d1 As Date, s1 As String
  393. Dim x1, x2, x3 As Integer : Dim x4
  394. Poprawna deklaracja zawiera (w kolejności):
  395. 1. Słowo kluczowe (Dim, Private, Public),
  396. 2. Nazwę zmiennej,
  397. 3. Słowo kluczowe (As),
  398. 4. Typ zmiennej.
  399. Po umieszczeniu znaku przecinka można powtórzyć punkty 2, 3 i 4.
  400. Dim x1 As Integer, x2 As Integer, x3 As Integer
  401. Dim a1 As Currency, d1 As Date, s1 As String
  402. Dim x1, x2, x3 As Integer : Dim x4
  403. Kod
  404. Uwaga: Zmienne typu Variant.
  405. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 14
  406. Stała literalna (symboliczna)
  407. Cel:
  408. • określenie wartości, która nie zmienia się w czasie działania
  409. programu;
  410. • możliwość globalnej zmiany deklaracji stałej stosowanej w
  411. programie;
  412. • na stałe przypisanie nazw wartościom, w celu podniesienia
  413. czytelności kodu.
  414. Przykłady:
  415. Public Const Nazwisko As String = ”Kowalski”
  416. Private Const Data As Date = #1/10/1998#
  417. Const Stan As Boolean = True
  418. Const Poniedziałek = 1, Wtorek = 2
  419. Cel:
  420. • określenie wartości, która nie zmienia się w czasie działania
  421. programu;
  422. • możliwość globalnej zmiany deklaracji stałej stosowanej w
  423. programie;
  424. • na stałe przypisanie nazw wartościom, w celu podniesienia
  425. czytelności kodu.
  426. Przykłady:
  427. Public Const Nazwisko As String = ”Kowalski”
  428. Private Const Data As Date = #1/10/1998#
  429. Const Stan As Boolean = True
  430. Const Poniedziałek = 1, Wtorek = 2
  431. Kod
  432. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 15
  433. Wykorzystanie przyrostków w deklaracjach
  434. Przyrostek Typ zmiennej Przykład deklaracji
  435. % Integer Dim zmienna1%, zmienna2%
  436. Dim wartosc1&, wartosc2&
  437. Dim slowo1!, slowo2!
  438. Dim x#, y#
  439. Dim x As Double, y As Double
  440. Dim placa1@, placa2@
  441. Dim lancuch1$, lancuch2$
  442. & Long
  443. ! Single
  444. # Double
  445. @ Currency
  446. $ String
  447. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 16
  448. Definiowanie niestandardowego typu danych
  449. [Private | Public] Type nazwa_typu
  450. nazwa_elementu [([indeksy])] As typ
  451. [nazwa_elementu[([indeksy])] As typ]
  452. . . .
  453. End Type
  454. Public Element nieobowiązkowy. Deklarowanie typów zdefiniowanych przez
  455. użytkownika dostępnych we wszystkich procedurach, modułach,
  456. projektach.
  457. Private Element nieobowiązkowy. Deklarowanie typu definiowanego przez
  458. użytkownika dostępnego tylko wewnątrz modułu.
  459. nazwa_typu Element obowiązkowy. Nazwa typu definiowanego przez użytkownika.
  460. nazwa_elementu Element obowiązkowy. Nazwa elementu typu definiowanego przez
  461. użytkownika.
  462. indeksy Element nieobowiązkowy. Wymiary elementu będącego tablicą.
  463. Argument indeksy ma następującą składnię: [indeks_dolny To
  464. indeks_górny]
  465. typ Element obowiązkowy. Dowolnego rodzaju z wcześniejszej tabeli.
  466. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 17
  467. Charakterystyka zmiennej typu „Variant”
  468. Cechy:
  469. • uniwersalność;
  470. • możliwość przyporządkowania wartości dowolnego typu;
  471. • dynamiczna zmiana typu wartości;
  472. • zajętość dużego bloku pamięci oraz spowolnienie programu.
  473. Przykład:
  474. Dim WszystkieDane As Variant, TypDanych
  475. WszystkieDane = 3
  476. WszystkieDane = ”Dobrze”
  477. WszystkieDane = #1/10/1998 19:05:21#
  478. ‘ Zapytanie o typ bieżącej wartości
  479. TypDanych = TypeName(WszystkieDane) ‘ Date
  480. Cechy:
  481. • uniwersalność;
  482. • możliwość przyporządkowania wartości dowolnego typu;
  483. • dynamiczna zmiana typu wartości;
  484. • zajętość dużego bloku pamięci oraz spowolnienie programu.
  485. Przykład:
  486. Dim WszystkieDane As Variant, TypDanych
  487. WszystkieDane = 3
  488. WszystkieDane = ”Dobrze”
  489. WszystkieDane = #1/10/1998 19:05:21#
  490. ‘ Zapytanie o typ bieżącej wartości
  491. TypDanych = TypeName(WszystkieDane) ‘ Date
  492. Kod
  493. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 18
  494. Operatory arytmetyczne
  495. Operator Operacja Przykład
  496. + Dodawanie 2 + 1 x + y
  497. - Odejmowanie i negacja 2 – 1 -x
  498. * Mnożenie 3 * 4 x * y
  499. x ^ y
  500. x / y
  501. x \ y
  502. x Mod y
  503. Sqr(x)
  504. ^ Potęgowanie 2 ^ 3
  505. / Dzielenie 2 / 3
  506. \ Dzielenie całkowite 2 \ 3
  507. Mod Reszta z dzielenia 5 Mod 2
  508. Sqr Pierwiastek kwadratowy Sqr(4)
  509. Funkcja posiadająca
  510. charakter operatora
  511. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 19
  512. Operatory porównywania i konkatenacji
  513. Operator Operacja Przykład
  514. = Równość, przypisanie x = 2 x = y
  515. <> Nierówność x <> 2 x <> y
  516. x < y
  517. x > y
  518. x <= y
  519. x >= y
  520. Like Porównywanie łańcuchów "aBBBa" Like "a*a"
  521. < Mniejszy x < 2
  522. > Większy x > 2
  523. <= Mniejszy lub równy x <= 2
  524. >= Większy lub równy x >= 2
  525. Is Sprawdzanie odwołań Object1 Is Object2
  526. & lub + Konkatenacja łańcuchów "Wynik: " & x
  527. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 20
  528. Przykłady zastosowań operatora „Like”
  529. Dim MojWynik
  530. MojWynik = "aBBBa" Like "a*a" ‘ Zwraca True.
  531. MojWynik = "F" Like "[A-Z]" ‘ Zwraca True.
  532. MojWynik = "F" Like "[!A-Z]" ‘ Zwraca False.
  533. MojWynik = "a2a" Like "a#a" ‘ Zwraca True.
  534. MojWynik = "aM5b" Like "a[L-P]#[!c-e]" ‘ Zwraca True.
  535. MojWynik = "BAT123khg" Like "B?T*" ‘ Zwraca True.
  536. MojWynik = "CAT123khg" Like "B?T*" ‘ Zwraca False.
  537. Znaki kluczowe w łańcuchu wzorcowym:
  538. ? - dowolny pojedynczy znak,
  539. *
  540. - zero lub więcej znaków,
  541. # - dowolna pojedyncza cyfra (0–9),
  542. [Lista] - dowolna pojedyncza litera z <Lista>,
  543. [!Lista] - dowolna pojedyncza litera z poza <Lista>,
  544. ! - negacja listy liter.
  545. Dim MojWynik
  546. MojWynik = "aBBBa" Like "a*a" ‘ Zwraca True.
  547. MojWynik = "F" Like "[A-Z]" ‘ Zwraca True.
  548. MojWynik = "F" Like "[!A-Z]" ‘ Zwraca False.
  549. MojWynik = "a2a" Like "a#a" ‘ Zwraca True.
  550. MojWynik = "aM5b" Like "a[L-P]#[!c-e]" ‘ Zwraca True.
  551. MojWynik = "BAT123khg" Like "B?T*" ‘ Zwraca True.
  552. MojWynik = "CAT123khg" Like "B?T*" ‘ Zwraca False.
  553. Znaki kluczowe w łańcuchu wzorcowym:
  554. ? - dowolny pojedynczy znak,
  555. *
  556. - zero lub więcej znaków,
  557. # - dowolna pojedyncza cyfra (0–9),
  558. [Lista] - dowolna pojedyncza litera z <Lista>,
  559. [!Lista] - dowolna pojedyncza litera z poza <Lista>,
  560. ! - negacja listy liter.
  561. Kod
  562. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 21
  563. Operatory logiczne
  564. Operator Operacja Przykład
  565. Not Negacja Not(x > y)
  566. And Koniunkcja x > y And a > b
  567. Or Alternatywa x > y Or a > b
  568. Xor Alternatywa wykluczająca x > y Xor a < b
  569. Eqv Równoważność x > y Eqv a > b
  570. Imp Implikacja x > y Imp a > b
  571. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 22
  572. Operacje logiczne (Not, And)
  573. Zastosowanie operatora: „Not”
  574. Dim Test1, A, B, C, D
  575. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  576. Test1 = Not(A > B) ' Zwraca False.
  577. Test1 = Not(B > A) ' Zwraca True.
  578. Test1 = Not(C > D) ' Zwraca Null.
  579. Test1 = Not A ' Zwraca -11 (negacja bitów).
  580. Zastosowanie operatora: „And”
  581. Dim Test2, A, B, C, D
  582. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  583. Test2 = A > B And B > C ' Zwraca True.
  584. Test2 = B > A And B > C ' Zwraca False.
  585. Test2 = A > B And B > D ' Zwraca Null.
  586. Test2 = A And B ' Zwraca 8 (mnożenie bitów).
  587. Zastosowanie operatora: „Not”
  588. Dim Test1, A, B, C, D
  589. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  590. Test1 = Not(A > B) ' Zwraca False.
  591. Test1 = Not(B > A) ' Zwraca True.
  592. Test1 = Not(C > D) ' Zwraca Null.
  593. Test1 = Not A ' Zwraca -11 (negacja bitów).
  594. Zastosowanie operatora: „And”
  595. Dim Test2, A, B, C, D
  596. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  597. Test2 = A > B And B > C ' Zwraca True.
  598. Test2 = B > A And B > C ' Zwraca False.
  599. Test2 = A > B And B > D ' Zwraca Null.
  600. Test2 = A And B ' Zwraca 8 (mnożenie bitów).
  601. Kod
  602. Kod
  603. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 23
  604. Operacje logiczne (Or, Xor)
  605. Zastosowanie operatora: „Or”
  606. Dim Test3, A, B, C, D
  607. A = 10 : B = 8 : C = 6 : D = Null ‘ Przypisanie.
  608. Test3 = A > B Or B > C ' Zwraca True.
  609. Test3 = A > B Or B > D ' Zwraca True.
  610. Test3 = B > D Or B > A ' Zwraca Null.
  611. Test3 = A Or B ' Zwraca 10 (sumowanie bitów).
  612. Zastosowanie operatora: „Xor”
  613. Dim Test4, A, B, C, D
  614. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  615. Test4 = A > B Xor B > C ' Zwraca False.
  616. Test4 = B > A Xor B > C ' Zwraca True.
  617. Test4 = B > A Xor C > B ' Zwraca False.
  618. Test4 = B > D Xor A > B ' Zwraca Null.
  619. Test4 = A Xor B ' Zwraca 2 (wykluczanie pary bitów).
  620. Zastosowanie operatora: „Or”
  621. Dim Test3, A, B, C, D
  622. A = 10 : B = 8 : C = 6 : D = Null ‘ Przypisanie.
  623. Test3 = A > B Or B > C ' Zwraca True.
  624. Test3 = A > B Or B > D ' Zwraca True.
  625. Test3 = B > D Or B > A ' Zwraca Null.
  626. Test3 = A Or B ' Zwraca 10 (sumowanie bitów).
  627. Zastosowanie operatora: „Xor”
  628. Dim Test4, A, B, C, D
  629. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  630. Test4 = A > B Xor B > C ' Zwraca False.
  631. Test4 = B > A Xor B > C ' Zwraca True.
  632. Test4 = B > A Xor C > B ' Zwraca False.
  633. Test4 = B > D Xor A > B ' Zwraca Null.
  634. Test4 = A Xor B ' Zwraca 2 (wykluczanie pary bitów).
  635. Kod
  636. Kod
  637. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 24
  638. Operacje logiczne (Eqv, Imp
  639. )
  640. Zastosowanie operatora: „Eqv”
  641. Dim Test5, A, B, C, D
  642. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  643. Test5 = A > B Eqv B > C ' Zwraca True.
  644. Test5 = B > A Eqv B > C ' Zwraca False.
  645. Test5 = A > B Eqv B > D ' Zwraca Null.
  646. Test5 = A Eqv B ' Zwraca -3 (porównanie bitów).
  647. Zastosowanie operatora: „Imp”
  648. Dim Test6, A, B, C, D
  649. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  650. Test6 = A > B Imp B > C ' Zwraca True.
  651. Test6 = A > B Imp C > B ' Zwraca False.
  652. Test6 = B > A Imp C > B ' Zwraca True.
  653. Test6 = B > A Imp C > D ' Zwraca True.
  654. Test6 = C > D Imp B > A ' Zwraca Null.
  655. Test6 = B Imp A ' Zwraca -1 (włączanie bitów).
  656. Zastosowanie operatora: „Eqv”
  657. Dim Test5, A, B, C, D
  658. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  659. Test5 = A > B Eqv B > C ' Zwraca True.
  660. Test5 = B > A Eqv B > C ' Zwraca False.
  661. Test5 = A > B Eqv B > D ' Zwraca Null.
  662. Test5 = A Eqv B ' Zwraca -3 (porównanie bitów).
  663. Zastosowanie operatora: „Imp”
  664. Dim Test6, A, B, C, D
  665. A = 10 : B = 8 : C = 6 : D = Null ' Przypisanie.
  666. Test6 = A > B Imp B > C ' Zwraca True.
  667. Test6 = A > B Imp C > B ' Zwraca False.
  668. Test6 = B > A Imp C > B ' Zwraca True.
  669. Test6 = B > A Imp C > D ' Zwraca True.
  670. Test6 = C > D Imp B > A ' Zwraca Null.
  671. Test6 = B Imp A ' Zwraca -1 (włączanie bitów).
  672. Kod
  673. Kod
  674. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 25
  675. Deklaracja tablic
  676. Option Base {0 | 1} Początek modułu. Ograniczenie indeksów
  677. tablicy od dołu. Domyślna wartość „0”.
  678. Tablice statyczne
  679. Dim NazwaTablicy(n) As TypDanych
  680. Dim NazwaTablicy(n,m,p,...) As TypDanych
  681. Dim NazwaTablicy(n1 To n2,m1 To m2,p1 To p2, ...) As TypDanych
  682. Tablice dynamiczne
  683. Dim nazwatablicy() As TypDanych
  684. Do 60 wymiarów
  685. Option Base 1
  686. Dim miesiace(11) As String
  687. Public wyniki(10, 10, 2) As Byte
  688. Static dane(1 To 5, 6 To 10) As Double
  689. Private wartosci() ‘Tablica dynamiczna zmiennych Variant
  690. Kod
  691. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 26
  692. Redeklaracja tablic dynamicznych (ReDim)
  693. Cel stosowania - ponowny przydział pamięci dla zmiennych
  694. reprezentujących tablice dynamiczne (w procedurze).
  695. ReDim [Preserve] nazwa_zmiennej (indeksy) [As typ]
  696. [, nazwa_zmiennej (indeksy) [As typ]] . . .
  697. Preserve Element nieobowiązkowy. Słowo kluczowe powodujące
  698. zachowanie danych istniejącej tablicy w przypadku zmiany jej
  699. ostatniego rozmiaru.
  700. nazwa_zmiennej Element obowiązkowy. Nazwa tablicy.
  701. indeksy Element nieobowiązkowy. Wymiary zmiennej tablicowej.
  702. Można zadeklarować do 60 wymiarów.
  703. Składnia: [indeks_dolny To] indeks_górny [ ,
  704. [indeks_dolny To] indeks_górny] . . .
  705. typ Element nieobowiązkowy. Typ danych zmiennej tablicowej.
  706. Możliwość zmiany tylko do dołu od typu Variant.
  707. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 27
  708. Redeklaracja tablic dynamicznych c.d.
  709. Przykład:
  710. Option Base 1
  711. Dim Tab() As Integer 'Deklaracja tablicy dynamicznej.
  712. ReDim Tab(3, 2) ‘Określenie rozmiaru tablicy.
  713. ReDim Tab(3, 4) ‘Zmiana rozmiaru tablicy.
  714. ... program wypełniający tablicę ...
  715. ReDim Preserve Tab(3, 5) ‘Zmiana rozmiaru z
  716. ‘zachowaniem wcześniej wprowadzonych danych.
  717. Przykład:
  718. Option Base 1
  719. Dim Tab() As Integer 'Deklaracja tablicy dynamicznej.
  720. ReDim Tab(3, 2) ‘Określenie rozmiaru tablicy.
  721. ReDim Tab(3, 4) ‘Zmiana rozmiaru tablicy.
  722. ... program wypełniający tablicę ...
  723. ReDim Preserve Tab(3, 5) ‘Zmiana rozmiaru z
  724. ‘zachowaniem wcześniej wprowadzonych danych.
  725. 11 12 13 14
  726. 21 22 23 24
  727. 31 32 33 34
  728. Tab Tab Tab Tab
  729. Tab Tab Tab Tab
  730. Tab Tab Tab Tab
  731. ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣ ⎦
  732. 11 12 13 14 15
  733. 21 22 23 24 25
  734. 31 32 33 34 35
  735. Tab Tab Tab Tab Tab
  736. Tab Tab Tab Tab Tab
  737. Tab Tab Tab Tab Tab
  738. ⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎣ ⎦
  739. Nowe elementy tablicy (macierzy)
  740. Nienaruszona część tablicy (macierzy)
  741. Kod
  742. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 28
  743. Odczyt indeksów tablicy
  744. Odczyt dolnego indeksu tablicy:
  745. LBound(NazwaTablicy[, NumerWymiaru])
  746. Odczyt górnego indeksu tablicy:
  747. UBound(NazwaTablicy[, NumerWymiaru])
  748. Option Base 1
  749. Dim Dolna, Gorna
  750. Dim Matrix(1 To 10, 5 To 15, 10 To 20)
  751. Dim InnyMatrix(10) As Double
  752. Dolna = LBound(Matrix, 1) ' Zwraca 1.
  753. Dolna = LBound(Matrix, 3) ' Zwraca 10.
  754. Dolna = LBound(InnyMatrix) ' Zwraca 1.
  755. Gorna = UBound(Matrix, 1) ' Zwraca 10.
  756. Gorna = UBound(Matrix, 3) ' Zwraca 20.
  757. Gorna = UBound(InnyMatrix) ' Zwraca 10.
  758. Odczyt dolnego indeksu tablicy:
  759. LBound(NazwaTablicy[, NumerWymiaru])
  760. Odczyt górnego indeksu tablicy:
  761. UBound(NazwaTablicy[, NumerWymiaru])
  762. Option Base 1
  763. Dim Dolna, Gorna
  764. Dim Matrix(1 To 10, 5 To 15, 10 To 20)
  765. Dim InnyMatrix(10) As Double
  766. Dolna = LBound(Matrix, 1) ' Zwraca 1.
  767. Dolna = LBound(Matrix, 3) ' Zwraca 10.
  768. Dolna = LBound(InnyMatrix) ' Zwraca 1.
  769. Gorna = UBound(Matrix, 1) ' Zwraca 10.
  770. Gorna = UBound(Matrix, 3) ' Zwraca 20.
  771. Gorna = UBound(InnyMatrix) ' Zwraca 10.
  772. Kod
  773. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 29
  774. Dialogowe okna komunikacyjne
  775. Okno informacyjne - funkcja „MsgBox()”
  776. MsgBox(strKomunikat[, intPrzyciski] [, strNaglowek]
  777. [, strZbiorPomocy, intNumerKontekstu])
  778. strKomunikat Wymagany. Łańcuch do 1024 znaków. Przechodzenie do
  779. nowej linii Chr(13).Wprowadzenie pustej linii Chr(10).
  780. intPrzyciski Nie wymagany. Suma wartości określających wyświetlane
  781. przyciski, typ wyświetlanej ikony, przycisk domyślny,
  782. modalność okna. Wartość domyślna wynosi „0”.
  783. strNagłowek Nie wymagany. Łańcuch określający nazwę okna
  784. informacyjnego. Domyślnie jest to nazwa aplikacji.
  785. strZbiorPomocy Nie wymagany. Łańcuch określający nazwę zbioru z pomocą
  786. podręczną. Wymagany, gdy został określony
  787. intNumerKontekstu.
  788. intNumerKontekstu Nie wymagany. Numer kontekstu pomocy podręcznej.
  789. Wymagany, gdy został wprowadzony strZbiorPomocy.
  790. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 30
  791. Dialogowe okna komunikacyjne c.d.
  792. Okno informacyjne
  793. Przyciski wyświetlane w oknie informacyjnym:
  794. Nazwa stałej Wartość Przyciski Polska wersja
  795. vbOKOnly 0 OK OK
  796. OK, Anuluj
  797. Przerwij, Ponów próbę,
  798. Zignoruj
  799. Tak, Nie, Anuluj
  800. Tak, Nie
  801. Ponów próbę, Anuluj
  802. Pomoc
  803. vbOKCancel 1 OK, Cancel
  804. vbAbortRetryIgnore 2 Abort, Retry, Ignore
  805. vbYesNoCancel 3 Yes, No, Cancel
  806. vbYesNo 4 Yes, No
  807. vbRetryCancel 5 Retry, Cancel
  808. vbMsgBoxHelpButton 16384 Help
  809. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 31
  810. Dialogowe okna komunikacyjne c.d.
  811. Okno informacyjne
  812. Nazwa stałej Wartość Opis
  813. Ikony wyświetlane w oknie komunikatu:
  814. vbCritical 16 Wyświetla ikonę zdarzenia krytycznego.
  815. vbDefaultButton3 512 Trzeci przycisk jako domyślny.
  816. 32
  817. 48
  818. 64
  819. 0
  820. 256
  821. 768
  822. vbQuestion Wyświetla ikonę zapytania.
  823. vbExclamation Wyświetla ikonę wiadomości ostrzegawczej.
  824. vbInformation Wyświetla ikonę informacyjną.
  825. Domyślne przyciski wyświetlane w oknie komunikatu:
  826. vbDefaultButton1 Pierwszy przycisk jako domyślny.
  827. vbDefaultButton2 Drugi przycisk jako domyślny.
  828. vbDefaultButton4 Czwarty przycisk jako domyślny.
  829. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 32
  830. Dialogowe okna komunikacyjne c.d.
  831. Okno informacyjne
  832. Nazwa stałej Wartość Opis
  833. Modalność okna komunikatu:
  834. vbApplicationModal 0 Okno modalne w aplikacji; działanie bieżącej
  835. aplikacji zostanie wstrzymane, dopóki użytkownik
  836. nie odpowie na wyświetlony komunikat.
  837. vbSystemModal 4096 Okno modalne w systemie; działanie wszystkich
  838. aplikacji zostanie wstrzymane, dopóki użytkownik
  839. nie odpowie na wyświetlony komunikat.
  840. Inne funkcje dotyczące wyświetlania okna i tekstu w oknie:
  841. vbMsgBoxSetForeground 65536 Okno informacyjne na pierwszy plan.
  842. vbMsgBoxRight 524288 Polecenie dosunięcia tekstu do prawej strony.
  843. vbMsgBoxRtlReading 1048576 Odwrotne wprowadzanie tekstu do okna.
  844. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 33
  845. Dialogowe okna komunikacyjne c.d.
  846. Okno informacyjne
  847. Wartości zwracane przez funkcję MsgBox():
  848. Nazwa stałej Wartość Opis
  849. vbOK 1 Użytkownik wcisnął przycisk OK.
  850. vbCancel 2 Użytkownik wcisnął przycisk Cancel (Anuluj).
  851. vbAbort 3 Użytkownik wcisnął przycisk Abort (Przerwij).
  852. vbRetry 4 Użytkownik wcisnął przycisk Retry (Ponów próbę).
  853. vbIgnore 5 Użytkownik wcisnął przycisk Ignore (Zignoruj).
  854. vbYes 6 Użytkownik wcisnął przycisk Yes (Tak).
  855. vbNo 7 Użytkownik wcisnął przycisk No (Nie).
  856. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 34
  857. Dialogowe okna komunikacyjne c.d.
  858. Okno informacyjne
  859. Przykłady:
  860. Dim Info
  861. MsgBox "Zostały wykonane niezbędne obliczenia."
  862. Info = MsgBox("Początkowy tekst informacyjny."& _
  863. Chr(13) & "Przechodzę do nowej linii.", _
  864. vbDefaultButton2 + vbInformation + vbYesNoCancel + _
  865. vbMsgBoxHelpButton, "Nazwa próbnego okna")
  866. Okno informacyjne
  867. Przykłady:
  868. Dim Info
  869. MsgBox "Zostały wykonane niezbędne obliczenia."
  870. Info = MsgBox("Początkowy tekst informacyjny."& _
  871. Chr(13) & "Przechodzę do nowej linii.", _
  872. vbDefaultButton2 + vbInformation + vbYesNoCancel + _
  873. vbMsgBoxHelpButton, "Nazwa próbnego okna")
  874. Kod
  875. P
  876. P1
  877. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 35
  878. Dialogowe okna komunikacyjne c.d.
  879. Okno informacyjne
  880. Przykład - decyzyjne zamknięcie okna informacyjnego:
  881. Dim Msg, Style, Title, Help, Ctxt, Resp, MyStr
  882. Msg = "Czy chcesz kontynuować ?"
  883. Style = vbYesNo + vbCritical + vbDefaultButton2
  884. Title = "Prezentacja okna"
  885. Help = "DEMO.HLP"
  886. Ctxt = 1000
  887. Resp = MsgBox(Msg, Style, Title, Help, Ctxt)
  888. If Resp = vbYes Then
  889. MyStr = "Tak"
  890. Else
  891. MyStr = "Nie"
  892. End If
  893. MsgBox MyStr
  894. Okno informacyjne
  895. Przykład - decyzyjne zamknięcie okna informacyjnego:
  896. Dim Msg, Style, Title, Help, Ctxt, Resp, MyStr
  897. Msg = "Czy chcesz kontynuować ?"
  898. Style = vbYesNo + vbCritical + vbDefaultButton2
  899. Title = "Prezentacja okna"
  900. Help = "DEMO.HLP"
  901. Ctxt = 1000
  902. Resp = MsgBox(Msg, Style, Title, Help, Ctxt)
  903. If Resp = vbYes Then
  904. MyStr = "Tak"
  905. Else
  906. MyStr = "Nie"
  907. End If
  908. MsgBox MyStr
  909. Kod
  910. P
  911. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 36
  912. Dialogowe okna komunikacyjne c.d.
  913. Okno wprowadzania danych – funkcja „InputBox()”
  914. strZmienna = InputBox( strPytanie [, strTytul] [,strDomyslne]
  915. [,intXpoz] [,intYpoz] [, strPomoc, intKontekst])
  916. strPytanie Argument obowiązkowy typu String określający komunikat
  917. umieszczany w oknie.
  918. strTytul Parametr opcjonalny typu String określający tytuł okna komunikatu.
  919. strDomyslne Parametr opcjonalny typu String określający domyślną wartość
  920. wyświetlaną w polu tekstowym okna.
  921. intXpoz Parametr opcjonalny typu Integer określający pozycję okna , w
  922. twipsach, w formularzu od lewego brzegu okna.
  923. intYpoz Parametr opcjonalny typu Integer określający pozycję okienka, w
  924. twipsach, w formularzu od górnego brzegu okna.
  925. strPomoc Parametr opcjonalny typu String określający zbiór pomocy.
  926. intKontekst Parametr opcjonalny typu Integer określający kontekst pomocy.
  927. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 37
  928. Dialogowe okna komunikacyjne c.d.
  929. Okno wprowadzania danych
  930. Wartości zwracane przez funkcję „InputBox()”:
  931. Akcja Opis
  932. Wybór przycisku „OK” Zwracana jest wartość typu String wpisana przez
  933. użytkownika do pola tekstowego lub zaakceptowana
  934. wartość domyślna.
  935. Wybór przycisku „Anuluj” Zwracana jest wartość typu String w postaci pustego
  936. łańcucha ””.
  937. Przykład:
  938. Dim a, b, c As Integer
  939. a = InputBox("Podaj liczbę a: ")
  940. b = InputBox("Podaj liczbę b: ")
  941. c = a - (-b)
  942. MsgBox "Suma podanych liczb: " & c
  943. Kod
  944. P
  945. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 38
  946. Dialogowe okna komunikacyjne c.d.
  947. Okno wprowadzania danych
  948. Przykłady:
  949. Dim Message, Title, Def, War
  950. Message = "Wprowadź wartość między 1 a 3" 'Komunikat.
  951. Title = "Wprowadzanie danych" 'Nazwa okna.
  952. Def = "1" ' Wartość bieżąca.
  953. War = InputBox(Message, Title, Def)
  954. 'Zastosowanie pomocy. Pojawienie się przycisku Pomoc.
  955. War = InputBox(Message, Title, Def,,,"DEMO.HLP", 10)
  956. ‘Wyświetlenie okna w pozycji 100, 100.
  957. War = InputBox(Message, Title, Def, 100, 100)
  958. Okno wprowadzania danych
  959. Przykłady:
  960. Dim Message, Title, Def, War
  961. Message = "Wprowadź wartość między 1 a 3" 'Komunikat.
  962. Title = "Wprowadzanie danych" 'Nazwa okna.
  963. Def = "1" ' Wartość bieżąca.
  964. War = InputBox(Message, Title, Def)
  965. 'Zastosowanie pomocy. Pojawienie się przycisku Pomoc.
  966. War = InputBox(Message, Title, Def,,,"DEMO.HLP", 10)
  967. ‘Wyświetlenie okna w pozycji 100, 100.
  968. War = InputBox(Message, Title, Def, 100, 100)
  969. Kod
  970. P
  971. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 39
  972. Funkcje i podprogramy (procedury)
  973. Typy procedur:
  974. 1. Podprogram
  975. deklarowana za pomoc
  976. ą
  977. s
  978. łowa kluczowego Sub.
  979. Mo
  980. że by
  981. ć uruchamiana samodzielnie. Mo
  982. żna z jej wn
  983. ętrza
  984. uruchamia
  985. ć inne procedury.
  986. 2. Funkcja
  987. deklarowana za pomoc
  988. ą
  989. s
  990. łowa kluczowego Function.
  991. Zwraca wartość do procedury przez któr
  992. ą zosta
  993. ła wywo
  994. łana.
  995. 3. Procedura zdarzenia
  996. deklarowana za pomoc
  997. ą
  998. s
  999. łowa
  1000. kluczowego Event. Uruchamiana najczęściej poprzez inicjowanie
  1001. zdarzenia pochodz
  1002. ącego z obiektu wizualnego –
  1003. formularza.
  1004. 4. Procedura w
  1005. ł
  1006. a
  1007. ściwo
  1008. ści
  1009. deklarowana za pomoc
  1010. ą
  1011. s
  1012. łowa
  1013. kluczowego Property. Stosowana przy odczytywaniu lub
  1014. modyfikowaniu warto
  1015. ści w
  1016. ł
  1017. a
  1018. ściwo
  1019. ści.
  1020. 5. Makro
  1021. – podprogram bez parametrów najczęściej uruchamiany
  1022. bezpo
  1023. średnio z aplikacji. Mo
  1024. żna go wywo
  1025. ł
  1026. a
  1027. ć z parametrami z
  1028. poziomu innej procedury.
  1029. Typy procedur:
  1030. 1. Podprogram
  1031. deklarowana za pomoc
  1032. ą
  1033. s
  1034. łowa kluczowego Sub.
  1035. Mo
  1036. że by
  1037. ć uruchamiana samodzielnie. Mo
  1038. żna z jej wn
  1039. ętrza
  1040. uruchamia
  1041. ć inne procedury.
  1042. 2. Funkcja
  1043. deklarowana za pomoc
  1044. ą
  1045. s
  1046. łowa kluczowego Function.
  1047. Zwraca wartość do procedury przez któr
  1048. ą zosta
  1049. ła wywo
  1050. łana.
  1051. 3. Procedura zdarzenia
  1052. deklarowana za pomoc
  1053. ą
  1054. s
  1055. łowa
  1056. kluczowego Event. Uruchamiana najczęściej poprzez inicjowanie
  1057. zdarzenia pochodz
  1058. ącego z obiektu wizualnego –
  1059. formularza.
  1060. 4. Procedura w
  1061. ł
  1062. a
  1063. ściwo
  1064. ści
  1065. deklarowana za pomoc
  1066. ą
  1067. s
  1068. łowa
  1069. kluczowego Property. Stosowana przy odczytywaniu lub
  1070. modyfikowaniu warto
  1071. ści w
  1072. ł
  1073. a
  1074. ściwo
  1075. ści.
  1076. 5. Makro
  1077. – podprogram bez parametrów najczęściej uruchamiany
  1078. bezpo
  1079. średnio z aplikacji. Mo
  1080. żna go wywo
  1081. ł
  1082. a
  1083. ć z parametrami z
  1084. poziomu innej procedury.
  1085. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 40
  1086. Deklaracja funkcji
  1087. Deklaracja i składnia funkcji:
  1088. [Public | Private] [Static] Function Nazwa [(ListaArgumentów)] [As
  1089. TypZwracany]
  1090. [instrukcje]
  1091. [Nazwa = wyrażenie]
  1092. [Exit Function]
  1093. [instrukcje]
  1094. [Nazwa = wyrażenie]
  1095. End Function
  1096. Deklaracja i składnia funkcji:
  1097. [Public | Private] [Static] Function Nazwa [(ListaArgumentów)] [As
  1098. TypZwracany]
  1099. [instrukcje]
  1100. [Nazwa = wyrażenie]
  1101. [Exit Function]
  1102. [instrukcje]
  1103. [Nazwa = wyrażenie]
  1104. End Function
  1105. Przestrzeń
  1106. ładunkowa funkcji
  1107. (wnętrze)
  1108. Deklaracja zasięgu działania funkcji
  1109. Miejsce wprowadzania
  1110. danych do funkcji
  1111. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 41
  1112. Składnia listy argumentów funkcji
  1113. [Optional] [ByVal | ByRef] [ParamArray] NazwaZmiennej [( )]
  1114. [As Typ] [= WarDomyślna]
  1115. Optional Element nieobowiązkowy. Wskazuje, że argument nie jest
  1116. wymagany.
  1117. ByVal Element nieobowiązkowy. Wskazuje, że argument przekazywany
  1118. jest przez wartość podaną w trakcie wywołania funkcji.
  1119. ByRef Element nieobowiązkowy. Wskazuje, że argument przekazywany
  1120. jest przez odwołanie do ostatnio przypisanej wartości. W języku
  1121. Visual Basic ByRef jest ustawieniem domyślnym.
  1122. ParamArray Element nieobowiązkowy. Stosowany tylko jako ostatni
  1123. argument na liście argumentów. Wskazuje, że ostatnim
  1124. argumentem jest opcjonalna tablica z elementami typu Variant.
  1125. NazwaZmiennej Element obowiązkowy. Nazwa różna od wbudowanych.
  1126. WarDomyślna Element nieobowiązkowy. Stała lub konkretna wartość.
  1127. Typ Element nieobowiązkowy. Dowolny typ danych.
  1128. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 42
  1129. Funkcje – przykłady deklaracji
  1130. Function Pierwiastek(Argument As Double) _
  1131. As Double
  1132. If Argument < 0 Then 'Sprawdzanie argumentu.
  1133. MsgBox "Podaj dodatnią wartość."
  1134. Exit Function 'Wyjście z funkcji.
  1135. Else
  1136. Pierwiastek = Sqr(Argument)
  1137. 'Zwraca wartość.
  1138. End If
  1139. End Function
  1140. Function Pierwiastek(Argument As Double) _
  1141. As Double
  1142. If Argument < 0 Then 'Sprawdzanie argumentu.
  1143. MsgBox "Podaj dodatnią wartość."
  1144. Exit Function 'Wyjście z funkcji.
  1145. Else
  1146. Pierwiastek = Sqr(Argument)
  1147. 'Zwraca wartość.
  1148. End If
  1149. End Function
  1150. Kod
  1151. P
  1152. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 43
  1153. Funkcje – przykłady deklaracji i wywołań
  1154. Function Obliczenia(ByVal Arg1 As Integer, _
  1155. ParamArray ArgN())
  1156. Dim Wartosc
  1157. ‘Wywołanie funkcji jak poniżej:
  1158. Wartosc = Obliczenia(4, 3 ,2 ,1)
  1159. ‘ Lokalne zmienne otrzymały wartości:
  1160. ‘ Arg1 = 4,
  1161. ‘ ArgN(0) = 3, ArgN(1) = 2, ArgN(2) = 1
  1162. Function Obliczenia(ByVal Arg1 As Integer, _
  1163. ParamArray ArgN())
  1164. Dim Wartosc
  1165. ‘Wywołanie funkcji jak poniżej:
  1166. Wartosc = Obliczenia(4, 3 ,2 ,1)
  1167. ‘ Lokalne zmienne otrzymały wartości:
  1168. ‘ Arg1 = 4,
  1169. ‘ ArgN(0) = 3, ArgN(1) = 2, ArgN(2) = 1
  1170. Kod
  1171. Deklaracja funkcji
  1172. Wywołanie funkcji poprzez przypisanie
  1173. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 44
  1174. Funkcje – przykłady deklaracji i wywołań c.d.
  1175. Public Function Srednia(ByVal Arg1 As
  1176. _
  1177. Integer, ParamArray ArgN())
  1178. Dim i As Integer
  1179. Srednia = 0
  1180. For i = 0 To Arg1 - 1
  1181. Srednia = Srednia + ArgN(i)
  1182. Next i
  1183. Srednia = Srednia / Arg1
  1184. End Function
  1185. Sub Wykonaj()
  1186. MsgBox Srednia(6, 2, 4, 3, 6, 7, 8)
  1187. End Sub
  1188. Public Function Srednia(ByVal Arg1 As
  1189. _
  1190. Integer, ParamArray ArgN())
  1191. Dim i As Integer
  1192. Srednia = 0
  1193. For i = 0 To Arg1 - 1
  1194. Srednia = Srednia + ArgN(i)
  1195. Next i
  1196. Srednia = Srednia / Arg1
  1197. End Function
  1198. Sub Wykonaj()
  1199. MsgBox Srednia(6, 2, 4, 3, 6, 7, 8)
  1200. End Sub
  1201. Kod
  1202. P
  1203. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 45
  1204. Funkcje – przykłady deklaracji i wywołań c.d.
  1205. Function Funkcja(MyStr As String, Optional _
  1206. Arg1 As Integer = 5, Optional Arg2 _
  1207. = "Zofia")
  1208. Dim RetVal
  1209. ‘Funkcja może być wywołana następująco:
  1210. RetVal = Funkcja("Cześć", 2, "Słowo")
  1211. ‘Wszystkie trzy argumenty dostarczone.
  1212. RetVal = Funkcja("Test", , 5)
  1213. ‘Ominięty drugi argument.
  1214. RetVal = Funkcja(MyStr:="Cześć", Arg1:=7)
  1215. ‘Pierwszy i drugi argument wywołany
  1216. ‘według nazwy.
  1217. Function Funkcja(MyStr As String, Optional _
  1218. Arg1 As Integer = 5, Optional Arg2 _
  1219. = "Zofia")
  1220. Dim RetVal
  1221. ‘Funkcja może być wywołana następująco:
  1222. RetVal = Funkcja("Cześć", 2, "Słowo")
  1223. ‘Wszystkie trzy argumenty dostarczone.
  1224. RetVal = Funkcja("Test", , 5)
  1225. ‘Ominięty drugi argument.
  1226. RetVal = Funkcja(MyStr:="Cześć", Arg1:=7)
  1227. ‘Pierwszy i drugi argument wywołany
  1228. ‘według nazwy.
  1229. Kod
  1230. Deklaracja funkcji
  1231. Wywołanie funkcji poprzez przypisanie
  1232. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 46
  1233. Deklaracja procedury
  1234. Deklaracja i składnia procedury:
  1235. [Public | Private | Friend] [Static] Sub Nazwa [(ListaArgumentów)]
  1236. [instrukcje]
  1237. [Nazwa = wyrażenie]
  1238. [Exit Sub]
  1239. [instrukcje]
  1240. [Nazwa = wyrażenie]
  1241. End Sub
  1242. Deklaracja i składnia procedury:
  1243. [Public | Private | Friend] [Static] Sub Nazwa [(ListaArgumentów)]
  1244. [instrukcje]
  1245. [Nazwa = wyrażenie]
  1246. [Exit Sub]
  1247. [instrukcje]
  1248. [Nazwa = wyrażenie]
  1249. End Sub
  1250. Przestrzeń ładunkowa
  1251. procedury (wnętrze)
  1252. Deklaracja zasięgu działania procedury
  1253. Miejsce wprowadzania
  1254. danych do procedury
  1255. Friend – deklaracja podobna do słowa kluczowego Public; stosowana
  1256. wyłącznie w module klasy; procedura widoczna w całym projekcie, poza
  1257. kontrolerem obiektów.
  1258. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 47
  1259. Składnia listy argumentów procedury
  1260. [Optional] [ByVal | ByRef] [ParamArray] NazwaZmiennej [( )]
  1261. [As Typ] [= WarDomyślna]
  1262. Optional Element nieobowiązkowy. Wskazuje, że argument nie jest
  1263. wymagany.
  1264. ByVal Element nieobowiązkowy. Wskazuje, że argument przekazywany
  1265. jest przez wartość podaną w trakcie wywołania procedury.
  1266. ByRef Element nieobowiązkowy. Wskazuje, że argument przekazywany
  1267. jest przez odwołanie do ostatnio przypisanej wartości. W języku
  1268. Visual Basic ByRef jest ustawieniem domyślnym.
  1269. ParamArray Element nieobowiązkowy. Stosowany tylko jako ostatni
  1270. argument na liście argumentów. Wskazuje, że ostatnim
  1271. argumentem jest opcjonalna tablica z elementami typu Variant.
  1272. NazwaZmiennej Element obowiązkowy. Nazwa różna od wbudowanych.
  1273. WarDomyślna Element nieobowiązkowy. Stała lub konkretna wartość.
  1274. Typ Element nieobowiązkowy. Dowolny typ danych.
  1275. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 48
  1276. Procedura – przykład deklaracji
  1277. Sub ObliczPole(Dlugosc, Szerokosc, Okno)
  1278. 'Deklaracja zmiennej lokalnej
  1279. Dim Pole As Double.
  1280. If Dlugosc = 0 Or Szerokosc = 0 Then
  1281. 'Jeżeli któryś z argumentów jest równy 0,
  1282. Exit Sub 'opuść natychmiast procedurę.
  1283. End If
  1284. 'Oblicz pole prostokąta.
  1285. Pole = Dlugosc * Szerokosc
  1286. 'Wypisz wartość Pole w oknie MsgBox.
  1287. If Okno = True Then MsgBox Pole
  1288. End Sub
  1289. Sub ObliczPole(Dlugosc, Szerokosc, Okno)
  1290. 'Deklaracja zmiennej lokalnej
  1291. Dim Pole As Double.
  1292. If Dlugosc = 0 Or Szerokosc = 0 Then
  1293. 'Jeżeli któryś z argumentów jest równy 0,
  1294. Exit Sub 'opuść natychmiast procedurę.
  1295. End If
  1296. 'Oblicz pole prostokąta.
  1297. Pole = Dlugosc * Szerokosc
  1298. 'Wypisz wartość Pole w oknie MsgBox.
  1299. If Okno = True Then MsgBox Pole
  1300. End Sub
  1301. Kod
  1302. P
  1303. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 49
  1304. Procedura – przykłady wywołań
  1305. Private Sub PodajParametry()
  1306. Dim x As Single, y As Single, z As Boolean
  1307. x = 10: y = 30: z = True
  1308. Call ObliczPole(x, y, z)
  1309. End Sub
  1310. Public Sub PodajParametry()
  1311. Dim x As Single, y As Single, z As Boolean
  1312. x = 10: y = 60: z = True
  1313. ObliczPole Dlugosc:=x, Szerokosc:= y, Okno:=z
  1314. End Sub
  1315. Private Sub PodajParametry()
  1316. Dim x As Single, y As Single, z As Boolean
  1317. x = 10: y = 30: z = True
  1318. Call ObliczPole(x, y, z)
  1319. End Sub
  1320. Public Sub PodajParametry()
  1321. Dim x As Single, y As Single, z As Boolean
  1322. x = 10: y = 60: z = True
  1323. ObliczPole Dlugosc:=x, Szerokosc:= y, Okno:=z
  1324. End Sub
  1325. Kod
  1326. P
  1327. P1
  1328. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 50
  1329. Wbudowane instrukcje, funkcje i metody
  1330. Zestawy instrukcji, funkcji i metod mo
  1331. żna podzieli
  1332. ć na:
  1333. 1. Formatuj
  1334. ące dane (np. Format
  1335. formatowanie danych wed
  1336. ług
  1337. zadanego wzorca; mo
  1338. żliwość tworzenia w
  1339. łasnego wzorca).
  1340. 2. Konwertuj
  1341. ące typy danych (mo
  1342. żliwość kontrolowania typów
  1343. danych i tworzenia przejrzystego oraz czytelnego kodu).
  1344. 3. Manipuluj
  1345. ące
  1346. ł
  1347. a
  1348. ńcuchami znaków (obcinanie, wydzielanie
  1349. fragmentów, filtrowanie
  1350. ł
  1351. a
  1352. ńcuchów znaków).
  1353. 4. Manipuluj
  1354. ące datami i godzinami (wyodr
  1355. ębnianie sk
  1356. ładników,
  1357. wykonywanie operacji matematycznych).
  1358. 5. Umo
  1359. żliwiaj
  1360. ące komunikacj
  1361. ę z u
  1362. żytkownikiem (Funkcje MsgBox
  1363. oraz InputBox
  1364. wizualny sposób wy
  1365. świetlania komunikatów
  1366. oraz pobierania danych od u
  1367. żytkownika).
  1368. 6. Matematyczne, finansowe i logiczne.
  1369. 7. Wykonuj
  1370. ące operacje wej
  1371. ścia oraz wyj
  1372. ścia.
  1373. Zestawy instrukcji, funkcji i metod mo
  1374. żna podzieli
  1375. ć na:
  1376. 1. Formatuj
  1377. ące dane (np. Format
  1378. formatowanie danych wed
  1379. ług
  1380. zadanego wzorca; mo
  1381. żliwość tworzenia w
  1382. łasnego wzorca).
  1383. 2. Konwertuj
  1384. ące typy danych (mo
  1385. żliwość kontrolowania typów
  1386. danych i tworzenia przejrzystego oraz czytelnego kodu).
  1387. 3. Manipuluj
  1388. ące
  1389. ł
  1390. a
  1391. ńcuchami znaków (obcinanie, wydzielanie
  1392. fragmentów, filtrowanie
  1393. ł
  1394. a
  1395. ńcuchów znaków).
  1396. 4. Manipuluj
  1397. ące datami i godzinami (wyodr
  1398. ębnianie sk
  1399. ładników,
  1400. wykonywanie operacji matematycznych).
  1401. 5. Umo
  1402. żliwiaj
  1403. ące komunikacj
  1404. ę z u
  1405. żytkownikiem (Funkcje MsgBox
  1406. oraz InputBox
  1407. wizualny sposób wy
  1408. świetlania komunikatów
  1409. oraz pobierania danych od u
  1410. żytkownika).
  1411. 6. Matematyczne, finansowe i logiczne.
  1412. 7. Wykonuj
  1413. ące operacje wej
  1414. ścia oraz wyj
  1415. ścia.
  1416. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 51
  1417. Składnia instrukcji warunkowej (If)
  1418. Instrukcja warunkowa: If ... Then ... Else ... End If
  1419. 1. If warunek Then [instrukcje]
  1420. Przykład:
  1421. If d > 200 Then c=d+2
  1422. 2. If warunek Then instrukcje Else instrukcje
  1423. Przykład:
  1424. If d > 200 Then c=d+2 Else c=d-62
  1425. 3. If warunek1 Then
  1426. instrukcje
  1427. [ElseIf warunek2 Then
  1428. instrukcje]
  1429. [Else
  1430. instrukcje]
  1431. End If
  1432. Instrukcja warunkowa: If ... Then ... Else ... End If
  1433. 1. If warunek Then [instrukcje]
  1434. Przykład:
  1435. If d > 200 Then c=d+2
  1436. 2. If warunek Then instrukcje Else instrukcje
  1437. Przykład:
  1438. If d > 200 Then c=d+2 Else c=d-62
  1439. 3. If warunek1 Then
  1440. instrukcje
  1441. [ElseIf warunek2 Then
  1442. instrukcje]
  1443. [Else
  1444. instrukcje]
  1445. End If
  1446. Kod
  1447. Kod
  1448. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 52
  1449. Składnia instrukcji warunkowej (If) c.d.
  1450. Przykład:
  1451. Private Sub Warunek(Num As Long, _
  1452. Optional Cyfry As Long)
  1453. If Num < 10 Then ‘Pierwszy warunek
  1454. Cyfry = 1
  1455. ElseIf Num < 100 Then ‘Drugi warunek
  1456. Cyfry = 2
  1457. Else ‘Pozostałe przypadki
  1458. Cyfry = 3
  1459. End If
  1460. MsgBox "Jest to wartość " &Cyfry& " cyfrowa."
  1461. End Sub
  1462. Przykład:
  1463. Private Sub Warunek(Num As Long, _
  1464. Optional Cyfry As Long)
  1465. If Num < 10 Then ‘Pierwszy warunek
  1466. Cyfry = 1
  1467. ElseIf Num < 100 Then ‘Drugi warunek
  1468. Cyfry = 2
  1469. Else ‘Pozostałe przypadki
  1470. Cyfry = 3
  1471. End If
  1472. MsgBox "Jest to wartość " &Cyfry& " cyfrowa."
  1473. End Sub
  1474. Kod
  1475. P
  1476. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 53
  1477. Instrukcja warunkowa (Select Case)
  1478. Instrukcja: Select Case ... End Select
  1479. Składnia:
  1480. Select Case WyrażenieTest
  1481. [Case lista_wyrażeń_n
  1482. [instrukcje_n]] ...
  1483. [Case Else
  1484. [instrukcje_else]]
  1485. End Select
  1486. Przykład:
  1487. Select Case Num
  1488. Case 1 To 5
  1489. MsgBox "Przedział od 1 do 5"
  1490. Case 6, 7, 8
  1491. MsgBox "Przedział od 6 do 8"
  1492. Case 9 To 10
  1493. MsgBox "Przedział od 9 do 10"
  1494. Case Is > 10
  1495. MsgBox "Wartość większa od 10."
  1496. Case Else
  1497. MsgBox "Poza przedziałem" & _
  1498. " liczb dodatnich."
  1499. End Select
  1500. Kod
  1501. P
  1502. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 54
  1503. Instrukcja warunkowa (While)
  1504. Instrukcja warunkowa: While...Wend
  1505. Wykonuje ciąg instrukcji, dopóki warunek posiada wartość True.
  1506. Składnia:
  1507. While warunek
  1508. [instrukcje]
  1509. Wend
  1510. Przykład:
  1511. Private Sub Iter(n,Licz As Long, Licz1 As Long)
  1512. Dim Licz2 As Long
  1513. While Licz < Licz1
  1514. Licz = Licz + n: Licz2 = Licz2 + 1
  1515. Wend
  1516. MsgBox "Liczba iteracji wynosi: " & Licz2
  1517. End Sub
  1518. Instrukcja warunkowa: While...Wend
  1519. Wykonuje ciąg instrukcji, dopóki warunek posiada wartość True.
  1520. Składnia:
  1521. While warunek
  1522. [instrukcje]
  1523. Wend
  1524. Przykład:
  1525. Private Sub Iter(n,Licz As Long, Licz1 As Long)
  1526. Dim Licz2 As Long
  1527. While Licz < Licz1
  1528. Licz = Licz + n: Licz2 = Licz2 + 1
  1529. Wend
  1530. MsgBox "Liczba iteracji wynosi: " & Licz2
  1531. End Sub
  1532. Punkt zapętlenia (While end)
  1533. Warunkowy początek pętli
  1534. Kod
  1535. P
  1536. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 55
  1537. Iteracyjna instrukcja (For)
  1538. Składnia:
  1539. For licznik = poczatek To koniec [Step krok]
  1540. [instrukcje]
  1541. [Exit For]
  1542. [instrukcje]
  1543. Next [licznik]
  1544. Przykład:
  1545. Dim Slowo, Znak, Ciag
  1546. For Slowo = 10 To 1 Step -1 'Wykonaj 10 powtórzeń.
  1547. For Znak = 0 To 9 'Wykonaj 10 powtórzeń.
  1548. Ciag = Ciag & Znak 'Dołącz cyfrę do ciągu.
  1549. Next Znak 'Zwiększ licznik.
  1550. Ciag = Ciag & " " 'Dołącz znak spacji.
  1551. Next Slowo
  1552. Składnia:
  1553. For licznik = poczatek To koniec [Step krok]
  1554. [instrukcje]
  1555. [Exit For]
  1556. [instrukcje]
  1557. Next [licznik]
  1558. Przykład:
  1559. Dim Slowo, Znak, Ciag
  1560. For Slowo = 10 To 1 Step -1 'Wykonaj 10 powtórzeń.
  1561. For Znak = 0 To 9 'Wykonaj 10 powtórzeń.
  1562. Ciag = Ciag & Znak 'Dołącz cyfrę do ciągu.
  1563. Next Znak 'Zwiększ licznik.
  1564. Ciag = Ciag & " " 'Dołącz znak spacji.
  1565. Next Slowo
  1566. Kod
  1567. 1 - liczba iteracji koniec poczatek
  1568. krok
  1569. +
  1570. P
  1571. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 56
  1572. Iteracyjna instrukcja (For) c.d.
  1573. Sk
  1574. ładnia:
  1575. For
  1576. Each element In grupa
  1577. [instrukcje]
  1578. [Exit For
  1579. ]
  1580. [instrukcje]
  1581. Next
  1582. [element
  1583. ]
  1584. Przyk
  1585. ład:
  1586. Dim Istnieje, MojObiekt, MojaKolekcja
  1587. Istnieje = False
  1588. For Each MojObiekt In MojaKolekcja
  1589. If MojObiekt.Text = "Egzamin" Then
  1590. Istnieje = True
  1591. Exit
  1592. For
  1593. End If
  1594. Next
  1595. Sk
  1596. ładnia:
  1597. For
  1598. Each element In grupa
  1599. [instrukcje]
  1600. [Exit For
  1601. ]
  1602. [instrukcje]
  1603. Next
  1604. [element
  1605. ]
  1606. Przyk
  1607. ład:
  1608. Dim Istnieje, MojObiekt, MojaKolekcja
  1609. Istnieje = False
  1610. For Each MojObiekt In MojaKolekcja
  1611. If MojObiekt.Text = "Egzamin" Then
  1612. Istnieje = True
  1613. Exit
  1614. For
  1615. End If
  1616. Next
  1617. Kod
  1618. Dynamiczne okre
  1619. ślenie liczby iteracji
  1620. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 57
  1621. Instrukcja pętli logicznej (Do ... Loop)
  1622. Składnia:
  1623. Do [{While | Until} warunek]
  1624. [instrukcje]
  1625. [Exit Do]
  1626. [instrukcje]
  1627. Loop
  1628. Składnia alternatywna:
  1629. Do
  1630. [instrukcje]
  1631. [Exit Do]
  1632. [instrukcje]
  1633. Loop [{While | Until} warunek]
  1634. Powtarza blok instrukcji tak długo, jak długo warunek
  1635. posiada wartość True.
  1636. Powtarza blok instrukcji tak długo, jak długo warunek
  1637. posiada wartość False.
  1638. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 58
  1639. Instrukcja pętli logicznej (Do ... Loop) c.d.
  1640. Przykład:
  1641. Dim Flaga, Licznik
  1642. Flaga = True: Licznik = 0
  1643. Do 'Zewnętrzna pętla.
  1644. Do While Licznik < 20 'Wewnętrzna pętla.
  1645. Licznik = Licznik + 1 'Zwiększaj licznik.
  1646. If Licznik = 10 Then
  1647. Flaga = False
  1648. Exit Do 'Wyjdź z wewnętrznej pętli.
  1649. End If
  1650. Loop
  1651. Loop Until (Flaga = False)
  1652. ‘Wyjdź z zewnętrznej pętli.
  1653. Przykład:
  1654. Dim Flaga, Licznik
  1655. Flaga = True: Licznik = 0
  1656. Do 'Zewnętrzna pętla.
  1657. Do While Licznik < 20 'Wewnętrzna pętla.
  1658. Licznik = Licznik + 1 'Zwiększaj licznik.
  1659. If Licznik = 10 Then
  1660. Flaga = False
  1661. Exit Do 'Wyjdź z wewnętrznej pętli.
  1662. End If
  1663. Loop
  1664. Loop Until (Flaga = False)
  1665. ‘Wyjdź z zewnętrznej pętli.
  1666. Kod
  1667. P
  1668. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 59
  1669. Instrukcja p
  1670. ętli logicznej (Do ... Loop) c.d.
  1671. Przyk
  1672. ład (bez zastosowania s
  1673. łów kluczowych „While lub Until”):
  1674. Public Sub TestDanych()
  1675. Dim Odpowiedz As String
  1676. Odpowiedz = InputBox("Wpisz liter
  1677. ę (A-E)")
  1678. Do
  1679. If Odpowiedz = "" Then
  1680. Odpowiedz = InputBox("Nic nie wpisa
  1681. ł
  1682. e
  1683. ś. " & _
  1684. "Wpisz liter
  1685. ę A, B, C, D lub E.")
  1686. ElseIf Len(Odpowiedz) > 1 Then
  1687. Odpowiedz = InputBox("Wpisz tylko jedn
  1688. ą liter
  1689. ę.")
  1690. ElseIf Odpowiedz < "A" Or Odpowiedz > "E" Then
  1691. Odpowiedz = InputBox("Nieprawid
  1692. łowa litera. " & _
  1693. "Wpisz liter
  1694. ę A, B, C, D lub E.")
  1695. Else
  1696. MsgBox "Dzi
  1697. ękuj
  1698. ę. Dane zosta
  1699. ły przyj
  1700. ęte"
  1701. Exit
  1702. D
  1703. o
  1704. End
  1705. I
  1706. f
  1707. Loop
  1708. End Sub
  1709. Przyk
  1710. ład (bez zastosowania s
  1711. łów kluczowych „While lub Until”):
  1712. Public Sub TestDanych()
  1713. Dim Odpowiedz As String
  1714. Odpowiedz = InputBox("Wpisz liter
  1715. ę (A-E)")
  1716. Do
  1717. If Odpowiedz = "" Then
  1718. Odpowiedz = InputBox("Nic nie wpisa
  1719. ł
  1720. e
  1721. ś. " & _
  1722. "Wpisz liter
  1723. ę A, B, C, D lub E.")
  1724. ElseIf Len(Odpowiedz) > 1 Then
  1725. Odpowiedz = InputBox("Wpisz tylko jedn
  1726. ą liter
  1727. ę.")
  1728. ElseIf Odpowiedz < "A" Or Odpowiedz > "E" Then
  1729. Odpowiedz = InputBox("Nieprawid
  1730. łowa litera. " & _
  1731. "Wpisz liter
  1732. ę A, B, C, D lub E.")
  1733. Else
  1734. MsgBox "Dzi
  1735. ękuj
  1736. ę. Dane zosta
  1737. ły przyj
  1738. ęte"
  1739. Exit
  1740. D
  1741. o
  1742. End
  1743. I
  1744. f
  1745. Loop
  1746. End Sub
  1747. Kod
  1748. P
  1749. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 60
  1750. Instrukcja skoku do etykiety (GoTo)
  1751. Składnia:
  1752. Goto etykieta
  1753. Podstawowe zasady w stosowaniu instrukcji GoTo:
  1754. 1. Wyrażenie będące etykietą musi występować jako pierwsze w
  1755. wierszu i nie może być poprzedzane znakami odstępów lub
  1756. tabulacji.
  1757. 2. Etykieta musi być zakończona dwukropkiem.
  1758. 3. Etykieta musi rozpoczynać się od litery, lecz w jej tekście mogą
  1759. występować cyfry - razem do 40 znaków nie licząc dwukropka.
  1760. 4. Dla zgodności ze starszymi wersjami języka dopuszczone jest
  1761. stosowanie jako etykiety numeru wiersza programu. W tym
  1762. przypadku nie jest konieczne stawianie za etykietą dwukropka.
  1763. Składnia:
  1764. Goto etykieta
  1765. Podstawowe zasady w stosowaniu instrukcji GoTo:
  1766. 1. Wyrażenie będące etykietą musi występować jako pierwsze w
  1767. wierszu i nie może być poprzedzane znakami odstępów lub
  1768. tabulacji.
  1769. 2. Etykieta musi być zakończona dwukropkiem.
  1770. 3. Etykieta musi rozpoczynać się od litery, lecz w jej tekście mogą
  1771. występować cyfry - razem do 40 znaków nie licząc dwukropka.
  1772. 4. Dla zgodności ze starszymi wersjami języka dopuszczone jest
  1773. stosowanie jako etykiety numeru wiersza programu. W tym
  1774. przypadku nie jest konieczne stawianie za etykietą dwukropka.
  1775. Uwaga ! Częste stosowanie nie jest wskazane.
  1776. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 61
  1777. Przyk
  1778. ład zastosowania instrukcji (GoTo)
  1779. Przykład:
  1780. Public Sub SkokDoEtykiety()
  1781. Dim Wartosc
  1782. Wartosc = InputBox("Podaj liczb
  1783. ę specjaln
  1784. ą.")
  1785. If Wartosc = "" Then
  1786. MsgBox "Brak danych."
  1787. Exit Sub
  1788. End
  1789. I
  1790. f
  1791. Select Case Wartosc
  1792. Case 2100
  1793. GoTo WartoscSpecjalna
  1794. Case
  1795. I
  1796. s < 1000
  1797. MsgBox "Wartość mniejsza ni
  1798. ż 1000"
  1799. Case
  1800. I
  1801. s >= 1000
  1802. MsgBox "Wartość wi
  1803. ększa lub równa 1000"
  1804. End Select
  1805. Exit Sub
  1806. WartoscSpecjalna:
  1807. MsgBox "Podano wartość specjaln
  1808. ą."
  1809. End Sub
  1810. Przykład:
  1811. Public Sub SkokDoEtykiety()
  1812. Dim Wartosc
  1813. Wartosc = InputBox("Podaj liczb
  1814. ę specjaln
  1815. ą.")
  1816. If Wartosc = "" Then
  1817. MsgBox "Brak danych."
  1818. Exit Sub
  1819. End
  1820. I
  1821. f
  1822. Select Case Wartosc
  1823. Case 2100
  1824. GoTo WartoscSpecjalna
  1825. Case
  1826. I
  1827. s < 1000
  1828. MsgBox "Wartość mniejsza ni
  1829. ż 1000"
  1830. Case
  1831. I
  1832. s >= 1000
  1833. MsgBox "Wartość wi
  1834. ększa lub równa 1000"
  1835. End Select
  1836. Exit Sub
  1837. WartoscSpecjalna:
  1838. MsgBox "Podano wartość specjaln
  1839. ą."
  1840. End Sub
  1841. Kod
  1842. P
  1843. © Ζ.Ζ. Visual Basic dla Aplikacji Kod VBA - Podstawy 62
  1844. Przykład zastosowania instrukcji (GoTo) c.d.
  1845. Przykład:
  1846. Sub GoToDemo(Numer)
  1847. Dim MyString
  1848. If Numer = 1 Then GoTo Line1 Else GoTo Line2
  1849. ‘==== Początek sekcji etykiet ======
  1850. Line1:
  1851. MyString = "Podałeś liczbę o wartości 1."
  1852. GoTo Line3
  1853. Line2:
  1854. MyString = "Podałeś liczbę o wartości 2."
  1855. Line3:
  1856. MsgBox MyString
  1857. End Sub
  1858. Przykład:
  1859. Sub GoToDemo(Numer)
  1860. Dim MyString
  1861. If Numer = 1 Then GoTo Line1 Else GoTo Line2
  1862. ‘==== Początek sekcji etykiet ======
  1863. Line1:
  1864. MyString = "Podałeś liczbę o wartości 1."
  1865. GoTo Line3
  1866. Line2:
  1867. MyString = "Podałeś liczbę o wartości 2."
  1868. Line3:
  1869. MsgBox MyString
  1870. End Sub
  1871. Kod
  1872. P
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement