VBA入門:Excelマクロを基礎から学習

この「VBA入門」シリーズは、ExcelマクロVBAを習得し、日々のExcel作業を効率化・自動化できるようになることを目指します。
VBAが初めての方でも無理なくステップアップできるよう、基礎から丁寧に、そして段階的に解説を進めます。
そのため、シリーズ後半では入門レベルに留まらず、実務レベルで通用する高度なテクニックや幅広い知識までしっかりカバーしています。
「マクロ」と「VBA」の違いについて
実は、役割が少し違うんです。ここで簡単に解説しますね。
Q.「マクロ」って何?
皆さんが普段手作業でやっている入力や集計、グラフ作成といった一連の操作を、「記録」して「再生」するようなイメージです。
Q.じゃあ、「VBA」は?
「VisualBasicforApplications」の略称で、Excelに標準装備されています。
VBAを使ってコードを書くことで、マクロの動きを自由にカスタマイズしたり、もっと複雑な処理をさせたりできるようになります。
まとめ(マクロとVBAの違い)
マクロ:エクセルの自動化機能
VBA:マクロを記述しているプログラミング言語
マクロは「自動化という働き」そのもので、VBAはその「働きを実現するための言葉(プログラム)」と言えます。
VBAを覚えれば、Excelの自動化が自在になるわけです。
Excel VBAとは?マクロとの違いやメリット・デメリットを初心者向けに解説
このシリーズで、何が学べるの?(対応範囲について)
VBA自体はExcelだけでなく、WordやPowerPointなど他のOfficeアプリでも使える共通の技術ですが、このシリーズでは「Excelでの自動化」に絞って解説します。
まるで外国語のように、VBAも文法を知るだけでは使えるようになりません。
たくさん聞いて、たくさん話す(コードを読む、書く)練習が必要です。
このシリーズでは、具体的な「使用例」を豊富に用意していますので、それを通してVBAの感覚を掴み、着実に慣れていくことができます。
ですが、ルールを知るだけでは面白くありませんし、実際に使えるようにはなりません。
実際にコードが動いたときの喜びは何物にも代えがたいでしょう。
「VBA入門」シリーズは、その実感を大切にします。
具体的な使用例を豊富に盛り込んでいますので、まずはそれらを真似ることから始めて、少しずつ、あなた自身の力でVBAを使いこなせるようになってください。
VBA入門のページ内目次
1-2. RangeとCells
1-3. 変数と繰り返し処理
1-4. If条件分岐
1-5. 関数とは、引数とは
1-6. ブック、シート、セル
1-7. セルの書式
1-8. 別シートにセルをコピー
1-9. VBA関数
1-10. オブジェクトとは、コレクションとは
1-11. ブック・シートを安全に扱う
4-2. 印刷ページ設定
4-3. 組み込みダイアログ
4-4. ファイル操作Ⅰ
4-5. Rangeの必須プロパティ
4-6. エクセルの機能を使い倒す
4-7. プロシージャー分割
7-2. 途中でくじけてしまった人は実践重視で
7-3. VBAエキスパートを受験する人は参考書として
7-4. VBAの特訓をしたい人にはVBA本ノック
7-5. VBAの不明点を調べるなら
7-6. ユーザーフォーム入門
7-7. VBAクラス入門
「VBA入門」シリーズ学習の進め方
【初心者の方へ】まずは「ざっくり」進めよう!
難しいコードが出てきても、一度で完璧に理解しようとする必要はありません。
「へぇ、こんなことができるのか」くらいの気持ちで読み進めるのがコツです。
先に進むうちに、「あの時のあれはこういうことだったのか!」と後から理解できることが多々あります。
もし分からなくなったら、遠慮なく前のPGRに戻ったり、関連する解説をチェックしたりしてください。
繰り返すうちに、きっとVBAが身についていることを実感できます。
【経験者の方へ】知りたい情報に直行!
前提となるExcelの知識について
もしExcel自体に不安を感じる場合は、先に「エクセル入門」で基礎を固めておくと、VBA学習がよりスムーズになります。
ただし、必須ではありません。
VBAの解説の中で出てくるExcelの機能については、その都度確認しながら進めることも十分可能です。
VBAの学習順序の参考
VBA学習のロードマップとして、このページの目次をコンパクトにまとめたものです。
ExcelマクロVBAの基礎を学習する方法
とにかく実戦を通して素早く身に付けたい人は、こちらから始めると良いでしょう。
Excelマクロ再入門
ツイッター等でお勧めしているお勧めの学習コース
【VBA学習のお勧めコース】
VBA入門の復習・学習成果の確認
VBA入門 4択クイズ
AI×VBA:AIをVBA開発に活用
前半の抜粋・要約
さっと読み進めたい場合にご利用ください。
ただし、より正確に詳細を把握したい場合は本来の記事ページをお読みください。
解説ページの基本の章立て
もっとも多い基本の章立ては、
・概要
・構文
・解説
・使用例
このようになっています。
各説明文の補足として関連する他ページがあれば当該ページへリンクさせています。
サイト内の関連ページが多い場合は、ページの最後にまとめて一覧掲載しています。
※以下で表示している回数はWEB公開順になります。それとは別に学習順で目次を並べ替えている箇所があります。
コメントなしの目次だけのページはこちら(ExcelマクロVBA入門の簡易目次)
1. VBAの基礎・基本:VBA入門
ExcelマクロVBAが初めての方にも分かるようになるべく平易に詳しく解説しました。
1-1. マクロとは、VBAとは
1-2. RangeとCells
1-3. 変数と繰り返し処理
1-4. If条件分岐
1-5. 関数とは、引数とは
1-6. ブック、シート、セル
1-7. セルの書式
1-8. 別シートにセルをコピー
1-9. VBA関数
1-10. オブジェクトとは、コレクションとは
1-11. ブック・シートを安全に扱う
基本とはいえ、ここまで習得出来ればかなりExcel VBAを書けるようになっているはずです。
2. VBA入門に必要なVBEの基本的使い方
VBE(Visual Basic Editor)の使い方と、デバッグ方法について確認しておきましょう。
3. VBAプログラミングの基礎・基本
以下はVBA入門シリーズとは別記事です。
気になるタイトルのみ拾い読みで良いでしょう。
実は奥が深いIfステートメント
論理積(And)論理和(Or)と真(True)偽(False)の判定
条件式のいろいろな書き方:TrueとFalseの判定とは
VBAでの括弧()の使い方、括弧が必要な場合
VBAにおけるピリオドとカンマとスペースの使い方
変数とプロシージャーの命名について
文字列置換の基本と応用(Replace)
データクレンジングと名寄せ
ForとIfのネストこそがVBAの要点
VBAを定型文で覚えよう
For Next の使い方いろいろ
複数条件判定を行う時のコツ
VBAの省略可能な記述について
VBAこれだけは覚えておきたい必須基本例文10
『演算子 + オペランド』から始めるVBA学習
4. Excel各種機能とオブジェクトの理解:VBA入門
オブジェクト・プロパティ・メソッド といったプログラミングの専門用語が頻繁に出てきます。
言葉の定義にとらわれず、一つ一つが何を意味しているのか全体像を把握するようにしてください。
ただし、Excelの各種機能に該当するVBAコードについては暗記する必要はありません。
必要な時に直ぐに調べられるように、一通り見ておく事が重要です。
オブジェクトを意識したVBAを書くために、まず最初に以下を読んでおいてください。
エクセルのオブジェクトはとても複雑です。
オブジェクトのどのプロパティを設定すれば望みの状態にできるかを調べるのはかなり大変です。
オブジェクトの探索方法|マクロVBA技術解説
VBAでは独自のプロパティを作成することもできます。
第140回.Property {Get|Let|Set} ステートメント
4-1. シートを壊さない為に
4-2. 印刷ページ設定
4-3. 組み込みダイアログ
4-4. ファイル操作Ⅰ
4-5. Rangeの必須プロパティ
4-6. エクセルの機能を使い倒す
第89回.オートフィルター(AutoFilter)
第90回.フィルターオプションの設定(AdvancedFilter)
第91回.条件付き書式(FormatCondition)
第126回.入力規則(Validation) ・・・ 後日追加
第92回.名前定義(Names)
第93回.ピボットテーブル(PivotTable)
第94回.コメント(Comment)
第95回.ハイパーリンク(Hyperlink)
第96回.グラフ(Chart)
第97回.図形オートシェイプ(Shape)
第136回.フォームコントロール ・・・ 後日追加
第137回.ActiveXコントロール ・・・ 後日追加
第98回.Findメソッド(Find,FindNext,FindPrevious)
第99回.Replaceメソッド(置換)
第132回.その他のExcel機能(グループ化、重複の削除、オートフィル等) ・・・ 後日追加
第135回.ジャンプの選択オプション(SpecialCells) ・・・ 後日追加
第141回.行・列の表示・非表示・列幅・行高
4-7. プロシージャー分割
複数の部品を使い全体を組み立てていきます。
第106回.Functionプロシージャー
第107回.プロシージャーの引数
第108回.変数の適用範囲(スコープ,Private,Public)
5. VBA初級からVBA中級を目指して
VBA習得としては、既に入門を脱して次の段階に入っています。
すぐに理解できなくても構いませんので、VBAスキルアップに必要なものとして取り組んでください。
5-1. Applicationの便利メソッド
5-2. Enum、Type、配列
5-3. ファイル操作Ⅱ
5-4. VBA拡張機能
5-5. 外部ライブラリの利用
事前バインディングと遅延バインディング(実行時バインディング)
参照設定、CreateObject、オブジェクト式の一覧
VBAで正規表現を利用する(RegExp)
Dictionary(ディクショナリー)連想配列の使い方について
Dictionary(ディクショナリー)のパフォーマンスについて
6. VBA入門の後日追加記事
そこで、他のシリーズではなく、ここに記載しておいた方が良いと思うものを追加しました。
抜け番は、本来の章の位置に入れています。
6-1. イベント
6-2. テーブル機能
6-3. その他諸々
全てを暗記することは困難ですし、その必要もありません。
マクロVBA開発の実務で不明な事がでてきたら、このページを検索して復習すれば良いことです。
一度学習したことは、案外簡単に思い出せるものです。
7. VBA入門その後の学習について
7-1. 復習したい人は練習問題で確認しましょう
7-2. 途中でくじけてしまった人は実践重視で
7-3. VBAエキスパートを受験する人は参考書として
7-4. VBAの特訓をしたい人にはVBA100本ノック
VBA100本ノック:VBAの特訓
ツイートでも出題しているので引用リプ等で回答すると多くの人に見てもらえるので良い刺激になると思います。
VBA100本ノック参加者ご紹介
それぞれの段級位における習得技術を一覧にしたものです。
何級まで進んでいるかチェックしてみると励みになると思います。
エクセルVBA 段級位 目安
分からない事があったら以下で調べながら自分で解決できるはずです。
7-5. VBAの不明点を調べるなら
VBAでは、ユーザーフォームを作ることで、より使いやすい画面にすることができます。
7-6. ユーザーフォーム入門
第2回.フォームのプロパティ
第3回.コントロールの追加(コマンドボタン)
第4回.コントロールの位置・サイズ調整
第5回.ラベルの追加
第6回.テキストボックスの追加
第7回.テキストボックスの値をセルへ
第8回.セルの値をテキストボックスへ
第9回.標準モジュールとフォーム間のデータ受け渡しⅠ
第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
第11回.コンボボックス(ComboBox)の追加
第12回.リストボックス(ListBox)の追加
第13回.チェックボックス(CheckBox)の追加
第14回.オプションボタン(OptionButton)の追加
第15回.ここまでの整理と完成VBA
第16回.アクティブコントロールに色を付ける
第17回.Enterキーで次のコントロールに移動する
第18回.2段階のコンボボックス
第19回.数値専用のテキストボックス
第20回.テキストボックスの各種イベント
第21回.ユーザーフォームの各種イベント
第22回.コントロールの動的作成
第23回.イベントプロシージャーの共通化
第24回.イベントプロシージャーの共通化(Enter,Exit)
第25回.簡易音楽プレーヤーの作成
第26回.プログレスバーを自作する
第27回.インクリメンタルサーチの実装
本格的にVBA使いを目指すなら、VBAクラスの習得は必須です。
7-7. VBAクラス入門
VBAクラスの作り方:列名の入力支援と列移動対応
VBAクラスの作り方:列名のプロパティを自動作成する
VBAクラスの作り方:独自Rangeっぽいものを作ってみた
クラスを使って他ブックのイベントを補足する
クラスとイベントとマルチプロセス並列処理
クラスとCallByNameとポリモーフィズム(多態性)
オートフィルターを退避回復するVBAクラス
オートフィルター退避回復クラスを複数シート対応させるVBAクラス
コレクション(Collection)の並べ替え(Sort)に対応するクラス
VBAクラスのAttributeについて(既定メンバーとFor…Each)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)
VBAで音楽再生するクラスを作成
図形を方程式で動かすVBAクラス
PropertyのSetはLetでも良い
「VBA入門」の記事を学校の授業もしくは企業研修でお使いになる場合
できれば本サイト名「エクセルの神髄」もしくはURLを記載していただければ幸いです。
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
