aplicatii visual basic

Upload: vitilomax

Post on 03-Jun-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/12/2019 Aplicatii Visual Basic

    1/7

    Laborator 11 PCLP2

    1

    Utilizare Visual Basic for Applications (VBA)n Excel

    1. Exemplu de creare i rularea unei macrocomenzi VB n Excel

    Macrocomenzile sunt secvene de cod care permit, n forma cea mai simpl,automatizarea unor

    task-uri de prelucare/formatare a informaiilor din celule. Pe lng posibilitatea nregistrriiunei

    macrocomenzi, cu ajutorul comenzii Record Macro(utilizat n laboratorul anterior), Excel permite

    i scrierea manual a codului macrocomenzii, n cadrul unui editor Visual Basic.

    Deschiderea editorului Visual Basic se realizeaz cu ajutorul comenzii Visual Basic din cadrul

    tab-ului Developer, de pe bara panglic a programului MS Excel (Figura 1). Dac tab-ul

    Developer nu este vizibil, se va activa cu ajutorul opiunii Show Developer tab in the Ribbon, cum

    este indicat n Figura 2.

    Figura 1

    Dup deschiderea editorului VB se va crea un Modulnou pentru macrocomenzi, cum este indicat

    n Figura 3. Macrocomenzile se vor introduce n forma unor subrutine VB, ncadrate de cuvintele

    cheie Sub... End Sub. n Figura 4 este prezentat un exemplu de subrutin, denumit firstMacro.

    Comanda Worksheets.Add din cadrul subrutinei firstMacro creeaz o foaie de calcul (sheet)

    nou, urmtoarele patrucomenzi realizeaz introducerea automat a unor valori n celulele A1,

    A2, B1 i B2, iar ultimele douseteaz culoarea textului i culoarea de fundalpentru celulele titlu.

    Rularea macrocomenzii poate fi realizat cu ajutorul comenzii Run Sub/UserForm din meniul

    Run, plasnd mai nti cursorul n interiorul subrutinei.

  • 8/12/2019 Aplicatii Visual Basic

    2/7

    Laborator 11 PCLP2

    2

    Figura 2

    Figura 3

    Figura 4

  • 8/12/2019 Aplicatii Visual Basic

    3/7

    Laborator 11 PCLP2

    3

    O alt modalitate de rulare a macrocomenzii este cu ajutorul unui control grafic de tip Buton,

    inserat n cadrul unei foi de calcul Excel. La adugarea butonului (de tipul Form Control), se va

    realiza asocierea acestuia cu macrocomanda dorit (Figura 5).

    Figura 5

    Implementai macrocomanda exemplificat i executai-o, att din cadrul editorului VB, cti cu ajutorul unui buton dintr-o foaie de calcul Excel. Salvai documentul.

    Observaie. Salvarea unui document Excel care include macrocomenzi se realizeaz alegnd

    formatul Excel Macro-Enabled Workbook, alegerea formatului de baz (Excel Workbook)

    determinnd tergerea macrocomenzilor.

    2. Adresarea celulelor

    Celulele pot fi adresate (n vederea modificrii sau citirii coninutului lor) prin specificarea absolut

    a poziiei (linia i coloana), sau prin indicarea unui offset(sau deplasament) fa de o alt celul.

    Secvena de cod din Figura 6 exemplific trei moduri de adresare absolut a celulelor.

    Figura 6

  • 8/12/2019 Aplicatii Visual Basic

    4/7

  • 8/12/2019 Aplicatii Visual Basic

    5/7

    Laborator 11 PCLP2

    5

    Adugai un buton cu denumirea Adauga n prima foaie de calcul. Creai omacrocomand care adaug o nregistrare n tabelul creat automat i asociai-o butonului

    Adauga.Executai macrocomanda.

    Realizai un formularde adugare cri, similar celui din Figura 9.Modificai coninutulmacrocomenzii creat anterior aa nct s preia titlul crii, autorul i anul din formular.

    Not.Informaiile despre carte pot fi stocate temporar n variabile de tipul String iInteger.

    Exemplu: Dim Titlu as String 'declarare variabila

    Titlu = Range("C4").Value

    Figura 9

    3. Iterare pe celule

    Iterarea celulelor poate fi realizat cu ajutorul buclei FOR, disponibil n dou variante:

    For ... Next For Each ... In ... Next

  • 8/12/2019 Aplicatii Visual Basic

    6/7

    Laborator 11 PCLP2

    6

    Exemple:

    Pentru realizarea unor modificri condiionate ale celulelor se va utiliza instruciunea IF, care are

    forma:

    IfconditieThen

    instruciuni

    End If

    n continuare este prezentat o macrocomand pentru parcurgerea liniilor unui tabel i

    formatarea diferit a liniilor pare de cele impare.nainte de rularea macrocomenzii este necesar

    selectarea (activarea) primei celule din tabel.

    Sub format()

    Dim i, primalinie, ultimalinie, primacol, ultimacol As Integer

    primacol = ActiveCell.Column 'coloana celulei active

    ultimacol = ActiveCell.End(xlToRight).Column 'ultima coloana

    primalinie = ActiveCell.Row

    ultimalinie = ActiveCell.End(xlDown).Row

    For i = primalinie + 1 To ultimalinie

    If i Mod 2 = 0 Then

    Range(Cells(i, primacol), Cells(i, ultimacol)).Select

    Selection.Interior.Color = rgbBeige

    End If

    Next i

    End Sub

    Pornind de la codul prezentat ca exemplu realizai o macrocomand care s realizeze oformatare a tabelului cu cri similar celei din Figura 11.

    DimcellAs Range

    For EachcellInRange("C1:C20")

    cell.Value = 50Nextcell

    DimiAs Integer

    Fori = 1 To6

    Cells(i, 1).Value = 100Nexti

  • 8/12/2019 Aplicatii Visual Basic

    7/7

    Laborator 11 PCLP2

    7

    Figura 10