Thema Datum  Von Nutzer Rating
Antwort
Rot .onAction Sicherheitsstufe
23.03.2011 15:53:35 Bogey
NotSolved
23.03.2011 16:11:29 Severus
NotSolved
23.03.2011 16:24:13 Gast91587
NotSolved
23.03.2011 16:30:06 Severus
NotSolved

Ansicht des Beitrags:
Von:
Bogey
Datum:
23.03.2011 15:53:35
Views:
1893
Rating: Antwort:
  Ja
Thema:
.onAction Sicherheitsstufe

Hi,

ich füge dynamisch zu einer Menüleiste Buttons hinzu und weise ihnen Subs zu, die beim onAction event ausgeführt werden sollen:

Dim SheetMenu As Object
Dim SheetMenuButton As Object
Set SheetMenu = CommandBars("MeineLeiste").Controls.Add(Type:=msoControlPopup, Temporary:=True)
Set SheetMenuButton = SheetMenu.Controls.Add(Type:=msoControlButton, ID:=1)
With SheetMenuButton
  .Caption = result.Fields("Bezeichnung")
  .OnAction = "Ausfuehren(" & 123 & ")"
End With

Das klappt soweit auch alles. Aber der Sub, der aufgerufen wird ("Ausführen") scheint mit einer niedrigeren Sicherheitsstuef ausgeführt zu werden, sprich viele Funktionen wie Cells.Clear, das Löschen von Arbeitsblättern etc. werden schlicht nicht ausgeführt.

Wie kann ich das lösen, sodass der Sub mit voller Berechtigung ausgeführt wird?

 

Habe im Internet eine Art möglichen Lösungsansatz auf http://www.eggheadcafe.com/software/aspnet/35817029/excel2000--sicherheitsstufe-bei-aufruf-eines-makros-mittels-onaction.aspx gefunden, da wird eine eigene Klasse für den Button angelegt, siehe die Antwort von Reiner Wolff vom Friday, March 05, 2010 3:30 PM dort:

Option Explicit

Public WithEvents MyButton As Office.CommandBarButton
Public OnAction As String


Private Sub MyButton_Click(ByVal Ctrl As Office.CommandBarButton,
CancelDefault As Boolean)
Dim str() As String

str = Split(OnAction, " ")
Select Case UBound(str)
Case 0
Run str(0)
Case 1
Run str(0), str(1)
End Select
End Sub



'###### Eigenschaften des Buttons einfach nur durchleiten
Public Property Let Caption(Wert As String)
MyButton.Caption = Wert
End Property

Public Property Get Caption() As String
Caption = MyButton.Caption
End Property

Public Property Let Tag(Wert As String)
MyButton.Tag = Wert
End Property

Public Property Get Tag() As String
Tag = MyButton.Tag
End Property

Public Property Let FaceID(Wert As String)
MyButton.FaceID = Wert
End Property

Public Property Get FaceIde() As String
FaceID = MyButton.FaceID
End Property

Public Property Let DescriptionText(Wert As String)
MyButton.Caption = Wert
End Property

Public Property Get DescriptionText() As String
DescriptionText = MyButton.DescriptionText
End Property

Public Property Let TooltipText(Wert As String)
MyButton.Caption = Wert
End Property

Public Property Get TooltipText() As String
TooltipText = MyButton.TooltipText
End Property 

 

Ich weiß aber nicht wie ich das testen kann; wie könnte ich denn diesen "eigenen Button" mittels SheetMenu.Controls.Add an meine Menüleiste anhängen? 

 

Danke schonmal!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot .onAction Sicherheitsstufe
23.03.2011 15:53:35 Bogey
NotSolved
23.03.2011 16:11:29 Severus
NotSolved
23.03.2011 16:24:13 Gast91587
NotSolved
23.03.2011 16:30:06 Severus
NotSolved