| |

Fortgeschrittene ProgrammierungRe: Textbausteine einfügen | |  | Autor: Balthasar von Graffenried | Datum: 26.05.11 15:55 |
| In der zwischenzeit konnte ich den Code zusammenstellen der in diesem Makro verwendet wird.
Option Explicit
'Variablen deklarierung
Dim Kopf1A, Kopf1B As Range
'AutoTextEntry Schlüssel für Logo Schwarz Weiss
Dim schwarz_weiss As String
'AutoTextEntry Schlüssel für Logo farbig
Dim farbig As String
'Globale Variable für Toggle (True/False)
Dim Pointer As Boolean
'Callback for BlankPageButton onAction
Public Sub RibbonXOnAction(control As IRibbonControl)
'Hier Schwarz_weiss und farbig definieren
schwarz_weiss = "bundeslogo_sw"
farbig = "bundeslogo_col"
'IIF gibt falls Pointer = True schwarz_weiss zurück, sonst farbig
BundLogo_Toggle IIf(Pointer, schwarz_weiss, farbig)
'Toggle, falls True, auf False setzten usw.
Pointer = Not Pointer
End Sub
Public Sub BundLogo_Toggle(SelectAutoTextEntry As String)
Dim CellRange As Range
Dim TableRange As Range
'In die Kopfzeilen Ansicht des Dokuments wechseln
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
'Prüfen ob es eine Tabelle im Header gibt
If ActiveDocument.Sections(1).Headers(1).Range.Tables.Count >= 1 Then
'Es besteht eine Tabelle im Header, Prüfen ob sich in der Tabelle ein
' Autotext Eintrag befindet
Set CellRange = ActiveDocument.Sections(1).Headers(1).Range.Tables( _
1).Cell(1, 1).Range
SetAutoTextEntryInTable SelectAutoTextEntry
Selection.Borders.OutsideLineStyle = wdLineStyleNone
Selection.Borders.InsideLineStyle = wdLineStyleNone
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Else
Set TableRange = ActiveDocument.Sections(1).Headers(1).Range
'Es befindet sich keine Tabelle im Header, Tabelle erstellen
SetTable TableRange, 1, 2
Set CellRange = ActiveDocument.Sections(1).Headers(1).Range.Tables( _
1).Cell(1, 1).Range
SetAutoTextEntryInTable SelectAutoTextEntry
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End If
End Sub
Private Sub SetAutoTextEntryInTable(SelectAutoTextEntry As String)
'Variablen deklarierung
Dim Kopf1A, Kopf1B As Range
Dim SetAutoTextEntry As Boolean
SetAutoTextEntry = False
'Der Varialble Kopf1A wird die KopfZeile des Dokuments als gewählte
' Sektion angegeben
Set Kopf1A = ActiveDocument.Sections(1).Headers( _
wdHeaderFooterPrimary).Range
Dim xDoc As Document
Set xDoc = ActiveDocument
Dim xEntry As autoTextEntry
For Each xEntry In xDoc.AttachedTemplate.AutoTextEntries
If xEntry.Name = SelectAutoTextEntry Then
SetAutoTextEntry = True
Exit For
Else
SetAutoTextEntry = False
End If
Next xEntry
If SetAutoTextEntry Then
'Dem Dokument wird im Definierten Bereich den Schnellbaustein
' "bundeslogo_col" eingefügt
ActiveDocument.AttachedTemplate.AutoTextEntries( _
SelectAutoTextEntry).Insert Where:=Kopf1A, RichText:=True
Else
MsgBox ("Der Textbaustein wurde nicht gefunden")
End If
End Sub
Private Sub SetTable(ByVal Position As Range, RowCount As Integer, ColumnCount _
As Integer)
ActiveDocument.Tables.Add Range:=Position, NumRows:=RowCount, _
NumColumns:=ColumnCount, DefaultTableBehavior:=wdWord9TableBehavior, _
AutoFitBehavior:=wdAutoFitFixed
With Selection.Tables(1)
If .Style <> "Tabellengitternetz" Then
.Style = "Tabellengitternetz"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
Position.Tables(1).Select
Position.Borders.OutsideLineStyle = wdLineStyleNone
Position.Borders.InsideLineStyle = wdLineStyleNone
End Sub
Public Sub OnGetLabel(control As IRibbonControl, ByRef label)
Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
Case msoLanguageIDGerman: label = "Logo wechseln"
Case msoLanguageIDFrench: label = "Changer logiciel"
Case msoLanguageIDItalian: label = "Cambiare logo"
Case msoLanguageIDEnglishUS: label = "Change logo"
End Select
End Sub Vieleicht seht ihr ja etwas das ich nicht sehe. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|