
ExcelVBA ワークシートを変数として扱うことで、繰り返し処理 や コードの可読性向上、実行速度の向上 などのメリットがあります。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBA ワークシートを変数に格納して扱う|シーン
以下のシーンで利用します。
1.特定のシートを何度も参照する
2.複数のシートを操作する
3.シート名が変更されても影響を受けにくくする
4.可読性の高いコードを書く
Excel VBA サンプルコード
ワークシートを変数に格納する方法
標準モジュール
Option Explicit
Sub シートを変数に設定()
Dim ws As Worksheet
' "Sheet1" を変数 ws に格納
Set ws = ThisWorkbook.Sheets("Sheet1")
' A1セルに値を入力
ws.Range("A1").Value = "Hello, VBA!"
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
・ Dim ws As Worksheet でワークシート型の変数 ws を宣言
・ Set ws = ThisWorkbook.Sheets("Sheet1") ` で "Sheet1" を ws に代入
・ ws.Range("A1").Value = "Hello, VBA!" でA1セルに値を設定
シートのインデックスで変数に格納
標準モジュール
Option Explicit
Sub インデックスでシート指定()
Dim ws As Worksheet
' 左から1番目のシートを指定
Set ws = ThisWorkbook.Sheets(1)
' A1セルに値を入力
ws.Range("A1").Value = "1番目のシート"
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
・ シートの並び順が変わると 異なるシートを参照するリスクがある
複数のシートを変数に格納
標準モジュール
Option Explicit
Sub 複数のシートを変数に格納()
Dim ws1 As Worksheet, ws2 As Worksheet
' Sheet1とSheet2を変数に格納
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
' Sheet1のA1セルに"データ1"を入力
ws1.Range("A1").Value = "データ1"
' Sheet2のB1セルに"データ2"を入力
ws2.Range("B1").Value = "データ2"
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
・ 複数のシートを指定 することで、可読性が向上
・ ws1.Range("A1").Value で `"Sheet1"` のセルに直接アクセス可能
ループを使って複数シートを操作
標準モジュール
Option Explicit
Sub すべてのシートにタイトルを入力()
Dim ws As Worksheet
' ワークブック内の全シートをループ
For Each ws In ThisWorkbook.Sheets
ws.Range("A1").Value = ws.Name & " のデータ"
Next ws
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
・ For Each ws In ThisWorkbook.Sheets で 全シートをループ
・ ws.Name を使って 各シート名を取得し、A1セルに入力
注意点
1. Setを忘れない
・ Set ws = ThisWorkbook.Sheets("Sheet1") の Set を省略すると エラーになる
・ オブジェクト変数には必ず Set を使う
2. シート名の変更に注意
・ ThisWorkbook.Sheets("Sheet1") の "Sheet1" が変更されると エラーになる
・ 定数を使って管理すると良い
3. インデックス指定は慎重に
・ ThisWorkbook.Sheets(1) は 並び順が変わると異なるシートを指す ので注意
Excel VBAワークシートを変数に格納して扱う|まとめ
方法 | 使い方 | 特徴 |
シート名で指定 | Set ws = ThisWorkbook.Sheets("Sheet1") | 確実に指定できる |
インデックスで指定 | Set ws = ThisWorkbook.Sheets(1) | 並び順が変わると別のシートになる |
複数シートを変数に格納 | Set ws1 = ThisWorkbook.Sheets("Sheet1") | 異なるシートを効率的に管理 |
For Eachでループ処理 | For Each ws In ThisWorkbook.Sheets | すべてのシートを処理可能 |
ワークシートを変数に格納すると、コードの可読性や実行速度が向上 するので、積極的に活用しましょう。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。