
ExcelVBAを学び始めたものの、
- 「命令の意味は分かるけど、何に使うのか分からない」
- 「実際にどう作ればいいのかイメージできない」
と感じたことはありませんか?
多くの入門解説では、
- If文の使い方
- For文の書き方
- CellsやRangeの説明
といった内容が中心になります。
もちろん、これらは大切ですが、それだけでは「実際に作れる状態」にはなりにくいのも事実です。
- どの命令をどう組み合わせればいいか分からない
- 結局、手が止まってしまう
このような状態になりやすい。
そこで本記事では、考え方を逆にしています。
- まず「実務でやる処理」を理解する
- その中で「命令の役割」を知る
この内容は、過去1年間、30万人が閲覧した記事をもとに、「データ分割」で流れから理解できる講座を再構成

実務処理でよく使われる鉄板マクロコードをもとに、
実務処理の内容を中心に、命令が理解できる。実務で使えるExcelVBA初心者講座を解説します。
「分かる」だけで終わらず、「自分で作れる」状態を目指したい方
まず最初にマクロ(ExcelVBA)が使える状態にするところから、ひとつずつ解説します。
この記事はかなりボリュームがあり、「実務で使えるところまで」をすべて解説しています。ブックマークして少しずつ読み進めてください。途中まででも理解が進むように構成しています。
マクロ(ExcelVBA)コードを書く準備
最初にマクロ(ExcelVBA)コードを書く準備の設定を解説します。
ここで説明する内容は、あなたのパソコンで最初に1回する準備になります。
Excelをクリックして使える状態にして、ひとつずつ操作してください。
下記画像のように、左側にこの初心者講座、右側にExcel表示する。画面を2つに分けると、毎回切替することなく操作できます。

Windowsキーと←→の矢印キーを使います。
※Windowsキー(キーボード機種により変わりますが、キーボード左下のCTRLかFnキーの右、もしくは、ALTキーの右あたりにあります)
現在表示されているのが、Excel、その裏に初心者講座がある場合
Excel画面でWindowsキーを押しながら→を押すと、画面右側に半分表示します。
その後、初心者講座を選ぶと画面左側に半分表示します。
これで、左側の初心者講座内容をスクロールしながら、右側のExcelを操作することができます。
開発タブの設定確認

開発タブがあれば、次の「マクロコードを書く場所について」へ進んでください。
開発タブの設定①

開発タブの設定②

開発タブの設定③

開発チェックできた場合は、マクロコードを書く場所へ
右側に開発がなかった場合、コマンド選択の基本的なコマンドクリック、プルダウンメニューが表示されます。
このプルダウンメニューからメインタブをクリックします。

メインタブの下に表示されているリストから開発をクリック、追加ボタンクリックで、右側に開発が表示されます。
あとは、右側に表示された開発をチェックしてOKボタンクリックです。

これで、下記のように開発タブが表示されます。

マクロコードを書く場所について
マクロコードを書く場所①

マクロコードを書く場所②

マクロコードを書く場所③

マクロコードを書く場所④

option explicitは、変数の定義(宣言)を強制する命令で、スペルミスによるエラーを防ぐためモジュールの先頭に記述します。
この記述で、書いたコードに間違いがあれば、そのコードは赤色になりエラーだとわかります。これでバグ(不具合や欠陥)を未然に防げます。
ここでは、ふーんで問題ありません。必要な設定と覚えてください。
option explicit(オプション・エクスプリシット)の設定


これで、マクロコードを書く場所③(挿入→標準モジュール)をした後、コードを書く場所の先頭に option explicit が表示されます。
コードを書いて実際に動かす
マクロコードを書く
- Sub テスト()
- MsgBox "こんにちは"
- End Sub
上記コードはメッセージを表示するマクロコードです。上記コードをドラッグアンドドロップしたあと、Ctrlキーを押したまま C (コピーして)、「コードを書く場所」に Ctrlキーを押したまま Vで貼り付けます。

マクロコードを動かす

F5キーが効かない場合は、FNキー+F5(FNキーを押したままF5を押す)を試してください。
それでも、上記のように実行されない場合は、PCのファンクションキーの設定の問題になります。
※機種により対応が異なるので、機種 ファンクションキーの設定でググって対応してください。
時間がない。もしくは調べたけど、よくわからない人は、下記操作で動かしてください。

マクロ(ExcelVBAコード)の保存
ファイル ー 名前をつけて保存

マクロの名前を付けます
保存場所を指定します。(ここはExcelと同じです)

Excelマクロ有効ブックにする

注意:「Excelマクロ有効ブック(*.xlsm)にしないで、Excelのままだと、入力したコードは消えてなくなります
保存したマクロを実行する
さっき保存したマクロをクリックして実行します。
マクロの有効化

マクロが無効にされましたが表示される理由
パソコンを守るための“安全装置”によって、いったん立ち止まり表示されています。
マクロ(VBA)は、Excelを自動で動かせます。
便利ですが、悪いプログラムも同じことができてしまう。
つまり、
- データを書き換える
- ファイルを削除する
- 別のファイルを開く
悪意のあるプログラムでも、こういったことはできます。
例えば、知らない人からもらったExcelを開いたとき、中にマクロが入っていて、開いた瞬間に自動実行される。
すると、勝手にデータが盗まれたり、データが消される処理が実行される可能性もあります。
- 自分で作ったマクロ、または信頼できるものだけ有効化にする
- 下記はコンテンツの有効化をしてはいけない
- よくわからないマクロ
- メールで受けたマクロ
- ネットから入手したマクロ
- 誰が作ったかわからないマクロ
マクロのセキュリティレベル
マクロをどれくらい慎重に動かすかを決めるのが安全設定「セキュリティレベル」です。
ひとつ前の(マクロが無効にされましたが表示される理由)章で解説した、パソコンを守るための“安全装置”の設定になります。
たとえば、家の玄関を思い浮かべてください。
- 鍵をかけない
- ⇒ 誰でも入れてしまう
- インターフォンで確認してから開ける・・・これが、コンテンツの有効化が表示される設定になります。
- ⇒ 安全
- 知っている人だけ入れる
- ⇒ さらに安全
Excelのマクロも同じです。
- 何でもそのまま動かす
- ⇒ 危険
- 確認してから動かす・・・これが、コンテンツの有効化が表示される設定になります。
- ⇒ 安全
- 信頼できるものだけ動かす
- ⇒ より安全
この「確認の厳しさ」が、セキュリティレベルの考え方です。
何度も言いますが、マクロは便利ですが、自動で動くプログラムなので、むやみに全部動かしてはいけない。
セキュリティレベルの設定(トラストセンターの設定)①

セキュリティレベルの設定(トラストセンターの設定)②

セキュリティレベルの設定(トラストセンターの設定)③

セキュリティレベルの設定(トラストセンターの設定)④

以下のいずれかのオプションを選びます。※通常は警告して、VBAマクロを無効にします。
- 警告せずにVBAマクロを無効にする(すべてのマクロが無効になります)
- 警告して、VBAマクロを無効にします(コンテンツの有効化ボタンが表示され、操作者が有効にするか判断します)
- 電子署名されたマクロを除き、VBAマクロを無効にします(信頼できる発行元による電子署名が付与されていない限り、全てのVBAマクロを自動でブロックするセキュリティ設定)
- VBAマクロを有効にする(すべてのマクロを有効にするのは危険。推奨しません)
「VBA プロジェクト オブジェクトモデルへのアクセスを信頼する」のチェックは、通常はオフで、外部ツールや自動化ツールでマクロを作成・編集する際にオンにします。いまは必要ありません。
電子署名は、公開鍵の証明書が入ってるPCで動作許可する仕組みになります。あまり使っている会社は見かけません。私の経験ですが、実務では「このフォルダにあるファイルだけは信頼する」といった運用が多いです。
実務で使える「データ分割」
実務処理でよく使われる鉄板マクロコードのひとつで、売上データを使って、担当者ごとにシートを分ける処理を、作りながらマクロコード(ExcelVBA)の基本を解説します。
このマクロコードでできること
処理イメージ
売上データ(シート)をもとに、そのシートにあるデータを担当者コードごとのシートに振り分けます。
売上データ(シート)
↓ 担当者コードで分ける
┌────────┬────────┬────────┐
A001 A002 A003
シート シート シート
シート名、売上データ内容
|
伝票No |
行 |
日付 |
担当者コード |
商品 |
金額 |
|
00001 |
1 |
2026/4/1 |
A001 |
商品A |
100 |
|
00002 |
1 |
2026/4/1 |
A002 |
商品B |
200 |
|
00003 |
1 |
2026/4/2 |
A001 |
商品C |
150 |
|
00004 |
1 |
2026/4/2 |
A003 |
商品D |
300 |
マクロコード実行後に作成する担当者コード別のシート
シート名、A0001
|
伝票No |
行 |
日付 |
担当者コード |
商品 |
金額 |
|
00001 |
1 |
2026/4/1 |
A001 |
商品A |
100 |
|
00003 |
1 |
2026/4/2 |
A001 |
商品C |
150 |
シート名、A0002
|
伝票No |
行 |
日付 |
担当者コード |
商品 |
金額 |
|
00002 |
1 |
2026/4/1 |
A002 |
商品B |
200 |
シート名、A0003
|
伝票No |
行 |
日付 |
担当者コード |
商品 |
金額 |
|
00004 |
1 |
2026/4/2 |
A003 |
商品D |
300 |
マクロコード処理全体の流れ
① 開始確認メッセージ表示
↓
② 売上データシートを読む
↓
③ 担当者コード一覧を作る
↓
④ 担当者コード別シートを作る
↓
⑤ 1行ずつ担当者コードで振り分ける
↓
⑥ 売上データシート全てのデータ処理完了でメッセージ表示
マクロコード処理概要
ふーん、SubからEnd Subの間にコードを書く、「こういう流れなんだ」くらいの理解で大丈夫です。
Sub 売上データを担当者コードごとにシート分割する()
'開始確認
'元データ取得
'担当者コード一覧作成
'シート作成
'データ振り分け
'完了メッセージ
End Sub
30万人が閲覧した記事をもとに、「データ分割」で流れから理解できる講座です。
実際に読まれ、理解された内容だけを残しています。

この先で「命令はわかる」から「自分で作れる」に変われます。
ご好評をいただいております。下記コンテンツは2026年5月末まで期間限定価格となっております。はじめてご利用の方は、事前にこちらを確認ください。 (2026年5月末までの期間限定価格:2980円⇒1000円OFFの1980円で買い切り)
有名なブログサービス「はてなブログ」も、コンテンツ販売サービスの「codoc」と連携しています。安心してご利用ください。※vba-navサイトでユーザー様のクレジットなどの決済情報は一切管理していません。
また、オンライン購入する際、個人情報の入力に不安を感じる人も、安心して購入できる代引きが使えます。