vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: 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.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Textbausteine einfügen3.025Balthasar von ...25.05.11 19:26
Re: Textbausteine einfügen2.346Dirk25.05.11 23:13
Re: Textbausteine einfügen2.342Balthasar von ...26.05.11 06:46
Re: Textbausteine einfügen2.354Balthasar von ...26.05.11 15:55

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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