VBA入門:Excelマクロを基礎から学習
この「VBA入門」シリーズは、ExcelマクロVBAを実務で自在に使いこなし業務を効率化・自動化できるようになることを目的としています。
始めはより詳しく丁寧に解説しつつ少しずつ難易度を上げることで無理なく学習を進められるようにしています。
ただし入門といっても、後半にはかなり高度な内容にも触れています。
「マクロ」と「VBA」の違い
VBAはOffice製品に標準搭載されているプログラミング言語で、「Visual Basic for Applications」の略です。
エクセルに「マクロ機能」という自動化の機能があり、その中身がプログラミング言語である「VBA」で記述されています。
VBAで処理を記述していくことで、エクセル操作を完全自動化することができます。
VBA入門シリーズの主な対応範囲
WinAPIを呼び出すことも出来るので、Windowsのほぼすべての機能が使えると言っても良いでしょう。
しかし、「できる」ことと「やるべきこと」は違うので、この点は気を付けてください。
基本的には、VBAはOffice製品に付属された機能拡張用のスクリフト言語(比較的簡単に書きやすい言語)です。
本シリーズでは仕事で発生するエクセル業務の自動化を主な題材としていますので、特殊な使い方についてはあまり触れていません。
Word、PowerPoint、Access、OutLook等々でマクロVBAは動作します。
ただし、この「VBA入門」ではエクセル(Excel)のマクロVBAのみ扱っていきます。
VBAはプログラミング言語ですので文法がありますが、文法だけを覚えても言語は使いこなせません。
言語を使いこなすには実戦での慣れが必要ですので、使用例を通して少しずつ慣れていってください。
※以下で表示している回数はWEB公開順になります。それとは別に学習順で目次を並べ替えている箇所があります。
コメントなしの目次だけのページはこちら(Excelマクロ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学習の進め方について
理解できない部分があっても、細部にこだわらず時には先に進んでください。
先に進むことで、以前は理解できなかったことが理解できるようになっている場合もあります。
必要に応じて関連項目を復習することで、いつの間にか理解が進んでいることを実感できるはずです。
中・上級者の方は、目次から必要な項目をご覧ください。
ExcelマクロVBAをやるにあたっての前提知識
エクセル全般(シート関数含む)の知識に不安がある場合は、こちらを先にご覧ください。
エクセル入門
ただし、エクセルの機能関数で解らない部分があっても、その機能関数に関するVBA学習の時点で学習しても問題ありません。
あくまで事前知識があると学習が楽だということです。
VBAの学習順序の参考
VBA学習のロードマップとして、このページの目次をコンパクトにまとめたものです。
ExcelマクロVBAの基礎を学習する方法
Excelマクロ再入門
【VBA学習のお勧めコース】
前半の抜粋・要約
さっと読み進めたい場合にご利用ください。
ただし、より正確に詳細を把握したい場合は本来の記事ページをお読みください。
解説ページの基本の章立て
もっとも多い基本の章立ては、
・概要
・構文
・解説
・使用例
このようになっています。
各説明文の補足として関連する他ページがあれば当該ページへリンクさせています。
サイト内の関連ページが多い場合は、ページの最後にまとめて一覧掲載しています。
1. VBAの基礎・基本:VBA入門
ExcelマクロVBAが初めての方にも分かるようになるべく平易に詳しく解説しました。
1-1. マクロとは、VBAとは
1-2. RangeとCells
1-3. 変数と繰り返し処理
第19回.総合練習問題1
1-4. If条件分岐
1-5. 関数とは、引数とは
第26回.総合練習問題2
1-6. ブック、シート、セル
第30回.総合練習問題3
1-7. セルの書式
第36回.総合練習問題4
1-8. 別シートにセルをコピー
第43回.総合練習問題5
1-9. VBA関数
第50回.総合練習問題6
第87回.WorksheetFunction(ワークシート関数を使う) … 公開順から学習順に変更しています
1-10. オブジェクトとは、コレクションとは
1-11. ブック・シートを安全に扱う
基本とはいえ、ここまで習得出来ればかなりExcel VBAを書けるようになっているはずです。
2. VBA入門に必要なVBEの基本的使い方
VBE(Visual Basic Editor)の使い方と、デバッグ方法について確認しておきましょう。
3. VBAプログラミングの基礎・基本
以下はVBA入門シリーズとは別記事です。
気になるタイトルのみ拾い読みで良いでしょう。
4. Excel各種機能とオブジェクトの理解:VBA入門
オブジェクト・プロパティ・メソッド といったプログラミングの専門用語が頻繁に出てきます。
言葉の定義にとらわれず、一つ一つが何を意味しているのか全体像を把握するようにしてください。
ただし、Excelの各種機能に該当するVBAコードについては暗記する必要はありません。
必要な時に直ぐに調べられるように、一通り見ておく事が重要です。
オブジェクトを意識したVBAを書くために、まず最初に以下を読んでおいてください。
オブジェクトのどのプロパティを設定すれば望みの状態にできるかを調べるのはかなり大変です。
オブジェクトの探索方法|マクロVBA技術解説
第140回.Property {Get|Let|Set} ステートメント
4-1. シートを壊さない為に
4-2. 印刷ページ設定
4-3. 組み込みダイアログ
4-4. ファイル操作Ⅰ
4-5. Rangeの必須プロパティ
第86回.総合練習問題10
4-6. エクセルの機能を使い倒す
4-7. プロシージャー分割
複数の部品を使い全体を組み立てていきます。
自動化したいことのほとんどは、ここまでで実現できるはずです。
ExcelマクロVBA練習問題
5. VBA初級からVBA中級を目指して
VBA習得としては、既に入門を脱して次の段階に入っています。
すぐに理解できなくても構いませんので、VBAスキルアップに必要なものとして取り組んでください。
5-1. Applicationの便利メソッド
5-2. Enum、Type、配列
5-3. ファイル操作Ⅱ
5-4. VBA拡張機能
5-5. 外部ライブラリの利用
事前バインディングと遅延バインディング(実行時バインディング)
6. VBA入門の後日追加記事
そこで、他のシリーズではなく、ここに記載しておいた方が良いと思うものを追加しました。
抜け番は、本来の章の位置に入れています。
6-1. イベント
6-2. テーブル機能
6-3. その他諸々
全てを暗記することは困難ですし、その必要もありません。
マクロVBA開発の実務で不明な事がでてきたら、このページを検索して復習すれば良いことです。
一度学習したことは、案外簡単に思い出せるものです。
7. VBA入門その後の学習について
7-1. 復習したい人は練習問題で確認しましょう
7-2. 途中でくじけてしまった人は実践重視で
マクロVBA再入門
7-3. VBAエキスパートを受験する人は参考書として
VBAエキスパート対策
7-4. VBAの特訓をしたい人にはVBA100本ノック
VBA100本ノック:VBAの特訓
VBA100本ノック参加者ご紹介
筆者の独断と偏見で、エクセルVBAのスキルに段級位をつけてみました。
それぞれの段級位における習得技術を一覧にしたものです。
何級まで進んでいるかチェックしてみると励みになると思います。
エクセルVBA 段級位 目安
分からない事があったら以下で調べながら自分で解決できるはずです。
7-5. VBAの不明点を調べるなら
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 ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。