エクセルの神髄
VBA入門:Excelのマクロを基礎から学習

ExcelマクロVBAの基本と応用、初級・初心者向け解説です
最終更新日:2021-07-29

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


Excel VBA 入門 エクセル マクロ

マクロVBA入門シリーズでは、Excelマクロを実務で自在に扱えるようになる事を目的として、始めはより詳しく丁寧に解説しつつ、少しずつ難易度を上げることで無理なく学習を進められるようにしています。


VBAExcelの操作を自動化するマクロ機能で使われているプログラミング言語です。
Visual Basic for Applications」の略になります。
つまり、Excelにある「マクロ機能」の中身が、プログラミング言語である「VBA」で記述されているという事です。

初級・初心者の方の入門としては、まずは最初から軽く通読するようにして下さい。
理解できない部分があっても、細部にこだわらず時に先に進むことも重要です。
先に進むことで、以前は理解できなかったことが理解できるようになっている場合もあります。
折に触れて復習することで、いつの間にか理解が進んでいることを実感できるはずです。

中・上級者の方は、目次から必要な項目をご覧ください。

マクロVBA自体はOffice製品に広く搭載されています。
Word、PowerPoint、Access、OutLoo等々でマクロVBAは動作します。
ただし本マクロVBA入門ではエクセルのマクロVBAのみ扱っていきます。

※表示している回数はWEB公開順になります。それとは別に学習順で目次を並べ替えている部分があります。


VBA入門の章立て

学習順序としては、以下のページも参考にしてください。
VBA学習のロードマップ
ExcelマクロVBAの基礎を学習する方法

とにかく実戦を通して素早く身に付けたい人は、こちらから始めると良いでしょう。
Excelマクロ再入門


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. ブック・シートを安全に扱う


ここまではVBA入門として最低限の基本になります。
基本とはいえ、ここまで習得出来ればかなりExcel VBAを書けるようになっているはずです。


2. VBA入門に必要なVBEの基本的使い方

ここで、今後の学習をスムーズに進めるために、
VBE(Visual Basic Editor)の使い方と、デバッグ方法について確認しておきましょう。

3. VBAプログラミングの基礎・基本

このあたりで、VBAプログラミングの基本を見ておくと良いでしょう。
以下はVBA入門シリーズとは別記事です、拾い読みで良いでしょう。

4. Excel各種機能とオブジェクトの理解:VBA入門

ここからは、入門・初級から中級レベルに進むためのVBA知識の習得になります。
オブジェクト・プロパティ・メソッドといったプログラミングの専門用語が頻繁に出てきます。
言葉の定義にとらわれず、一つ一つが何を意味しているのか全体像を把握するようにしてください。
また、Excelの各種機能に該当するVBAコードについては、暗記する必要はありません。
必要な時に直ぐに調べられるように、一通り見ておく事が重要です。
オブジェクトを意識したVBAを書くために、まず最初に以下を読んでおいてください。
オブジェクト式について

エクセルのオブジェクトはとても複雑です。
オブジェクトのどのプロパティを設定すれば望みの状態にできるかを調べるのはかなり大変です。
オブジェクトの探索方法|マクロVBA技術解説

VBAでは独自のプロパティを作成することもできます。
第140回.Property {Get|Let|Set} ステートメント

4-1. シートを壊さない為に

4-2. 印刷ページ設定

4-4. ファイル操作Ⅰ

4-5. Rangeの必須プロパティ

4-6. エクセルの機能を使い倒す

4-7. プロシージャー分割

プロシージャーを適切な機能単位で分割し部品化します。
複数の部品を使い全体を組み立てていきます。

第105回.Callステートメント
第106回.Functionプロシージャー
第107回.プロシージャーの引数
第108回.変数の適用範囲(スコープ,Private,Public)

ここまでが、VBAで業務を自動化する上での必須になります。
自動化したいことのほとんどは、ここまでで実現できるはずです。

復習をかねて練習問題に取り組んでみましょう。
ExcelマクロVBA練習問題


5. VBA初級からVBA中級を目指して

ここからは、必要になった時に一つずつ覚えて行ってください。
VBA習得としては、既に入門を脱して次の段階に入っています。
すぐに理解できなくても構いませんので、VBAスキルアップに必要なものとして取り組んでください。

5-1. Applicationの便利メソッド

5-2. 配列

5-3. ファイル操作Ⅱ

5-4. VBA拡張機能

6. VBA入門の後日追加記事

一度完結したのですが、ここまでで漏れている内容がありました。
そこで、他のシリーズではなく、ここに記載しておいた方が良いと思うものを追加しました。
抜け番は、本来の章の位置に入れています。

6-1. イベント

6-2. テーブル機能

6-3. その他諸々

以上で、「ExcelマクロVBA入門」は完了です。(必要があれば今後も追加しますが)
全てを暗記することは困難ですし、その必要もありません。
マクロVBA開発の実務で不明な事がでてきたら、このページを検索して復習すれば良いことです。
一度学習したことは、案外簡単に思い出せるものです。


7. VBA入門その後の学習について

7-1. 復習したい人は練習問題で確認しましょう

VBA入門の進捗にあわせて全32問を用意しています。
マクロVBA練習問題

7-2. 途中でくじけてしまった人は実践重視で

VBEでのコード入力手順から実践重視の解説です。
マクロVBA再入門

7-3. VBAエキスパートを受験する人は参考書として

VBAエキスパート試験に合格するためのVBA知識と対策です。
VBAエキスパート対策

7-4. VBAの特訓をしたい人にはVBA100本ノック

ツイッター連動企画です。
VBA100本ノック:VBAの特訓
ツイートでも出題しているので引用リプ等で回答すると多くの人に見てもらえるので良い刺激になると思います。
VBA100本ノック参加者ご紹介

筆者の独断と偏見で、エクセルVBAのスキルに段級位をつけてみました。
それぞれの段級位における習得技術を一覧にしたものです。
何級まで進んでいるかチェックしてみると励みになると思います。
エクセルVBA 段級位 目安

ここでの学習が終了したら、もうVBAのエキスパートと言ってよいでしょう。
分からない事があったら以下で調べながら自分で解決できるはずです。

7-5. VBAの不明点を調べるなら

豊富なマクロVBAのサンプルと、VBAの詳細な文法と技術解説になります。
VBAリファレンス
マクロVBA技術解説
マクロVBAサンプル集


業務で多くの人が使うのなら、よりユーザーフレンドリーな画面を作りたいものです。
VBAでは、ユーザーフォームを作ることで、より使いやすい画面にすることができます。
クラスが使えるようになると、VBAの見える世界がまた変わってきます。
本格的にVBA使いを目指すなら、VBAクラスの習得は必須です。


新着記事NEW ・・・新着記事一覧を見る

VBA学習のお勧めコース|エクセル雑感(2021-08-01)
エクセル馬名ダービー|エクセル雑感(2021-07-21)
在庫を減らせ!毎日棚卸ししろ!|エクセル雑感(2021-07-05)
日付型と通貨型のValueとValue2について|エクセル雑感(2021-06-26)
DXってなんだ? ITと何が違うの?|エクセル雑感(2021-06-24)
エクセルVBA 段級位 目安|エクセル雑感(2021-06-21)
ローカル版エクセルが「Office Scripts」に変わる日|エクセル雑感(2021-06-10)
新関数SORTBYをVBAで利用するラップ関数を作成|VBA技術解説(2021-06-12)
VBA今日のひとこと/VBA今日の教訓 on Twitter|エクセル雑感(2021-06-10)
VBAの演算子まとめ(演算子の優先順位)|VBA技術解説(2021-06-09)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.Excelショートカットキー一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.RangeとCellsの使い方|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.マクロって何?VBAって何?|VBA入門
7.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
8.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
9.セルに文字を入れるとは(Range,Value)|VBA入門
10.とにかく書いてみよう(Sub,End Sub)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ