マクロとは、Excel で行う一連の操作を VBA(Microsoft Visual Basic for Applications)というプログラミング言語として記録し、 自動化するための機能です。作成したマクロは、保存して 1 つのコマンドとして繰り返し使用することができます。 マクロを使用すると Excel で毎日、あるいは毎月のように繰り返し行う定型業務を自動化することができるため、操作ミスを 防ぎ、作業時間も短縮し、業務の効率化に役立ちます ≪ ≪ ≪ ≪マクロマクロマクロのマクロのののセキュリティセキュリティセキュリティ≫セキュリティ≫≫≫ Excel では、マクロによるコンピュータウィルスの感染を防ぐため、4 段階のセキュリティレベルが用意されています。 既定では、セキュリティレベルは[警告を表示してすべてのマクロを無効にする]に設定されており、マクロを含むブックを開 くとマクロが無効にされたことを示すセキュリティの警告メッセージが表示され、その場に応じてマクロを有効にしてブック を開くか、マクロを無効にしてブックを開くかを選択することができます。 【 【 【 【セキュリティレベルセキュリティレベルセキュリティレベルセキュリティレベルのののの変更変更変更】変更】】 】
セキュリティレベルを変更するには、[Office ボタン]から[Excel のオプション]ボタンをクリックし、[Excel のオプション] ダイアログボックスを表示して、[セキュリティセンター]の セキュリティセンターの設定 ボタンをクリックして[セキュリ ティセンター]ダイアログボックスを表示します。 【 【 【 【セキュリティセキュリティセキュリティセキュリティのののの警告警告メッセージ警告警告メッセージメッセージメッセージ】】】 】 Excel のセキュリティレベルを[警告を表示してすべてのマクロを無効にする]または[デジタル署名されたマクロを除き、 すべてのマクロを無効にする]に設定した場合、マクロを無効にしてブックを開きます。 マクロを使用するには、表示された警告メッセージの オプション ボタンをクリックし、[Microsoft Office セキュリティ オプション]ダイアログボックスを表示して、[このコンテンツを有効にする]に設定します。 ※ 既定では[不明なコンテンツから保護する(推奨)]に設定されています。 Excel では、マクロ機能を利用して、繰り返し行う操作を自動化することができます。 この章では、マクロの記録方法や実行方法、また編集方法について学習します。
1
1
1
1
マクロ
マクロ
マクロとは
マクロ
とは
とは
とは
マクロの記録機能を使用すると、プログラミングの用語や文法を知らなくても、Excel の一連の操作を行うだけでマクロを 簡単に作成することができます。 ≪ ≪ ≪ ≪マクロマクロマクロマクロ作成作成作成作成のの流のの流流流れれれ≫れ≫≫≫ 1. 設計設計:マクロに記録する内容を検討し、データを用意して事前に記録する操作手順を十分にテストします。 設計設計 ※ マクロの記録中に、間違った操作を行うとその手順もすべて記録されます。 2. 記録記録:マクロを記録します。 記録記録 3. 実行実行:記録したマクロを実行し、動作を確認します。 実行実行 4. 修正修正:マクロが正しく動作しない場合は、修正します。 修正修正 ≪ ≪ ≪ ≪マクロマクロマクロマクロのののの記録記録記録記録≫≫≫≫ マクロを記録するには、[開発]タブの[マクロの記録]ボタンをクリックし、[マクロの記録]ダイアログボックスを表示して、 マクロ名、ショートカットキー、マクロの保存先を指定します。 【 【【 【[[[[開発開発開発開発]]]]タブタブのタブタブののの表示表示表示】表示】】 】 [開発]タブは初期設定では表示されていないため、[Office ボタン]から [Excel のオプション]ボタンをクリックし、[Excel のオプション]ダイア ログボックスを表示して、[基本設定]の[[開発]タブをリボンに表示する] チェックボックスをオンにして表示します。 ≪ ≪ ≪ ≪記録記録記録記録のののの終了終了終了終了≫≫≫ ≫ マクロの記録を開始すると、[開発]タブの[マクロの記録]ボタンが[記録終了]ボタンに変わり、 クリックしてマクロの記録を終了することができます。記録を終了すると[マクロの記録]ボタン に戻ります。 <こんな方法も!!> マクロの記録を開始すると、ステータスバーに[記録終了]ボタンが表示され、クリックしてマクロの記録を終了することがで きます。また、このボタンは記録を終了すると、[マクロの記録]ボタンに変わり、クリックして[マクロの記録]ダイアログボッ クスを表示することができます。
2
2
2
2
マクロ
マクロ
マクロの
マクロ
の
の
の作成
作成
作成
作成
[記録終了]ボタン [マクロの記録]ボタン マクロ名には、文字、数字、アン ダースコア(_)を使用することが できます。(記号は使用できませ ん)また、先頭は文字にする必要 マクロの実行にショートカットキーを 設定することができます。 マクロの保存先は、[個人用マクロブック] [新しいブック]、[作業中のブック]から選 択することができます。≪ ≪ ≪ ≪マクロマクロマクロのマクロののの削除削除削除≫削除≫≫ ≫ マクロを削除するには、[開発]タブの[マクロの表示]ボタンをクリックして [マクロ]ダイアログボックスを表示し、削除するマクロ名を選択して、 削除 ボタンをクリックします。確認メッセージが表示されたら、 はい ボタンを クリックします。 ※ マクロの記録中に操作を間違えてしまった場合は、マクロの記録を 終了し、そのマクロを削除して、新しくマクロを記録し直します。 マクロを記録する際のセルの参照方法には、『相対参照』と『絶対参照』の 2 種類があります。特定のセルを対象にマク ロを記録する場合は『絶対参照』を指定し、アクティブセルの位置を基準とした相対的な位置を参照してマクロを記録 する場合は『相対参照』を指定します。マクロを記録すると、特に指定しない限り、絶対参照でセルの位置が記録され ます。マクロを相対参照で記録するには、[開発]タブの[相対参照で記録] ボタンをオンにします。 [相対参照で記録]ボタンをオンすると、Excel を終了するまで、またはもう一度[相対参照で記録]ボタンをクリックして オフにするまで、マクロは相対参照で記録されます。 マクロを実行するには、[開発]タブの[マクロ]ボタンをクリックし、[マクロ]ダイアログボックスを表示して実行します。 また、ショートカットキーやボタンを使用して実行することもできます。 ≪ ≪ ≪ ≪ショートカットキーショートカットキーショートカットキーによるショートカットキーによるによるによる実行実行実行実行≫≫≫≫ マクロ実行のショートカットキーに使用するアルファベットは、小文字と大文字を区別して使用することができます。 小文字を指定した場合は Ctrl キーと、大文字を使用した場合は Ctrl キーと Shift キーと指定したアルファベットの組み合 わせでマクロを実行します。 ※ 設定したマクロのショートカットキーが Excel の既定のショートカットキーと重複した場合、マクロのショート カットキーが優先されます。 【 【 【 【ショートカットキーショートカットキーショートカットキーショートカットキーのののの設定設定設定】設定】】 】 作成したマクロに、後からショートカットキーを設定したり、ショートカットキーを 変更する場合は、[マクロ]ダイアログボックスで対象となるマクロ名を選択し、 オプション ボタンをクリックして表示される[マクロオプション]ダイアログボックス で設定します。 ≪ ≪ ≪ ≪マクロマクロマクロ実行マクロ実行実行実行ボタンボタンのボタンボタンののの作成作成作成作成≫≫≫ ≫ 記録したマクロをボタンに登録して、ボタンをクリックしてマクロを実行することができます。 1. [開発]タブの[挿入]ボタンから[ボタン(フォームコントロール)]をクリックし、ワークシート上で ドラッグしてボタンを作成します。 2. 表示された[マクロの登録]ダイアログボックスから対象となるマクロ名を選択し、 OK ボタンを クリックします。 3. Esc キーを押すか任意のセルをクリックし、ボタンの選択を解除します。
3
3
3
3
マクロ
マクロ
マクロの
マクロ
の
の
の実行
実行
実行
実行
マクロ記録時のセルの参照
※ ボタンにマウスポインタを合わせると の形状になり、クリックすると登録したマクロが実行されます。 ≪ ≪ ≪ ≪マクロボタンマクロボタンマクロボタンマクロボタンのののの編集編集編集≫編集≫≫ ≫ マクロを登録したボタンは、クリックするとマクロが実行されるため、ボタンのサイズや位置を変更したり、書式を設定する には、 Ctrl キーを押しながらボタンをポイントし、マウスポインタの形状が の状態でクリックして選択状態にして行 います。 ※ Ctrl キーを押しながらドラッグするとボタンのコピーになるので注意します。 【 【【 【ボタンボタンボタンボタンのののの書式設定書式設定書式設定】書式設定】】 】 フォントなどの書式を変更するには、ボタンを右クリックし、ショートカットメニューの[コントロールの書式設定]をクリッ クして[コントロールの書式設定]ダイアログボックスを表示します。 【 【【 【ボタンボタンボタン名ボタン名名名のの変更のの変更変更変更】】】】 ボタン名を変更するには、ボタンを右クリックし、ショートカットメニューの[テキストの編集]をクリックして、ボタン内 にカーソルを挿入します。またボタンが選択されている場合は、ボタン内をポイントし、マウスのポインタの形状が の 状態でクリックするとカーソルを挿入することができます。 ≪ ≪ ≪ ≪マクロボタンマクロボタンマクロボタンマクロボタンのののの削除削除削除≫削除≫≫ ≫ A) ボタンを右クリックし、ショートカットメニューの[切り取り]をクリックします。 B) Ctrl キーを押しながらボタンをクリックし、 Delete キーまたは、 Backspace キーを押します。 ※ ボタン内にカーソルが表示されている場合は、ボタンの輪郭を再度クリックし、カーソルを表示していない状態に してから行います。 マクロはブックと共に保存されます。マクロを含むブックを保存するには、ファイルの種類を“Excel マクロ有効ブック (*.xlsm)”として保存する必要があり、通常の Excel ブックのファイルの種類“Excel ブック(*.xlsx)”ではマクロは保存されま せん。 (拡張子は“xlsm”となります) ※ “Excel マクロ有効ブック(*.xlsm)”は、ファイルのアイコンも通常の Excel ブックとは異なります。
マクロを記録すると、その操作内容が VBA(Microsoft Visual Basic for Applications)のコードとして記録されます。 VBA のコードは、Visual Basic Editor を使用して、記述内容を確認したり、
編集することができます。
記録したマクロの記述を編集するには、[マクロ]ダイアログボックスで対象と なるマクロ名を選択し、 編集 ボタンをクリックして[Microsoft Visual Basic] ウィンドウを開きます。
5
5
5
5
マクロ
マクロ
マクロの
マクロ
の
の
の編集
編集
編集
編集
4
4
4
4
マクロ
マクロ
マクロの
マクロ
の
の
の保存
保存
保存
保存
Excel ブックのアイコン Excel マクロ有効ブックのアイコン 輪郭をこのマウスポインタの形状でクリックします。≪ ≪ ≪
≪VBA のののコードのコードコードコードのののの構成構成構成≫構成≫≫ ≫
<こんな方法も!!>
[開発]タブの[Visual Basic]ボタンをクリックしても、Visual Basic Editor を起動して、[Microsoft Visual Basic] ウィンドウを開くことができます。 F1 キーを使用して、わからない用語(コード)の意味や使用例を調べることができます。 調べたい用語をクリックして、カーソルを挿入し、 F1 キーを押すとヘルプを表示することができます。 ここでは、マクロの記録と実行の方法、マクロの保存について確認しましょう。 STEP 1 Excel を起動し、ドキュメントフォルダから“7 章(1)マクロ.xlsx”ブックを開きましょう。 STEP 2 [Excel のオプション]ダイアログボックスを使用して、[開発]タブを表示しましょう。 STEP 3 マクロの記録をはじめる前に、“テスト”シートを使用して、マクロにする操作手順を確認しましょう。 ① “テスト”シートをアクティブにします。 ② セル C3 から D14 の 5 月から 6 月のデータを項目も含めてコピーし、セル B3 に貼り付けます。 ③ セル C3 を選択し、オートフィルを使用してセル D3 に月を入力します。 ④ “今月売上”シートをアクティブにし、セル B4 から B14 をコピーします。
7
7
7
7章
章
章
章―
―
―
―1
1
1
1
操作
操作
操作
操作してみよう
してみよう
してみよう
してみよう!
!
!
!
ヘルプの利用
マクロの開始 マクロの終了 コメント:シングルクォーテーション(’)で始まり緑色 で表示されるプログラムに影響しない文字(メモ) 記録した操作手順 マクロ名※ 目的のセルが既に選択されていても、マクロに記録する場合は、必ず選択し直します。 ⑤ “テスト”シートをアクティブにし、セル D4 に書式を変更しないように貼り付けます。 ⑥ セル A3 を選択します。 STEP 4 STEP3 で確認した操作手順を“3 ヶ月売上”シートを使用して、マクロとして記録しましょう。 ① “3 ヶ月売上”シートをアクティブにします。 ② [開発]タブの[マクロの記録]ボタンをクリックし、[マクロの記録]ダイアログボックスを表示します。 ③ [マクロ名]に「更新」と入力し、 OK ボタンをクリックします。 ④ セル C3 から D14 の 5 月から 6 月のデータを項目も含めてコピーし、セル B3 に貼り付けます。 ⑤ セル C3 を選択し、オートフィルを使用してセル D3 に月を入力します。 ⑥ “今月売上”シートをアクティブにし、セル B4 から B14 をコピーします。 ※ 目的のセルが既に選択されていても、マクロに記録する場合は、必ず選択し直します。 ⑦ “3 ヶ月売上”シートをアクティブにし、セル D4 に書式を変更しないように貼り付けます。 ⑧ セル A3 を選択します。 ⑨ [記録終了]ボタンをクリックし、マクロの記録を終了します。 STEP 5 “今月売上”シートのセル B4 から B14 に 8 月の売上金額を入力しましょう。 (入力作業を省くため、“テスト用データ”シートのセル B4 から B14 をコピーし、“今月売上”シートのセル B4 に貼り付けます) STEP 6 “3 ヶ月売上”シートをアクティブにし、“更新”マクロを実行して “3 ヶ月売上”シートを“6 月”から“8 月”の表に更新しましょう。 STEP 7 “売上金額推移マクロ.xlsm”というファイル名を付けて、Excel マクロ有効ブックとしてドキュメントフォルダ内の“保存用” フォルダに保存しましょう。 STEP 8 Excel は終了せずに“売上金額推移マクロ.xlsm”ブックを閉じましょう。 再度“売上金額推移マクロ.xlsm”ブックを開きましょう。 ※ セキュリティの警告メッセージが表示され、マクロが無効になります。 STEP 9 マクロが無効なブックではマクロが実行できないことを確認し、マクロを有効にしましょう。 ① “更新”マクロを実行し、次のメッセージが表示されることを確認して、 OK ボタンをクリックします。 ② “売上金額推移マクロ.xlsm”ブックを閉じ、再度“売上金額推移マクロ.xlsm”ブックを開きます。 ③ セキュリティの警告メッセージの オプション ボタンをクリックし、[Microsoft Office セキュリティオプション]ダイアログ ボックスを表示して、[このコンテンツを有効にする]に設定します。 マクロの記録中は、ステータスバーの左端に [記録終了] ボタンが表示され、ポイント セル A3 を選択してマクロ が終了します。
STEP10
[Microsoft Visual Basic]ウィンドウで“更新”マクロを表示し、記録されたマクロを確認しましょう。 確認後、セル A1 を選択した状態でマクロが終了するようにマクロを編集します。
① [マクロ]ダイアログボックスを表示して、“更新”マクロを選択し、 編集 ボタンをクリックします。
② “Range(“A3”).Select ”と記録されているコードを「Range(“A1”).Select 」と変更します。 ③ [Microsoft Visual Basic]ウィンドウを閉じます。
STEP11 “今月売上”シートのセル B4 から B14 に 9 月の売上金額価格を入力しましょう。 (入力作業を省くため、“テスト用データ”シートのセル C4 から C14 をコピーし、“今月売上”シートのセル B4 に貼り付けます) STEP12 “3 ヶ月売上”シートをアクティブにし、“更新”マクロを実行して “3 ヶ月売上”シートを“7 月”から“9 月”の表に更新しましょう。 STEP13 “更新”マクロをボタンから実行できるように“3 ヶ月売上”シートの表の右側にフォームコントロールのボタンを作成しましょ う。 ① “3 ヶ月売上”シートをアクティブにします。 ② [開発]タブの[挿入]ボタンから[ボタン(フォームコントロール)] ボタンをクリックして、セル G2 から H3 のあたりを ドラッグします。 ③ [マクロの登録]ダイアログボックスの[マクロ名]ボックスから[更新]を選択し、 OK ボタンをクリックします。 ④ ボタン名を「3 ヶ月売上更新」に変更します。 STEP14 “今月売上”シートのセル B4 から B14 に 10 月の売上金額価格を入力しましょう。 (入力作業を省くため、“テスト用データ”シートのセル D4 から D14 をコピーし、“今月売上”シートのセル B4 に貼り付けます) STEP15 “3 ヶ月売上”シートをアクティブにし、作成したボタンを使用して“更新”マクロを実行し、“3 ヶ月売上”シートを“8 月”か STEP10 でマクロを修正したため、セル A1 を選択してマクロが終了します。
STEP16 上書き保存して、Excel を終了しましょう。 参照) 完成フォルダ内の“売上金額推移マクロ_完成.xlsx”ブック
完成例
完成例
完成例
完成例
ここでは、“発注伝票”に入力したデータを削除するマクロを作成し、ショートカットキーやボタンでマクロを実行できるように 設定します。 STEP 1 Excel を起動し、ドキュメントフォルダから“7 章トレーニング.xlsx”ブックを開きましょう。 STEP 2 [開発]タブが表示されていない場合は、表示しましょう。 STEP 3 マクロのテスト用に、“発注伝票”シートを 2 枚コピーして、“発注伝票(2)”シート と“発注伝票(3)”シートを作成しましょう。 STEP 4 毎回新しいデータが入力できるように、“お届け先”、“商品 ID”、“数量”のデータを削除するマクロを作成します。 “発注伝票(2)”シートをアクティブにし、マクロの記録をはじめる前に、マクロにする操作手順を確認しましょう。 ① セル B4 から B7、セル B11 から B18、セル E11 から E18 を選択します。 ② Delete キーを押します。 ③ セル B4 を選択します。 STEP 5 [元に戻す]ボタンをクリックし、消去したデータを戻します。(マクロを実行した後は、[元に戻す]ボタンは使用できません) STEP 6 “発注伝票(2)”シートを利用して、STEP4 で確認した操作手順をマクロとして記録しましょう。 ① 任意のセルを選択します。(記録を開始する前に、マクロで選択するセルの選択を解除しておきます) ② [マクロの記録]ダイアログボックスで次の設定をして記録を開始します。 マクロ名:「消去」 ショートカットキー:「D」(半角の大文字) ③ STEP4 で確認した①~③の操作手順を行います。 ④ マクロの記録を終了します。 ⑤ [元に戻す]ボタンをクリックし、消去したデータを戻します。 STEP 7 ショートカットキーを使用して、マクロを実行しましょう。 STEP 8 次の手順で“発注伝票マクロ.xlsm”というファイル名を付けて、Excel マクロ有効ブックとしてドキュメントフォルダ内の“保存 用”フォルダに保存しましょう。 ① ブックを上書き保存し、次のメッセージが表示されることを確認します。 ② 表示されたメッセージの いいえ ボタンをクリックし、[名前を付けて保存]ダイアログボックスを表示して、ファイル名と ファイルの種類を指定して保存します。 ※ はい ボタンをクリックした場合は、 ブックは上書き保存されますが、
第
第
第
第 7
7
7
7 章
章
章の
章
の
のトレーニング
の
トレーニング
トレーニング
トレーニング
STEP 9
[Microsoft Visual Basic]ウィンドウで“消去”マクロを表示し、マクロ名を「データ消去」に変更し、“手配日”、“発送予定日”、 “担当”のデータ(セル F3 から F5)も削除できるように編集しましょう。編集後、[Microsoft Visual Basic]ウィンドウを閉じます。
※ 編集する際に、コード内のカッコやダブルクォーテーションを削除しないように注意します。 STEP10 “発注伝票(3)”シートをアクティブにし、マクロを実行して、セル F3 から F5 のデータも削除されることを確認しましょう。 STEP11 不要になった“発注伝票(2)”シートと“発注伝票(3)”シートを削除しましょう。 STEP12 “発注伝票”シートのセル I2 から I3 あたりに、“データ消去”マクロを実行するフォームコントロールのボタンを作成しましょう。 ボタン名は「データ消去」にします。 STEP13 ボタンを使用して、マクロを実行しましょう。 STEP14 上書き保存して、Excel を終了しましょう。 設定したショートカットキー がコメントに表示されます。 「E18」と「”」の間に、カーソルを挿入 し、「,F3:F5」と入力します。