Hallo,
da mein Rechner durch meinen Arbeitgeber gemanagt wird, habe ich mich dazu entschlossen, kleine Tools zu verwenden, die in Word integriert werden.
Der Rechner ist ein Surface Book i5 unter Win10 / Microsoft Office Home and Business 2016.
Ich habe also mit VBA Word eine .dotm gebaut mit vielen userform, welche im Wesentlichen nur Text anzeigen.
Seltsamerweise werden die Userforms bei jedem Öffnen des VBA Editors immer schmaler (width).
Das sieht folgendermaßen aus. Ich habe eine .dotm mit 238 Userforms. Bitte keine Kommentare, ich hätte es auch lieber in einer Datenbank gemacht ;-)
Die Mehrheit der Userforms hat eine userform.width =910.
Wenn ich jetzt in Formular1 gehe und an Label1 den Text ändere, habe ich nach dem Abspeichern und Wiederöffnen bei den angeschauten Formularen auf einmal eine userform.width von 408 oder ähnlichs. Die Werte sind auch nicht die Hälfte von 910 oder ähnliches sondern scheinbar zufällig und sie sind immer in etwa halb so groß wie vorher.
Ich habe mehrere solcher .dotm Dateien und den Effekt überall. Ich habe jetzt das userform.initialize event benutzt um bei jedem Aufruf der Userforms die Userform.width auf den gewünschten Wert zu setzen. Das ist auch soweit ok im Prögrammablauf.
Wenn ich allerdings im Editor Änderungen an den Userforms machen will, muss ich sie erst einmal wieder auf einen sinnvollen Wert setzen (das letzte Formular hatte sich mittlerweile auf userform.width=10 eingestellt). Das nervt!!
Kann mir eventuell jemand einen Tipp geben, woher dieser Effekt kommt?
Ich kann mir überhaupt keinen Reim darauf machen.
Für einen Schubs in die richtige Richtung wäre ich wirklich dankbar. Die Programmierung auf den userforms ist nichts aufregendes. Ich kopiere mal einen Aufzug hier hinein:
Private Sub UserForm_Activate()
Me.Width = 910
End Sub
Private Sub cmbtAnhang15_Click()
frmAnhang15_04.Hide
frmAnhang0015.Show vbModeless
End Sub
Private Sub cmbtPrevious_Click()
frmAnhang15_04.Hide
frmAnhang15_03.Show vbModeless
End Sub
Private Sub cmbtNext_Click()
frmAnhang15_04.Hide
frmAnhang15_05.Show vbModeless
End Sub
Private Sub cmbtUebersicht_Click()
frmAnhang15_04.Hide
frmMDR.Show vbModeless
End Sub
Private Sub cmbtOriginal_Click()
Shell "C:\Program Files (x86)\Mozilla Firefox\firefox.exe " & "https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32017R0745&from=DE", vbMaximizedFocus
End Sub
Private Sub cmbtOriginalen_Click()
Shell "C:\Program Files (x86)\Mozilla Firefox\firefox.exe " & "https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32017R0745&from=DE", vbMaximizedFocus
End Sub
Private Sub UserForm_Click()
Me.Hide
End Sub
Private Sub Label1_Click()
KopieDesLabels (Label1)
End Sub
Private Sub Label2_Click()
KopieDesLabels (Label2)
End Sub
Private Sub Label3_Click()
KopieDesLabels (Label3)
End Sub
Private Sub Label4_Click()
KopieDesLabels (Label4)
End Sub
Private Sub Label5_Click()
KopieDesLabels (Label5)
End Sub
Private Sub Label6_Click()
KopieDesLabels (Label6)
End Sub
Public Sub KopieDesLabels(LabelText As String)
'If CommandBars("Office Clipboard").Visible = False Then CommandBars("Office Clipboard").Visible = True
CopyToClipBoard (vbCr & LabelText & vbCr)
frmZwischenablage.txtZwischenablage.Text = LabelText
frmZwischenablage.Show vbModeless
Debug.Print ("Der Text wurde in die Zwischenablage kopiert." & vbCr & "Falls es Probleme beim EinfUegen gibt, öffne in Word oben links unter <Start> die Zwischenablage und fUege darUeber ins Word ein!"), vbOKOnly
End Sub
Public Sub CopyToClipBoard(Text)
On Error Resume Next
Dim DataObj As MSForms.DataObject, i As Integer
Set DataObj = New MSForms.DataObject
DataObj.SetText Text
DataObj.PutInClipboard
End Sub
Daran wird es wohl nicht liegen!?!
Mit freundlichen Grüßen
Frank
|