VBA入門
マクロって何?VBAって何?

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2023-01-09

第1回.マクロって何?VBAって何?


エクセルのマクロって何でしょうか?
ExcelのVBAって何でしょうか?


「マクロ」とは、エクセルの操作を自動化する機能です。
この自動化する機能が、「マクロ」と呼ばれています。

マクロの中身はプログラムです。
そのプログラムを記述しているプログラミング言語が、VBA(Visual Basic for Applications)です。

よくマクロとVBAの違いについて誤解されている場合も多いようですが、
Excel操作を自動化する「マクロ機能」の中身が、プログラミング言語である「VBA」で記述されているという事です。


マクロとは

エクセルの操作を自動化する機能です。

・マクロはVBA言語で書かれている。
・Excelの全機能を操作出来ます。
・手動操作を記録できる。
・Windowsの設定やインターネットのデータ収集も可能。

エクセルのマクロ機能の中には、「マクロの記録」という機能が搭載されていて、
手動での操作がマクロとして記録されます。
つまりVBAコードが自動で書かれます。

VBA マクロ

この自動で記録されたマクロを実行することで操作を自動化できます。
ただし、この自動記録されたマクロには後に説明するような問題点があります。


VBAとは

マイクロソフトのプログラミング言語「Microsoft Visual Basic」を、同社製品のMicrosoft Officeに搭載したものです。

・Officeに最初から備わっている機能では不十分なので、もっと機能拡張したい
・手作業が大変なので、自動処理させたい

これらを実現するのがマクロ機能であり、具体的に記述する時の言語がVBAです。

言語としてのVBAは、ほぼ英単語がそのまま使われています。
むしろ単数形、複数形などが忠実に使われたりしています。
ですので、英単語を順に読んでいけば、ある程度は記述されている事を理解できます。
(知っている英単語であればという事です。)
しかし英語でも同じですが、なんとなく読めたとしても、書いたり話したりするのは難しいものです。
つまりVBAを覚えるという事は、VBAを書けるようになるという事になります。
もちろん、書けるようになるには、読めることが前提にはなります。


マクロVBA学習の必要性

マクロの記述言語であるVBAを覚える事で、より複雑な処理のマクロを作成することができるようになります。
そして、日々の単純な繰り返し作業を自動化し業務を効率化することができるようになります。

「マクロの記録」だけでも、それなりの自動化は実現できるのですが、
どうしても無駄が多く非効率なプログラムコードとなっています。
また、「マクロの記録」では記録されない操作があったり、
そもそも、手動での操作が出来ない場合も多くあります。
プログラムとして最も重要なものは条件分岐と繰り返しです。
・同じ作業を何回か繰り返す。
・条件により操作内容を切り替える。
これらはマクロの記録では記録できません。

このシリーズ「マクロVBA入門」では、初めてマクロを使う人を対象として、
少しずつ無理なく進めるように説明していきます。


VBAでできる事

以下は、本サイト内で掲載しているものの一部です。
VBAを使えば、こういうことができるというサンプルとしていくつか抜粋してみました。

VBA100本ノック ・・・ 実務に即した練習問題です。つまり出題されていることがVBAで出来ます。
・VBA100本ノック目次 ・VBA100本ノック 魔球編 ・VBA100本ノック 迷宮編
VBAでのCSVの扱い方まとめ ・・・ CSVを取り込む方法を何通りも掲載しています。
・本サイトにあるCSV関連記事一覧 ・CSVの読込方法 ・CSVの読み込み方法(改) ・CSVの読み込み方法(改の改) ・CSVの読み込み方法(ジャグ配列) ・CSVの読み込み方法(ジャグ配列)(改) ・CSVの出力(書き出し)方法 ・UTF-8でCSVの読み書き(ADODB.Stream) ・ADOでCSVの読み込み(SQL)
エクセルでファイル一覧を作成 ・・・ Dir関数からFileSytemobjectへ順に説明しています。
VBAでサブフォルダ以下も含めて全てのファイル一覧を取得します。最初はサブフォルダは無視して、VBAにある関数とステートメントだけで作成します、その後に、FileSystemObjectで再帰処理をすることで、全てのサブフォルダも取得するようにしていきます。
他ブックへのリンクエラーを探す ・・・ 他ブック当へのリンク切れを探すVBAです。
リンクエラーが見つけられない… 「リンクの編集」で、「リンクの解除」を選択してもリンクが削除できない… こんな経験をした人は多いのではないでしょうか。エクセルをいろいろと操作していると、意図せずに参照先が別ブックになってしまい、かつ、その参照先のブックが無くなってしまっている… こんな場合に、リンクエラーとなります。
Excelシートの複雑な計算式を解析するVBA ・・・ 複雑な数式を分解・展開して表示します。
・複雑な計算式を解析するVBAの概要 ・複雑な計算式を解析する全VBAコード ・複雑な計算式を解析した結果の表示 ・最後に
VBA+SeleniumBasicで検索順位チェッカー作成 ・・・ Seleniumを使ったクローリングのサンプルです。
・シート構成 ・検索順位チェッカーのVBA全コード ・最後に
SQL入門:VBAからデータベースを使う ・・・ SQLliteを使ってSQLを解説しています。
・DBとはSQLとは ・SQL入門の目次 ・SQLを使った既存サンプル

以下はVBAで作ったゲームです。
数独(ナンプレ)を解くVBAに挑戦
数独は、一般に「ナンバープレース(ナンプレ)」と呼ばれ、外国では「sudoku」と呼ばれているようです、この数独をExcelマクロVBAで解いてみようと言う事です。解き方は、とにかく片っ端から数字を当てはめていくという、なんとも芸の無い方法です。
ナンバーリンク(パズル)を解くVBAに挑戦
ナンバーリンクというパズルがあります、これをエクセルVBAで解いてみようと思います、数独(ナンプレ)に続くパズルVBA解法の第二弾です。ナンバーリンクをご存じない方は、、ウィキペディア ナンバーリンクのおためし問題 このあたりをお読みください。
オセロを作りながらマクロVBAを学ぼう
ExcelマクロVBAでオセロ(リバーシ)を作っていきながら、マクロVBAを学んで行きましょう。目的は、マクロVBAの学習であり、思考を整理しVBAでプログラミングする学習です。従って、強いソフトを作ることが目的ではありませんので、最近流行のAIなんちゃら…なんていうのは考えるつもりはありません。
Excel将棋:マクロVBAの学習用
・Excel将棋の要件定義 ・Excel将棋のシート作成 ・Excel将棋の目次


マクロVBA学習の前提知識

マクロVBAを覚えるには、エクセルの基本操作・ワークシート関数は必須です。
まずは、これらをしっかりと覚えて下さい。
エクセル入門
・0からのエクセル入門 ・ショートカットキー ・基本操作 ・表示形式 ・セルの書式設定 ・入力規則 ・数式・関数 ・スピルと新関数 ・LAMBDA以降に追加された関数 ・・・ Excel2021では使用できません

ここの内容をある程度理解してからマクロを始めた方が、VBAの学習はスムーズに進みます。
ですが、上記内容を全て習得しておく必要はありません。
VBA解説の中で、必要に応じて適宜手動操作や関数について説明していきます。


マクロVBAの学習の手引き(VBA学習順序)

初級・初心者の方は、VBA入門のトップページを順番に最初から軽く通読するようにして下さい。
マクロVBAを初心者向けの基本から上級者向けの高度な内容までサンプルコードを掲載し解説しています。エクセル関数・機能・基本操作の入門解説からマクロVBAまでエクセル全般を網羅しています。
目次で全体の雰囲気をつかんだら目次に従って順に学習を進めてください。
1. VBAの基礎・基本:VBA入門
2. VBA入門に必要なVBEの基本的使い方
3. VBAプログラミングの基礎・基本
4. Excel各種機能とオブジェクトの理解
ここまでは理解できない部分があっても、細部にこだわらず時には先に進んでください。
先に進むことで、以前は理解できなかったことが理解できるようになっている場合もあります。
必要に応じて関連項目を復習することで、いつの間にか理解が進んでいることを実感できるはずです。
これ以降の章は、ご自身の目的に合わせて学習する部分を選択すると良いでしょう。

中・上級者の方は、VBA入門のトップページの目次から必要な項目をご覧ください。
マクロVBAを初心者向けの基本から上級者向けの高度な内容までサンプルコードを掲載し解説しています。エクセル関数・機能・基本操作の入門解説からマクロVBAまでエクセル全般を網羅しています。

VBAの学習順序としては、以下のページも参考にしてください。
ExcelマクロVBAの基礎を学習する方法
ExcelマクロVBAの基礎を学習する方法、マスターする道順についてです。ExcelマクロVBAは非常に便利です、手作業では、数時間・数日かかる処理が、ほんの一瞬で処理できてしまいます。ただし、マクロVBAを書く為に、相応の時間はかかりますが、それでも、そのマクロVBAを書く時間は一度きりです。

また、とにかく実戦を通して素早く身に付けたい人は、こちらから始めると良いでしょう。
Excelマクロ再入門
・準備:VBA再入門 ・セルを扱う:VBA再入門 ・エクセルの便利機能:VBA再入門 ・ブック・シートを扱う:VBA再入門 ・マクロ全体を最適化する:VBA再入門 ・自動化への道:VBA再入門 ・最後に:VBA再入門 ・VBAエキスパートを受験する人は




同じテーマ「マクロVBA入門」の記事

【VBA学習のお勧めコース】
VBAの基礎・基本の要約
第1回.マクロって何?VBAって何?
第2回.まずはマクロVBAを使う準備
第3回.マクロの記録
第4回.マクロはどこに書くの(VBEの起動)
第5回.VBEのオプション設定(Option Explicit)
第6回.とにかく書いてみよう(Sub,End Sub)
第7回.マクロを実行するには(F5)
第8回.セルに文字を入れるとは(RangeオブジェクトのValueプロパティ)
第9回.Rangeでのセルの指定方法


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

セル値でパス・ブック・シート名を指定|Power Query(M言語)入門(2023-02-07)
別ブックのシートを列可変で取り込む|Power Query(M言語)入門(2023-02-06)
ExcelとVBAの入門解説|エクセルの神髄(2022-12-14)
文字列のプロパティ名でオブジェクトを操作する方法|VBA技術解説(2022-12-14)
数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロって何?VBAって何?|VBA入門
7.並べ替え(Sort)|VBA入門
8.Excelショートカットキー一覧|Excelリファレンス
9.エクセルVBAでのシート指定方法|VBA技術解説
10.Range以外の指定方法(Cells,Rows,Columns)|VBA入門




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


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



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