Exemplul următor afișează un formular care folosește o casetă listă din care utilizatorul poate selecta un fișier pe care să îl deschidă. Formularul este simplu, la fel și codul său. Macrocomanda include o buclă și un șir (array) pentru a prelua numele fișierelor dintr-un folder și apoi afișează numele fișierelor în caseta listă. Utilizatorul trebuie să selecteze un fișier și să facă clic pe butonul Open pentru a-l deschide. Figura de mai jos prezintă formularul în acțiune, afișând fișiere Excel.
Acest exemplu poate fi adaptat la oricare din aplicațiile Office 2016 discutate anterior, schimbând numele de fișier la un tip adecvat pentru aplicația respectivă și modificând, de asemenea, câteva dintre declarațiile cheie. Acest exemplu arată acum cum se poate crea procedura în Excel.
Pentru construirea formularului se urmează etapele:
7. Clic pe butonul ListBox din Toolbox, apoi clic sub etichetă în formular pentru a plasa acolo caseta listă. Se setează următoarele proprietăți:
8. Dublu-clic pe butonul CommandButton din Toolbox, apoi clic de două ori în partea de jos a formularului pentru a plasa cele două butoane de comandă. Se setează proprietățile ca mai jos:
9. Se aranjează astfel butoanele de comandă:
a. Clic pe butonul cmdCancel pentru a-l selecta, apoi se trage alături de butonul cmdOK.
b. Cu butonul cmdCancel selectat, Ctrl+click pe butonul cmdOK pentru a-l adăuga la selecție.
c. Se alege Format > Group pentru a grupa butoanele.
d. Se alege Format > Center In Form > Horizontally pentru a centra butoanele pe orizontală în formular.
e. Se poate trage grupul pentru repoziționare.
Codul pentru formular se creează urmând etapele de mai jos:
1. Având selectat formularul, se apasă tasta F7 pentru a afișa foaia cu codul pentru formular.
2. În zona declarațiilor pentru cod (în partea de sus a ferestrei Code), se introduce comanda Option Base 1 pentru ca numerotarea șirurilor să înceapă de la 1 în loc de 0:
Option Base 1
3. Având selectat UserForm în lista Object (din stânga sus a foii pentru cod), din lista Procedure (dreapta sus) se alege Initialize. Visual Basic Editor introduce o parte din procedura Initialize în cod, astfel:
Private Sub UserForm_Initialize()
End Sub
4. Se introduc comenzile pentru procedura Initialize, scrise în codul de mai jos.
5. În lista derulantă Obiect, selectați cmdCancel. Editorul Visual Basic introduce cod pentru procedura Click, așa cum se arată aici. (Clic este evenimentul implicit pentru controlul CommandButton, astfel încât Editorul Visual Basic presupune că doriți să creați o procedură Click.)
Private Sub cmdCancel_Click()
End Sub
6. Se introduc comenzile pentru procedura cmdCancel_Click din codul de mai jos.
7. În lista Object, se selectează cmdOpen. Visual Basic Editor introduce cod pentru procedura Click.
8. Se introduc comenzile pentru procedura cmdOpen scrise mai jos.
9. Se personalizează linia 9 (din codul de mai jos pentru procedura Initialize) și linia 32 (din procedura cmdOpen_Click) astfel încât codul să lucreze cu aplicația folosită, ca mai jos. Procedura afișată este setată să fie executată în Excel, dar se poate modifica calea pentru a indica care sunt fișierele țintă din computer.
If lstFiles.Value <> "" Then Documents.Open _
Filename:="c:\transfer\" & lstFiles.Value
If lstFiles.Value <> "" Then Presentations.Open _
Filename:="c:\transfer\" & lstFiles.Value
Mai jos se află întreaga versiune a codului din formularul Deschidere Fisier.
Folosirea unui control ListBox pentru a deschide un fișier
1. Option Base 1
2.
3. Private Sub UserForm_Initialize()
4.
5. Dim strFileArray() As String
6. Dim strFFile As String
7. Dim intCount As Integer
8.
9. strFFile = Dir("c:\transfer\spreads\*.xlsb")
10. intCount = 1
11.
12. Do While strFFile <> ""
13. If strFFile <> "." And strFFile <> ".." Then
14. ReDim Preserve strFileArray(intCount)
15. strFileArray(intCount) = strFFile
16. intCount = intCount + 1
17. strFFile = Dir()
18. End If
19. Loop
20.
21. lstFiles.List() = strFileArray
22.
23. End Sub
24.
25. Private Sub cmdCancel_Click()
26. Me.Hide
27. Unload Me
28. End Sub
29.
30. Private Sub cmdOpen_Click()
31. Me.Hide
32. If lstFiles.Value <> "" Then Workbooks.Open _
Name:="c:\transfer\spreads" & lstFiles.Value
33. Unload Me
34. End Sub
Mai sus este codul pentru formularul frmDeschidere_Fisier: o secțiune cu declarații și trei proceduri pentru evenimente.
În secțiunea declarații, linia 1 conține comanda Option Base 1, care face ca orice șir folosit în cod să înceapă de la 1 în loc de 0. Linia 2 este goală.
Iată ce se petrece în procedura UserForm_Initialize procedure (liniile de la 3 până la 23):
Iată ce se petrece în procedura cmdCancel_Click (liniile de la 25 până la 28):
Iată ce se petrece în procedura cmdOpen_Click (liniile de la 30 până la 34):
De reținut că pentru a testa acest exemplu, trebuie modificate liniile 9 și 32 pentru a include o cale de fișier pe propriul PC în care sunt stocate fișierele XLSB. Pentru Excel 2016, încercați această locație: C:\Users\Nume_utilizator\AppData\Roaming\Microsoft\Excel\XLSTART.