マクロを実行する

Microsoft Excel でマクロを実行するには、いくつかの方法があります。マクロとは、作業を自動化するために使用できる 1 つまたは複数のアクションです。マクロは、Visual Basic for Applications プログラミング言語で記録されます。リボンの [マクロ] コマンドをクリックすることにより、マクロをいつでも実行できます。割り当てられたマクロの実行方法に応じて、Ctrl キーを使用するショートカット キーを押したり、クリック アクセス ツールバーまたはリボンのカスタム グループにあるボタンやオブジェクト、グラフィック、またはコントロールの領域をクリックしたりすることによってマクロを実行することもできます。さらに、ブックを開いたときにマクロを自動的に実行することもできます。

注: Excel でマクロのセキュリティ レベルを [警告を表示せずにすべてのマクロを無効にする] に設定した場合、Excel で実行できるのはデジタル署名されたマクロ、または信頼できる場所 (コンピューター上にある Excel のスタートアップ フォルダーなど) に保存されているマクロのみになります。実行するマクロがデジタル署名されていなかったり、信頼できる場所に保存されていない場合、セキュリティ レベルを一時的に変更してすべてのマクロを有効にすることができます。

マクロを実行する前に

マクロを実行するには、事前に Excel のいくつかの設定を変更しておく必要があります。

  1. [開発] タブが表示されていない場合は表示します。詳細については、「[開発] タブを表示する」を参照してください。

  2. セキュリティ レベルを一時的に変更してすべてのマクロを有効にするには、次の操作を行います。

    1. [開発] タブの [コード] で、[マクロのセキュリティ] をクリックします。

      リボンの [開発] タブ
    2. [マクロの設定] カテゴリの [マクロの設定] で、[すべてのマクロを有効にする (推奨しません。危険なコードが実行される可能性があります)] をクリックし、[OK] をクリックします。

      注: 危険なコードが実行される可能性を低くするため、マクロの使用が完了したら、すべてのマクロを無効にするいずれかの設定に戻すことをお勧めします。

  1. マクロを含むブックを開きます。

  2. [開発] タブの [コード] で、[マクロ] をクリックします。

    リボンの [開発] タブ
  3. [マクロ名] ボックスで、実行するマクロをクリックします。

  4. 次のいずれかを実行します。

    • Ctrl キーを押しながら F8 キーを押して、マクロを実行することもできます。マクロを中止するには、Esc キーを押します。

    • Microsoft Visual Basic for Applications (VBA) モジュールからマクロを実行するには、[編集] をクリックし、[実行] メニューで [Sub/ユーザー フォームの実行] をクリックするか、F5 キーを押します。

  1. [開発] タブの [コード] で、[マクロ] をクリックします。

    リボンの [開発] タブ
  2. [マクロ名] ボックスで、Ctrl キーを使用するショートカット キーを割り当てるマクロをクリックします。

  3. [オプション] をクリックします。

    [マクロ オプション] ダイアログ ボックスが表示されます。

  4. [ショートカット キー] ボックスに、Ctrl キーと組み合わせて使用する小文字または大文字のアルファベットを入力します。

    注: ショートカット キーを登録したマクロを含むブックが開いている間は、対応する Excel の既定のショートカット キーが無効になります。

    既に Excel に割り当てられている Ctrl キーを使用したショートカット キーの一覧については、「Excel のショートカット キーとファンクション キー」を参照してください。

  5. [説明] ボックスにマクロの説明を入力します。

  6. [OK ] をクリックして変更内容を保存し、[キャンセル] をクリックして [マクロ] ダイアログ ボックスを閉じます。

クイック アクセス ツール バーのボタンをクリックしてマクロを実行するには、まずボタンをツール バーに追加してください。これを行うには、「ボタンにマクロを割り当てる」を参照してください。

リボンのタブに表示されるカスタム グループを作成して、そのグループのボタンにマクロを割り当てることができます。たとえば、[開発] タブに "My Macros" という名前のカスタム グループを追加し、その新しいグループにマクロ (ボタンとして表示される) を追加できます。これを行うには「ボタンにマクロを割り当てる」を参照してください。

グラフィック オブジェクトの領域をクリックしてマクロを実行する

ユーザーがクリックしてマクロを実行できるホットスポットをグラフィックに作成できます。

  1. ワークシートに、図、クリップ アート、図形、SmartArt などのグラフィック オブジェクトを挿入します。

    グラフィック オブジェクトの挿入方法については、「図形を追加、変更、削除する」をご覧ください。

  2. 既存のオブジェクトにホットスポットを作成するには、[挿入]、[図形] の順にクリックして使用する図形を選択し、その図形を既存のオブジェクトに描画します。

    図形
  3. 作成したホットスポットを右クリックし、[マクロの登録] をクリックします。

  4. 次のいずれかの操作を行います。

    • グラフィック オブジェクトに既存のマクロを登録するには、マクロ名をダブルクリックするか、[マクロ名] ボックスにマクロ名を入力します。

    • 選択したグラフィック オブジェクトに割り当てる新しいマクロを記録するには、[記録] をクリックし、[マクロの​​記録] ダイアログ ボックスでマクロの名前を入力し、[OK] をクリックしてマクロの記録を開始します。マクロの記録が終わったら、[開発] タブの [コード] で、 ボタンの画像 (記録終了) をクリックします。

      ヒント: ステータス バーの左側の [記録終了] ボタンの画像 をクリックすることもできます。

    • 既存のマクロを編集するには、[マクロ名] ボックスでマクロ名をクリックし、[編集] をクリックします。

  5. [OK] をクリックします。

  6. ワークシートでホットスポットを選択します。これにより、[描画ツール] が表示され、[書式] タブが追加されます。

  7. [書式] タブの [図形のスタイル] で、[図形の塗りつぶし] の横にある矢印をクリックし、[塗りつぶしなし] をクリックします。

    [図形の塗りつぶし] の色のオプション メニュー

  8. [図形の枠線] の横の矢印をクリックし、[線なし] をクリックします。

マクロを記録して Auto_Open という名前で保存した場合、このマクロが含まれているブックを開くたびに、このマクロが実行されます。ブックを開いたときに自動的にマクロを実行するには、Visual Basic エディター を使用して、VBA プロシージャをブックの Open イベント内に記述するという方法もあります。Open イベントは組み込みのブック イベントで、ブックを開くたびにマクロ コードを実行します。

Auto_Open マクロを作成する

  1. 特定のブックにマクロを保存するには、まず目的のブックを開きます。

  2. [開発] タブの [コード] で、[マクロの記録] をクリックします。

  3. [マクロ名] ボックスに「Auto_Open」と入力します。

  4. [マクロの保存先] ボックスの一覧で、マクロを保存するブックを選択します。

    ヒント: Excel を使用する際に常にマクロを使用できるようにするには、[個人用マクロ ブック] をクリックします。[個人用マクロ ブック] をクリックした場合、非表示の個人用マクロ ブック (Personal.xlsb) が作成され (該当する既存のブックが存在しない場合)、このブックにマクロが保存されます。Windows Vista の場合、このブックは C:¥Users¥<ユーザー名>¥AppData¥Local¥Microsoft¥Excel¥XLStart フォルダーに保存されます。そこにファイルがない場合は、[Local] ではなく、[Roaming] サブフォルダーに保存された可能性があります。Microsoft Windows XP の場合、このブックは C:¥Documents and Settings¥<ユーザー名>¥Application Data¥Microsoft¥Excel¥XLStart フォルダーに保存されます。XLStart フォルダーのブックは、Excel の起動時に自動的に開きます。個人用マクロ ブックのマクロが別のブックで自動的に実行されるようにするには、そのブックも XLStart フォルダーに保存して、Excel の起動時に両方のブックが開くようにする必要があります。

  5. [OK] をクリックして、記録する操作を実行します。

  6. [開発] タブの [コード] で [記録終了] ボタンの画像 をクリックします。

    ヒント: ステータス バーの左側の [記録終了] をクリックすることもできます。

    ステータス バーの [記録終了]

注記: 

  • 手順 6. で、マクロの保存先として [作業中のブック] または [新しいブック] を選択した場合は、マクロを保存したブックを適切な XLStart フォルダーに必ず保存または移動してください。

  • Auto_Open マクロを記録する際には、次のような制限事項があります。

    • Auto_Open マクロを保存したブックに、既に Open イベントの VBA プロシージャが含まれている場合、Open イベントの VBA プロシージャは Auto_Open マクロのすべてのアクションを無視します。

    • Auto_Open マクロは、ブックが Open メソッドによってプログラムから開かれた場合は無視されます。

    • Auto_Open マクロは、他のブックが開く前に実行されます。したがって、初期設定の Book1 のブックまたは XLStart フォルダーから読み込んだブック上で実行するアクションを Auto_Open マクロに記録すると、Excel を再起動したときに Auto_Open マクロは失敗します。これは、Auto_Open マクロは、初期設定およびスタートアップ ブックが開く前に実行されるためです。

      これらの制限に抵触する場合は、Auto_Open マクロを記録するのではなく、Open イベントの VBA プロシージャを作成してください。この方法については、この記事の次の項で説明します。

  • Excel の起動時に Auto_Open マクロを実行しないようにする場合は、Shift キーを押しながら Excel を起動します。

ブックの Open イベントの VBA プロシージャを作成する

次の例では、ブックを開いたときに Open を使用してマクロを実行します。

  1. 開いているブックを保存して閉じます。

  2. マクロを追加するブックを開くか、新規のブックを作成します。

  3. [開発] タブの [コード] で、[Visual Basic] をクリックします。

  4. プロジェクト エクスプローラー ウィンドウで、ThisWorkbook オブジェクトを右クリックし、[コードの表示] をクリックします。

    ヒント: プロジェクト エクスプローラー ウィンドウが表示されない場合は、[表示] メニューの [プロジェクト エクスプローラー] をクリックします。

  5. コード ウィンドウの上部の [オブジェクト] ボックスの一覧で、[ブック] を選択します。

    これにより、「

    Private Sub Workbook_Open()

    End Sub
    」のような [Open] イベントの空白のプロシージャが自動的に作成されます。

  6. プロシージャに次のコード行を追加します:

    Private Sub Workbook_Open()
    MsgBox Date
    Worksheets("Sheet1").Range("A1").Value = Date
    End Sub

  7. Excel に戻り、ブックをマクロ有効ブック (.xlsm) として保存します。

  8. ブックを閉じてから、再度開きます。ファイルを再度開くと、Excel は Workbook_Open プロシージャを実行し、メッセージ ボックスに今日の日付が表示されます。

  9. メッセージ ボックスの [OK] をクリックします。

    注: Workbook_Open プロシージャを実行することにより、Sheet1 のセル A1 にも日付が挿入されます。

補足説明

Excel Tech Community では、いつでも専門家に質問できます。Microsoft コミュニティでは、サポートを受けられます。また、Excel User Voice では、新機能についての提案や改善案を送信することができます。

ページの先頭へ

関連項目

ブックを開いたときにマクロを自動的に実行する

マクロ記録で作業を自動化する

Excel の起動時にマクロを記録し特定のブックを開く

単一のブックにすべてのマクロを作成して保存する

マクロを保存する

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×