meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

word-und-excel [2011/04/06 20:16]
127.0.0.1 Externe Bearbeitung
word-und-excel [2018/05/25 14:36] (aktuell)
michael
Zeile 5: Zeile 5:
   * Set excel = CreateObject("​Excel.Application"​)   * Set excel = CreateObject("​Excel.Application"​)
 \\  Bezogen auf das Objekt kann man dann VBA-Befehle anwenden, am besten mit\\ \\  With //​Objekt//​\\ //​Anweisung//​\\ ​ End With\\ \\ **VBS-Beispiel:​ Übertragung von Bilddaten zu einem WORD-Dokument**\\ ​ Voraussetzung ist, dass WORD installiert ist.\\ ​ \\  Bezogen auf das Objekt kann man dann VBA-Befehle anwenden, am besten mit\\ \\  With //​Objekt//​\\ //​Anweisung//​\\ ​ End With\\ \\ **VBS-Beispiel:​ Übertragung von Bilddaten zu einem WORD-Dokument**\\ ​ Voraussetzung ist, dass WORD installiert ist.\\ ​
 +
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
   Dim Eintrag   Dim Eintrag
Zeile 62: Zeile 64:
   End Sub   End Sub
   '​---------------------------------------------------------------------------------------------   '​---------------------------------------------------------------------------------------------
 +</​code>​
 +
 Nach Zusammenfassung der Bilddaten in der Variable Eintrag wird mit Documents.Add die Standardformatvorlage geöffnet und dort mit Selection.TypeText der Inhalt der Variablen eingetragen.\\ ​ Will man jetzt beispielsweise Schriftart und Größe ändern und soll außerdem der Cursor am Dokumentenanfang stehen, ist das und anderes mit den entsprechenden VBA-Befehlen leicht realisierbar. Wenn man die VBA-Befehle nicht kennt, hilft der eingebaute Makrorekorder.\\ ​ Nach Zusammenfassung der Bilddaten in der Variable Eintrag wird mit Documents.Add die Standardformatvorlage geöffnet und dort mit Selection.TypeText der Inhalt der Variablen eingetragen.\\ ​ Will man jetzt beispielsweise Schriftart und Größe ändern und soll außerdem der Cursor am Dokumentenanfang stehen, ist das und anderes mit den entsprechenden VBA-Befehlen leicht realisierbar. Wenn man die VBA-Befehle nicht kennt, hilft der eingebaute Makrorekorder.\\ ​
  
Zeile 69: Zeile 73:
   * Strg + Pos1 betätigen um den Cursor auf den Dokumentenanfang zu stellen   * Strg + Pos1 betätigen um den Cursor auf den Dokumentenanfang zu stellen
   * Anklicken von "​Aufzeichnung beenden"​   * Anklicken von "​Aufzeichnung beenden"​
-Wählt man dann unter "​Makros"​ das erstellte Makro mit "​Bearbeiten"​ aus, wird die verwendeten VBA-Befehle mit ihren Variablen und Konstanten angezeigt:\\ +Wählt man dann unter "​Makros"​ das erstellte Makro mit "​Bearbeiten"​ aus, wird die verwendeten VBA-Befehle mit ihren Variablen und Konstanten angezeigt: 
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Sub Makro1()   Sub Makro1()
   ' Makro1 Makro   ' Makro1 Makro
Zeile 77: Zeile 83:
       Selection.HomeKey Unit:​=wdStory       Selection.HomeKey Unit:​=wdStory
   End Sub   End Sub
 +</​code>​
        
-Eine hier verwendete Konstante ist wdStory, die im Skript definiert werden muss. Um den Wert zu ermitteln, startet man das Makro im Einzelschritt mit F8. Wenn man jetzt den Cursor über wdStory verweilen lässt, wird der Wert 6 angezeigt. Man muss also definieren const wdStory = 6 und für Unit:​=wdStory nur noch die Konstante einsetzen. Außerdem muss den VBA-Befehlen zur Anbindung an das Objekt jeweils ein Punkt vorangestellt werden.\\ ​ Das sieht dann für die Routine **WordDokument** wie folgt aus:\\ +Eine hier verwendete Konstante ist wdStory, die im Skript definiert werden muss. Um den Wert zu ermitteln, startet man das Makro im Einzelschritt mit F8. Wenn man jetzt den Cursor über wdStory verweilen lässt, wird der Wert 6 angezeigt. Man muss also definieren const wdStory = 6 und für Unit:​=wdStory nur noch die Konstante einsetzen. Außerdem muss den VBA-Befehlen zur Anbindung an das Objekt jeweils ein Punkt vorangestellt werden.\\ ​ Das sieht dann für die Routine **WordDokument** wie folgt aus:  
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Sub WordDokument   Sub WordDokument
   Dim word   Dim word
Zeile 103: Zeile 112:
  
   End Sub   End Sub
-   +</​code> ​   
 **VBS-Beispiel:​ Übertragung von Bilddaten zu einem EXCEL-Tabellenblatt**\\ ​ Voraussetzung ist, dass EXCEL installiert ist.\\ ​ **VBS-Beispiel:​ Übertragung von Bilddaten zu einem EXCEL-Tabellenblatt**\\ ​ Voraussetzung ist, dass EXCEL installiert ist.\\ ​
 +
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
   Dim Array   Dim Array
Zeile 167: Zeile 179:
   '​------------------------------------------------------------------------------------------------   '​------------------------------------------------------------------------------------------------
  
-   +</​code> ​  
 Hier werden die Bilddaten mit Spaltenüberschriften sinnvollerweise in eine Datentabelle Array eingetragen\\ ​ und dann in das mit Workbooks.Add geöffnete Tabellenblatt mit ActiveSheet.Cells(Zeile,​Spalte).Resize ab der 3. Zeile und der 1. Spalte die gesamte Tabelle in einem Rutsch eingetragen. Das geht erheblich schneller, als die Daten Zelle für Zelle zu übertragen.\\ ​ Anschließend wird noch mit ActiveSheet.Cells(Zeile,​Spalte).Value der Pfad des aktuellen Verzeichnis in die 1. Zeile eingetragen.\\ ​ Will man beispielsweise noch die Spaltenbreite optimieren, ist die Ermittlung der notwendigen VBA-Befehle wie bereits beschrieben mit dem Makrorekorder möglich.\\ ​ Das aufgenommene Makro sieht so aus:​\\ ​ Hier werden die Bilddaten mit Spaltenüberschriften sinnvollerweise in eine Datentabelle Array eingetragen\\ ​ und dann in das mit Workbooks.Add geöffnete Tabellenblatt mit ActiveSheet.Cells(Zeile,​Spalte).Resize ab der 3. Zeile und der 1. Spalte die gesamte Tabelle in einem Rutsch eingetragen. Das geht erheblich schneller, als die Daten Zelle für Zelle zu übertragen.\\ ​ Anschließend wird noch mit ActiveSheet.Cells(Zeile,​Spalte).Value der Pfad des aktuellen Verzeichnis in die 1. Zeile eingetragen.\\ ​ Will man beispielsweise noch die Spaltenbreite optimieren, ist die Ermittlung der notwendigen VBA-Befehle wie bereits beschrieben mit dem Makrorekorder möglich.\\ ​ Das aufgenommene Makro sieht so aus:​\\ ​
 +
 +<code VBScript [enable_line_numbers="​true"​]>​
   Sub Makro1()   Sub Makro1()
   ' Makro1 Makro   ' Makro1 Makro
Zeile 174: Zeile 188:
       Selection.Columns.AutoFit       Selection.Columns.AutoFit
   End Sub   End Sub
 +</​code>​
        
 Die Routine **Exceltabelle** wird wie folgt ergänzt:​\\ ​ Die Routine **Exceltabelle** wird wie folgt ergänzt:​\\ ​
 +
 +<code VBScript [enable_line_numbers="​true"​]>​
   Sub ExcelTabelle   Sub ExcelTabelle
   Dim excel   Dim excel
Zeile 199: Zeile 216:
  
   End Sub   End Sub
 +</​code>​
        
 Zu VBA-Befehlen,​ die nicht mit dem Makrorekorder zu ermitteln sind, findet man bei diversen Foren im Internet Hilfe. Zu VBA-Befehlen,​ die nicht mit dem Makrorekorder zu ermitteln sind, findet man bei diversen Foren im Internet Hilfe.