Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

VBE-Kontextmenü "Definition"

Betrifft: VBE-Kontextmenü "Definition" von: Rolf Beißner
Geschrieben am: 18.03.2007 10:37:52

Hallo Forum,

im VBE-Kontextmenü gibt es die Funktion "Definition",
die bewirkt, dass zur Definition/Deklaration der selektierten
Variablen bzw. Prozedur verzweigt wird.

Weiss jemand, ob und wie diese Funktion via VBA ansprechbar ist?

hG
Rolf

  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Oberschlumpf
Geschrieben am: 18.03.2007 11:02:08

Hi Rolf

Andere Idee:

Verwende doch in jedem Modul

Option Explicit

So verweigert dir Excel von vornherein jede Zusammenarbeit mit nicht deklarierten Variablen, und zeigt dir dann auch die betroffenen Variablen.

Konnte ich helfen?

Ciao
Thorsten


  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Rolf Beißner
Geschrieben am: 18.03.2007 11:17:16

Hallo Thorsten,



deine Antwort geht leider völlig an der Fragestellung vorbei.

Option Explicit ist nicht das Problem.



fG

Rolf


  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Hans W. Herber
Geschrieben am: 18.03.2007 11:28:46

Hallo Rolf,

die Antwort war m.E. durchaus verständlich, denn es kann kaum geahnt werden, welche Absicht hinter der Vorgehensweise steckt.

Die Funktion ist über VBA nicht ansprechbar. Was soll es bringen, wenn während des Codes zu einer Variablendeklaration gesprungen wird?

Konstrukte wie:
Application.VBE.CommandBars("Code Window").Controls("Definitition").Execute

können nunmal nicht funktionieren.

Möglicherweise liege aber auch ich daneben. Dann solltest Du vielleicht erklären, was Du mit der Sache bezweckst.

Gruss hans


  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Rolf Beißner
Geschrieben am: 18.03.2007 11:57:04

Hallo Hans,

ich hatte ja kurz skizziert, was die Funktion "Definition" macht.
Außer zur Variablendeklaration und in den Objektkatalog
"springt" sie eben auch zum "Standort" einer aufgerufenen Prozedur.

Beispiel:
- Mappe1.xls beinhaltet einen Projektverweis auf Mappe2.xls
- Call "test" in Mappe1 ruft die Prozedur "test" aus Mappe2 auf
- Cursor auf "test" + "Definition" verzweigt nun auf den "Standort" in Mappe2

Das möchte ich mir zu Nutze machen, und zu den Call-Zeilen in beliebigen Modulen
den "Standort" ausgeben lassen.

fG
Rolf




  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Hans W. Herber
Geschrieben am: 19.03.2007 08:01:45

Hallo Rolf,

einen Zugriff auf Definition über einen VBA-Code gibt es nicht. Nachfolgend eine Prozedur, die zu einer Ausgabe der Fundzeile einer aufgerufenen Prozedur führt. Sind Arbeitsmappe und Modul nicht bekannt, sind in die Prozedur Schleifen einzubauen:
  Sub WoIstMakro()
     Dim vbPA As VBProject, vbPB As VBProject
     Dim mdlA As CodeModule, mdlB As CodeModule
     Dim iRowA As Integer, iRowB As Integer
     Dim sProc As String
     Set vbPA = ThisWorkbook.VBProject
     Set vbPB = Workbooks("Test2.xlsm").VBProject
     Set mdlA = vbPA.VBComponents("Modul1").CodeModule
     Set mdlB = vbPB.VBComponents("Modul1").CodeModule
     For iRowA = 1 To mdlA.CountOfLines
        If InStr(mdlA.Lines(iRowA, 1), "Call") Then
           sProc = mdlA.Lines(iRowA, 1)
           sProc = Right(sProc, Len(sProc) - InStrRev(sProc, " "))
           For iRowB = 1 To mdlB.CountOfLines
              If InStr(mdlB.Lines(iRowB, 1), sProc) Then
                 MsgBox "Prozedur """ & sProc & """ wurde gefunden in Zeile " & iRowB
              End If
           Next iRowB
        End If
     Next iRowA
  End Sub
  

Gruss hans


  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Rolf Beißner
Geschrieben am: 19.03.2007 08:57:36

Hallo Hans,

deinen Ansatz habe ich verstanden. Wenn, wie du schon richtig vermutest, Arbeitsmappe und Modul nicht bekannt sind, gibt das natürlich 'ne richtige Schleifenorgie, von der ich hoffte, sie durch irgendeine Nutzung von "Definition" umgehen zu können.

Dank deiner Infos weiß ich jetzt, was auf mich zu kommt.

Herzlichen Dank und einen guten Wochenstart
Rolf


  


Betrifft: AW: VBE-Kontextmenü "Definition" von: Gerd L
Geschrieben am: 18.03.2007 11:23:47

Hallo Rolf,

SendKeys "+{F2}"

Gruß
Gerd


  


Betrifft: AW: VBE-Kontextmenü "Definition" - Substitut von: Rolf Beißner
Geschrieben am: 20.03.2007 16:21:37

Hallo Hans, hallo Gerd,


Application.GoTo Reference:="Mappe1.xls" & "!" & "test"


"springt", wie gewünscht, zum Quellcode.
In dem Beispiel im Thread weiter oben wird also die Prozedur "test" in "Mappe2.xls" angesteuert.
Die Quellcodemappen müssen geöffnet sein.

Herzliche Grüße
Rolf