Discussion:
Überschrift 1 per code einfügen?
(zu alt für eine Antwort)
Uwe Domschke
2007-06-28 15:20:15 UTC
Permalink
Ich bin nun kein vba-Experte, aber ich muss in Word per Ole-Steuerung
Überschrift 1,Überschrift 2 und eine Tabelle einfügen. Kann mir dazu jemand
ein Beispiel liefern?

Danke


Uwe
Thomas Gahler
2007-06-29 06:27:59 UTC
Permalink
Hallo Uwe
Post by Uwe Domschke
Ich bin nun kein vba-Experte, aber ich muss in Word per Ole-Steuerung
Überschrift 1,Überschrift 2 und eine Tabelle einfügen. Kann mir dazu
jemand ein Beispiel liefern?
Sub Demo()
Dim rng As Word.Range

Set rng = ActiveDocument.Range

With rng
.Text = "Hallo Welt"
.Style = wdStyleHeading1
End With

End Sub
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)
Uwe Domschke
2007-06-29 06:33:09 UTC
Permalink
Hallo Thomas,
Danke, probier ich gleich mal aus.
Kann ich auch eine Tabelle einfügen?

Uwe
Post by Thomas Gahler
Hallo Uwe
Post by Uwe Domschke
Ich bin nun kein vba-Experte, aber ich muss in Word per Ole-Steuerung
Überschrift 1,Überschrift 2 und eine Tabelle einfügen. Kann mir dazu
jemand ein Beispiel liefern?
Sub Demo()
Dim rng As Word.Range
Set rng = ActiveDocument.Range
With rng
.Text = "Hallo Welt"
.Style = wdStyleHeading1
End With
End Sub
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows XP (SP2), Office XP (SP3)
Thomas Gahler
2007-06-29 06:47:34 UTC
Permalink
Hallo Uwe
Post by Uwe Domschke
Kann ich auch eine Tabelle einfügen?
Du kannst alles

dim tbl as word.table
set tbl = activedocukent.tables.add 2,3
(ungetestet)


Vielleicht mal einfach den Code mit dem Makro-Editor aufzeichen und die
Objekte analysieren. Dann bist du schn recht weit. Aber nicht mit dem
.Selection-Objekt arbeiten, das dir der Rekorder verwendet, sondern immer
mit dem .Range-Objekt arbeiten.
Ansonsten kann ich dir das Buch noch empfehlen, denn es hat viele Bsp zur
Fernsteuerung drin.
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3
Uwe Domschke
2007-06-29 12:37:26 UTC
Permalink
Hallo Thomas,
ich kleines Problem habe ich noch:

wdStyleHeading1 ist nicht definiert

Uwe
Post by Thomas Gahler
Hallo Uwe
Post by Uwe Domschke
Ich bin nun kein vba-Experte, aber ich muss in Word per Ole-Steuerung
Überschrift 1,Überschrift 2 und eine Tabelle einfügen. Kann mir dazu
jemand ein Beispiel liefern?
Sub Demo()
Dim rng As Word.Range
Set rng = ActiveDocument.Range
With rng
.Text = "Hallo Welt"
.Style = wdStyleHeading1
End With
End Sub
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows XP (SP2), Office XP (SP3)
Thomas Gahler
2007-06-29 13:09:55 UTC
Permalink
Hallo Uwe
Post by Uwe Domschke
wdStyleHeading1 ist nicht definiert
Die musst du selber definieren. Im Objket-Katalog vom VBA-Editor raussuchen.

Oder mit Early Binding arbeiten

- Early vs. Late Binding
http://word.mvps.org/faqs/interdev/EarlyvsLateBinding.htm


Und vor ein paar Tagen habe ich noch das geschrieben «...Im weiteren
empfehle ich dir während dem entwickeln auf Early Binding zu setzen, wenn
das Programm realisiert ist, auf Late Binding umstellen. Nimmst du eine
Kopiler-Konstante für diese Umstellung, dann ist es ganz schnell gemacht.
(habe ich im Buch ausführlich im Kapitel 8 auf Seite 474ff. [«Ganz clever
wer beide Arten kombiniert»] beschrieben)...»
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)
Uwe Domschke
2007-06-29 13:23:01 UTC
Permalink
Hallo Thomas,
das habe ich rausgefunden.
Nun habe ich aber das nächste Problem:
Mit Set rng = ActiveDocument.Range markiere ich vermutlich das gesamte
Blatt. Denn nach dem Einfügen ist der bisherige Inhalt weg.
Ist es möglich, als Range auch eine(mehrere) Zellen einer Tabelle zu
definieren? Ich muss nämlich die Überschrift1 in eine Tabellenzeile
eintragen und möglichst über alle Spalten hinweg.

Uwe
Post by Thomas Gahler
Hallo Uwe
Post by Uwe Domschke
wdStyleHeading1 ist nicht definiert
Die musst du selber definieren. Im Objket-Katalog vom VBA-Editor raussuchen.
Oder mit Early Binding arbeiten
- Early vs. Late Binding
http://word.mvps.org/faqs/interdev/EarlyvsLateBinding.htm
Und vor ein paar Tagen habe ich noch das geschrieben «...Im weiteren
empfehle ich dir während dem entwickeln auf Early Binding zu setzen, wenn
das Programm realisiert ist, auf Late Binding umstellen. Nimmst du eine
Kopiler-Konstante für diese Umstellung, dann ist es ganz schnell gemacht.
(habe ich im Buch ausführlich im Kapitel 8 auf Seite 474ff. [«Ganz clever
wer beide Arten kombiniert»] beschrieben)...»
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows XP (SP2), Office XP (SP3)
Thomas Gahler
2007-06-29 14:14:38 UTC
Permalink
Hallo Uwe
Post by Uwe Domschke
Mit Set rng = ActiveDocument.Range markiere ich vermutlich das gesamte
Blatt. Denn nach dem Einfügen ist der bisherige Inhalt weg.
Jep
Post by Uwe Domschke
Ist es möglich, als Range auch eine(mehrere) Zellen einer Tabelle zu
definieren? Ich muss nämlich die Überschrift1 in eine Tabellenzeile
eintragen und möglichst über alle Spalten hinweg.
Ja sicher. Du kannst so ziemlich alles als .Range-Objekt definieren.

- Set rng = ActiveDocument.Tables(1).Rows(1).Range
--
Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)
Loading...