Excel VBAコース(3):Excel Object Model
2.3。エクセルオブジェクトモデル
Excel VBAは、Excelを扱うプログラミング言語です。もう少し正確には、ExcelのObject Modelを扱う言語です。エクセルがどのように構造化されているかを知っておくとうまく対処できます。
下の図1枚だけを理解すると、Excel Object Modelで最も重要でよく使われる概念はすべて分かる。
上図のExcelは2010バージョンです。 Excel Object Modelの概念を理解するのに適していると思い、Excel 2010バージョンで説明します。 Excelのバージョンに関係なく、Object Modelの概念は同じです。
この図の一枚に、Excel Object Modelの必須概念がすべて含まれている。各オブジェクトの概念と詳細を見てみましょう。
参考までに、VBAエディタで「View> Object Browse」を実行すると、各オブジェクトの詳細属性(property)、関数(function)、プロシージャ(sub)、イベント(event)を確認することができます。
(VBAエディタは開発ツールリボンメニューの「Visual Basic」ボタンをクリックするか、ショートカット Alt + F11 を押すと表示されます。)
2.3.1.アプリケーション
ApplicationはExcel processを指します。実行されているExcelを制御または終了するには、Applicationオブジェクトを使用します。
Applicationオブジェクトの詳細については、以下のMicrosoftの記事を参照してください。
アプリケーションオブジェクト(Excel)| Microsoft Docs
Applicationオブジェクトを使用するサンプルコードは次のとおりです。
'Application 사용 코드 #1: 파일 활성화 하기 Application.Windows("book1.xls").Activate 'Application 사용 코드 #2: 엑셀 종료하기 Application.Quit()
2.3.2。 Workbooks
1つのExcel processで開いているファイルのリストを管理します。新しいファイルを作成したり、ファイルを開いたり閉じたりするなどの用途に利用する。ファイルリストから特定のファイルにアクセスするときは、Workbooks(1)、Workbooks(2)、… 、Workbooks(n)でアクセスできます。
Workbooks オブジェクトの詳細については、以下の Microsoft の資料を参照してください。
ワークブックオブジェクト(Excel)| Microsoft Docs
Workbooksオブジェクトを使用するサンプルコードは次のとおりです。
'Workbooks 사용 코드 #1: 모든 파일 닫기 Workbooks.Close 'Workbooks 사용 코드 #2: 새로운 파일 생성하기 Workbooks.Add 'Workbooks 사용 코드 #3: 파일 열기 Workbooks.Open FileName:="File.xlsx", ReadOnly:=True
2.3.3。ワークブック
1つのExcel processで開いているファイルのリストのうち、特定のファイルを1つ指します。ファイルを閉じたり、保存するなどの用途に利用する。
Workbook オブジェクトの詳細については、次のマイクロソフトの資料を参照してください。
ワークブックオブジェクト(Excel)| Microsoft Docs
Workbookオブジェクトを使用するサンプルコードは次のとおりです。
'Workbook 사용 코드 #1: 파일 닫기 Workbook.Close 'Workbooks 사용 코드 #2: 저장하기 Workbook.Save 'Workbooks 사용 코드 #3: 다른 이름으로 저장하기 Workbook.SaveAs Filename:="NewFile.xlsx"
2.3.4。ワークシート
1つのファイル内のシートのリストを管理します。新しいシートを作成したり、削除するなどの用途に利用する。
Worksheets オブジェクトの詳細については、次のマイクロソフトの資料を参照してください。
ワークシートオブジェクト(Excel)| Microsoft Docs
Worksheetsオブジェクトを使用するサンプルコードは次のとおりです。
'Worksheets 사용 코드 #1: 첫번째 시트 앞에 2개 시트 추가 Worksheets.Add Count:=2, Before:=Sheets(1) 'Worksheets 사용 코드 #2: 시트 개수 출력 Debug.Print Worksheets.Count 'Worksheets 사용 코드 #3: Sheet3 뒤에 Sheet1 복사 Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")
2.3.5。ワークシート
1ファイル内のシート1つを指します。シートをアクティブにしたり、削除したり、非表示にしたり、表示したりするために使用します。
Worksheet オブジェクトの詳細については、次のマイクロソフトの資料を参照してください。
ワークシートオブジェクト(Excel)| Microsoft Docs
Worksheetオブジェクトを使用するサンプルコードは次のとおりです。
'Worksheet 사용 코드 #1: 시트 활성화 Worksheets("Sheet1").Activate 'Worksheet 사용 코드 #2: 시트 삭제 Worksheets("Sheet1").Delete 'Worksheet 사용 코드 #3: 시트 숨기기 Worksheets(1).Visible = False 'Worksheet 사용 코드 #4: 시트 보이기 Worksheets(1).Visible = True
2.3.6。 Range
1シート内の1つのセルまたは複数のセルを指します。セルに値を入力したり、削除したり、セルをマージするなどの目的で使用します。 Excel VBAでコーディングするときに最もよく使われるオブジェクトです。
Range オブジェクトの詳細については、次のマイクロソフトの資料を参照してください。
範囲オブジェクト(Excel)| Microsoft Docs
Rangeオブジェクトを使用するサンプルコードは次のとおりです。
'Range 사용 코드 #1: A1 cell의 값을 A5에 입력 Worksheets("Sheet1").Range("A5").Value = _ Worksheets("Sheet1").Range("A1").Value 'Range 사용 코드 #2: A1:E10 영역의 내용 삭제 Worksheets(1).Range("A1:E10").ClearContents 'Range 사용 코드 #3: A2(2행, 1열)에 B1:B5 합계 수식 입력 Worksheets(1).Range("A2").Formula = "=Sum(B1:B5)" Worksheets(1).Cells(2, 1).Formula = "=Sum(B1:B5)" 'Range 사용 코드 #4: 5행 삭제하기 Worksheets(1).Rows(5).Delete 'Range 사용 코드 #5: 3열(C) 삭제하기 Worksheets(1).Columns("C").Delete Worksheets(1).Columns(3).Delete 'Range 사용 코드 #6: A1:A2 cell 병합 Worksheets(1).Range("A1:A2").Merge
これまで見てきたExcel Object Modelの階層構造と概念、用途を簡単にまとめると次のようになる。
以上でExcel Object Modelについて簡単に調べた。オブジェクトブラウズ機能で詳しく見ると、マウスとキーボードで実行できるExcelのすべての機能とプロパティ、イベントがObject Modelで提供されることがわかります。したがって、Excelの機能をよく理解し、十分に活用している限り、Excel Object Modelをうまく活用できます。エクセルを活用するだけにエクセルVBAを活用できるという意味だ。
次に、Excel Object Modelのオブジェクトを使用するサンプルコードを見て、Excel Object Modelについてもう少し詳しく説明します。
<<関連記事一覧>>
- Excel VBAコースを開始します。 (講座予告、feat.Excel VBAを推奨する理由)
- Excel VBAコース(1):Excel VBAの概要
- Excel VBAコース(2):Excel VBAの基礎
- Excel VBAコース(3):Excel Object Model
- Excel VBAコース(4):Excel Object Modelを扱う
- Excel VBAコース(5):Excelファイル拡張子、VBE、フォント設定
- Excel VBAコース(6):Excel VBA言語基本 - 変数
- Excel VBAコース(7):Excel VBA言語基本 - 文法(Syntax)
- Excel VBAコース(8):Excel VBA言語基本 - データ型(Data type)、データ構造(Data structure)
- Excel VBAコース(9):Excel VBA How-To
- Excel VBAコース(10):Excel VBAで開発され使用されているツール
- Excel VBAコース全体目次