| Beispiele zu Access, Word, Excel, Powerpoint, Outlook, Sammelmappe |
|
|
| Automation ist eine "Component Object Model"-Funktion, eine Technologie, die von Anwendungen verwendet |
| wird, um ihre Objekte an Entwicklungshilfsmittel, Makro-Programmiersprachen und weitere Anwendungen |
| freizugeben, um Automation zu unterstützen. Z. B. könnte eine Tabellenkalkulations-Anwendung ein |
| Tabellenblatt, ein Diagramm, eine Zelle oder einen Zellbereich freigeben, wobei diese als unabhängige Objekte |
| behandelt werden. Ein Textverarbeitungsprogramm könnte Objekte wie ein Programm, Dokument, Absatz, Satz, |
| Textmarke oder eine getroffene Auswahl freigeben. Das folgende Beispiel veranschaulicht die Automatisierung |
| von Vorgängen zwischen Microsoft Excel und anderen Microsoft-Anwendungen. Verweise auf die |
| entsprechenden Objektbibliotheken müssen in VBE erstellt werden (Menü 'Extras', 'Verweise...'). |
|
| MICROSOFT ACCESS |
| Dieses Beispiel liefert den Speicherort der Microsoft Access-Datenbankbeispiele. Erstellen Sie zuerst einen |
| Verweis auf die 'Microsoft Access 8.0 Object Library' in VBE (Menü 'Extras', 'Verweise...'). |
| Sub MS_Access() |
| Dim AccDir As String |
| Dim acc As Object |
| 'Microsoft Access-Verbindung herstellen |
| Set acc = CreateObject("access.application") |
| 'Gibt den Pfad für msaccess.exe zurück |
| AccDir = acc.SysCmd(Action:=acSysCmdAccessDir) |
| 'Pfad anzeigen |
| MsgBox "MSAccess.exe befindet sich in " & AccDir |
| 'Speicherplatz für Variable freigeben |
| Set acc = Nothing |
| End Sub |
|
| MICROSOFT WORD |
| Dieses Beispiel kopiert ein Diagramm von dem Tabellenblatt 'Diagrammbeschriftung' in ein neues Word- |
| Dokument. Erstellen Sie zuerst einen Verweis auf die 'Microsoft Word 8.0 Object Library' in VBE (Menü Extras, |
| Verweise...). |
| Sub MS_Word() |
| Dim wd As Object |
| 'Microsoft Word-Sitzung erstellen |
| Set wd = CreateObject("word.application") |
| 'Diagramm in der Tabelle "Diagrammbeschriftung" kopieren |
| Worksheets("Diagrammbeschriftung").ChartObjects(1).Chart.ChartArea.Copy |
| 'Dokument anzeigen |
| wd.Visible = True |
| 'Microsoft Word aktivieren |
| AppActivate wd.Name |
| With wd |
| 'Neues Dokument in Microsoft Word erstellen |
| .Documents.Add |
| 'Absatz einfügen |
| .Selection.TypeParagraph |
| 'Diagramm einfügen |
| .Selection.PasteSpecial link:=True, DisplayAsIcon:=False, Placement:=wdInLine |
| End With |
| Set wd = Nothing |
| End Sub |
|
| MICROSOFT POWERPOINT |
| Dieses Beispiel kopiert ein Diagramm von dem Tabellenblatt 'Diagrammbeschriftung' in eine neue PowerPoint- |
| Präsentation. Erstellen Sie zuerst einen Verweis auf die 'Microsoft PowerPoint 8.0 Object Library' in VBE |
| (Menü 'Extras', 'Verweise...'). |
| Sub MS_PowerPoint() |
| Dim ppt As Object, pres As Object |
| 'Microsoft PowerPoint-Sitzung erstellen |
| Set ppt = CreateObject("powerpoint.application") |
| 'Diagramm in der Tabelle "Diagrammbeschriftung" kopieren |
| Worksheets("Diagrammbeschriftung").ChartObjects(1).Copy |
| 'PowerPoint aktivieren |
| ppt.Visible = True |
| 'PowerPoint aktivieren |
| AppActivate ppt.Name |
| 'Neues Dokument in Microsoft PowerPoint öffnen |
| Set pres = ppt.Presentations.Add |
| 'Folie hinzufügen |
| pres.Slides.Add 1, ppLayoutBlank |
| 'Diagramm einfügen |
| ppt.ActiveWindow.View.Paste |
| Set ppt = Nothing |
| End Sub |
|
| MICROSOFT OUTLOOK |
| Dieses Beispiel erstellt einen neuen Outlook-Vorgang und fügt ihm Informationen hinzu. Starten Sie Outlook, |
| und klicken Sie auf die Schaltfläche 'Vorgänge', um den neuen Vorgang anzuschauen. HINWEIS: Es können |
| wenige Minuten vergehen, bevor der neue Vorgang angezeigt wird. |
| Sub MS_Outlook() |
| Dim ol As Object, myItem As Object |
| 'Microsoft Outlook-Sitzung erstellen |
| Set ol = CreateObject("outlook.application") |
| 'Vorgang erstellen |
| Set myItem = ol.CreateItem(olTaskItem) |
| 'Informationen dem neuen Vorgang hinzufügen |
| With myItem |
| .Subject = "Neue VBA-Aufgabe" |
| .Body = "Dieser Vorgang wurde über 'Automation' durch Microsoft Excel erstellt" |
| .NoAging = True |
| .Close (olSave) |
| End With |
| 'Objekt aus Arbeitsspeicher entfernen |
| Set ol = Nothing |
| End Sub |
|
| MICROSOFT SAMMELMAPPE |
| Dieses Beispiel erstellt eine neue Microsoft Sammelmappe-Datei, fügt Abschnitte hinzu, manipuliert den Excel- |
| Abschnitt und speichert die Datei. Erstellen Sie zuerst einen Verweis auf die 'Microsoft Binder 8.0 Objektbibliothek' |
| in VBE (Menü 'Extras'). |
| Sub MS_Binder() |
| Dim MyBinder As Object, NewSection As Object |
| Dim MyVar As String, MyFile As String |
| 'Microsoft Office Sammelmappe-Sitzung erstellen |
| Set MyBinder = CreateObject("office.binder") |
| 'Sammelmappe-Sitzung anzeigen |
| MyBinder.Visible = True |
| 'Neue Word-Sitzung hinzufügen |
| MyBinder.Sections.Add Type:="word.document" |
| 'Bestehende Excel-Datei vor der ersten Sitzung hinzufügen. |
| 'Nachstehenden Pfad falls notwendig ändern: |
| MyFile = Application.Path & "\Beispiel\Solver\Solvermp.xls" |
| Set NewSection = MyBinder.Sections.Add(FileName:=MyFile, Before:=1) |
| With NewSection |
| 'Name für den Abschnitt ändern |
| .Name = "Solver-Beispiele" |
| 'Auf den Wert in Zelle A2 im dritten Tabellenblatt der Arbeitsmappe zugreifen |
| MyVar = .Object.Worksheets(3).Range("A2").Value |
| End With |
| 'Sammelmappe unter mybinder.obd speichern (falls notwendig, bestehende Datei überschreiben) |
| MyBinder.SaveAs Application.Path & "\mybinder.obd", bindOverwriteExisting |
| 'Sammelmappe ausblenden |
| MyBinder.Visible = False |
| 'Verbindung zum Objekt aufheben und Ressource freigeben |
| Set MyBinder = Nothing |
| 'Zeigt den Wert von Zelle A2 des dritten Tabellenblatts im Excel-Abschnitt an |
| MsgBox "Die folgenden Daten stammen von der Zelle A2 im Solver Samples-Abschnitt." & Chr(10) & Chr(10) & MyVar |
| End Sub |
|