Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
B IT MAN78/1 v: 2015.09.27B IT MAN
Excel makrók
Adatbázis rendszerek 1.
Ismétlőrobotok
3. Gy:
B IT MAN78/2
Makró definíció by Microsoft
m
Ha a Microsoft Excel programban ismétlődő feladatokat
kell megoldani, a feladatok automatizálásához makrókat
készíthetünk.
A makró egy olyan művelet vagy műveletsor, amelyet
bármennyi alkalommal futtathat.
Makró létrehozásakor rögzíti az egérkattintásokat és
billentyűleütéseket.
A makró létrehozása után szerkesztéssel módosíthatjuk
a makró működését.
B IT MAN78/3
Előkészületek
File\Beállítások\Menüszalag testreszabása
– Fejlesztőeszközök bekapcsolása
B IT MAN78/4
Próbamakró 1.
Írjuk be az adatokat, és kezdjük meg a Makró rögzítését!
B IT MAN78/5
Próbamakró 2.
Formázzuk meg a táblázatot, ezután kattintsunk a
Rögzítés vége gombra.
B IT MAN78/6
Próbamakró 3.
Másoljuk át az adatokat egy másik munkalapra, és
indítsuk el az előbb létrehozott makrót:
– Makrók\ Makró1 \Indítás
B IT MAN78/7
Próbamakró 4.
A makró kódjának megtekintése:
– Makrók\ Makró1\Szerkesztés
B IT MAN78/8
A Visual Basic megtanulása by Microsoft
m
Elsajátíthatja a Visual Basic programozási nyelv alapjait,
ha a rögzített makrót szerkeszteni próbálja.
A makró szerkesztéséhez a Fejlesztőeszközök lap Kód
csoportjában kattintson a Makrók gombra, jelölje ki a
rögzített makró nevét, majd kattintson a Szerkesztés
gombra. Ekkor megnyílik a Visual Basic Editor program.
A kódot megfigyelve láthatja, hogy a rögzített műveletek
hogyan jelennek meg a kódolásban. Egyes kódok
világosan érthetők, mások azonban kissé érthetetlenek
lesznek.
Kísérletezzen a kóddal, zárja be a Visual Basic Editor
programot, majd indítsa el újra a makrót. Figyelje meg,
hogy ezúttal más lesz-e az eredmény.
B IT MAN78/9
Minimakró 1.
Készítsünk egy egyszerű makrót, mely összeszoroz két
számot.
B4=A2*B2
1
2
3
B IT MAN78/10
Minimakró 2.
Írjuk be a kódot, ezután
indítsuk el a makrót.
1
2
3
4
B IT MAN78/11
Minimakró 3.
Próbáljuk ki ugyanezt makrórögzítéssel:
– Makró rögzítése
– Név: Makró1, aztán OK
– Katt. a B4 cellába
– Képlet beírás: =A2 * B2
– Rögzítés vége
Az eredmény:
– Két egyforma
hatású makró,
– Eltérő kód.
== =
B IT MAN78/12
Visual Basic – Hivatkozások
Az Excelbeli elnevezések Programkódbeli megfelelő
A B3 cella Cells(3,2)
A C4:G6 tartomány Range(Cells(4,3),Cells(6,7))
A B oszlop Columns(2)
A H, I, J oszlopokból álló tartomány Range(Columns(8),Columns(10))
A 2. sor Rows(2)
A 13.-tól a 16.-sorig tartó tartomány Range(Rows(13),Rows(16))
A munkalap összes cellája Cells
Meghatározott munkalap cellái Sheets(2).Cells
Az éppen aktuális cella ActiveCell
Az éppen kijelölt objektum (cella,
tartomány, rajz, diagramm)
Selection
B IT MAN78/13
Visual Basic – Cellatulajdonságok
Programból úgy tudjuk ezeket a tulajdonságokat megadni,
hogy a cella, vagy tartomány után írjuk ponttal elválasztva
a tulajdonságot és = jel után adunk neki értéket.
A leggyakrabban használt tulajdonságok:
– Value: a cella értéke, ha szöveg, akkor idézőjelek
közé kell tenni.
• Cells(1,1).Value = ″Alma″
• Cells(1,1) = ″Alma″
– Interior.Color: a cella háttérszíne szövegesen
megadva. Az angol színelnevezéseket lehet
használni, csak elé kell írni egybe vele, hogy vb
• Cells(1,1).Interior.Color = vbRed
B IT MAN78/14
Visual Basic – Cellatulajdonságok
– Interior.ColorIndex: a cella háttérszíne számmal
megadva. A Visual Basic 0-tól 56-ig számozza a
színeket. A 0 színkód alapértelmezett színt jelent:
háttér esetén fehér, karakter esetén fekete. Az A1
cella háttérszínét a következőképpen is pirosra lehet
állítani (a 3-as a piros szín kódja):
• Cells(1,1).Interior.ColorIndex = 3
– Font: a cella betűtípusa. Újabb ponttal elválasztva
lehet megadni stílust, típust, színt a fent ismertetett
módokon. A következő táblázatban példákat találunk
az A1 cella betűformázásaira:
B IT MAN78/15
Visual Basic – Cellatulajdonságok
– Row, Column: a cella sor és oszlopszáma. Olyan
tulajdonságok, amit csak lekérdezni lehet,
megváltoztatni nem.
Betűtípus Arial-ra állítása Cells(1,1).Font.Name = ″Arial″
Betűszín pirosra állítása Cells(1,1).Font.Color = vbRed
vagy
Cells(1,1).Font.ColorIndex = 3
Betűméret 12-esre állítása Cells(1,1).Font.Size = 12
Félkövér betűre állítás Cells(1,1).Font.Bold = True
Dőlt betűre állítás Cells(1,1).Font.Italic = True
B IT MAN78/16
Visual Basic – Cellatulajdonságok
Egy objektum több tulajdonságának megadásakor nem
kell az objektum megnevezését minden sorban leírni,
hanem a With, End With kulcsszavak között elég egyszer
megadni, hogy melyik objektumról van szó és aztán csak
a tulajdonságokat és a tulajdonságértékeket kell egymás
alatt sorolnunk minden sort ponttal kezdve.
Sub formaz()
With Cells(1, 1).Font
.Name = "Arial"
.Color = vbRed
.Size = 12
.Bold = True
.Italic = True
End With
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/17
Visual Basic – Cellacímzés
Használhatjuk a hagyományos cellacímzést, pl. A1
Használhatjuk a Sor-Oszlop címzést is, pl. R1C1
A programozás során írt képleteinknél is fontos, hogy
abszolút vagy relatív hivatkozást használunk.
Hagyományos címzés: A1, $A$1
Sor-Oszlop címzés:
– Abszolút cím: R1C2 – B2 cella
– Relatív cím: A1-ben állva B2: R[1]C[1]
B IT MAN78/18
Visual Basic – Cellacímzés
A Sor-Oszlop címzésnél a sor számát mindig egy R, az
oszlop számát pedig egy C betű után kell írni. Azaz:
például a B1-es cella az R1C2 kóddal hivatkozható. Ez a
hivatkozás abszolút.
Relatív hivatkozásnál a sorszám helyett azt kell számmal
megadnunk, hogy hány cellát kell elmozdulnunk. Ha
nem váltunk sort, vagy oszlopot, akkor nem kell írni
semmit, ha váltunk, akkor pedig az elmozdulás mértékét
szögletes zárójelek között kell megadni. Azaz az eggyel
fel és kettővel jobbra lévő cellára hivatkozhatunk az
R[-1]C[2] kóddal.
B IT MAN78/19
Visual Basic – Cellacímzés
Írjuk be a B1 cellába az =2*A1 képletet:
Írjuk be a B1 cellába az =2*$A$1 képletet:
Cells(1, 2) = "=2*A1"
Cells(1, 2) = "=2*RC[-1]"
Cells(1, 2) = "=2*$A$1"
Cells(1, 2) = "=2*R1C1"
Munkafüzet1 – Module1 (Code)
Munkafüzet1 – Module1 (Code)
B IT MAN78/20
Visual Basic – Függvények
Készítsük el a következő táblázatot:
Ugyanez makróval:
Sub Hatványozó()
Cells(2, 3) = "=HATVÁNY(A2, B2)"
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/21
Visual Basic – Függvények
Megoldás
Tehát:
– angol függvényneveket kell használni,
– a paramétereket vesszővel kell elválasztani.
Sub Hatványozó()
Cells(2, 3) = "=POWER(A2, B2)"
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/22
Visual Basic – Munkafüzet mentése
Ha van makró a munkafüzetben, Makróbarát Excel
munkafüzetként (*.xlsx) lehet elmenteni!
B IT MAN78/23
Feladat 1.
Készítsünk egy makrót, amely kiszínezi az A1:C11
tartományt a B13 cellába beírt kódnak megfelelő
színűre. A színkód 0-56 közötti lehet. A színezés után a
B13 cella legyen az aktuális.
Készítsünk egy másik makrót is, mely kitörli a tartomány
háttérszínét (színkód=0). A törlés után a B13 cella legyen
az aktuális.
B IT MAN78/24
Feladat 1. – Megoldás
Sub Makró1()
Range("A1:C11").Interior.ColorIndex = Cells(13, 2)
Cells(13, 2).Select
End Sub
-----------------------------------------------------------------------
Sub Makró2()
Range("A1:C11").Interior.ColorIndex = 0
Cells(13, 2).Select
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/25
Visual Basic – Nyomógombok
Készítsünk két nyomógombot, és rendeljük hozzájuk az
elkészült makrókat.1
2
3
4
B IT MAN78/26
Visual Basic – Nyomógombok
A végeredmény:
5
B IT MAN78/27
Feladat 2.
Készítsünk egy makrót, amely az A1:C5 tartomány
háttérszínét pirosra, betűszínét fehérre, betűtípusát
TimesNR 12-es dőltbetűsre állítja. A formázás után az F2
cella legyen az aktuális.
Készítsünk egy másik makrót is, mely visszaállítja az
előző formázásokat: nincs háttérszín, és Calibri 11-es
normál típusúak lesznek a betűk. A formázás után az F2
cella legyen az aktuális.
A két makrót nyomógombokkal lehessen indítani.
B IT MAN78/28
Feladat 2. – Megoldás (Formázás)
Sub Formáz()
Range("A1:C5").Select
With Selection.Font
.Name = "Times New Roman"
.Color = vbWhite
.Size = 12
.Italic = True
End With
Range("A1:C5").Interior.ColorIndex = 3
Cells(2, 6).Select
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/29
Feladat 2. – Megoldás (VisszaFormázás)
Sub VisszaFormáz()
Range("A1:C5").Select
With Selection.Font
.Name = "Calibri"
.Color = vbBlack
.Size = 11
.Italic = False
End With
Range("A1:C5").Interior.ColorIndex = 0
Cells(2, 6).Select
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/30
Feladat 2. – Megoldás
B IT MAN78/31
Visual Basic – Feltételes utasítás
Az If és az End If kötelező, az Else ág elhagyható
If feltétel Then
utasítások, amelyek akkor futnak le, ha a feltétel igaz
Else
utasítások, amelyek akkor futnak le, ha a feltétel hamis
End If
Munkafüzet1 – Module1 (Code)
B IT MAN78/32
Visual Basic – Ciklusok
Ha nem adtunk meg lépésközt, akkor annak értéke: +1
For ciklusváltozó = kezdőérték To végérték Step_ lépésköz
ciklusmag
Next
Munkafüzet1 – Module1 (Code)
Do While feltétel
ciklusmag
Loop
Munkafüzet1 – Module1 (Code)
Elöltesztelő
Do
ciklusmag
Loop Until feltétel
Munkafüzet1 – Module1 (Code)
Hátultesztelő
B IT MAN78/33
Visual Basic – Ciklusok
Összegzés 1-10-ig a különböző ciklusokkal
ossz = 0
For i = 1 To 10
ossz = ossz + i
Next
ossz = 0
i = 1
Do While i <= 10
ossz = ossz + i
i = i + 1
Loop
ossz = 0
i = 1
Do
ossz = ossz + i
i = i + 1
Loop Until i > 10
Munkafüzet1 – Module1 (Code)
B IT MAN78/34
Megoldás
Feladat 3.
Készítsünk makrót, amely az A
oszlopot feltölti az egész
számokkal 1-től 56-ig! A B oszlop
celláinak háttérszíne legyen az A
oszlopban lévő számoknak
megfelelő!
Sub SzínFeltölt()
For i = 1 To 56
Cells(i, 1) = i
Cells(i, 2).Interior.ColorIndex = i
Next
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/35
Feladat 4.
Készítsünk makrót, amely feltölti az A1:J10 tartományt a
10*10-es szorzótáblával! A 3-mal osztható számok
hátterét színezzük sárgára, az egy maradékot adókét
kékre, a 2 maradékot adókét zöldre!
Megoldás
Sub Szorzótábla()
For i = 1 To 10
For j = 1 To 10
Cells(i, j) = i * j
If i * j Mod 3 = 0 Then Cells(i, j).Interior.ColorIndex = 3
If i * j Mod 3 = 1 Then Cells(i, j).Interior.ColorIndex = 41
If i * j Mod 3 = 2 Then Cells(i, j).Interior.ColorIndex = 10
Next
Next
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/36
Visual Basic – Beolvasás, kiírás
Sub Üdvözöl()
Do
nev = InputBox("Hogy hívnak?", "Kérdés")
Loop Until nev <> Empty
MsgBox "Szervusz kedves " & nev & "!", 0, "Üdvözlet"
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/37
Visual Basic – Véletlen számok
A véletlen számok generálására szolgáló függvény az
Rnd.
Ez a függvény így argumentum nélkül használható és
egy véletlen számot ad eredményül 0 és 1 félig zárt
intervallumban, 0 lehet, 1 nem.
Ennek a függvénynek a transzformálásával lehet
megadni, hogy milyen számokat akarunk generálni.
Például –10 és +10 közötti páros számokat szeretnénk,
úgy hogy a –10 és a +10 is közte legyen:
(Int(Rnd*11) - 5)*2
B IT MAN78/38
Visual Basic – Véletlen számok
Sub Véletlen()
For i = 1 To 5
For j = 1 To 7
Cells(i, j) = Int((100 * Rnd) + 1)
Next
Next
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/39
Megoldás
Feladat 5.
Sub Feladat5()
Cells.Interior.ColorIndex = 0
Cells.Font.ColorIndex = 0
Randomize
For i = 2 To 18
Cells(i, 1) = Int(Rnd * 14 - 6)
If Cells(i, 1) Mod 2 = 0 Then
Cells(i, 1).Font.Color = vbBlue
Else
Cells(i, 1).Interior.Color = vbYellow
End If
Next
End Sub
Munkafüzet1 – Module1 (Code)
Mi a funkciója a makrónak?
B IT MAN78/40
Visual Basic – Változók
A leggyakoribb változó típusok:Név Típus Tartalom
Byte Egész szám 0 – 255
Integer Egész szám -32 768 – +32 767
Long Egész szám -2 147 483 648 – +2 147 483 647
Single Valós szám -3.402823E38 – +3.402823E38.
Double Valós szám-1.79769313486232D308 –
+1.79769313486232D308
String Szöveg Szöveg
Date Dátum Dátum és idő
Boolean Logikai True vagy False.
Object Objektum Microsoft Object.
Variant Bármilyen típusA nem deklarált változó típusa, a bele
kerülő adattól függ a felvett típus
B IT MAN78/41
Visual Basic – Változók
Visual Basicben nem kötelező a változók deklarálása
(definiálása).
A változók Variant típussal jönnek létre első
használatkor.
Ha a változót definiáltuk valamilyen típusra, akkor a
megadott típusnak megfelelő műveleteket hajthatunk
végre vele. Ez gondokat is okozhat, ha nem megfelelő
tartalmat adunk meg.
Változót a Dim kulcsszó segítségével deklarálhatunk:
– Dim változónév As változótípus
– Dim i,j,k As integer
B IT MAN78/42
Visual Basic – Változók
A VBA-ban elég gyakran működik az automatikus
típuskonverzió, azaz ha például egy szöveg típusú
számot tartalmazó változóval számra jellemző műveletet
végzünk (szorzás, osztás, stb.), akkor az számként fog
viselkedni.
Sub Prb()
Dim a As Double
Dim b As String
a = 10
b = 3.2
Cells(1, 1) = a + b
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/43
Visual Basic – Néhány hasznos függvény
Számvizsgálat: IsNumeric(Változó)
– Ha a változó tartalma numerikus érték értéke True,
egyébként False.
Sub bekerciklus()
Dim szam As Variant
szam = InputBox("Kérem a születési évedet!")
Do While IsNumeric(szam) = False
MsgBox ("Ismételje meg, nem számot adott")
szam = InputBox("Kérem a születési évedet!")
Loop
Cells(3, 4) = szam
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/44
Visual Basic – Néhány hasznos függvény
Val(érték) – Valós számmá konvertál. A ,-től
megbolondul.
Str(érték) – Szöveggé konvertál
Int(érték) – Egész számmá konvertál
B IT MAN78/45
Visual Basic – Tömbök
A tömbváltozóknak az a jellemzője, hogy egy névvel és
egy indexszámmal azonosítjuk őket. Az azonos nevű,
azonos típusú és különböző indexszámú változók
alkotnak egy tömböt.
Visual Basic-ben az indexszámot ()-be kell írni.
Deklarálásnál meg kell adnunk a To kulcsszó
segítségével az indexek kezdő és záró értékét, vagy
csak a záróértéket:
– Dim A(0 To 5) As String
– Dim B(5) As String
B IT MAN78/46
Visual Basic – Tömbök
Sub Tomb1()
Dim nev(1 To 5) As String
For i = 1 To 5
nev(i) = InputBox(i & ". név:")
Cells(i, 1) = nev(i)
Next
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/47
Megoldás
Feladat 6.
Sub Feladat6()
x = 1
For i = 2 To 10
If Cells(i, 1) < Cells(x, 1) Then
x = i
End If
Next
MsgBox ("Az eredmény: " & Cells(x, 1))
End Sub
Munkafüzet1 – Module1 (Code)
Mi a funkciója a makrónak?
B IT MAN78/48
Megoldás
Feladat 7.
Sub Feladat7()
For i = 10 To 2 Step -1
For j = 1 To i - 1
If Cells(j, 1) > Cells(j + 1, 1) Then
s = Cells(j, 1)
Cells(j, 1) = Cells(j + 1, 1)
Cells(j + 1, 1) = s
End If
Next j
Next i
End Sub
Munkafüzet1 – Module1 (Code)
Mi a funkciója a makrónak?
B IT MAN78/49
Feladat 8.
Sub vr()
For i = 1 To 10
Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)
Next i
For i = 1 To 10
For j = i + 1 To 10
If Cells(j, 2).Value < Cells(i, 2).Value Then
tempString = Cells(i, 1).Value
Cells(i, 1).Value = Cells(j, 1).Value
Cells(j, 1).Value = tempString
tempInteger = Cells(i, 2).Value
Cells(i, 2).Value = Cells(j, 2).Value
Cells(j, 2).Value = tempInteger
End If
Next j
Next i
Range("B1:B10").Clear
End Sub
Munkafüzet1 – Module1 (Code)
Mi a funkciója a makrónak?
B IT MAN78/50
Megoldás
Feladat 8.
B IT MAN78/51
Visual Basic – Diagram rajzolás
Sub Tomb1()
Dim abra As ChartObject
Set abra = ActiveSheet.ChartObjects.Add(
Left:=140, Width:=400, Top:=100, Height:=300)
abra.Chart.SetSourceData (ActiveSheet.Range("A1:B7"))
abra.Chart.ChartType = xl3DColumnClustered
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/52
Visual Basic – Diagram rajzolás
B IT MAN78/53
Visual Basic – Extramini adatbázis-kezelő
1
Ctrl A+2
3
4
5
6
7
B IT MAN78/54
Visual Basic – Extramini adatbázis-kezelő
Sub auto_open()
'Az ilyen nevű makró a fájl indításakor automatikusan lefut
uzi = "A ctrl+a megnyomásával kezdeményezhető az adatfelvétel"
'A szöveget betesszük az uzi nevű változóba
MsgBox uzi, 64, "INFO"
'uzi a szöveg, 64 a ikon kódja, INFO az ablak fejléc felirata
End Sub
-------------------------------------------------------------------------------------
Sub kerdes()
valasz = MsgBox("Ír be új adatot?", 36, "Kérdés")
'Igen gomb esetén a 6-os értéket veszi fel, 36 - ikon
If valasz = 6 Then
adatbe
End If
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/55
Visual Basic – Extramini adatbázis-kezelő
Sub adatbe()
Range("A1").Select
Selection.CurrentRegion.Select
'Meghatározza hány sorból áll a táblázat
sor = Selection.Rows.Count
'A következő beírás sorának a száma
hova = sor + 1
Cells(hova, 1).Select
'Információk bekérése inputboxokkal
neve = InputBox("Adja meg a nevet!", "Név")
kora = InputBox("Adja meg az életkort!", "Életkor")
lakik = InputBox("Adja meg a címet!", "Lakcím")
Cells(hova, 1) = neve
Cells(hova, 2) = kora
Cells(hova, 3) = lakik
kerdes 'A kerdes nevű makró meghívása
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/56
Visual Basic – Extramini adatbázis-kezelő
B IT MAN78/57
Szupermini adatbázis-kezelő
Űrlap segítségével vihetők fel, és listázhatók ki az
adatok
B IT MAN78/58
Szupermini adatbázis-kezelő
1
2
3
4
B IT MAN78/59
Szupermini adatbázis-kezelő
Label
TextBox
Button
B IT MAN78/60
Szupermini adatbázis-kezelő
Felirat
szövege
Betűtípus,
betűméret
Minden eszköznél
ugyanígy:
- Label,
- TextBox,
- Button
B IT MAN78/61
Szupermini adatbázis-kezelő
Dim id As Integer, i As Integer, j As Integer, flag As Boolean
------------------------------------------------------------------------------
Sub Indit()
UserForm1.Show
End Sub
------------------------------------------------------------------------------
Sub ClearForm()
For j = 1 To 3
UserForm1.Controls("TextBox" & j).Value = ""
Next j
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/62
Szupermini adatbázis-kezelő
Sub GetData()
If IsNumeric(UserForm1.TextBox1.Value) Then
flag = False
i = 0
id = UserForm1.TextBox1.Value
Do While Cells(i + 1, 1).Value <> ""
If Cells(i + 1, 1).Value = id Then
flag = True
For j = 2 To 3
UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 2 To 3
UserForm1.Controls("TextBox" & j).Value = ""
Next j
End If
Else
ClearForm
End If
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/63
Szupermini adatbázis-kezelő
Sub EditAdd()
Dim emptyRow As Long
If UserForm1.TextBox1.Value <> "" Then
flag = False
i = 0
id = UserForm1.TextBox1.Value
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
Do While Cells(i + 1, 1).Value <> ""
If Cells(i + 1, 1).Value = id Then
flag = True
For j = 2 To 3
Cells(i + 1, j).Value = UserForm1.Controls("TextBox" & j).Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 1 To 3
Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value
Next j
End If
End If
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/64
Szupermini adatbázis-kezelő
12
3 4
EszközökAkciók
Működést leíró kódok
2x
Működést leíró kód
Eszköz Akció
B IT MAN78/65
Szupermini adatbázis-kezelő
Private Sub UserForm_Initialize()
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
GetData
End Sub
Private Sub CommandButton1_Click()
EditAdd
End Sub
Private Sub CommandButton2_Click()
ClearForm
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Munkafüzet1 – UserForm1 (Code)
B IT MAN78/66
Szupermini adatbázis-kezelő
B IT MAN78/67
Feladat 9. – A Főnök régi kedvence
A Főnök gépén frissült a Windows, és eltűnt régi
kedvenc telefon regisztere. Maradt róla egy kép, és a
kódok zöme.
Állítsa helyre a Főnök régi kedvenc programját!
Picit én is segítek!
B IT MAN78/68
Feladat 9. – A Főnök régi kedvence
B IT MAN78/69
Feladat 9. – A Főnök régi kedvence
Option Explicit
Dim POZICIO As Integer
Dim darab As Integer
Private Sub UserForm_Activate()
'A form indulásakor végrehajtott utasítások
POZICIO = 1
darab = 1
Dim i As Integer
For i = 2 To 20
If Cells(i, "a") = "" Then
darab = i - 1
Exit For
End If
Next i
If darab > 1 Then
CommandButton1.Visible = True
Else
CommandButton1.Visible = False
End If
Label3.Caption = darab - 1
End Sub
Munkafüzet1 – UserForm1 (Code)
B IT MAN78/70
Feladat 9. – A Főnök régi kedvence
Private Sub CommandButton1_Click()
' Törlés gomb
Dim i As Integer
If POZICIO < darab Then
For i = POZICIO + 1 To darab
Cells(i - 1, 1) = Cells(i, 1)
Cells(i - 1, 2) = Cells(i, 2)
Cells(i - 1, 3) = Cells(i, 3)
Next i
Cells(darab, 1) = ""
Cells(darab, 2) = ""
Cells(darab, 3) = ""
Else
Cells(POZICIO, 1) = ""
Cells(POZICIO, 2) = ""
Cells(POZICIO, 3) = ""
End If
If darab > 1 Then
darab = darab - 1
Else
CommandButton1.Visible = False
End If
End Sub
Munkafüzet1 – UserForm1 (Code)
B IT MAN78/71
Feladat 9. – A Főnök régi kedvence
Private Sub CommandButton2_click()
'Adatok felvitele
Dim szoveg As String
Dim i, x As Integer
If TextBox1.Value <> "" Then
darab = darab + 1
Cells(darab, "a") = TextBox1.Value
Cells(darab, "b") = TextBox2.Value
Cells(darab, "c") = CheckBox1.Value
TextBox1.Value = ""
TextBox2.Value = ""
CheckBox1.Value = False
Else
If darab <> 1 Then
MsgBox ("Üres név nem vihető fel!")
End If
End If
Label3.Caption = darab - 1
End Sub
Munkafüzet1 – UserForm1 (Code)
B IT MAN78/72
Feladat 9. – A Főnök régi kedvence
Private Sub CommandButton3_click()
'Lista gomb - Listázás
TextBox1.Value = Cells(2, 1)
TextBox2.Value = Cells(2, 2)
CheckBox1.Value = Cells(2, 3)
POZICIO = 2
Label3.Caption = POZICIO - 1
End Sub
Private Sub CommandButton4_click()
'Módosítás
Cells(POZICIO, "a") = TextBox1.Value
Cells(POZICIO, "b") = TextBox2.Value
Cells(POZICIO, "c") = CheckBox1.Value
End Sub
Munkafüzet1 – UserForm1 (Code)
B IT MAN78/73
Feladat 9. – A Főnök régi kedvence
Sub bevitel(ByRef s As Integer)
TextBox1.Value = Cells(s, 1)
TextBox2.Value = Cells(s, 2)
CheckBox1.Value = Cells(s, 3)
End Sub
Private Sub SpinButton1_SpinUp()
If POZICIO > 2 Then POZICIO = POZICIO - 1
Label3.Caption = POZICIO - 1
bevitel (POZICIO)
End Sub
Private Sub SpinButton1_SpinDown()
If POZICIO < darab Then POZICIO = POZICIO + 1
Label3.Caption = POZICIO - 1
bevitel (POZICIO)
End Sub
Munkafüzet1 – UserForm1 (Code)
B IT MAN78/74
Feladat 9. – A Főnök régi kedvence
Terület kijelölése,
elnevezése12
ListBox létrehozása, beállítása
Háttérszín
Oszlopok száma
Nem szerkeszthető
Betűméret
Adatok forrása
3
B IT MAN78/75
Feladat 9. – A Főnök régi kedvence
Sub indit()
UserForm1.Show
End Sub
Munkafüzet1 – Module1 (Code)
B IT MAN78/76 B IT MAN
B IT MAN78/77
Lévayné dr. Lakner Mária – Baksa-Haskó Gabriella:
Excel 2003 táblázatkezelés és programozás a
gyakorlatban, ComputerBooks Budapest, 2006
Felhasznált irodalom
B IT MAN78/78
VÉGEVÉGE