VBAオブジェクト

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 2月 5, 2023

Excel VBAのオブジェクトは、コードとデータで構成される1つの「実体」を指します。Excelアプリケーション自体も、ワークブック、ワークシート、セル範囲、図形と同様にオブジェクトです。すべてのオブジェクトは、関連するプロパティとメソッドを持っています。オブジェクトは他のオブジェクトを含むことができ、同じExcelオブジェクトのグループを参照するためにコレクションオブジェクトが使用されます。

このチュートリアルでは、一般的に使用されるExcelオブジェクトをいくつか見ていきます。

Applicationオブジェクト

Applicationオブジェクトは、Excelアプリケーション全体を指します。Application オブジェクトはワークブックオブジェクトを含んでいます。

以下のコードでは、ApplicationオブジェクトのWindowStateプロパティを使用して、Excelウィンドウを使用可能な最大サイズに設定しています。

Sub MaximizingTheExcelWindow()

Application.WindowState = xlMaximized

End Sub

Workbooksオブジェクト

Workbooksオブジェクトは、現在開いているすべてのExcelワークブックのコレクションです。

以下のコードでは、Workbooks.Addメソッドを使用して新しいワークブックを作成し、それをコレクションに追加しています。

Sub AddingANewWorkbookToTheWorkbooksCollection()

Workbooks.Add

End Sub

Workbooksコレクション内の個々のワークブックには、そのインデックス番号または名前を通してアクセスできます。つまり、Workbooks(“ExcelWB”)を使用すれば、ExcelWbというワークブックを参照することができます。

Workbookオブジェクト

Workbookオブジェクトは、Workbooks コレクションの一部です。Workbookオブジェクトは、Worksheetsコレクション(ワークシート)とSheetsコレクション(ワークシート、チャートシート、マクロシート)を含んでいます。ActiveWorkbook オブジェクトは、アクティブになっているワークブックを指します。 以下のコードでは、ActiveWorkbook.Saveメソッドを使って、現在アクティブなワークブックを保存しています。

Sub SavingTheWorkbook()

ActiveWorkbook.Save

End Sub

Sheetsオブジェクト

Sheetsオブジェクトは、ワークブック内のすべてのワークシート、チャートシート、マクロシートのコレクションを指します。次のコードは、Sheets.Addメソッドを使って、ExtraSheetという新しいワークシートを、ワークブックの最後のワークシートの後に追加しています。

Sub AddingANewSheet()

ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(Worksheets.Count), _
Count:=1, Type:=xlWorksheet).Name = "ExtraSheet"

End Sub

Sheets.Addメソッドの構文に注意してください。

Sheets.Add(Before,After,Count,Type)

– Beforeはオプションで、新しいシートが既存のシートの前に追加されることを指定します。

– After はオプションで、新しいシートが既存のシートの後に追加されるように指定します。

– Count はオプションで、追加するシートの枚数を指定します。

– Type はオプションで、追加するシートの種類を指定します。xlWorksheetは新しいワークシートを、xlChartは新しいチャートシートを、xlExcel4MacroSheetまたはxlExcel4IntlMacroSheetは新しいマクロシートを追加します。空白の場合、デフォルトのxlWorksheetが使用されます。

Sheetsコレクション内の個々のシートには、そのインデックス番号または名前からアクセスできます。つまり、Sheets(“SheetOne”)を使用すれば、SheetOneというワークシートを参照することができます。

Worksheetsオブジェクト

Worksheetsオブジェクトは、ワークブック内のすべてのワークシートのコレクションを参照します。以下のコードでは、Worksheets.Addメソッドを使用して、新しいワークシートを追加しています。

Sub AddingANewSheet()

Worksheets.Add

End Sub

Worksheetsコレクション内の個々のシートには、そのインデックス番号や名前を使ってアクセスすることができます。つまり、Worksheets(“SheetTwo”)を使えば、SheetTwoというWorksheetを参照することができます。

Worksheetオブジェクト

Worksheetオブジェクトは、Worksheets コレクションの一部です。Worksheetオブジェクトには、Range オブジェクトやその他のオブジェクトが含まれています。ActiveSheet オブジェクトは、アクティブになっているシートを参照します。 次のコードは、アクティブなシートのページの向きをランドスケープに変更します。

Sub ChangingOrientationToLandscape()

ActiveSheet.PageSetup.Orientation = xlLandscape

End Sub

SheetオブジェクトはPageSetupオブジェクトを含み、そのOrientationプロパティがxlLandscapeに設定されたことに注目してください。

Range オブジェクト

Range オブジェクトは、ワークシート内の 1 つのセルまたはセルの集合を参照することができます。次のコードは、Range.Selectメソッドを使って、セルA1:B1を選択する方法を示しています。

Sub SelectingARange()

Range("A1:B1").Select

End Sub

Shapesオブジェクト

Shapesオブジェクトは、ワークシートにあるすべての図形のコレクションです。以下のコードでは、ActiveSheetにあるすべての図形を選択します。

Sub SelectingAllTheShapes()

ActiveSheet.Shapes.SelectAll

End Sub

Shapeオブジェクト

Shapeオブジェクトは、Shapesコレクションの一部です。次のコードは、丸みを帯びた四角形のシェイプを作成し、ShapeオブジェクトのNameプロパティを設定するものです。

Sub UsingTheShapeObject()

With Worksheets(1).Shapes.AddShape(msoShapeRoundedRectangle, 200, 100, 80, 80)
.Name = "丸みを帯びた長方形"

End With

End Sub

Excel VBAのオブジェクトモデル

ExcelのVBAオブジェクトモデルは、Excelで使用できるすべてのオブジェクトの階層を記述しています。例えば、Workbooksオブジェクトを使用して、他のすべてのオブジェクトを間接的または直接的に参照することができます。次のコードは、階層構造を使用してセルA1を選択する方法を示しています。

Sub UsingTheHierachicalStructure()

Workbooks("Book1").Worksheets("Sheet1").Range("A1").Select

End Sub

オブジェクト変数の宣言と代入

DimキーワードとSetキーワードを使って、オブジェクトを変数に宣言し、代入することができます。 たとえば、以下のようになります。

Dim ws as worksheet
Set ws = ActiveWorkbook.ActiveSheet

次のコードは、Rangeオブジェクトを宣言し、変数に代入する方法を示しています。

Sub AssigningARangeToAVariable()

Dim rngOne As Object
Set rngOne = Range("A1:C1")

rngOne.Font.Bold = True
With rngOne
.Font.Bold = True
.Font.Name = "Calibri"
.Fond.Size = 9
.Font.Color = RGB(35、78、125)
.Interior.Color = RGB(205, 224, 180)
.Borders(xlEdgeBottom).LineStyle = xlContinuous
End With

End Sub

結果は次のようになります。

Assigning a Variable to a Object in VBA

VBAを使いこなすには、オブジェクトの働きを理解することが不可欠です。インタラクティブなVBAチュートリアルで、より深く学ぶことができます。

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples