Fernsteuerung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Pwania (Diskussion | Beiträge) |
Pwania (Diskussion | Beiträge) (→Word) |
||
Zeile 44: | Zeile 44: | ||
* Wenn die Anwendung noch nicht läuft, wird ein Fehler erzeugt. | * Wenn die Anwendung noch nicht läuft, wird ein Fehler erzeugt. | ||
<span style="Color: | <span style="Color:blue">Public Sub </span>TransferTextToWord<span style="Color:gray">()</span> | ||
<span style="Color:blue"> Dim </span>wordApp<span style="Color:blue"> As </span>Word<span style="Color:gray">.</span>Application | |||
<span style="Color:blue"> Dim </span>doc<span style="Color:blue"> As </span>Word<span style="Color:gray">.</span>Document | |||
<span style="Color:blue"> Dim </span>rngWord<span style="Color:blue"> As </span>Word<span style="Color:gray">.</span>Range | |||
<span style="Color: | <span style="Color:green">' Voraussetzung: Word ist als Verweis eingebunden</span> | ||
On Error GoTo <span style="Color: | <span style="Color:blue"> On Error GoTo </span><span style="Color:gray">0</span> <span style="Color:green">' Setzt Fehlerspeicher auf 0 zurück</span> | ||
<span style="Color:blue"> On Error Resume Next </span> <span style="Color:green">' Falls ein Fehler auftritt, bitte weiter machen</span> | |||
<span style="Color:green">' Achtung bei GetObject: Anwendung ist zweiter Parameter, erster bleibt leer!</span> | |||
<span style="Color:blue"> Set </span>wordApp <span style="Color:gray">=</span> GetObject<span style="Color:gray">(,</span> <span style="Color:gray">"Word.Application")</span> | |||
<span style="Color:blue"> If </span>Err<span style="Color:gray">.</span>Number <span style="Color:gray"><></span> <span style="Color:gray">0</span><span style="Color:blue"> Then </span> <span style="Color:green">' Wenn Fehlernummer ungleich 0, dann ...</span> | |||
MsgBox <span style="Color:gray">"Bitte Word starten und gewünschtes Dokument öffnen!"</span> | |||
<span style="Color:blue"> On Error GoTo </span><span style="Color:gray">0</span> <span style="Color:green">' Schaltet 'On Error Resume Next' aus</span> | |||
<span style="Color:blue"> Exit Sub</span> | |||
<span style="Color:blue"> End If</span> | |||
<span style="Color:blue"> On Error GoTo </span><span style="Color:gray">0</span> <span style="Color:green">' Schaltet 'On Error Resume Next' aus | |||
' Debug.Print 3 / 0 ' Erzeugt keinen Fehler, wenn 'On Error GoTo 0' fehlt! | ' Debug.Print 3 / 0 ' Erzeugt keinen Fehler, wenn 'On Error GoTo 0' fehlt!</span> | ||
<span style="Color:blue"> If </span>wordApp<span style="Color:gray">.</span>Documents<span style="Color:gray">.</span>Count <span style="Color:gray">=</span> <span style="Color:gray">0</span><span style="Color:blue"> Then</span> | |||
MsgBox <span style="Color: | MsgBox <span style="Color:gray">"Bitte das gewünschte Dokument öffnen!"</span> | ||
<span style="Color:blue"> Exit Sub</span> | |||
<span style="Color:blue"> End If</span> | |||
<span style="Color:blue"> Set </span>doc <span style="Color:gray">=</span> wordApp<span style="Color:gray">.</span>ActiveDocument | |||
<span style="Color:blue"> Set </span>rngWord <span style="Color:gray">=</span> doc<span style="Color:gray">.</span>Words<span style="Color:gray">.</span>Item<span style="Color:gray">(3)</span> | |||
rngWord | rngWord<span style="Color:gray">.</span>Text <span style="Color:gray">=</span> Cells<span style="Color:gray">(1,</span> <span style="Color:gray">1).</span>Text & <span style="Color:gray">" "</span><span style="Color:blue"> | ||
End Sub</span> |
Version vom 10. Oktober 2018, 14:16 Uhr
Zugriff auf PowerPoint
Bei PowerPoint reagiert 'CreateObject' wie folgt:
- Wenn PowerPoint noch nicht läuft, wird es im Hintergrund gestartet.
- Wenn PowerPoint schon läuft, wird dieses über 'CreateObject' zurückgegeben.
- Wenn das Objekt freigegeben wird (spätestens am Ende der Prozedur), wird der Hintergrundprozess ebenfalls beendet.
Alternativ kann die Verbindung mit 'GetObject' hergestellt werden (siehe Beispiel für Word).
Public Sub InsertFormInPPT() Dim shp As PowerPoint.Shape Dim sld As PowerPoint.Slide Dim pptApp As PowerPoint.Application ' Voraussetzung: PowerPoint ist als Verweis eingebunden ' Anwendungsvariable mit PowerPoint verknüpfen ' Wenn PowerPoint nicht schon läuft, wird ein Hintergrundprozess gestartet Set pptApp = CreateObject("PowerPoint.Application") ' Wenn PowerPoint vorher schon vom Anwender gestartet wurde, ' ist die Anwendung sichtbar (auch wenn sie minimiert wurde) ' Wenn PowerPoint jetzt erst als Hintergrundprozess gestartet wurde, ist die Anwendung NICHT sichtbar If pptApp.Visible = False Then Exit Sub ' Mit der Referenz auf PowerPoint in der Variablen 'pptApp' ' kann nun direkt auf PowerPoint zugegriffen werden. If pptApp.Presentations.Count < 1 Then Exit Sub If pptApp.ActivePresentation.Slides.Count < 1 Then Exit Sub If pptApp.ActiveWindow.Selection.Type = ppSelectionNone Then Exit Sub Set sld = pptApp.ActiveWindow.Selection.SlideRange.Item(1) Set shp = sld.Shapes.AddShape(msoShapeRectangle, 10, 10, 230, 120) shp.Fill.ForeColor.RGB = vbMagenta shp.TextFrame.TextRange.Text = Excel.Application.Name End Sub
Word
Bei Word reagiert 'CreateObject' wie folgt:
- Wenn Word noch nicht läuft, wird ein neuer Hintergrundprozess gestartet.
- Wenn Word schon läuft, wird trotzdem ein neuer Hintergrundprozess gestartet!
- Wenn das Objekt freigegeben wird, bleibt der Hintergrundprozess erhalten!
Bei 'GetObject' gilt folgendes:
- Wenn die Anwendung schon läuft, wird dessen Instanz zurückgegeben.
- Wenn die Anwendung noch nicht läuft, wird ein Fehler erzeugt.
Public Sub TransferTextToWord() Dim wordApp As Word.Application Dim doc As Word.Document Dim rngWord As Word.Range ' Voraussetzung: Word ist als Verweis eingebunden On Error GoTo 0 ' Setzt Fehlerspeicher auf 0 zurück On Error Resume Next ' Falls ein Fehler auftritt, bitte weiter machen ' Achtung bei GetObject: Anwendung ist zweiter Parameter, erster bleibt leer! Set wordApp = GetObject(, "Word.Application") If Err.Number <> 0 Then ' Wenn Fehlernummer ungleich 0, dann ... MsgBox "Bitte Word starten und gewünschtes Dokument öffnen!" On Error GoTo 0 ' Schaltet 'On Error Resume Next' aus Exit Sub End If On Error GoTo 0 ' Schaltet 'On Error Resume Next' aus ' Debug.Print 3 / 0 ' Erzeugt keinen Fehler, wenn 'On Error GoTo 0' fehlt! If wordApp.Documents.Count = 0 Then MsgBox "Bitte das gewünschte Dokument öffnen!" Exit Sub End If Set doc = wordApp.ActiveDocument Set rngWord = doc.Words.Item(3) rngWord.Text = Cells(1, 1).Text & " " End Sub