Excelマクロ、VBA

ExcelマクロとVBA入門①:ゼロからプログラミングを始めるための最初の4ステップ

こんにちは、はやぶさです。

日々ExcelやPythonを使って、業務を効率化しています。

プログラミングを始めてから5年が経ち、今では仕事に欠かせないツールとなりました。

この記事では、プログラミング未経験者向けに「簡単なプログラムを動かしてみる」ところまでを解説します。

そこで、手軽に始められるプログラミングの入口として、Excelマクロの学習を提案します。

難しいイメージがあり、実際に奥が深いプログラミングの世界ですが、身近なExcelで意外と手軽に始めることができます。

プログラミング初心者でも、すぐに業務に活かせるスキルを習得できるように、分かりやすい説明を心がけています。

なぜExcelマクロなのか?

  • ExcelマクロはExcelがあればすぐに始めることができます。
  • さらに、学習したことがすぐに仕事に活かすことができます。

だから、Excelマクロはプログラミング入門に理想的な選択肢と言えます。

マクロとVBAの基本

マクロとは?

マクロはExcelで繰り返し行う作業を自動でやってくれる便利な機能です。

面倒な作業もマクロを使えば、ボタン一つでサクッと処理できるようになります。

VBAとは?

マクロを作る時には「VBAVisual Basic for Applications)」というプログラミング言語を使います。

VBAは、Excelだけでなく、WordやPowerPointなどのMicrosoft Officeアプリケーションを自動操作するための言語です。

マクロでできること

マクロを活用することで、以下のような多彩なことが可能になります。

  • エクセル操作の自動化
  • フォルダ、ファイルの操作
  • メール送信
  • インターネット上のデータ収集
  • Windowsの設定変更

マクロの作り方

マクロを作るには大きく分けて2つの方法があります。

  1. 手動操作を記録して作る: 自分がExcelで行う操作をそのまま記録し、それをマクロとして保存します。これはプログラミング知識がなくてもできる簡単な方法です。
  2. 自分でコードを書いて作る: VBAのコードを自分で書いてマクロを作ります。これには基本的なプログラミングの知識が必要ですが、より複雑で自由度の高いマクロを作ることができます。

マクロ記録機能

マクロ記録機能とは?

Excelの「マクロ記録機能」は、手動で行う操作をVBAコードとして記録できる便利なツールです。

記録したマクロを実行することで、自動的に記録した通りの操作がされます。

これにより、プログラミングの経験がない人でも、基本的な作業の自動化を実現できるようになります。

マクロ記録機能の制限

しかし、マクロ記録機能にはいくつかの制限があります。

簡単なタスクや反復作業の自動化にはとても役立ちますが、より複雑な処理を自動化する場合は、VBAコードを直接編集する必要があります。

例えば、条件分岐や繰り返しなどの操作は、マクロ記録では直接取り扱えません。

また、データの状態が記録時と変わる場合、思い通りに動かないことがあります。

マクロ記録機能を使用する

  1. マクロ記録の準備: Excelで「開発」タブを有効にします。これが表示されていない場合は、Excelのオプションから設定できます。
  2. マクロ記録開始: 「開発」タブにある「マクロの記録」ボタンをクリックします。
  3. マクロの設定: マクロに名前をつけ(スペースは使えません)、必要に応じてショートカットキーを設定し、「OK」ボタンをクリックします。
  4. 操作の記録: 自動化したい操作を行います。この時、あなたが行う全ての操作が記録されます。
  5. マクロの記録終了: すべての操作が完了したら、「開発」タブの「記録停止」ボタンをクリックします。

マクロ記録機能は、手軽に自動化できる便利なツールだけど、複雑な処理に対応できない制限があるので注意が必要です。

VBAコードを書く

VBE(VBAエディタ)の開き方

VBAでマクロを書くには、VBEVisual Basic Editor)という専用のエディタを使用します。ExcelでVBAエディタを開くには、次のいずれかの方法を使用します:

  • 「開発」タブ: Excelのリボンにある「開発」タブから「Visual Basic」ボタンをクリックします。
  • Alt + F11 キー: Excel上でこの「Alt + F11」を押すと、VBAエディタが開きます。

新しいモジュールを挿入

VBAエディタで「挿入」メニューを開き、「標準モジュール」を選択します。

これにより、新しいモジュールがプロジェクトに追加され、マクロを記述する準備が整います。

マクロ(サブプロシージャ)を作成

  1. モジュール内に、「sub」と書きます。
  2. 「sub」の右にスペースを開けて、マクロ名を書きます。(英語でも日本語でもOK)
  3. Enterをクリックすると、自動的に「sub」が大文字になり、「()」と「End Sub」が挿入されます。
  4. 「Sub」と「End Sub」の間にコードを書きます。
  5. Tabキーでインデントすることで、コードが読みやすくなります。

コードを書く

とにかく、最初は簡単なコードを書いてみましょう。

以下のコードはメッセージボックスを表示するだけのプログラムです。

「Sub」や「MsgBox」などを入力する際に、全て小文字で「sub」や「msgbox」と入力しても、自動的に大文字に変換されます。

しかし、スペルが間違っていると変換されないため、全て小文字で入力することで、手間を省きつつスペルミスにも気づきやすくなります。

マクロを実行する

方法 1: 「開発」タブから実行

  1. 「開発」タブを開く: Excelのリボンメニューから「開発」タブを選択します。このタブが表示されていない場合は、Excelのオプションからリボンに追加する必要があります。
  2. 「マクロ」ボタンをクリック: 「開発」タブ内にある「マクロ」ボタンをクリックします。
  3. マクロを選択: 実行したいマクロの名前をリストから選択します。
  4. 「実行」ボタンをクリック: 選択したマクロの名前がハイライト表示されたら、「実行」ボタンをクリックします。

方法 2: ショートカットキーを使う

  • ショートカットキーを割り当てる
    1. 「開発」タブを開く: Excelのリボンメニューから「開発」タブを選択します。このタブが表示されていない場合は、Excelのオプションからリボンに追加する必要があります。
    2. 「マクロ」ボタンをクリック: 「開発」タブ内にある「マクロ」ボタンをクリックします。
    3. マクロを選択: ショートカットキーを割り当てたいマクロの名前をリストから選択します。
    4. 「オプション」ボタンをクリック: 「マクロ」ウィンドウ内にある「オプション」ボタンをクリックします。
    5. ショートカットキーを割り当てる: トリガーとなるキーを設定します。
    6. 「OK」ボタンをクリック: ショートカットキーを設定したら「OK」ボタンをクリックします。
    7. マクロウィンドウを閉じる: 右上の「✕」もしくは「キャンセル」ボタンをクリックして、ウィンドウを閉じます。
  • ショートカットキーを使用
    1. ショートカットキーを押す: Excelが開いている状態でトリガーとなるキーを押します。

方法 3: VBAエディタから実行

  1. VBEを開く: Alt + F11 キーを押してVBE(VBAエディタ)を開きます。
  2. マクロを含むモジュールを開く: プロジェクトエクスプローラーで、実行したいマクロが含まれるモジュールをダブルクリックして開きます。
  3. マクロを選択: マクロのコードが書かれたウィンドウ内で、マクロの任意の場所にカーソルを置きます。
  4. マクロを実行: F5キーを押す、もしくは「Sub/ユーザーフォームの実行」ボタンをクリックします。

方法 4: ボタンやシェイプにマクロを割り当て

  1. 「開発」タブを開く: Excelのリボンメニューから「開発」タブを選択します。このタブが表示されていない場合は、Excelのオプションからリボンに追加する必要があります。
  2. 「挿入」を開く: 「開発」タブ内の挿入を選択します。
  3. 「ボタン」を選択: 「挿入」内のボタン(フォームコントロール)をクリックします。
  4. Excelシートにボタンを挿入: シート上の任意の場所をクリックしてボタンを作成します。
  5. マクロを選択: 利用可能なマクロのリストが表示されます。実行したいマクロを選択して「OK」をクリックします。
  6. ボタンをクリックしてマクロを実行: シート上のボタンをクリックすると、割り当てられたマクロが実行されます。

プログラムを実行する方法は多岐にわたります。

先に紹介した4つの方法の他にも、ダブルクリックやセルの内容変更をトリガーにして実行することも可能です。

どのプログラムを実行するかによって、最適な方法は異なりますので、ぜひ色々と試してみて、自分にとって最良の方法を見つけてください。

まとめ

いかがでしょうか?

意外と簡単にプログラムを動かすことができたのではないでしょうか?

ExcelマクロとVBAを学ぶことは、手軽にプログラミングに触れられ、すぐに日々の業務に活かすことができます。

この記事を通して、マクロとVBAの基本、マクロの記録やVBAでのコードの書き方、さらにはマクロの実行方法について詳しく解説しました。

この記事が、プログラミングという新しいスキルを身につけ、日々の作業をより効率的にするための一歩となることを願っています。

ExcelマクロとVBA入門②:セルを操作するRangeオブジェクトの4つのポイントExcelマクロとVBAの基礎を学びたい方必見!この記事では、データ操作の心臓部であるRangeオブジェクトの使い方をわかりやすく解説します。セルの読み書きから複雑な範囲指定まで、4つのポイントで、Excel操作の基本をマスターしましょう。プログラミング初心者が、Excel VBAをフルに活用するためのガイドです。...
はやぶさ
中小企業の中間管理職をしており、ExcelマクロやPythonを活用して業務の自動化に取り組んでいます。

今働いている職場を、ITの力でより良い環境にできるよう、知識や経験を共有していきたいと考えています。