Excel VBA-Kurs (4): Arbeiten mit dem Excel-Objektmodell
In diesem Artikel werden wir uns mit dem Umgang mit dem Excel-Objektmodell befassen.
2.4. Verstehen des Excel-Objektmodells mit einfachem Code
2.4.1. Objektzugriffsprimitive
Sehen wir uns den grundlegendsten Code an, der auf Dateien, Blätter, Bereiche und Zellen zugreift. Als Referenz kann das globale Objekt Application beim Zugriff auf das Objekt weggelassen werden. In der zweiten Zeile jedes Beispiels von 1 bis 6 unten wird der Code ohne Anwendung ausgedrückt.
'1. 이름이 t1.xlsx 인 파일 Application.Workbooks("t1.xlsx") Workbooks("t1.xlsx") '2. 이 파일의 Sheet1 시트 Application.Workbooks("t1.xlsx").Worksheets("Sheet1") Workbooks("t1.xlsx").Worksheets("Sheet1") '3. 이 시트의 A1 cell Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") '4. 이 시트의 A1 cell 에 "TEST" 문자열 입력 Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") = "TEST" Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") = "TEST" '5. 이 시트의 A1 cell 글꼴을 굵게(Bold) 설정 Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1").Font.Bold = True Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1").Font.Bold = True '6. 이 시트의 A2:D4 범위 Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A2:D4") Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A2:D4")
Schauen wir uns jeden genauer an.
'1. 이름이 t1.xlsx 인 파일 Application.Workbooks("t1.xlsx") Workbooks("t1.xlsx")
▲ Dies ist eine Syntax, die die Datei mit dem Namen „t1.xlsx“ unter den derzeit in Excel geöffneten Dateien angibt. Arbeitsmappen verwaltet eine Sammlung geöffneter Dateien. Greifen Sie bei der Auswahl einer von mehreren Dateien auf den „Dateinamen“ der Workbooks-Sammlung als Parameter zu. (Als Referenz kann neben dem Dateinamen auch die Reihenfolge, in der die Datei geöffnet wurde, z. B. „Workbooks(1)“, als Parameter verwendet werden.)
'2. 이 파일의 Sheet1 시트 Application. Workbooks("t1.xlsx").Worksheets("Sheet1") Workbooks("t1.xlsx").Worksheets("Sheet1")
▲ Dies ist eine Syntax, die das „Sheet1“-Blatt der oben angegebenen „t1.xlsx“-Datei angibt. Arbeitsblätter verwalten eine Sammlung von Blättern in einer Datei. Wenn Sie eines von mehreren Blättern auswählen, greifen Sie als Parameter auf den 'Blattnamen' der Worksheets-Sammlung zu. (Wie bei Arbeitsmappen können Sie auch die Reihenfolge der Blätter als Parameter verwenden, z. B. „Arbeitsblätter (1)“.)
'3. 이 시트의 A1 cell Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1")
▲ Dies ist ein Ausdruck, der die „A1“-Zelle des oben angegebenen „Sheet1“-Blatts angibt.
'4. 이 시트의 A1 cell 에 "TEST" 문자열 입력 Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") = "TEST" Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1") = "TEST"
▲ Dieser Code gibt einen Zeichenfolgenwert in die Zelle ein, auf die oben zugegriffen wurde. Sie können jeden Werttyp eingeben, einschließlich Zeichenfolgen und Zahlen.
'5. 이 시트의 A1 cell 글꼴을 굵게(Bold) 설정 Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1").Font.Bold = True Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A1").Font.Bold = True
▲ Dieser Code legt das Zellenformat mithilfe des Range-Objekts fest. Alle Zellformate wie Schriftart, Farbe, Größe, Hintergrundfarbe, Zellrahmentyp und Rahmenfarbe können mit VBA-Code festgelegt werden.
'6. 이 시트의 A2:D4 범위 Application.Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A2:D4") Workbooks("t1.xlsx").Worksheets("Sheet1").Range("A2:D4")
▲ Ein Range-Objekt kann auf mehrere zusammenhängende Zellen zeigen. Der Bereich („A2:D4“) steht für „2 Zeilen, 1 Spalte“ bis „4 Zeilen, 4 Spalten“.
2.4.2. einfacher Objektzugriff
Wenn Sie auf die aktuelle Datei oder das aktuelle Blatt zugreifen, können Sie diese einfach wie folgt verwenden. Dieser Code ist einfach und gut lesbar, aber Vorsicht ist geboten, wenn die aktuelle Datei oder das Blatt während der Ausführung geändert wird.
'1. 현재 열려있는 파일 ActiveWorkbook '2. 현재 열려있는 시트 ActiveWorksheet '3. 현재 열려있는 시트의 A1 cell Range("A1") ActiveWorksheet.Range("A1") '4. 현재 열려있는 시트의 A1 cell 에 "TEST" 라는 값 할당 Range("A1") = "TEST" '5. 현재 열려있는 시트의 시트의 A1 cell 글꼴을 굵게(Bold) 설정 Range("A1").Font.Bold = True '6. 현재 열려있는 시트의 A2:D4 범위 Range("A2:D4")
2.4.3. Beispiele für Objektzugriff und -nutzung
Sehen wir uns einige weitere Beispiele für den Zugriff auf Objekte an.
'1. 현재 열려있는 파일들 Workbooks '2. 현재 열려있는 파일들의 수 Workbooks.Count '3. 새로운 파일 만들기 Workbooks.Add '4. 현재 파일을 C:\test.xlsx로 저장하기 ActiveWorkbook.SaveAs "C:\test.xlsx" '5. 현재 파일의 이름을 보여주기 MsgBox ActiveWorkbook.Name '6. 현재 열려있는 파일의 시트들 Worksheets '7. 현재 열려있는 파일의 시트들의 수 Worksheets.Count '8. 새로운 시트 만들기 Worksheets.Add '9. Sheet1을 삭제하기 Worksheets("Sheet1").Delete '10. 현재 시트의 이름을 보여주기 MsgBox ActiveSheet.Name '11. 현재 열려있는 시트의 A1 cell 선택 Range("A1").Select '12. 현재 열려있는 시트에서 사용된 영역을 선택 ActiveSheet.UsedRange.Select
2.5. Details zum Excel-Objektmodell
Die hierarchische Struktur des häufig verwendeten Excel-Objektmodells ist wie folgt. Die in dieser Abbildung gezeigten Objekte sind ein Teil, nicht das Ganze, das für Excel VBA bereitgestellt wird. Davon wurde das Objekt mit der Hintergrundfarbe bisher einmal im Inhalt behandelt.
Sie müssen jetzt nicht alle weißen Hintergrundobjekte kennen. Sie können es später lernen und verwenden, wenn Sie es brauchen. Fürs Erste reicht es aus, nur darauf zu schauen, ob es so etwas gibt.
Das gesamte Objekt ist auf der Microsoft Docs-Website in page1, page2 und page3 unterteilt.
Die Quelle jedes obigen Bildes ist die folgende URL.
- Seite 1: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-xp/aa141044(v=office.10)?redirectedfrom=MSDN
- Seite 2: https://docs.microsoft.com/en-us/previous-versions/office/office-10/aa189565(v=office.10)?redirectedfrom=MSDN
- Seite 3: https://docs.microsoft.com/en-us/previous-versions/office/office-10/aa189566(v=office.10)?redirectedfrom=MSDN
Oben haben wir uns das Excel-Objektmodell im Detail angesehen. Als Nächstes werde ich die Referenzen in Bezug auf Excel VBA erläutern.
<<Verwandte Artikelliste >>
- Starten Sie den Excel-VBA-Kurs. (Vorlesungsankündigung, feat. Warum wir Excel VBA empfehlen)
- Excel VBA-Kurs(1): Überblick über Excel VBA
- Excel VBA-Kurs (2): Excel VBA-Grundlagen
- Excel VBA-Kurs (3): Excel-Objektmodell
- Excel VBA-Kurs (4): Arbeiten mit dem Excel-Objektmodell
- Excel VBA-Kurs (5): Excel-Dateierweiterung, VBE, Schrifteinstellungen
- Excel VBA-Kurs (6): Grundlagen der Excel VBA-Sprache – Variablen
- Excel VBA-Kurs (7): Grundlagen der Excel VBA-Sprache – Syntax
- Excel VBA-Kurs (8): Grundlagen der Excel VBA-Sprache – Datentypen, Datenstrukturen
- Excel VBA-Kurse (9): Excel VBA How-To
- Excel VBA-Kurs (10): Tools, die mit Excel VBA entwickelt und verwendet werden
- Vollständiges Inhaltsverzeichnis für Excel VBA-Kurse