Pozdravljeni,
Ali je možno določiti kateri makro naj se zažene ob odpiranju delovnega zvezka, v smislu \\c:projekti\Zvezek1 /Makro1.
Možnost, da se makro zažene ob dogodku Workbook_Open mi ne ustreza, ker bi rad zaganjal različne makre ali pa le odprl delovni zvezek.
LP Dušan
zagon makra ob odpiranju delovnega zvezka
Re: zagon makra ob odpiranju delovnega zvezka
Pozdravljeni,
Da možno je, vendar ni preprosto in boste morali malce programirati... Spodaj vam prilagam kodo enega izmed mojih projektov v katerem sem počel nekaj podobnega:
Da možno je, vendar ni preprosto in boste morali malce programirati... Spodaj vam prilagam kodo enega izmed mojih projektov v katerem sem počel nekaj podobnega:
Koda: Izberi vse
Option Base 0
Option Explicit
Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long
Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long)
Function CmdToSTr(Cmd As Long) As String
Dim arry() As Byte
Dim dolzina As Long
If Cmd Then
dolzina = ldolzinaW(Cmd) * 2
If dolzina Then
ReDim arry(0 To (dolzina - 1)) As Byte
CopyMemory arry(0), ByVal Cmd, dolzina
CmdToSTr = arry
End If
End If
End Function
Private Sub Workbook_Open()
Dim ukaz As Long
Dim celotnaVrstica As String
ukaz = GetCommandLine
celotnaVrstica = CmdToSTr(ukaz)
MsgBox celotnaVrstica
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: zagon makra ob odpiranju delovnega zvezka
malo premalo znam, da bi kar v prvem poskusu delovalo ...
VBA javi napako, ker pričakuje da bo indeksirana spremenljivka ldolzinaW(Cmd) dimenzionirana...
LP Dušan
VBA javi napako, ker pričakuje da bo indeksirana spremenljivka ldolzinaW(Cmd) dimenzionirana...
LP Dušan
Re: zagon makra ob odpiranju delovnega zvezka
Ah, moja napaka, ko sem na hitro popravljal kodo za objavo na forumu... Tam bi moralo namesto 'ldolzinaW' pisati 'lstrlenW'....
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator