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

マクロVBA入門シリーズでは、ExcelマクロVBAを実務で自在に使いこなし業務を効率化できるようになることを目的として、始めはより詳しく丁寧に解説しつつ少しずつ難易度を上げることで無理なく学習を進められるようにしています。
VBAとはOffice製品に標準搭載されているプログラミング言語で、「Visual Basic for Applications」の略です。
つまり、エクセルの「マクロ機能」の中身をプログラミング言語である「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学習の進め方について
理解できない部分があっても、細部にこだわらず時には先に進んでください。
先に進むことで、以前は理解できなかったことが理解できるようになっている場合もあります。
必要に応じて関連項目を復習することで、いつの間にか理解が進んでいることを実感できるはずです。
Word、PowerPoint、Access、OutLook等々でマクロ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. オブジェクトとは、コレクションとは
第51回.Withステートメント
1-11. ブック・シートを安全に扱う
ここまではVBA入門として最低限の基本になります。
基本とはいえ、ここまで習得出来ればかなりExcel VBAを書けるようになっているはずです。
2. VBA入門に必要なVBEの基本的使い方
VBE(Visual Basic Editor)の使い方と、デバッグ方法について確認しておきましょう。
3. VBAプログラミングの基礎・基本
以下はVBA入門シリーズとは別記事です。
気になるタイトルのみ拾い読みで良いでしょう。
4. Excel各種機能とオブジェクトの理解:VBA入門
オブジェクト・プロパティ・メソッドといったプログラミングの専門用語が頻繁に出てきます。
また、Excelの各種機能に該当する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 ・・・新着記事一覧を見る
ByRef引数の型が一致しません。|ツイッター出題回答 (2023-09-22)
シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。