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 ・・・新着記事一覧を見る

ユーザーに絶対に停止させたくない場合のVBA設定|VBA技術解説(4月1日)
CharactersプロパティとCharactersオブジェクト|VBA技術解説(3月31日)
指数近似/対数近似/累乗近似(掲載順位とCTR)|エクセル関数超技(3月31日)
練習問題32(連続数値部分を取り出し記号で連結)|VBA練習問題(3月24日)
連続数値部分を取り出し記号で連結|エクセル関数超技(3月24日)
数式バーの高さを数式の行数で自動設定|VBAサンプル集(3月21日)
LET関数(数式で変数を使う)|エクセル入門(3月21日)
スピルに対応したXSPLITユーザー定義関数(文字区切り)|VBAサンプル集(3月15日)
XMATCH関数(範囲から値を検索し一致する相対位置)|エクセル入門(3月14日)
XLOOKUP関数(範囲を検索し一致する対応項目を返す)|エクセル入門(3月14日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.繰り返し処理(For Next)|VBA入門
9.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
10.セルに文字を入れるとは(Range,Value)|VBA入門




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


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



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