Kategorienarchiv: Excel VBA

Wie Sie automatische Abfragen einrichten

Im nächsten Schritt legen Sie fest, welche Daten Sie überhaupt abfragen möchten. Dazu gehört vor allem die Festlegung, aus welcher Datenquelle die Daten importiert werden sollen. Sie geben also den Pfad und den Namen der Datei an, die als Basis der Daten dienen.

Um das zu erledigen, fügen Sie über die Add-Methode eine neue Tabelle des Typs „QueryTable“ ein. Dabei legen Sie den Datentyp, die Datenquelle sowie den Zielort der Daten innerhalb von Excel fest. Dazu übergeben Sie der „Add“-Methode zwei Argumente. 

Über den Parameter „Connection“ definieren Sie, wo sich die Datenquelle befindet und welches Format sie besitzt. Der Parameter „Destination“ legt fest, wohin VBA die importierten Daten schreiben soll.

Das folgende Unterprogramm stellt dar, wie Sie das in VBA erledigen:

Sub ImportiereDaten()
Dim strPfad As String
Dim strImportpfad As String
strPfad = ThisWorkbook.Path & _
"\Messungen.txt"
strImportpfad = "TEXT;" + strPfad
Set qtAbfrage = _
ActiveSheet.QueryTables.Add( _
Connection:=strImportpfad, _
Destination:=Range("A1"))
End Sub 

In die Variable „strPfad“ wird der Pfad der Datei eingetragen, die Sie öffnen möchten. Das Makro geht davon aus, dass sich diese Datei im gleichen Verzeichnis wie die Arbeitsmappe befindet, in der das Makro ausgeführt wird. Die Datei soll MESSUNGEN.TXT heißen. Wenn Sie einen anderen Speicherort für die Datei vorziehen, legen Sie den Pfad in der entsprechenden Zeile des Programms wie folgt fest:

strPfad = "c:\Dateien\Messungen.txt"

Aus diesem Pfad generiert das VBA-Unterprogramm die Variable „Importpfad“, die neben dem Importpfad auch noch die Information über das Datenformat („TEXT“ für eine ASCII-Datei) integriert.

Der nachfolgende „Set“-Befehl ist das zentrale Kommando in dem Unterprogramm. Er weist der Variablen „qtAbfrage“ einen Wert zu, indem über die „Add“-Methode eine neue QueryTable angelegt wird.

Über den Parameter „Connection“ legen Sie den Speicherort der Daten fest, die Sie importieren möchten. Hier wird die zuvor definierte Variable „Importpfad“ verwendet.

Als Zielort definiert die „Add“-Methode die aktive Tabelle. Hier wird der Bereich ab Zelle A1 festgelegt. Von dieser Zelle ausgehend, startet Excel den Import der externen Daten.


zurück zur Übersicht


Eumex   22. November 2020    16:45    Excel VBA    0    722



So starten Sie Word per Excel-Makro

In unserem Beispiel sollen eine neue Word-Sitzung gestartet und ein bestimmtes Dokument geöffnet werden. Danach kann das Dokument bearbeitet werden. Der Aufruf von Word erfolgt über Kommandos aus der zuvor eingebundenen VBA-Bibliothek.

Für das Erzeugen einer Word-Sitzung aus einer Excel-Anwendung heraus setzen Sie das Kommando „Create- Objekt“ ein. Durch das Übergeben des Parameters „Word.Application“ starten Sie aus Excel heraus eine neue Word-Sitzung. Hier ist der komplette Programmcode: 

Sub StarteWord()

Dim objWordApp As Object

Dim strPfad As String

strPfad = "C:\Dokument.docx"

Set objWordApp = _ CreateObject("Word.application")

With objWordApp

.Application.Visible = True

.Application.Documents.Open (strPfad)

'Hier Ihre Kommandos

End With

Set objWordApp = Nothing

End Sub

Das Programm öffnet eine Word-Sitzung und lädt das Dokument „C:\Dokument.docx“. Sie erhalten eine Fehlermeldung, wenn das Dokument an dieser Position nicht existiert. Ab der Position „Hier Ihre Kommandos“ fügen Sie die Befehle ein, mit denen das Word- Dokument verändert wird. Beachten Sie bitte das Kommando am Ende des Unterprogramms:

Set objWordApp = Nothing

Hiermit wird die Verbindung von Excel zu Word über die Objektvariable „objWordApp“ geschlossen. Das ist wichtig, um ein sauberes Programmende zu erreichen.


zurück zur Übersicht


Eumex   03. Januar 2021    13:15    Excel VBA    0    658



Wie Sie Word und Word-Dokumente an ein Excel-Makro anbinden

VBA stellt speziell für den Zugriff auf Word und Word-Objekte eine Bibliothek zur Verfügung, die Sie in Excel einsetzen können.

Durch das Anbinden der Office-Bibliothek können Sie Objekte, Konstanten und Parameter in Ihrem VBA-Quelltext einfacher und direkter ansprechen. Es ist auch möglich, Word-Dokumente ohne das Anbinden der Bibliothek zu steuern, das ist aber wesentlich unkomfortabler. 

Folgendermaßen binden Sie die Bibliothek ein:

  1. Starten Sie VBA über die Tastenkombination Alt+F11.
  2. Rufen Sie das Kommando „Extras – Verweise“ auf.
  3. Setzen Sie einen Haken vor „Microsoft Office X.0 Object Library“. Je nach verwendeter Excel-Version steht in Ihrem Dialogfenster für den Buchstaben „X“ die Zahl 14 für Office 2010, 13 für Office 2007 usw.
  4. Schließen Sie das Dialogfenster über die Schaltfläche „OK“.

zurück zur Übersicht


Eumex   21. Juni 2020    14:15    Excel VBA    0    838



Was der Dokumentinspektor nicht kann

Der Dokumentinspektor bietet eine Vielzahl an Funktionen an, um Arbeitsmappen zu säubern.

Wenn es aber darum geht, sämtlichen Quellcode aus einer Arbeitsmappe zu entfernen, dann klappt das nur, wenn Sie die Excel-Mappe mit der Endung „.xlsx“ speichern oder wenn Sie das folgende Makro einsetzen:

Sub AlleQuellecodesEntfernen()
 Dim CodeObj As Object
 If Val(Application.Version) >= 8 Then
  With ActiveWorkbook.VBProject
   On Error Resume Next
    For Each CodeObj In .VBComponents
     Select Case CodeObj.Type
      Case 1, 2, 3
       .VBComponents.Remove CodeObj
        Case Else
         With CodeObj.CodeModule
          If .CountOfLines > 0 Then
           .DeleteLines 1, .CountOfLines
          End If
         End With
        End Select
       Next
      End With
     End If
 End Sub

 

Das Makro löscht zuerst alle enthaltenen Prozeduren, Module, Formulare und am Ende sich selbst.


zurück zur Übersicht


Eumex   16. Dezember 2019    13:30    Excel VBA    0    893



Log In
Registrieren
Passwort vergessen?
Social Bar
DC Drunken Skulls
DC Dragon Fighters