Inna metoda wyznaczania komórki Cells(wiersz, kolumna

advertisement
VBA cwiczenie3 -2010
1
OFFSET -przesunięcie wyboru komórki
Właściwości Offset(pion, poziom) wywołanie z obiektu Range dokonuje przesunięcia wyboru komórki
lub zakresu komórek.
Offset(-2,0)
Offset(0,-2)
Offset(0,1)
Offset(1,0)
Proszę zwrócić uwagę na parametry i ich znaki
Przykłady działania OFFSET
Range(„a1”).Offset(0,3).Value=4 ‘ wpisuje wartość 4 do komórki oddalonej od A1 o wartość 3 w prawo
ActiveCell.Offset(1,1).Select ‘ zaznacza komórki oddalone od aktywnej o jeden w dół i o jeden w prawo
Inna metoda wyznaczania komórki Cells(wiersz, kolumna)
Cells(wiersz, kolumna) - komenda ta określa aktywna komórkę poprzez podanie jej współrzędnych
wartość wiersza i kolumny to liczba całkowita dodatnia większa od 0.
Np.:
Cells(2,3).value= i
‘ drugi wiersz arkusza i trzecia kolumna
Cells(k+1,3).value= i ‘ k-zmienna
zm=Cells(3,5)
Pętla FOR:
Pętle w programowaniu służą do powtarzania jednakowych czynności. Czynności te wpisuje się wewnątrz
pętli (instrukcje pętli). Pętla For sterowana jest licznikiem i wykona się tyle razy aż zwiększenie licznika o
krok osiągnie wartość końca pętli.
Gdy nie podamy kroku automatycznie przyjęta zostanie wartość kroku = 1
FOR licznik= [wartość początkowa pętli] TO [wartość końcowa pętli] STEP [Krok]
Instrukcje pętli
NEXT
Wartość [wartość początkowa pętli] i [wartość końcowa pętli] powinna być typu liczbowego zgodnie z
typem zmiennej licznik.
Przykład
Sub przyklad1()
Dim licz As Integer
VBA cwiczenie3 -2010
For licz = 1 To 4
MsgBox ("licznik pętli =" & licz)
Next
End Sub
2
'początek pętli
'instrukcje w pętli
'koniec pętli
Zastosowanie pętli for w obliczeniu sumy kolejno wprowadzonych liczb:
Sub przyklad_2()
Dim i, n As Integer
Dim liczba, suma As Single
n = InputBox("podaj ile liczb")
For i = 1 To n
'początek pętli
liczba = InputBox("podaj" + Str(i) + "liczbę") 'wprowadzanie liczby
suma = suma + liczba
'sumowanie liczb
Next
' koniec pętli
MsgBox ("suma liczb = " & suma)
‘wyświetlanie sumy liczb
End Sub
Makro z pętlą FOR wpisujące w arkusz liczby od 1 do 10 i mnożące je przez 2
(zastosowany offset)
Sub tab_mno()
Dim j, k As Integer
k=0
‘ wartośc początkowa
j=2
For i = 1 To 10
Range("c2").Offset(k, 0).Value = i
Range("c2").Offset(k, 1).Value = j
Range("c2").Offset(k, 2).Value = i * j
k=k+1
‘ zwiększenie rzędu o 1
Next
End Sub
(zastosowane polecenie cells)
Sub tab_mno2()
Dim j, k As Integer
k=4
j=2
Range("a1:e30").ClearContents
For i = 1 To 10
Cells(k, 1).Value = i
Cells(k, 2).Value = j
Cells(k, 3).Value = i * j
k=k+1
Next
End Sub
‘czyszczenie komórek
Zadanie 1
Napisz makro obliczające silnię liczby (n!). Skorzystaj z pętli FOR wpisana liczba (n) nie większa niż 10.
VBA cwiczenie3 -2010
3
Zadanie2
Skorzystaj z offset lub cells i wypisz w kolumnie w arkuszu poszczególne iloczyny przy obliczaniu silni.
Korzystanie z kolorów w zakresie
Kolory w zakresie ustawiamy poprzez przypisanie właściwości Interior.ColorIndex liczby całkowitej z
przedziału od 1 do 56
Np.:
Range („A1”).Interior.ColorIndex=4
Można także wykorzystać stałe reprezentujące kolory np.: vbYellow, vbGrenn itp.
Range („A1”).Interior.Color = vbBlue
Funkcją związaną z kolorami jest RGB(Red, Green, Blue) Wartość składowa dla poszczególnych kolorów
może być w zakresie 1-255
Przykład _1a
Sub Przykład_1()
Dim b As Byte
b=80
Range(„f21:f24”).Interior.Color=RGB(0,0,b)
End Sub
Zadanie 1a:
Napisz makro, które zamaluje na zielono komórkę oddaloną od B1 o Offset(3,1).
(zmodyfikuj przykład 1)
Zadanie 2a
Stosują właściwości komórki Interior.ColorIndex oraz przesunięcie Offset napisz makro, które zamaluje
na zielono 5 komórek w kształcie krzyża .
Zadani 3a
Napisz makro, które stosując pętlę w pętli, maluje różnymi kolorami komórki prostokątnego obszaru (użyj
pętli FOR). Zastosuj 100 kolorów. Rozmiar obszaru wczytaj funkcją InputBox.
Zadanie 4a
Napisz makro, które wpisuje tabliczkę mnożenia dla iloczynu liczb2*N= gdzie N to liczba od 1 do 10.
Liczby wypisywane są w pionie. Pamiętaj aby pojawił się napis np. (2*5=10) itd.
Zadanie 5a
Zmodyfikuj program zadania 5 w taki sposób aby użyć dwóch pętli FOR zagłębionych oraz offsetu.
Wynikiem działania makra ma być wypisana tabliczka mnożenia w kolumnach.
Np.
1*1=1
1*2=2
2*1=2
2*2=4
3*1=3
3*2=6
Download