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

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

第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を覚える事で、
より複雑な処理のマクロを作成することができるようになります。
そして、日々の単純な繰り返し作業を自動化し、業務を効率化することができるようになります。

「マクロの記録」だけでも、それなりの自動化は実現できるのですが、
どうしても、無駄が多く、非効率なプログラムコードとなっています。
また、「マクロの記録」では記録されない操作があったり、
そもそも、手動での操作が出来ない場合も多いもあります。

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

VBAでできる事

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

VBAでのCSVの扱い方まとめ
マクロVBAでCSVの読み書きする方法はいくつもあり、当サイトでも複数のページでそれぞれVBAコードを掲載しています。順次記事を掲載しているので、それぞれどのような特徴があるかが良く分からなくなってしまっているようです。そこで、CSVに関するページをまとめておきました。
エクセルでファイル一覧を作成
VBAでサブフォルダ以下も含めて全てのファイル一覧を取得します。最初はサブフォルダは無視して、VBAにある関数とステートメントだけで作成します、その後に、FileSystemObjectで再帰処理をすることで、全てのサブフォルダも取得するようにしていきます。
数独(ナンプレ)を解くVBAに挑戦
数独は、一般に「ナンバープレース(ナンプレ)」と呼ばれ、外国では「sudoku」と呼ばれているようです、この数独をExcelマクロVBAで解いてみようと言う事です。解き方は、とにかく片っ端から数字を当てはめていくという、なんとも芸の無い方法です。
ナンバーリンク(パズル)を解くVBAに挑戦
ナンバーリンクというパズルがあります、これをエクセルVBAで解いてみようと思います、数独(ナンプレ)に続くパズルVBA解法の第二弾です。ナンバーリンクをご存じない方は、、ウィキペディア ナンバーリンクのおためし問題 このあたりをお読みください。
オセロを作りながらマクロVBAを学ぼう
ExcelマクロVBAでオセロ(リバーシ)を作っていきながら、マクロVBAを学んで行きましょう。目的は、マクロVBAの学習であり、思考を整理しVBAでプログラミングする学習です。従って、強いソフトを作ることが目的ではありませんので、最近流行のAIなんちゃら…なんていうのは考えるつもりはありません。
他ブックへのリンクエラーを探す
リンクエラーが見つけられない… 「リンクの編集」で、「リンクの解除」を選択してもリンクが削除できない… こんな経験をした人は多いのではないでしょうか。エクセルをいろいろと操作していると、意図せずに参照先が別ブックになってしまい、かつ、その参照先のブックが無くなってしまっている… こんな場合に、リンクエラーとなります。
Excelシートの複雑な計算式を解析するVBA
セルに入力されている数式が折り返されていて複数行(ときに3行以上)になっている場合、数式バーで見ていたのでは、どんな数式なのかがさっぱりわからなくなります。このような複雑な数式を分解し、分かり易く表示するVBAを作成しました。最初に言っておきますが、そもそも、そのような複雑な数式は作らないほうが良いというのが基本です。
VBA+SeleniumBasicで検索順位チェッカー作成
VBAでSeleniumBasicを使って検索順位チェッカーを作ってみます。SEO対策として各キーワードでの検索順位チェックは欠かせませんが、簡単に使えてキーワードを大量に指定できる良いツールがなかなかありません。Google検索をスクレイピングすることは、Google利用規約に反する可能性があります。
SQL入門:VBAからデータベースを使う
社会的にパソコンで扱うデータ量は近年急激に増えています。これに呼応してエクセルも2003までは65536行まででしたが、2007から飛躍的に増えて1048576行となっています。しかしエクセルで100万行扱えるといっても、データ量としては列数もありますので、実際には100万行はおろか数十万行でもエクセルが重くなって扱いづらくなってしまいます。

マクロ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)
第11回.RangeとCellsの使い方


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

Variantの数値型と文字列型の比較|エクセル雑感(7月1日)
VBAのVariant型について|VBA技術解説(6月30日)
VBAのString型の最大文字数について|エクセル雑感(6月20日)
VBAで表やグラフをPowerPointへ貼り付ける|VBAサンプル集(6月19日)
アクティブシート以外の表示(Window)に関する設定|VBA技術解説(6月17日)
マクロ記録での色のマイナス数値について|エクセル雑感(6月16日)
ツイッター投稿用に文字数と特定文字で区切る|エクセル雑感(6月15日)
日付の謎:IsDateとCDate|エクセル雑感(6月14日)
IFステートメントの判定|エクセル雑感(6月13日)
インクリメンタルサーチの実装|ユーザーフォーム入門(6月12日)


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

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




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


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



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