zagon makra ob odpiranju delovnega zvezka

Pomoč pri izdelavi makrov
Odgovori
DusanS
Prispevkov: 31
Pridružen: To Jul 26, 2005 11:16 am

zagon makra ob odpiranju delovnega zvezka

Odgovor Napisal/-a DusanS »

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
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: zagon makra ob odpiranju delovnega zvezka

Odgovor Napisal/-a admin »

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:

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
DusanS
Prispevkov: 31
Pridružen: To Jul 26, 2005 11:16 am

Re: zagon makra ob odpiranju delovnega zvezka

Odgovor Napisal/-a DusanS »

malo premalo znam, da bi kar v prvem poskusu delovalo :D ...

VBA javi napako, ker pričakuje da bo indeksirana spremenljivka ldolzinaW(Cmd) dimenzionirana...
LP Dušan
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: zagon makra ob odpiranju delovnega zvezka

Odgovor Napisal/-a admin »

Ah, moja napaka, ko sem na hitro popravljal kodo za objavo na forumu... Tam bi moralo namesto 'ldolzinaW' pisati 'lstrlenW'....
lp,
Matjaž Prtenjak
Administrator
Odgovori