MsgBox
09.09.2018 11:57:13
Taege
dass man in einer MsgBox keine Texte formatieren kann,
musste ich leider schon erfahren. Geht nur über UserForm.
Aber mir ist noch ein anderes Problem über den Weg gelaufen.
Ich möchte eine unterschiedliche Anzahl von TABs ("Chr(9)")
in Abhängigkeit von der Länge eines davorliegenden Text einbauen.
Über die Länge ("len(aa)") scheint es nicht zu gehen.
Hängt es vom Text-Font ab (ungleiche Breite der Buchstaben)?
A) Für die Umlaut-Verfälschung im unteren Beispiel kann ich nichts,
hängt mit der Differenz zwischen UNIX und Microsoft zusammen.
B) Leider kann ich das Ergebnis nicht als Screenshot hier einfügen.
Sollte mal ein Denkanstoß für das Herber-Forum sein.
C) Das untere Beispiel ist ein WORD-Makro, gilt aber auch für EXCEL.
Hier mein zusammengeklau(b)tes und selbst geändertes Beispiel:
Sub ListModul()
' 28.01.18 aktualisiert
' Diese Prozedur listet, in einer(!) MsgBox, alle Module in ActiveDocument auf.
' Es wird die Funktion mit dem Namen fkt_CTTN verwendet,
' um eine Textbeschreibung vom Typ des Modul zu erhalten.
' 06.07.18 ?berarbeitet
' 09.09.18 Anzahl der TAB abh?ngig von der L?nge des Namens gemacht
' Funktioniert nicht sauber,
' scheint von dem Schrift-Typ in der MsgBox abzuh?ngen
' VBProject
Dim VBProj As VBProject
Set VBProj = ActiveDocument.VBProject
' VBComponent
Dim VBComp As VBComponent
modul_nam = "NewMacros" ' nicht notwendig
Set VBComp = ActiveDocument.VBProject.VBComponents(modul_nam) ' nicht notwendig
' CodeModule
Dim VBCodeMod As CodeModule
Set VBCodeMod = ActiveDocument.VBProject.VBComponents(modul_nam).CodeModule ' nicht notwendig
len_nam_max = 0
debug_mode = 0
my_msg = "Auflistung aller Module des Word-Dokumentes:" & Chr(10) & Chr(10)
For Each VBComp In ActiveDocument.VBProject.VBComponents
VBC_nam = VBComp.Name
len_nam = Len(VBC_nam)
If len_nam_max 8 And len_nam
Function fkt_CTTN(VBComp) As String ' VBComp As VBComponent
' 28.01.18 aktualisiert
' fr?herer Name: "CompTypeToName" jetzt: "fkt_CTTN"
' geh?rt zum Makro ListModules
Select Case VBComp.Type
Case vbext_ct_ActiveXDesigner
fkt_CTTN = "ActiveX Designer"
Case vbext_ct_ClassModule
fkt_CTTN = "Class Module"
Case vbext_ct_Document
fkt_CTTN = "Document"
Case vbext_ct_MSForm
fkt_CTTN = "MS Form"
Case vbext_ct_StdModule
fkt_CTTN = "Standard Module"
Case Else
End Select
End Function