HOME > VBA広場 > Excel VBA ビギナーズ > 第1回 マクロを使っていつもの操作を自動実行 2/5

第1回 マクロを使っていつもの操作を自動実行 2/5

第1回 マクロを使っていつもの操作を自動実行| 1/5  2/5  3/5  4/5  5/5 

マクロの記録

マクロとは、あらかじめアプリケーションでの操作を登録しておき、いつでも実行できるようにしたものです。エクセルでは、操作内容の登録にマクロ記録機能を使います。
今回のサンプルでは、「[オートフィルタオプション]ダイアログボックスを呼び出し」→「条件を入力」という手順をその都度操作しなければならなかったものを、「マクロを実行する」という1つだけの操作になるマクロを作成します。マクロにすることで「条件を間違えた」などの操作上のミスもなくなります。

マクロを作るための準備

サンプルファイル“顧客別売上合計.xls”を開き、マクロの記録をしてみましょう。ここでは、マクロを記録する前に表示する[マクロの記録]ダイアログボックスについて解説します。このダイアログボックスでは、マクロの名前やショートカットキーなど、マクロを実行するための情報を設定します。

  1. [ツール]メニューの[マクロ]から[新しいマクロの記録]を選択し、[マクロの記録]ダイアログボックスを表示する。
    ▼図02-01 [マクロの記録]ダイアログボックスの表示
    図02-01 [マクロの記録]ダイアログボックスの表示

    【Excel2007の場合】

    Excel2007ではメニューバーでなく、リボンを使用します。[マクロ]ボタンは[表示]タブ内に用意されています。

    ▼図02-02 Excel2007での[マクロの記録]ダイアログボックスの表示
    図02-02 Excel2007での[マクロの記録]ダイアログボックスの表示

    また、ステータスバー上のボタンを使って表示することもできます。

    ▼図02-03 Excel2007での[マクロの記録]ダイアログボックスの表示(2)
    図02-03 Excel2007での[マクロの記録]ダイアログボックスの表示(2)
  2. [マクロ名]に「売上あり」と入力する。
  3. [マクロの保存先]に「作業中のブック」を選択する。
  4. [説明]に「マクロ記録日:2008/XX/XX ユーザー名:moug」と入力する。
  5. [OK]ボタンをクリックすると、マクロの記録が開始され[記録終了]ツールバーが表示される。
    ▼図02-04 [マクロの記録]ダイアログボックス
    図02-04 [マクロの記録]ダイアログボックス
    マクロ名
    どのようなマクロなのかをわかりやすくするマクロ名を指定する。
    ショートカットキー
    マクロを実行するためのショートカットキーを指定する。(省略可)
    キーボードのアルファベットや数字を一文字入力して指定する。例えば、「k」と入力すると[Ctrl]+[K]キーでマクロが実行できる。
    マクロの保存先
    マクロをどこに保存するかを指定する。
    通常の場合は[作業中のブック]に保存するが、エクセルの起動のたびに使用したいマクロは[個人用マクロブック]に保存する。
    説明
    これから記録するマクロの説明を記述する。(省略可)
    初期値には、マクロ記録日やユーザー名が入力されている場合があるが、マクロの内容がわかりやすいものに変えてもよい。

エクセルの操作をマクロに記録

マクロ記録中のエクセルの操作はすべて記録されます。レコーダーの録音ボタンをオンにした状態をイメージしてみましょう。

  1. オートフィルタを設定したいリスト内のセルを選択する。今回はセルA3を選択する。
    ▼図02-05 セルA3を選択
    図02-05 セルA3を選択
  2. [データ]メニューの[フィルタ]から[オートフィルタ]を選択する。オートフィルタが設定され、セル範囲A3:E3に▼ボタンが表示される。
    ▼図02-06 オートフィルタ選択
    図02-06 オートフィルタ選択

    【Excel2007の場合】

    Excel2007ではメニューバーではなく、リボンを使用します。[フィルタ]ボタンは[データ]タブ内に用意されています。

    ▼図02-07 Excel2007での[フィルタ]ボタン
    図02-07 Excel2007での[フィルタ]ボタン
  3. セルC3の▼ボタンをクリックし、リストから[(オプション...)]を選択すると[オートフィルタオプション]ダイアログボックスが表示される。
    ▼図02-08 [オートフィルタオプション]ダイアログボックスを表示
    図02-08 [オートフィルタオプション]ダイアログボックスを表示

    【Excel2007の場合】

    リストの[数値フィルタ]から[ユーザー設定フィルタ]を選択すると、[オートフィルタオプション]ダイアログボックスが表示されます。

    ▼図02-09 Excel2007で[オートフィルタオプション]ダイアログボックスを表示
    図02-09 Excel2007で[オートフィルタオプション]ダイアログボックスを表示
  4. 売上金額が0円より大きい行だけを抽出するため、[売上金額]に「0」と入力する。
  5. 右側のボックスの▼ボタンをクリックし、「より大きい」を選択する。
  6. [OK]ボタンをクリックすると、売上金額が0円より大きいデータだけが抽出される。
    ▼図02-10 [オートフィルタオプション]ダイアログボックス
    図02-10 [オートフィルタオプション]ダイアログボックス
  7. [記録終了]ツールバーの[記録終了]ボタンをクリックし、マクロの記録を完了する。
    ▼図02-11 マクロの記録終了
    図02-11 マクロの記録終了

    【Excel2007の場合】

    Excel2007ではツールバーでなく、[記録終了]ボタンはステータスバーに表示されます。

    ▼図02-12 マクロの記録終了
    図02-12 マクロの記録終了

マクロの記録時に、マクロに不必要な操作や異なる操作をしてしまうと、その操作も記録されてしまいますが、その場合、記録をしなおすことができます。上記手順1〜4の操作を行い、手順5の[OK]ボタンをクリックすると、図02-13のような画面が表示されます。ここで[はい]ボタンをクリックすると、「売上あり」というマクロ名でマクロの記録が開始されます。

  1. [はい]ボタンをクリックすると、マクロの記録が開始される。
    ▼図02-13 マクロの記録の置き換え
    図02-13 マクロの記録の置き換え

マクロ記録を開始すると、エクセルの操作はすべて記録されてしまいます。「セルを選択した」などの操作も記録されるので、あらかじめマクロにする操作を整理しておくことが大切です。

ここで、マクロを記録するときのコツを1つ紹介しておきましょう。今回のように、現在のシートに対して操作するマクロを作りたいときは、マクロ記録中に「シートを選択する」操作を行わなければ「シートを選択する」操作は記録されませんので、現在選択されているシートに対してマクロが実行されます。

特定のシートに対して操作するマクロを作りたいときは、あらかじめ、別シートを選択した状態でマクロ記録を開始し、特定のシートを選択します。すると、「シートを選択する」という操作が記録され、マクロを実行すると「シートを選択する」操作が行われます。

このコツは『エクセルの操作をそのまま記録して実行する』マクロ記録の特徴を生かしたものですので、ぜひ理解して活用できるようにしましょう。

では、次のページでマクロを実行してみましょう。

第1回 マクロを使っていつもの操作を自動実行| 1/5  2/5  3/5  4/5  5/5