業務でエクセルを使っている人がさぞかし多いことでしょう。
では、エクセルのマクロ機能は使っていますか?
エクセルのマクロ機能はとても有名なので使っている人も結構いるかもしれません。
では、エクセルの中のプログラミング言語であるVBAをいじっている人はどれくらいいるでしょう?
マクロいじってるからVBAもいじっているって人も多いかもしれません。
ここからは個人的な感想です。
エクセルVBAって正直覚えにくくないですかねってことです。
例えば、グラフ作成するマクロなんて暗記している人(暗記できる人)なんていないと思います。
「それくらい調べれば良いではないか」ということかもしれませんが、ネットで仕入れる情報はほとんどが断片的でなかなか上手くいかないことも多かったです。
そこで・・・
本記事
エクセルVBAで「これやりたいけど、どうやって記述すれば良いのか?」っていうときに役に立つ方法を紹介しようと思います。
どうするかというと、タイトル通り「わからない記述はマクロ記録を監視する」ということをします(後半で説明!!)。
マクロとVBAの違い
まずは基本的なことを書いておきたいと思います。
「マクロ」と「VBA」って何が違うのでしょうか?
結論から言いますと、本来は両者は違う意味ですが「マクロ」と「VBA」は同じ意味で使うことが多いです。
マクロ機能
行った操作を記録して、そのまま繰り返し実行できる機能
※エクセルはグラフを書いたり計算したり、色々な機能を持っています。マクロはエクセルの中の機能のひとつです。
VBA(Visual Basic Applicationの略)
マクロ機能を動かすためのプログラミング言語
つまり、エクセルの中にマクロ機能があり、それを動かしているプログラミング言語がVBAというわけです。
マクロ機能ってどうやって使うのか?
マクロ機能を使って「ある列の文字を削除する」という操作を覚えこませるという例題をやってみましょう。
※Excel 2016を使用しています。
まずは、マクロ機能を使うにはオプションの設定が必要です。
H列を削除するマクロを作成
では、マクロ機能を使った簡単な例題をやってみましょう。
適当に表を作り「マクロ機能」を使ってH列を削除するというのを覚えこませましょう。
これが「マクロの記録」です。
これで「マクロの記録」が終わりましたので、新しく表を作って記録したマクロを実行してみましょう。
この例はあまりにも簡単な操作ですが、マクロ機能の使い方は基本的にはこんな感じです。
では、マクロ機能はおおまかに理解したとして、プログラミング言語であるVBAはどうなっているのかを見てみましょう。
VBAをのぞいてみる
VBAでマクロの作成・編集を行いたい場合はVBE(Visual Basic Editor)という画面を立ち上げて編集します。
要するにVBAを記述しているエディタっていうことです。
上記のように、「マクロ機能」は、実はプログラミング言語VBAを使って覚えこませた動作を記述しているだけだということがわかります。
だから「マクロ機能」だけを使ってマクロを作成した場合は、無駄な動作まで記述されていてマクロ実行時にめちゃくちゃ動作が重いなんてこともあります。
例えば、「マクロの記録」を行っている最中に無駄にスクロールをしてしまった場合も全てVBAで動作が書かれてしまいます。(下の絵)
できれば「マクロの記録」だけで済まさずに、VBAものぞいてみて不必要な動作が記述されていないか見ておいた方が良いでしょう。
やりたい動作はマクロの記録を監視して必要な記述だけをひろう
「マクロの記録」は行った動作をそのまま記録してくれるので、プログラミング初心者でもわりと簡単に使えます。
しかし、上の例で見たようにどんな記述がされているかわからないからエラーなく動作してくれる保証がありません。
ならば、VBAを覚えてゴリゴリとプログラムを書いていけばよいではないかということになりますが・・・・・結構覚えるのが大変です(*_*;
では、どうすれば簡単にマクロの記述を行えるのかというと、
「マクロの記録」を監視しながら、どのように記述されているのかを学べば良いかと思います。
グラフを作成するマクロを作成する
ちょっとだけ難しい例題でマクロを作ってみたいと思います。
グラフの作成は、ネットで探してもなかなか見つからないと思うので、初心者には難しいかと思います。
しかし、次の方法を使えば、初心者でもだいたいはグラフ作成のマクロの記述が理解できると思います。
まずは適当にグラフ用のデータを作ってみます。
自分がグラフにしたいデータを使っても良いです。
ここからが本番!!
「エクセルシートの画面」と「VBA」を横に並べて、エクセルシートの方でグラフ作成をしていきます。
そうすると「VBA」を勝手に記述してくれますので、今自分が行った動作がどのようにVBAで記述されるのかを監視することができます。
はい、こんな感じ♪
- グラフの文字のフォントを変えたい・・・・
- グラフのタイトルをつけたい・・・・
- グラフの軸の範囲を変えたい(自動にしたい)・・・
これらのことをひとつひとつ調べていては日が暮れてしまいます。
せっかく自動化したいと思っているのにマクロを作成しているだけで時間が経ってしまいます。
だから、このように自分が行った動作がどのようにVBAで記述されるかを監視しながら必要な記述だけひろっていくという方法がとても便利です。
※適当に触ってしまったセルなども勝手に書かれるので、「何、余計なこと書いてるんだよ」っていう目で監視します。
まとめ
いかがでしょうか。
「マクロ機能」だけ使ってた人、初心者だけど「VBA」を使ってゴリゴリ頑張っていた人・・・
プログラミング言語を覚えるのはとても大変ですので、自分が行った動作がどのようにVBAで記述されるかを監視しながら必要な記述だけひろっていくという方法を使って今より簡単にマクロを組めるようになればと思います。