Code:
' Blattformat einer Zeichnung ändern
'
' umgebaut, so dass kein Parameter benötigt wird
'zentraler Schalter um einige Meldungen ein/aus zu schalten
Dim bDebug As Boolean = False
'Regel nur für Zeichnung
If Not TypeOf ThisDoc.Document Is DrawingDocument Then
If bDebug Then MsgBox ("Ende weil falscher Typ")
Exit Sub
Else
If bDebug Then MsgBox("richtiger Dok-Type")
End If
'Liste mit wählbaren Blattformaten
Dim MyArrayList As New ArrayList
MyArrayList.Add("A0")
MyArrayList.Add("A1")
MyArrayList.Add("A2")
MyArrayList.Add("A3")
MyArrayList.Add("A4")
If bDebug Then MsgBox("ArrayList erstellt")
Dim selectedValue As String
If MyArrayList.Contains(ActiveSheet.Size) Then
selectedValue = ActiveSheet.Size
If bDebug Then MsgBox(selectedValue & vbCrLf & "ist in ArrayList vorhanden")
Else
If bDebug Then MsgBox(selectedValue & vbCrLf & "ist NICHT in ArrayList vorhanden")
End If
selectedValue = InputListBox("Blattgröße wählen", MyArrayList, selectedValue, Title := "Blattgröße ändern", ListName := "Blattformate" )
If bDebug Then MsgBox(selectedValue & vbCrLf & "Ergebnis der InputListBox")
Select Case selectedValue
Case "A0"
ActiveSheet.Border = "A0Q"
ActiveSheet.ChangeSize("A0", moveBorderItems := True)
ActiveSheet.Sheet.Orientation = Inventor.PageOrientationTypeEnum.kLandscapePageOrientation
ThisApplication.ActiveView.Fit
Case "A1"
ActiveSheet.Border = "A1Q"
ActiveSheet.ChangeSize("A1", moveBorderItems := True)
ActiveSheet.Sheet.Orientation = Inventor.PageOrientationTypeEnum.kLandscapePageOrientation
ThisApplication.ActiveView.Fit
Case "A2"
ActiveSheet.Border = "A2Q"
ActiveSheet.ChangeSize("A2", moveBorderItems := True)
ActiveSheet.Sheet.Orientation = Inventor.PageOrientationTypeEnum.kLandscapePageOrientation
ThisApplication.ActiveView.Fit
Case "A3"
ActiveSheet.Border = "A3Q"
ActiveSheet.ChangeSize("A3", moveBorderItems := True)
ActiveSheet.Sheet.Orientation=Inventor.PageOrientationTypeEnum.kLandscapePageOrientation
ThisApplication.ActiveView.Fit
Case "A4"
ActiveSheet.Border = "A4H"
'ActiveSheet.ChangeSize(28.0, 20.0, MoveBorderItems := True)
ActiveSheet.ChangeSize("A4", moveBorderItems := True)
ActiveSheet.Sheet.Orientation=Inventor.PageOrientationTypeEnum.kPortraitPageOrientation
ThisApplication.ActiveView.Fit
Case Else 'Blattformat enthaelt einen anderen Wert
MsgBox("unerwarteter Wert! Das sollte nicht passieren.", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "iLogic Regel")
'passiert z.B. wenn User die InputBox schliesst
End Select
If bDebug Then MsgBox("Fertig", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "iLogic Regel")