こんにちは、Яeiです。
今回はVBAを実際に使っている私が、Excel VBAを実際に使うのに最低限必要な知識について解説していきたいと思います。
私は今まで多くの現場を転々とし、その度にExcel VBAを作成し利用してきました。
設計書の自動生成はもちろん、何か調査する際の自動化や資料作成時の補助としてなど用途は多岐に渡ります。
当記事では、これからExcel VBAを始める方へのスタートアップ的な立ち位置で設定方法や起動・保存方法などについて説明していきます。
あくまでも「初心者が慣れ親しむこと」をメインに記載しておりますので、今は不要と判断した知識は紹介しないようにしております。
当記事を読んで、興味を持たれた方は自分でより効率的な方法を探すべく書籍を買って勉強されることをおすすめいたします。
目次
VBAとは
VBAとは「Visual Basic for Applications 」の略で、Microsoft Officeのアプリケーションで使うプログラミング言語となります。
プログラミング言語とは
我々日本人は、コミュニケーションをとる場合に基本的に日本語を使うと思います。
アメリカ人は英語、中国人は中国語など。
同じように、コンピュータ(機械)とコミュニケーションをとる場合は「機械語」を使う必要があります。
しかし、機械語は超絶難しい言語となりまして、一般的に習得が大変困難となります。
どうにかコンピュータに指示を出せるようにしたいと思い、賢い先人が「人類に理解できる言語で書いて機械語に翻訳すればいいんだ!」と思いつき、翻訳機を作ってくれたのです(翻訳機をコンパイラなんて呼んだりします)。
この「人類に理解できる言語」がプログラミング言語になります。
プログラミング言語には色々な種類があり、その数だけ翻訳機があるようなイメージになります。
VBAはどんな言語?
先ほどVBAはプログラミング言語と述べましたが、この言語にはどんな特徴があるのでしょうか。
VBAはMicrosoft Officeのアプリケーションで使えるプログラミング言語となります。
Microsoft Officeのアプリケーションとしては例えばExcel、Word、Accessなどがあります。
Excelで使うVBAをExcel VBAとか、Accessで使うVBAをAccess VBAとか呼んだりします。
「Excelでやる作業をめんどくさいから自動化したいな」といった際にプログラミングして自動化するイメージを持っていただければよいと思います。
VBAを学ぶ必要性
Excelの文化が廃れ気味である昨今、今更VBAを学ぶ必要性はあるのでしょうか。
個人的な回答は「まだある」と思います。
まず、Excel文化は廃れつつありますが、とはいえ未だにExcelを使っている企業は多いですし、個人管理で使うこともまだ多いです。
また、最近ではGoogleスプレッドシートの方が幅を利かせている気もしますが、GAS(スプレッドシート用のプログラミング言語)は少し敷居が高いように思われます。
手軽にパッと試せるという意味で、Excel VBAを勉強してみる価値はあると思います。
ただし、すでにプログラミング言語を習得していて「今後の新たな知識を!」という方は目的にもよるので一概には言えませんが、GASの方が良いかもしれません。
あくまでも手軽に始められるという点で、かつ実務でもまだ腐らないという点でVBAはお勧めとなります。
VBAの始め方
Excelの起動
まずはエクセルを起動してください。
開発タブの表示
- ファイル(画面左上)
- オプション(左下らへん)
- リボンのユーザー設定→「開発」にチェックを付けて「OK」
この手順でホーム画面のタブに「開発タブ」が表示されるようになります。
エディター(VBE)の起動
起動方法は以下の2通り。
- 開発タブ→Visual Basic
- Alt+F11(ショートカットキー)
個人的に慣れていない初心者にはショートカットキーはあまりお勧めしていないのですが、これについては覚えておいた方がよいと思います。
以下のような画面が起動するはずです。
Excel VBAではこの画面をつかってプログラミングしていきます。
エディター(VBE)設定
エディター設定で最低限行っておきたいのは以下となります(人によって好みはあるかもしれませんが)
- 「表示」→「ツールバー」→「標準」(同様に「デバッグ」「編集」)にチェックをつけましょう。
人によってはその他のチェックも必要かもしれませんが、最低限このくらいで十分でしょう。
ちなみに、変なところに表示された場合はドラッグしたままにすると移動できるので本体のエディタにくっつけておきましょう。
- 「ツール」→「オプション」
以下の画面のようになるようにチェックします。
・「自動構文チェック」はチェックを外す。
・「変数の宣言を強制する」はチェックする。
※ ここら辺の設定は必須ではありませんが。あくまでもプログラミングしやすいように設定しているだけです。
自動記録機能
さて、さっそくプログラミングを始めてみましょう。
実はExcelには「自動記録機能」という機能があります。
この機能は勝手にプログラミングしてくれる機能となります。
「開発タブ」→「マクロの記録」を選んでください。
マクロの記録画面が出てきますので、以下入力してOKを押してください。
・マクロ名:何でもOK
・マクロの保存先:作業中のブック
これで今からあなたのExcel操作はすべて自動で記録されます(誤操作してもそれも記録されます)。
試しにA1セルに「VBAのお試しです」と入力して、赤文字のBoldにしてみましょう(この通りでなくてもよいです)。
そして、「開発タブ」→「記録終了」を押しましょう(先ほどは「マクロの記録」だったところです)。
これであなたの操作したことがプログラミングされました。
再びAlt+F11でエディタを開きましょう。
左側の自分が開いているExcel名の「標準モジュール」の「Module」をクリックして下さい。
今行った操作が自動でプログラミングされているはずです。
このように、Excelには自動記録機能が備わっております。
ここで「それなら自分でプログラミングする必要なくない?」という疑問が生じますが、自動記録機能は融通が利きません。
今実施した操作は本来3行程度で記述できますが、自動記録機能を使うと8行くらいになってしまってます。
もっと複雑な操作をしてみると分かりますが、かなり行数がかかります。
つまり、余計なこともやってしまっているのです。
また、条件分岐や繰り返し処理ができないという問題もあります。
ちなみにですが、自分でプログラミングできるようになっても私はこの機能をちょくちょく使っております。
なぜならば、すべての方法を暗記するのは私にはできないので、やり方を忘れた場合は自動記録で記録して思い出して使ったりしております。
実行方法
それでは先ほどのプログラムを実行してみましょう。
簡単な実行方法としては以下のようなものがあります。
自分で使う用の簡単なものであればこれで十分だと思います。
- エディタから実行
- ボタンを配置してExcel画面上で実行
エディタから実行
まず、実行したか分かるように、A1セルの内容を削除してください。
「実行タブ」→Sub/ユーザーフォームの実行
(ショートカットはF5、ツールメニューの開始ボタンでも可能)
なお、以下のような画面が表示された場合は自分が作成したマクロを選択して実行ボタンを押下してください。
再び先ほどと同じ文言、色、Bold体でA1セルに出力されたと思います。
ボタンを配置してExcel画面上で実行
こちらも、実行したか分かるように、A1セルの内容を削除してください。
「開発タブ」→「挿入」→フォームコントロールの中の「ボタン」を選択してください。
自分の好きなところに作成してください。
このとき、Altを押しながら選択するとエクセルのマス目に沿ってボタンを作成してくれるので少しうれしいですよ。
自分が作成したマクロを選択してOKを押してください。
作成された「ボタン1」を押してみて下さい。
画面のようにA1セルに先ほどと同様の結果が出力されたと思います。
なお、Ctrlを押しながらボタンクリックでボタンを選択できて、右クリックから名前を変更することもできます。
保存方法
VBAでマクロを作成したエクセルはいつも通りに保存してしまうとせっかくのマクロは消えてしまいます。
マクロも一緒に保存してくれる保存形式で保存する必要があります。
マクロも一緒に保存してくれる保存形式は「マクロ有効ブック:拡張子はxlsm」となります。
以上でVBAの一連の流れは終わりになります。
もちろん、本題のプログラミング部分はまだですが思ったより簡単だったのではないでしょうか。
この一連の流れができれば、あとは自動記録されていたエディタに、今度は自分でプログラミングしていくだけになります。
これができるようになれば、Excelでやりたい作業を自動化するこができます。
VBA習得の勧め
これは私の個人的な見解となりますが、プログラミング習得のコツは「とにかく手を動かす」ことだと思っております。
いくら本で勉強しても手を動かさないことには上達しませんし、いくら基本を網羅的に勉強しても何に使う知識なのか分からず知識過多になってしまいます。
そのため、私の記事では「最低限必要な知識」のみ紹介していきます。
VBAは「エクセルで出来ることはなんでもできる」と言われております。
しかし、エクセルはかなり色々なことができてしまいます。
また、同じ操作をするにしてもプログラミング方法が複数あったりもします。
あれもこれもと複数の手段で問題解決していくのはプロにお任せしましょう。
初心者の皆さんは最低限1通り覚えて、興味があれば自分で調べていく方式で学ばれた方が効率的です。
人間にもキャパシティがありますので、情報過多にならないように私の方でも情報を洗練していきたいと思います。
当記事は以上となります。
次回は実際にプログラミングをして、エクセルVBAにさらに慣れ親しむ内容にしたいと思います。
是非、読んでみて下さい。
長々とお疲れさまでした!
次回の記事