16. februar 2001 - 14:07Der er
17 kommentarer og 1 løsning
VBA: Parameter til Macro i OnAction event
Set SubMenuItem = SubMenu.Controls.Add(Type:=msoControlButton) With SubMenuItem .Caption = strCaption .OnAction = strOnAction .FaceId = strFaceId .BeginGroup = bolBeginGroup End With
Som det er nu, så kan jeg kun skrive makroens navn - eks. \"makro1\".
Jeg ville vældig gerne kunne sige \"Makro1(<værdi>)\" - altså overføre en parameter.
Du følger ikke helt metoden for makroen som beskrevet. Du skal f.eks. huske den enkelte \' før og efter du må heller ikke lave n til en string, når menu_x vil have en integer - skriv dette i stedet.
Private Sub CreateSubMenuItem(strCaption, strOnAction, strFaceId As String, bolBeginGroup As Boolean, SubMenuItem As Object, SubMenu As CommandBarPopup) \'Et menupunkt i en menugruppe \'SubMenu Item - UnderMenuPunkt strOnAction = \"\'Menu_x & Chr(34) & 1 & chr(34) & \'\" Set SubMenuItem = SubMenu.Controls.Add(Type:=msoControlButton) With SubMenuItem .Caption = strCaption .OnAction = strOnAction .FaceId = strFaceId .BeginGroup = bolBeginGroup End With End Sub ***************** her er den procedure som du lavede i tidernes morgen, hvor jeg har sat din kode ind som et hack. det spiller stadig ikke. procedurekaldet skulle gerne være \"Menu_x 1\" - jeg er med på fejlen vedr. strings og integers.
Der mangler \" efter \"Menu_x inden & Der mangler \" efter & inden \'\"
Det kan godt være, at du skal have 1 i \"1\"
Klart at du har problemer med at sende en integer, når strOnAction er en string.....! det var jo heller ikke det du skriv i .OnAction Den makro du kalder, vil modtage 1\'tallet som en string, og så må i makro\'en Menu_x lave en linie hvor du konverterer stringen til integer eks. Sub Menu_x (sNo As String) Dim iNo As Integer iNo = Cint(sNo)
Det vil være noget nemmere, at hjælpe med filen i hånden flemse@post3.tele.dk Jeg vil kunne kigge på det i morgen.
Hej Flemming, her har du koden fra mit modul i Excel. Håber den giver mening.
hilsen
hco
******************\' Dim SubMenu0 As CommandBarPopup Dim MenuItem As Object
Public Menus(3) As String
Public Const Mnu0 = \"\\DK\\DK_LETTER.DOT\" Public Const Mnu1 = \"\\DK\\DK_FAX.DOT\" Public Const Mnu2 = \"\\DK\\DK_SUMMARY.DOT\"
Sub Menu_x(no As String) s = TemplatePath & Menus(Val(no)) Documents.Add Template:=s, NewTemplate:=False, DocumentType:=0 End Sub
Private Sub CreateSubMenuItem(strCaption, strOnAction, strFaceId As String, bolBeginGroup As Boolean, SubMenuItem As Object, SubMenu As CommandBarPopup)
strOnAction = \" \'Menu_x \" & Chr(34) & StrOnAction & Chr(34) & \" \' \" Set SubMenuItem = SubMenu.Controls.Add(Type:=msoControlButton) With SubMenuItem .Caption = strCaption .OnAction = strOnAction .FaceId = strFaceId .BeginGroup = bolBeginGroup End With End Sub
hco -> Du har mellemrum imellem \" og \' samt efter menu_x i starten, samt til slut \" \' \" disse 4 mellemrum skal ikke være der.
Der må være mere kode end du viser, for det er ikke nok til at lave en menu i Word. Der er også for meget hentet fra Excel makro\'en. Menupunkter dannes forskelligt i Word og Excel. eks. på en word menu
Dim cmdPop As CommandBarPopup Dim cmdSub As CommandBarPopup Dim cmdCtrl As CommandBarControl
\' Tilføj Menu Set cmdPop = CommandBars(\"Menu Bar\").Controls.Add(Type:=msoControlPopup) cmdPop.Caption = \"&DSP Kursus\"
\' Tilføj Menuitem With cmdPop.Controls.Add(Type:=msoControlButton) .Caption = \"&Felt beskrivelse\" .OnAction = \"Tabel_Felt\" End With
\' Tilføj Submenu Set cmdSub = cmdPop.Controls.Add(Type:=msoControlPopup) cmdSub.Caption = \"&Udviklerens menu\" \' Tilføj streg i menu cmdSub.BeginGroup = True
\' Tilføj Menuitem til Submenu With cmdSub.Controls.Add(Type:=msoControlButton) .Caption = \"&Fjern menu\" .OnAction = \"FjernMenu\" End With
Det kan også laves smart, som Excel menu\'en, men den kode ligger på min arbejds pc, og det er en helt anden snak.
jeg ved godt at der mangler en del, og at det ikke er \"wordsk\". Men det var den kode du gav mig tidligere til excel, og den løser det samme problem i Word.
Dog har jeg endnu ikke fået det til at køre med parametrene.
Har du muligheden for at give mig en erklæring, som du ved virker?
hco send mig dit dokument med makro\'en i, så skal jeg se, om jeg kan få det til at virke. Jeg smutter på skiferie i dag, men kan kigge på det i næste uge, hvis du er interesseret.
Hej Flemming, du har været ihærdig og en god støtte, men jeg har løst problemet med tag tingen. men grundet din entutiasme, så får du points alligevel ;-)
hco
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.