• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Locatie persoonlijke sjablonen

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.281
Bestaat er in VBA een functie die op eender welke PC de locatie van zelf gemaakte sjablonen oplevert?
 
Je bedoelt dit?
Application.TemplatesPath
 
Code:
Public Sub ApplicationTemplatesPath()
    MsgBox Application.TemplatesPath
End Sub
 
Dat geeft volgens mij het pad naar de templates van Microsoft

?Application.TemplatesPath
C:\Users\Renée\AppData\Roaming\Microsoft\Templates\

Als ik zelf een template maak zit die hier:
R:\Documenten\Custom Office Templates
 
Dat is dus in de Opties van Excel dan zo ingesteld.
Die kan je zo ophalen:
Code:
Sub PersonalTemplates()
    Dim Locatie As String
    Dim objShell As Object

    Set objShell = CreateObject("WScript.Shell")
    Locatie = objShell.RegRead _
        ("HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Options\PersonalTemplates")
        
    MsgBox Locatie
End Sub
 
Laatst bewerkt:
Dat is dus in de Opties van Excel dan zo ingesteld.
Die kan je zo ophalen:
Code:
Sub PersonalTemplates()
    Dim Locatie As String
    Dim objShell As Object

    Set objShell = CreateObject("WScript.Shell")
    Locatie = objShell.RegRead _
        ("HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Options\PersonalTemplates")
        
    MsgBox Locatie
End Sub

Zo ver rijkt mijn kennis niet :(
Gaat dat ook met early binding, zodat ik een poging kan doen het te begrijpen?
 
Ik begrijp niet wat je hier bedoelt met early binding om het beter te begrijpen.
Er staat letterlijk hoe je die instelling kan ophalen uit het register.
Maak er een functie van en zet deze in een module:
Code:
Function EigenSjablonen() As String
    Dim objShell As Object
    Set objShell = CreateObject("WScript.Shell")
    EigenSjablonen = objShell.RegRead _
        ("HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Options\PersonalTemplates")
End Function

Dan heb je die locatie overal in je project bij de hand met bijvoorbeeld dit:
Code:
MsgBox EigenSjablonen

Als je early binding wilt gebruiken om het WScript.Shell te leren kennen kan je ook hier terecht en de late binding laten voor wat het is:
https://ss64.com/vb/shell.html
 
Laatst bewerkt:
Bedankt!

Ik bedoel zonder "CreateObject", maar met "New"
Zodat je automatisch methods en properties te zien krijgt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan