VBA基礎入門1:Book・Sheet・Cell・Rangeの使い方

に公開

VBA基礎入門:Book・Sheet・Cell・Rangeの使い方

はじめに

VBAでのExcel操作は「ブック(Book)」「シート(Sheet)」「セル(Cell)」「範囲(Range)」を理解することが第一歩です。
今回はそれぞれの基本的な使い方を簡単な例で紹介します。


1. Book(ブック)操作

Workbooksコレクションを使って操作します。

' 新しいブックを作る
Dim wb As Workbook
Set wb = Workbooks.Add

' 既存のブックを開く
Set wb = Workbooks.Open("C:\Users\あなたの名前\Documents\sample.xlsx")

' 保存してブックを閉じる
wb.Close SaveChanges:=True

ポイント:Setでオブジェクトを代入することを忘れないようにしましょう。

2. Sheet(シート)操作

WorksheetsコレクションやSheetsコレクションを使います。

' 変数の宣言
Dim ws As Worksheet

' アクティブブックの1枚目のシートを取得
Set ws = ThisWorkbook.Worksheets(1)

' 名前でシートを取得
Set ws = ThisWorkbook.Worksheets("Sheet1")

' 新しいシートを追加
Set ws = ThisWorkbook.Sheets.Add
' ポイント:
' ThisWorkbook → このVBAが書かれているブック
' ActiveWorkbook → 今アクティブなブック

3. Cell(セル)操作

単一セルの値取得・書き込みを行います。

' セルに値を入れる
ws.Range("A1").Value = "こんにちは"

' セルの値を取得
Dim val As String
val = ws.Range("A1").Value
ws.Cells(1, 1).Value = "こんにちは"
' ポイント:セル参照には Range("A1") の他に Cells(1,1) も使えます。
' .Valueは省略可能です。

4. Range(範囲)操作

複数セルや範囲を扱います。

' 複数セルに値を一括入力
ws.Range("A1:B2").Value = 100

' 範囲をループして値を取得
Dim rng As Range, c As Range
Set rng = ws.Range("A1:B2")
For Each c In rng
    Debug.Print c.Value
Next c
' ポイント:範囲は1セルでも複数セルでも Range で指定できます。
' 「ws.Range(ws.Cells(1, 1), ws.Cells(2, 2)) = 100」のような書き方も可能です。

まとめ
VBAの基本操作は「Book → Sheet → Cell/Range」の順で理解すると整理しやすいです。

まずはセルや範囲に値を入れたり取得したりする練習から始めましょう。

Discussion