【Excel VBA】マクロの始め方を1から解説【初めての方向け】

みなさんこんにちは。Yoshiroです。
 
今回は、マクロ(Excel VBA)初心者や、マクロ導入につまづいている方に向けて、
実際の画面を見ながら1からゆっくりご説明いたします。
 
「わたしVlookupとか分からない」
 
という方もご安心ください。マクロでは関数の知識はそこまで必要ありません。
 
この記事では、一通りの設定方法をご説明したあと、実際に試しにマクロのコードを一緒に書いてみようと思います。
 
ちなみに、私のPCはWindows10、ExcelはOffice2016を使用していますが、ほかのバージョンでもさほど変わりませんので、気にせず進んでください。

Ads

マクロの初期設定

「マクロ」とか「VBA」とか言われておりますが、Excel上はそのようなタブはありません。
実は、初期設定では非表示になっている、『開発』というタブを使って、プログラムを書いていきます。
まずエクセルを開いて、左上の「ファイル」を押すと、このようなサイドバーが出てきます。


 
「オプション」をクリックしたあと、「リボンのユーザー設定」で、「開発」にチェックが入って入れなければ入れてあげましょう。
 
 

 
 
すると、最初のエクセルのバーに、「開発」ボタンが追加されています。
 
 

 
 
「開発」を押すと、このような画面が出ます。
これからは、ここをいじるようになりますので、覚えておいてください
 
 

 
 
早速コードを書いていきたいのですが、まずは初期設定が必要です。
上部バーの一番左にある「Visual Basic」をクリックすると、こちらが立ち上がります。
 
 

 
 
「ツール」の「オプション」をクリック。
 
 

 
 

  1. 「自動構文チェック」はチェックなし
  2. 「変数の宣言を強制する」にチェック

 
1 「自動構文チェック」は、式を書いている途中で他の行にカーソルが移るだけで「エラーです!」とメッセージが出て、煩わしいのでオフにしましょう。
 
2 「変数の宣言を強制する」は必ず行ってください。
これがないと、エラーが発生したときにコードのどこがおかしいか探すのが大変です。絶対にチェックを入れましょう。
 
 
またお好みで、コードを書くエディタ画面の文字色、背景色をこちらで変更できます。
 
 

 
 
私は見た目がかっこいいという理由で、背景をすべて黒、文字色を黒以外の色を割り振っています。
マクロに慣れてきたら、自分の使いやすいようにアレンジしてみてください。
 
 

 
初期設定はこれで完了です。
 
 

Ads

マクロの導入
~試しにコードを書いてみよう~

では、早速書いていきましょう。
 
マクロのコードは基本的に、以下の「標準モジュール」というところに記述していきます。
 
 

 
 
標準モジュールを開くと、左側に「Module1」と出ているののでそれを確認しつつ、
右側のエディタに

Sub test()

と打って、Enterを押してください。
 


 
 
すると、色が付き、下に「End Sub」とでるはずです。
 
 

 
 
今書いたのは、マクロのプログラムを実行する一つの塊で、
「test」というプログラムは、「Sub test()」から「End Sub」の間に書かれているコードを実行しますよ!
という枠組みを作成したということです。
 
 
それでは、下のように、

cells(1,1)=3

と打ってみてください。
(コードの意味は後で説明します。)
 
 

 
 
色がついて、コードが認識され以下のような感じになったかと思います。
 
 

 
 
コードを記述する際は、書いた後に読みやすくするため、場合に応じてTabキーを押してコードの先頭を揃えたりずらしたりします。ここでは見やすさのため、以下のようにしておきましょう。
 
 

 
 
では、実行してみましょう。
実行は上部にあるツールバーから「実行(R)」→「Sub/ユーザー フォームの実行」を押してもいいですし、
「F5」キーを押すだけで実行してくれます。
ちなみに実行時、カーソル位置が「Sub test()」から「End Sub」の間にあればそのまま実行され、
そうでない場合は以下のようなメッセージが出ます。
 
 

 
 
「test」というマクロを実行したいので、「test」を選択して実行すればOKです。
 
 
さあ、エクセルのシートを見てみましょう。
(ちなみにVBAでは、エクセルの本体(ファイル)のことを「ブック」、エクセルのワークシート(”Sheet1″など)をシートと呼びます。)
 
 

 
 
A1セルに、”3”が入っていますね。
先ほどの

cells(1,1)=3

は、「エクセル上、1行目、1列目のセルに、3という数字をいれる」命令をしていました。
 
 
このように、ExcelVBAでは、Visual Basic上のエディタにコードを記述することで、
エクセル本体のセルに数字や文字を入れたり、コピペして転記したり、罫線を引いたりすることが可能です。
またそれだけでなく、条件式を作って特定のデータを抜き出したり、好きな名前でフォルダを作成したり、マニアックなものだとOutlookを立ち上げてメールを送信したりすることも可能です。
 

個人的な体験談~Excel VBAのすすめ~

 

ハイリターンでお手軽な自己研鑽である

 
私は金融機関のファイナンス部門に新卒で入社し、様々な経理業務を含む管理業務を行いました。
その際に役立ったのが、上記で解説させていただいたエクセルVBAです。
 
私の会社は名の知れた大企業でしたが、エクセルの転記など日次で手作業で行う仕事に溢れていて、VBAでの改善の宝庫でした。
入社当時は当然VBAなど知らないので、自分で調べたり研究しながら使えるレベルまで勉強していったのですが、
そんな努力のおかげで社内の業務効率化の推進に一役買うことが出来たり、上司から評価してもらったり、比較的リターンが多かったと思います。
 
業務効率化における解決策は常にVBAであるわけではありません。
近年ではロボティクスなども普及し始めたり、VBA以外の解もたくさんあることは事実ですが、ロボティクスであれば導入コストが高かったり大げさな開発工数がかかったり、VBAのようなフレキシビリティが無かったりします。
 
まだまだ仕事においてはExcelが重宝される世の中ですので、小回りの利くVBAを覚えることは、お手軽かつ魅力的な自己研鑽だと思っています。
 

おすすめVBA参考書

 
VBAサイトをなぞることももちろんいいのですが、「会社のデータを扱うのできちんとしたソースで勉強したい」「本を読み進める方が好き」という方も多くいらっしゃることかと思います。
私も「参考書+ググる」というのが基本スタイルでした。

本から入ると(初心者の方は特に)不安感が比較的減ると思うので、自分に合った本を探してみるのもいいと思います。私の使っていたVBA参考書はこちらで、とても易しく分かりやすかったです。
 

 
また、こちらはVBAはちょっとかじったことある方向け。
 

 

皆さんが現在仕事で使われているエクセルシートの手処理でも、マクロを活かせないものはほとんどないと言っても過言ではありません。
ぜひ勉強をスタートして、会社や個人のエクセル作業の効率化にお役立てください!
 
 

 

この記事を書いた人
myportfolio
Yoshiro K

 

  • 経歴:早稲田大学卒業
  • 活動:就活アドバイザー・プログラマー
  • 自分が学んだ経験、また後悔を、次世代に伝えます。
    就活に役立つ情報や悩みを解消できる記事を書いておりますので、
    是非他の記事もご覧ください。
    どこにもない参考書