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

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

第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以降に追加された関数


ここの内容をある程度理解してからマクロを始めた方が、VBAの学習はスムーズに進みます。


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

初級・初心者の方は、VBA入門のトップページを順番に最初から軽く通読するようにして下さい。
マクロVBAを初心者向けの基本から上級者向けの高度な内容までサンプルコードを掲載し解説しています。エクセル関数・機能・基本操作の入門解説からマクロVBAまでエクセル全般を網羅しています。
理解できない部分があっても、細部にこだわらず時には先に進んでください。
先に進むことで、以前は理解できなかったことが理解できるようになっている場合もあります。
折に触れて復習することで、いつの間にか理解が進んでいることを実感できるはずです進めてください。

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

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

また、とにかく実戦を通して素早く身に付けたい人は、こちらから始めると良いでしょう。
Excelマクロ再入門
・準備: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でのセルの指定方法
第10回.Range以外の指定方法(Cells,Rows,Columns)


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

構成比を合計しても100%にならないと言われた…|ツイッター出題回答 (2022-09-01)
一覧から複数条件(部分一致、範囲)に合致するデータを抽出する|ツイッター出題回答 (2022-08-30)
縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS)|エクセル入門(2022-08-27)
IF関数の論理式で比較演算子を省略したCOUNT系関数を書くのは|ツイッター出題回答 (2022-08-23)
LAMBDA以降の新関数の使用例|エクセル入門(2022-08-22)
数珠順列(配置に条件付き)を全て出力する|ツイッター出題回答 (2022-08-20)
日付時刻のマイナス表示に対応する方法|ツイッター出題回答 (2022-08-17)
LAMBDA以降の新関数について|エクセル入門(2022-08-16)
条件付きの最大値と中央値("A"が2文字の条件)|ツイッター出題回答 (2022-08-14)
VBAマクロと操作対象データの分離について|ツイッター出題回答 (2022-08-11)


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

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




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


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



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