Programowanie w języku Visual Basic dla arkusza kalkulacyjnego Excel.

50
Programowanie w języku Visual Basic dla arkusza kalkulacyjnego Excel.

description

Programowanie w języku Visual Basic dla arkusza kalkulacyjnego Excel. W celu dostosowania arkusza kalkulacyjnego do swoich potrzeb, użytkownik może tworzyć tzw. Makra (skrót od makrokomendy), czyli programy w języku Visual Basic. - PowerPoint PPT Presentation

Transcript of Programowanie w języku Visual Basic dla arkusza kalkulacyjnego Excel.

Page 1: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Programowanie 

 w języku Visual Basic  

dla arkusza kalkulacyjnego Excel.

Page 2: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

W celu dostosowania arkusza kalkulacyjnego do swoich potrzeb, użytkownik może tworzyć tzw. Makra (skrót od makrokomendy), czyli programy w języku Visual Basic.

Najprostszą i zarazem najprymitywniejszą formą tworzenia makra jest automatyczne rejestrowanie czynności wykonywanych ręcznie przez użytkownika na arkuszu. Takie makro, po uruchomieniu odtworzy dokładnie wszystkie wykonane operacje.

Page 3: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 4: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 5: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Podstawowe komendy makr w arkuszu kalkulacyjnym

Page 6: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 7: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 8: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Wstawianie napisów – ActiveCell.FormulaR1C1 =

 Range("B1").Select ActiveCell.FormulaR1C1 = "Obliczenie średniej arytmetycznej"

Range("A3").Select:    ActiveCell.FormulaR1C1 = "Nr"

 Range("B3"). ActiveCell.FormulaR1C1 = "L"

Page 9: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Parametry tekstu:

Page 10: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 11: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 12: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 13: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 14: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 15: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 16: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Zmiana arkusza:      Zmiana na Arkusz2      Sheets("Arkusz2").Select

Page 17: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Rysowanie ramek:

Page 18: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Grubości linii gruba (.Weight = xlThick),średnia (.Weight = xlMedium),cienka (.Weight = xlThin), 

Page 19: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Zaznaczenie obszaru: Range("A3:F9").Select  Rysowanie linii  zewnętrznych (Edge): - lewa ramka (xlEdgeLeft)     With Selection.Borders(xlEdgeLeft)        .LineStyle = xlContinuous        .Weight = xlThick            End With

Page 20: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

- górna ramka (xlEdgeTop)    With Selection.Borders(xlEdgeTop)        .LineStyle = xlContinuous        .Weight = xlThick            End With - dolna ramka (xlEdgeBottom)     With Selection.Borders(xlEdgeBottom)        .LineStyle = xlContinuous        .Weight = xlThick           End With

Page 21: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

- prawa ramka (xlEdgeRight)     With Selection.Borders(xlEdgeRight)        .LineStyle = xlContinuous        .Weight = xlThick            End With

Page 22: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Linie wewnętrzne (Inside): - linie pionowe (xlInsideVertical)     With Selection.Borders(xlInsideVertical)        .LineStyle = xlContinuous        .Weight = xlThin            End With

- linie poziome (xlInsideHorizontal)     With Selection.Borders(xlInsideHorizontal)        .LineStyle = xlContinuous        .Weight = xlMedium    End With 

Page 23: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Range("A3:F9").Select     With Selection.Borders(xlEdgeLeft).Weight = xlThick        .Borders(xlEdgeTop).Weight = xlThick      .Borders(xlEdgeBottom).Weight = xlThick      .Borders(xlEdgeRight).Weight = xlThick  .Borders(xlInsideVertical) .Weight = xlThin.Borders(xlInsideHorizontal). Weight = xlMedium     End With

Page 24: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 25: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

W polach B4:B9 będziemy wpisywać dane, a więc obszar ten nie może być zablokowany ani ukryty.

Range("B4:B9").Select     Selection.Locked = False    Selection.FormulaHidden = False

Page 26: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 27: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 28: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 29: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

Sub srednia() '**************** WYCZYSZCZENIE ZAWARTOŚCI ARKUSZA *****    ActiveSheet.Unprotect    Range("A2:F30").Select        Selection.Delete Shift:=xlUp                '**************** WSTAWIENIE TYTUŁU *******************    Range("B1").Select        Selection.Font.Bold = True        Selection.Font.Italic = True       ActiveCell.FormulaR1C1 = "Obliczenie średniej arytmetycznej "

Page 30: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'******************* PYTANIE O LICZBĘ POMIARÓW *****************

Range("C2").Select

liczba = InputBox("Podaj liczbe wartości do uśrednienia")

lis = Trim(Str(liczba))

’ Str –zamiana liczby na string; Trim – usuwanie zbędnych spacji

Page 31: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'****************** WSTAWIANIE OPISÓW TABELKI ***********************

Range("A3").ActiveCell.FormulaR1C1 = "Nr" Range("B3").ActiveCell.FormulaR1C1 = "L" Range("C3").ActiveCell.FormulaR1C1 = "l" Range("D3").ActiveCell.FormulaR1C1 = "v" Range("E3").ActiveCell.FormulaR1C1 = "vv" Range("A4").ActiveCell.FormulaR1C1 = "1" Range("A5").ActiveCell.FormulaR1C1 = "2"

Range("A3:E3").Select: Selection.HorizontalAlignment = xlCenter

Page 32: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 33: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'*************** WSTAWIANIE NUMERÓW POMIARÓW *****************

ls = Trim(Str(liczba + 3)) ra = "A4:A" + ls Range("A4:A5").Select Selection.AutoFill Destination:=Range(ra), Type:=xlFillDefault Range(ra).Select: Selection.HorizontalAlignment = xlCenter

Page 34: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'********** WSTAWIANIE NAPISU Xmin *****************

r3 = "A" + Trim(Str(liczba + 5))

Range(r3).Select

Selection.Font.Bold = True

ActiveCell.FormulaR1C1 = "xmin=„

With ActiveCell.Characters(Start:=2, Length:=3).Font.Subscript = True

End With

Selection.HorizontalAlignment = xlRight

Page 35: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 36: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'*********** WSTAWIANIE NAPISU DELTA X **************

r4 = "A" + Trim(Str(liczba + 6))

Range(r4).Select

Selection.Font.Bold = True

ActiveCell.FormulaR1C1 = "Dx="

With ActiveCell.Characters(Start:=1, Length:=1).Font

.Name = "Symbol"

End With

Selection.HorizontalAlignment = xlRight

Page 37: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'********* WSTAWIANIE NAPISU X= **********************

r5 = "A" + Trim(Str(liczba + 7))

Range(r5).Select

Selection.Font.Bold = True

ActiveCell.FormulaR1C1 = "X="

Selection.HorizontalAlignment = xlRight

'********** OBLICZENIE Xmin I NADANIE NAZWY Xmin ************************

r3 = "B" + Trim(Str(liczba + 5))

Range(r3).Select

ActiveCell.FormulaR1C1 = "=MIN(R[-7]C:R[-2]C)"

ActiveWorkbook.Names.Add Name:="xmin"

RefersToR1C1:="=Arkusz1!R" + Trim(Str(liczba + 5)) + "C2"

Page 38: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 39: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'*********** FORMATOWANIE PÓL Z DANYMI ******************

rb = "B4:B" + Trim(Str(liczba + 5))

Range(rb).Select

Selection.NumberFormat = "0.00"

Selection.HorizontalAlignment = xlRight

Range("B4").Select

'*********** OBLICZANIE WARTOŚCI l *********************

Range("C4").ActiveCell.FormulaR1C1 = "=(RC[-1]-xmin)*100"

rc = "C4:C" + Trim(Str(liczba + 3))

Range("C4").Select

Selection.AutoFill Destination:=Range(rc), Type:=xlFillDefault

Page 40: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'********** OBLICZANIE SUMY l ***************************

Range("C" + Trim(Str(liczba + 4))).Select

ActiveCell.FormulaR1C1 = "=SUM(R[-" + lis + "]C:R[-1]C)"

 

'********* OBLICZENIE DELTA X ******************

rb = "B" + Trim(Str(liczba + 6))

Range(rb).Select

ActiveCell.FormulaR1C1 = "=R[-2]C[1]/" + lis

ActiveWorkbook.Names.Add Name:="dx",

RefersToR1C1:="=Arkusz1!R" + Trim(Str(liczba + 6)) + "C2"

 

'********** OBLICZENIE X ************************

rb = "B" + Trim(Str(liczba + 7))

Range(rb).Select

ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C/100"

Page 41: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 42: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'********** FORMATOWANIE PÓL Dx i X ******************

rb = "B" + Trim(Str(liczba + 6)) + ":B" + Trim(Str(liczba + 7))

Range(rb).Select

Selection.NumberFormat = "0.00"

Selection.HorizontalAlignment = xlRight

'*********** OBLICZENIE V **********************

Range("D4").Select: ActiveCell.FormulaR1C1 = "=(dx-RC[-1])"

rd = "D4:D" + Trim(Str(liczba + 3))

Range("D4").Select

Selection.AutoFill Destination:=Range(rd), Type:=xlFillDefault

Page 43: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'************ OBLICZENIE SUMY V **************************

Range("D" + Trim(Str(liczba + 4))).Select

ActiveCell.FormulaR1C1 = "=SUM(R[-" + lis + "]C:R[-1]C)"

'*********** OBLICZENIE VV *************************

Range("E4").Select: ActiveCell.FormulaR1C1 = "=RC[-1]^2"

re = "E4:E" + Trim(Str(liczba + 3))

Range("E4").Select

Selection.AutoFill Destination:=Range(re), Type:=xlFillDefault

'************ OBLICZENIE SUMY VV **********************

Range("E" + Trim(Str(liczba + 4))).Select

ActiveCell.FormulaR1C1 = "=SUM(R[-" + Trim(Str(liczba)) + "]C:R[-1]C)"

Page 44: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 45: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'************ FORMATOWANIE PÓL V I VV ******************

rb = "D4:E" + Trim(Str(liczba + 4))

Range(rb).Select

Selection.NumberFormat = "0.00"

Selection.HorizontalAlignment = xlRight

'************ WSTAWIANIE NAPISÓW m= i mx = ***********************

  rd = "D" + Trim(Str(liczba + 6))

Range(rd).Select: ActiveCell.FormulaR1C1 = "m ="

Selection.HorizontalAlignment = xlRight

rd = "D" + Trim(Str(liczba + 7))

Range(rd).Select

ActiveCell.FormulaR1C1 = "mx ="

ActiveCell.Characters(Start:=2, Length:=1).Font.Subscript = True

Selection.HorizontalAlignment = xlRight

Page 46: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'************ OBLICZANIE WARTOŚCI m= i mx = ***********************

re = "E" + Trim(Str(liczba + 6))

Range(re).Select

ActiveCell.FormulaR1C1 = "=SQRT(R[-2]C/" + Trim(Str(liczba - 1)) + ")"

re = "E" + Trim(Str(liczba + 7))

Range(re).Select: ActiveCell.FormulaR1C1 = "=R[-1]C/SQRT(" + lis + ")"

'************ FORMATOWANIE PÓL m i mx ******************************

rb = "E" + Trim(Str(liczba + 6)) + ":E" + Trim(Str(liczba + 7))

Range(rb).Select

Selection.NumberFormat = "0.0"

Page 47: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.
Page 48: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'**************** RYSOWANIE RAMEK *********************************

r2 = "A3:E" + ls

Range(r2).Select

With Selection

.Borders(xlEdgeLeft).Weight = xlThick

.Borders(xlEdgeTop).Weight = xlThick

.Borders(xlEdgeBottom).Weight = xlThick

.Borders(xlEdgeRight).Weight = xlThick

.Borders(xlInsideVertical).Weight = xlThin

.Borders(xlInsideHorizontal).Weight = xlThin

End With

Page 49: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.

'******** ZAZNACZENIE PÓL NIECHRONIONYCH **********

rb = "B4:B" + ls

Range(rb).Select

Selection.Locked = False

Selection.FormulaHidden = False

Selection.Interior.ColorIndex = 27

'*********** WŁĄCZENIE OCHRONY ARKUSZA **************

ActiveSheet.Protect DrawingObjects:=True, Contents:=True,

Scenarios:=True

Range("B4").Select

End Sub

Page 50: Programowanie  w języku Visual Basic  dla arkusza kalkulacyjnego Excel.