ExcelVBA入門「理解できない」を解消|実務の流れから理解する初心者講座

 

ExcelVBAを学び始めたものの、

  • 「命令の意味は分かるけど、何に使うのか分からない」
  • 「実際にどう作ればいいのかイメージできない」

と感じたことはありませんか?

 

多くの入門解説では、

  • If文の使い方
  • For文の書き方
  • CellsやRangeの説明

といった内容が中心になります。

 

もちろん、これらは大切ですが、それだけでは「実際に作れる状態」にはなりにくいのも事実です。

  • どの命令をどう組み合わせればいいか分からない
  • 結局、手が止まってしまう

このような状態になりやすい。

 

そこで本記事では、考え方を逆にしています。

  • まず「実務でやる処理」を理解する
  • その中で「命令の役割」を知る

 

この内容は、過去1年間、30万人が閲覧した記事をもとに、「データ分割」で流れから理解できる講座を再構成

過去1年間で30万人が実際に読んだ内容

実務処理でよく使われる鉄板マクロコードをもとに、

実務処理の内容を中心に、命令が理解できる。実務で使えるExcelVBA初心者講座を解説します。

 

実務で使えるレベルになりたい初心者が対象です

「分かる」だけで終わらず、「自分で作れる」状態を目指したい方

 

まず最初にマクロ(ExcelVBA)が使える状態にするところから、ひとつずつ解説します。

 

この記事はかなりボリュームがあり、「実務で使えるところまで」をすべて解説しています。ブックマークして少しずつ読み進めてください。途中まででも理解が進むように構成しています。

 

マクロ(ExcelVBA)コードを書く準備

 

最初にマクロ(ExcelVBA)コードを書く準備の設定を解説します。

 

ここで説明する内容は、あなたのパソコンで最初に1回する準備になります。

 

Excelをクリックして使える状態にして、ひとつずつ操作してください。

 

下記画像のように、左側にこの初心者講座、右側にExcel表示する。画面を2つに分けると、毎回切替することなく操作できます。

 

画面分割

 

パソコン画面を2つにわけて表示する方法

Windowsキーと←→の矢印キーを使います。
※Windowsキー(キーボード機種により変わりますが、キーボード左下のCTRLかFnキーの右、もしくは、ALTキーの右あたりにあります)

現在表示されているのが、Excel、その裏に初心者講座がある場合
Excel画面でWindowsキーを押しながら→を押すと、画面右側に半分表示します。
その後、初心者講座を選ぶと画面左側に半分表示します。

これで、左側の初心者講座内容をスクロールしながら、右側のExcelを操作することができます。

 

 

開発タブの設定確認

 

開発タブの設定

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

 

開発タブの設定①

 

開発タブを設定する

 

開発タブの設定②

 

「リボンのユーザー設定」

 

開発タブの設定③

 

開発チェック

 

開発チェックできた場合は、マクロコードを書く場所へ

 

右側に開発がなかった場合、コマンド選択の基本的なコマンドクリック、プルダウンメニューが表示されます。

このプルダウンメニューからメインタブをクリックします。

 

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

 

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

あとは、右側に表示された開発をチェックしてOKボタンクリックです。

 

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

 

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

開発タブが表示

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

option explicit(オプション・エクスプリシット)

option explicitは、変数の定義(宣言)を強制する命令で、スペルミスによるエラーを防ぐためモジュールの先頭に記述します。

この記述で、書いたコードに間違いがあれば、そのコードは赤色になりエラーだとわかります。これでバグ(不具合や欠陥)を未然に防げます。

ここでは、ふーんで問題ありません。必要な設定と覚えてください。

 

option explicit(オプション・エクスプリシット)の設定

 

option explicit①

 

 

option explicit②

 

これで、マクロコードを書く場所③(挿入→標準モジュール)をした後、コードを書く場所の先頭に option explicit が表示されます。

 

コードを書いて実際に動かす

 

マクロコードを書く

 

  1. Sub テスト()
  2.   MsgBox "こんにちは"
  3. End Sub

 

上記コードはメッセージを表示するマクロコードです。上記コードをドラッグアンドドロップしたあと、Ctrlキーを押したまま C (コピーして)、「コードを書く場所」に Ctrlキーを押したまま Vで貼り付けます。

 

コードを書いて実際に動かす①

 

マクロコードを動かす

 

コードを書いて実際に動かす②

 

F5キーが効かない場合

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万人が閲覧した記事をもとに、「データ分割」で流れから理解できる講座です。
実際に読まれ、理解された内容だけを残しています。

過去1年間で30万人が実際に読んだ内容

この先で「命令はわかる」から「自分で作れる」に変われます。

 

ご好評をいただいております。下記コンテンツは2026年5月末まで期間限定価格となっております。はじめてご利用の方は、事前にこちらを確認ください。 (2026年5月末までの期間限定価格:2980円⇒1000円OFFの1980円で買い切り)

有名なブログサービス「はてなブログ」も、コンテンツ販売サービスの「codoc」と連携しています。安心してご利用ください。※vba-navサイトでユーザー様のクレジットなどの決済情報は一切管理していません。

また、オンライン購入する際、個人情報の入力に不安を感じる人も、安心して購入できる代引きが使えます。