Object | Description |
---|---|
Application | Excelアプリケーション自体を表すオブジェクト |
FormatConditions | ひとつのセル範囲の条件付き書式(FormatCondition)のコレクション |
Range | セル、行、列、ひとつ以上のセル範囲を含む選択範囲又は3-D範囲を表すオブジェクト |
Worksheet | ワークシートを表すオブジェクト |
Worksheets | 指定したブックまたは作業中のブックにあるすべてのWorksheetオブジェクトのコレクション |
VBAでExcelのブック(ファイル)を開くには、Workbooks.Openメソッドを使用する。
Workbooks.Open "book.xlsx"
VBAでExcelのブックを閉じるには、Workbook.Closeメソッドを使用する。
Workbooks("book.xlsx").Close
VBAでExcelのブック名を取得するには、ActiveWorkbook.Name又はThisWorkbook.Nameを参照する。
ActiveWorkbook.Name
ThisWorkbook.Name
ブック(ファイル)を開いたときに、Auto_Openという名前のSubプロシージャが存在すれば自動的に実行される。プロシージャ名は大文字でも小文字でもよい。
Sub Auto_Open()
' ブック(ファイル)を開いたときに自動的に実行する処理
End Sub
アクティブなワークシートのWorksheet
オブジェクトを取得するには、Applicationオブジェクト、Windowオブジェクト又はWorksheetオブジェクトのActiveSheet
プロパティを参照する。
Dim sheet1 As Worksheet
Set sheet1 = ActiveSheet
Dim ws As Worksheet
Dim i As Integer
i = 0
For Each ws In Worksheets
i = i + 1
Cells(i, 1) = ws.Name
Next
VBAからMicrosoft Excel ワークシートのセルを操作する場合、ワークシートを明示的に指定しなければ、現在アクティブなワークシートのセルが対象となります。
アクティブなワークシートを切り替えるには、次に示すいずれかの方法で行います。
Worksheets.Activateメソッドの構文を次に示します。
Worksheets("シート名").Activate
Worksheets.Activateメソッドを使用してワークシートをアクティブにするVBAソースコードの例を次に示します。
Worksheets("Sheet1").Activate
セルにデータを入力するには、次に示すいずれかの方法を使用します。
Sheet1
の列3の値が "原油"
の行だけを Sheet2
にコピーするVBAの例を次に示します。
Dim i As Integer
Dim o As Integer
Dim j As Integer
Worksheets("Sheet1").Activate
o = 1
' Sheet1の100行が対象
For i = 1 To 100
If Cells(i, 3).Value = "原油" Then
' 10列分コピーする
For j = 1 To 10
Worksheets("Sheet2").Cells(o, j).Value = Cells(i, j)
Next j
o = o + 1
End
Next i