真のパソコンスキルとは実務力です。ビジネス力塾では実戦形式の例題を用いてExcel、Word、PowerPointといったオフィスソフトから、PCハード、SNSなど皆様のスキルアップに役立つパソコン講座を実施しています。

Excel VBAを学習しよう!

  • HOME »
  • Excel VBAを学習しよう!

VBAを覚えてExcel上級者に変身!

Excelを使っていて「こんなことできたらいいな」と思ったことありませんか?

  • 手動で行っている面倒くさい作業が『ボタン一つで』バーッとできたらいいのになぁ…
  • 関数やマクロだけでは作れそうにないシステムを何とか実現させたい!
  • Excelのリストにあるメンバーに、特定のファイルを添付して自動的にメールを送信したい!

Excelでこれらの作業を効率よく行うには、VBAを習得するのがベスト!

Excelには、様々な計算を行う「関数」や抜き出しを行う「フィルタ」、集計を行う「ピボットテーブル」といった素晴らしい機能がたくさんありますが、基本的にはユーザーがそうした機能のボタンを都度クリックする必要があります。

例えば、「1シートにまとめて記載されている1か月分の取引伝票(500件)」を、相手先ごとに「新規シートを作成」し、伝票データを「コピー・貼り付け」してまとめるという処理を毎月行っているとします。

この処理をExcel上の操作手順でまとめると…

1.伝票が入力されているシートをクリックする⇒2.フィルターをかける⇒3.相手先を指定して絞り込む⇒4.表示されたデータを選択する⇒5.コピーする⇒6.新しいシートを作成する⇒7.貼り付けるセルを選択する⇒8.貼り付けする

というように、8つのステップになります。場合によってはもっと多くの手順が必要かもしれません。
そしてさらに、このステップを取引先の数だけ行わなくてはいけないのです。
これでは、「同じようなことを毎月やっているのだから、もっと楽にならないものだろうか?!」と思っても当然ですよね。

ではどのような機能を学習すれば「もっと楽に」「ミスなく」処理を行うことができるようになるのでしょうか。

「マクロ」と「VBA」:なぜVBAが必要なの?

マクロでは記録できない処理がある!

Excelには『マクロ』という機能が搭載されています。
マクロ機能を使って一連の動作を”記録”すると、録画したテレビ番組を再生するように、いつでも記録した内容を実行することができます。
定形処理を実行する際に利用できる便利な機能で、これでお悩み解決!・・・・と行きたいところなのですが、このマクロ機能、「記録した動作しか実行できない」という欠点があるのです。
動作を記録する機能なので当然といえば当然なのですが、先ほどの例(8つのステップ)に当てはめて、どんな不都合があるのかみてみましょう。

  1. 伝票が入力されているシートをクリックする
    ⇒月によって伝票が入力されているシート名が違ったら?
  2. フィルターをかける
    ⇒月によって伝票の件数が違ったら?(500行だったり510行だったり…)
  3. 取引先を指定して絞り込む
    ⇒実行するたびに取引先が変わるんだけど…
  4. 表示されたデータを選択する
    ⇒データの件数も毎回一緒とは限らないけど?
  5. コピーする
  6. 新しいシートを作成する
    ⇒取引先によってシート名が変わるけど?
  7. 貼り付けるセルを選択する
    ⇒A1ではない場合も…
  8. 貼り付けする

マクロ機能では動作そのものを単純に記録するため、上記の疑問点のような「実行するたびに対象や件数が異なるもの」には対応できません。異なる対象や件数の分だけマクロを作成する必要があります。
また、ある動作を何十回、何百回と繰り返す必要がある場合、その数だけマクロの実行ボタンをクリックしなくてはいけないのです。
マクロ機能自体は便利な機能ではあるのですが、処理の内容によっては(というよりほとんどの場合)業務効率化とは言えません。

VBAを使わなくてはいけない理由

この『実行するたびに対象や件数が異なる処理』『何十回、何百回と繰り返す必要がある処理』の2つがVBAを学習するポイントとなります。
関数や書式、マクロなどExcelの機能ではどうしても実現できない処理をVBAでプログラムとして記述し、実行させるのです。
他にも『ある処理に対してメッセージ(Yes/No、はい/いいえ)を表示して回答を促す』『OutlookやWordなど他のアプリケーションを操作したい』などVBAを使わなければ実現できない処理は数多くあります。

でもVBAって難しい?

VBAも日本語と同じ言語(言葉)です!

VBAはVisual Basic for Applicationsといい、「日本語」「英語」と同じ言語・言葉(プログラミング言語)です。
「シートを指定するときは〇〇〇」「セルにデータを入力するときは〇〇〇」のように、言葉の意味や使い方を覚えれば決して難しくはありません!

VBAを記述するときはExcelのシート表示とは別画面(隠し画面:ALT+F11キーで表示)で行います。
”言語”というからには決まりごとがありますので、その決まりごとに沿って処理を記述していきます。
VBAのプログラムは基本的に Sub △△△() で 始まり End Sub で終わります。△△△には一連の処理の名前を書きます。
例えば、セルA1にデータ「東京都」を入力する処理『県名入力』であれば以下のようになります。

Sub 県名入力()
Range(“A1”).value = “東京都”
End Sub

プログラムの基本形は「順次」「選択」「繰り返し」

VBAに限らず、プログラムは記述した順に上から実行されていきますので、他のセルへのデータの入力や設定など、行いたい処理を次々に書いていけばよいことになります。(順次処理)
また、前項で取り上げた『実行するたびに対象や件数が異なる処理』『何十回、何百回と繰り返す必要がある処理』については、対象や件数を判定する「条件分岐(選択処理)」や回数を指定して処理を実行させる「繰り返し(ループ)」という記述の方法があり、プログラムの動作の型(制御構造)はこの3つだけです。
あとはセルやシートの操作といったコードを覚えるだけでマクロでは記録できない処理をボタン一つで実行できるようになります。

VBAのプログラミングは敷居の高い壁ではなく、Excelと仲良くなるためのツールです。
「業務効率化のため」「スキルアップのため」「論理的な思考を密につけるため」ぜひこの機会チャレンジしてください。
『ビジネス力塾』ではVBAを学習される皆様のお手伝いをさせていただきます。

VBA学習のためのセミナーはこちら!

PAGETOP