Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Alirion am 01.07.03 - 11:49:19
-
Problem:
Ich erstelle dynamisch Tabellen in Word aus Notes heraus (kein Problem)
Jetzt möchte ich anschließend diese Tabelle an meine Bedürfnisse anpassen. Einige Zellen sollen verbunden werden, und anschließend mit Text gefüllt werden!
Weiß jemand Rat.
Beispielscripte wären klasse!
-
Hi,
mein Vorschlag, formatiere die Tabelle in Word so, wie du sie brauchst und zeichne dabei ein Macro auf. Dann hast du alle Befehle die du brauchst.
Mit ein paar Anpassungen kanst du das Ganze dann in Script übernehmen.
Axel
-
Für die Anpassungen wäre ich dankbar, wenn Sie erklärt wären.
(Ich habe nicht ganz so vile Ahnung!?!)
-
Hi,
hier ein Beispiel:
gegeben ist eine Tabele mit zwei Spalten. Der Cursor befinden sich in der ersten Spalte. Das aufgezeichnete Makro zum Verbinden der beiden Spalten sieht so aus:
Sub Makro1
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
Selection.Cells.Merge
End Sub
In Script würde das dann so aussehen:
...
Dim objWord As Variant
Const wdExtend = 1
Const wdCharacter = 1
Set objWord = CreateObject("Word.Application")
Call objWord.Selection.MoveRight(wdCharacter, 2, wdExtend)
Call objWord.Selection.Cells.Merge
...
Ich hab's auf Zeitgründen nicht getestet, sollte aber so funktionieren
Gerade die Zeile mit MoveRight zeigt ganz deutlich die Anpassungen die bei der Übernahme von aufgezeichneten Makros in Script zu machen sind. Im Einzelfall gibt es mit Sicherheit noch den ein oder anderen Fallstrick zu umgehen. Die sind aber von Befehl zu Befehl unterschiedlich.
Axel
-
Okay, das mit dem Makro hab ich geschnallt, aber wie komme ich an die Selection.
Er sagt bei mir immer, das ist kein "InstanceMember"
-
Hi,
ich hab's mal auf die Schnelle getestet, funktioniert einwandfrei.
hier ist der Code den ich verwendet habe:
Sub Click(Source As Button)
Dim objWord As Variant
Const wdExtend = 1
Const wdCharacter = 1
On Error Resume Next
Set objWord = GetObject("", "Word.Application")
If Err = 208 Then ' Fehler 208 tritt auf wenn Word noch nicht läuft
Err = 0
Set objWord = CreateObject("Word.Application")
objWord.Visible = True 'Word sichtbar machen
End If
Call objWord.Documents.Add("tabelle.dot", False)
Call objWord.Selection.MoveRight(wdCharacter, 2, wdExtend)
Call objWord.Selection.Cells.Merge
End Sub
Poste mal den Code mit dem du es probiert hast.
Axel
-
Ich steck noch voll am anfang fest
...
Set Range = Letter.Bookmarks("Kopfdaten").Range
Letter.Paragraphs.Add
Set Tabelle = Letter.Paragraphs(2)
With Tabelle
.Range.Font.Size = 10
.Range.Font.Bold = False
.SpaceAfter = 0
End With
Set Tabelle = Letter.Tables.Add(Range,1,3)
Set Zelle = Letter.Tables(1).Cell(1,1)
Letter.Tables(1).Rows.Add
Set Zelle = Letter.Tables(1).Cell(1,1)
Call Letter.Selektion.MoveRight(wdCharacter, 3, wdExtend)
Call Letter.Selektion.Cells.Merge
Set Range = Letter.Paragraphs.Add(Zelle.Range)
With Range
.Range.Font.Size = 10
.Range.Font.Bold = True
.Range.Text = "Text zum Testen"
End With
...
-
Hi,
du hast Schreibfehler drin. Selection schreibt man mit "c", du hast es mit "k" geschrieben.
Axel
-
Stimmt!
- "Schmunzelt leicht und schämt sich" - :-[
-
Jetzt funktioniert es astrein.
Ich muss mich mehr mit den Macros befassen.
Habt ihr irgendeine gute Variante (Scriptbibliothek, etc) in der man mehr über den Export nach Word, Excel oder Powerpoint erhalten kann?
Zur zeit befasse ich mich mit Scriptbibliotheken in LN um Standardfunktionen allgemein kopierfähig zu machen. Das würde mir echt weiterhelfen.
-
... wenn du ins LDD-Forum von IBM gehst und dort nach WORD oder EXCEL suchst stößt du immer wieder auf Code-Fragmente - aber nichts umfassendes - eher Bruchstücke...
... eine gute Sammlung an Code-Beispielen hat Eknori in seiner Schatzkiste - da werde ich immer wieder fündig... ;D
ata
-
Danke!