OA スキルアップ Excel2013 マクロ 1 / 12 マクロ機能概要 マクロとは Excel2013 マクロ マクロとは Excel で行う一連の操作を自動実行させる機能です 毎日繰り返し行う業務はマクロとして登録しておけば 効率的に仕事を進めることができます マクロの作成方法 マクロは 次の 2 つの方法で作成できます 1. マクロの記憶機能を使う実際に操作した内容をそのまま記録してマクロを作成 記録した操作は VBA(Visual Basic for Applications) というプログラミング言語に自動的に変換されるので VBA の文法を知らなくても 誰でも簡単なマクロを作成することができます 2. VBA で直接記述する VBA を使用し 一からマクロを記述する方法です VBA を記述する際は Visual Basic Editor と呼ばれる編集画面を使用します 記録マクロの作成手順 1. 設計記録する操作内容 マクロ名 マクロの保存先 マクロの実行方法を決めます 2. 操作の練習事前に操作練習を実行して問題がないか確認しておきます 3. 記録操作を実行してマクロを記録します 4. 実行マクロを実行します 5. 修正マクロが正しく動かない場合 Visual Basic Editor から編集します マクロ名マクロ名には 文字 数字 アンダースコアー (_) を使用できます スペースや記号は使用できません ただし マクロの先頭は必ず文字にします マクロの保存先 マクロの保存先には 次の 3 つが指定できます 作業中のブック 現在作業中のブックのみでマクロを使用する場合に指定 個人用マクロブックすべてのブックでマクロを使用する場合に指定 新しいブック 新規ブックを作成し マクロをそのブックに保存する場合に指定 マクロの実行方法作成したマクロは次の方法で実行させることができます マクロ ダイアログボックスから実行する / ショートカットキーに登録して実行するワークシート上にボタンを作成して ボタンにマクロを登録して実行する / クイックアクセスツールバーに登録して実行する 頻繁に繰り返し行うマクロ操作は ショートカットキーに登録するとすばやくマクロを実行できます 作業中のブックのみで使用するマクロを実行する時は 作業シート上にボタンを配置し わかりやすい名前を付け ておくと 誰でも簡単にマクロを実行することができます マクロの保存先に個人用マクロブックを指定し すべてのブックで使用できるマクロを作成した場合 クイックアク セスツールバーにマクロを登録しておくと便利です
OA スキルアップ Excel2013 マクロ 2 / 12 [ 開発 ] タブの表示 マクロを記録したり 編集したりするには [ 開発 ] タブを使います 操作 [ 開発 ] タブを表示します 1[ ファイル ] タブをクリックし [ オプション ] を選択します [Excel のオプション ] ダイアログボックスが表示されます 2[ リボンのユーザー設定 ] を選択し [ 開発 ] をクリックします [OK] ボタンをクリックします [ 開発 ] タブが表示されます ステータスバーに [ マクロの記録 ] ボタンが表示されます 記録マクロの作成 記録する操作の確認 マクロの記録を開始すると 記録を終了するまですべての操作が記録されます スムーズに操作が行えるように 事前に操作の内容を確認しておきましょう 請求書の入力済みのデータをクリアにするマクロを作成します マクロ名 : データ削除 マクロの保存先 : 作業中のブック マクロの実行方法 : ボタンから実行 記録する操作内容 : 操作 1:A5~C5 セル B10 セル ~B17 セル E10 セル ~E17 セルを選択します 操作 2:[Delete] キーを押します POINT! 操作を誤った場合 [Esc] キーを押し記録を中止することができますが 記録は最初からやり直す必要があります
OA スキルアップ Excel2013 マクロ 3 / 12 マクロの記録 操作にかかる時間は記録されないので ゆっくり落ち着いて間違えないよう操作しましょう 操作マクロの記録を行います 1 ステータスバーの [ マクロの記録 ] ボタンをクリックします [ マクロの記録 ] ダイアログボックスが表示されます 2[ マクロ名 ] ボックスに データ削除 と入力し ショートカットキーに半角小文字の d を入力します 3[ マクロの保存先 ] に 作業中のブック と表示されていることを確認し [OK] ボタンをクリックします POINT! 英字小文字を設定した場合は [Ctrl] キーを押しながらショートカットキーを押してマクロを実行します 英字大文字を設定した場合は [Ctrl] キー +[Shift] キーを押しながらショートカットキーを押して マクロを実行します ただし Excel で既に設定されているショートカットキーがある場合 マクロのショートカットキーが優先されます マクロの記録が開始され [ マクロの記録 ] ボタンが [ 記録終了 ] ボタンになります 4 マクロに記録したい操作 (2-1) を実行します 操作が終了したら マクロの記録を終了します 5 ステータスバーの [ 記録終了 ] ボタンをクリックします マクロの実行 [ マクロ ] ダイアログボックス ショートカットキーでのマクロの実行を確認しましょう 操作 [ マクロ ] ダイアログボックスからマクロを実行します 事前に宛名 商品 ID 数量のデータを入力しておきましょう 1[ 開発 ] タブ [ コード ] グループの [ マクロ ] をクリックします
OA スキルアップ Excel2013 マクロ 4 / 12 2[ マクロ ] ダイアログボックスで実行するマクロ データ削除 を選択し [ 実行 ] をクリックします マクロが実行され データが削除されます ショートカットキーからもマクロを実行してみましょう 3 再度 宛名 商品 ID 数量のデータを入力します 4[Ctrl] キーを押しながら [d] キーを押します マクロが実行され データが削除されます ボタンからマクロを実行 シート上にボタンを作成して マクロを登録すると ボタンをクリックするだけで簡単にマクロを実行できます 操作ボタンにマクロを登録します 1[ 開発 ] タブ [ コントロール ] グループの [ コントロールの挿入 ] から [ ボタン ( フォームコントロール )] をクリックします 2 対角線上にドラッグします [ マクロの登録 ] ダイアログボックスが表示されます ボタンに登録するマクロを選択します 3 データ削除 を選択し [OK] ボタンをクリックします ボタン名を変更します 4 ボタンが選択された状態で データ削除 と入力します 5 ボタン以外の場所をクリックして選択を解除します POINT! ボタンの選択解除後に ボタンを選択するには [Ctrl] キーを押しながらボタンをクリックします
OA スキルアップ Excel2013 マクロ 5 / 12 操作ボタンからマクロを実行します 事前に宛名 商品 ID 数量のデータを入力しておきましょう 1 ボタンをポイントし マウスポインターの形が手のひらの形に変わったらクリックします マクロが実行されます マクロ有効ブックとして保存する マクロを含むブックは マクロ有効ブック として保存します 操作マクロ有効ブックとして保存します 1[ ファイル ] タブ [ エクスポート ] を選択し [ ファイルの種類の変更 ] をクリックします 2[ マクロ有効ブック ] をクリックして [ 名前を付けて保存 ] をクリックします [ 名前を付けて保存 ] ダイアログボックスが表示されます 3 ファイル名とファイルの保存場所を指定し ファイルの種類に Excel マクロ有効ブック となっていることを確認し [ 保存 ] をクリックします マクロを含むブックのアイコンには右下にマークが付き 一目で確認できます 拡張子は.xlsm です 4 ブックを閉じます [ ファイル ] タブから [ 閉じる ] をクリックします
OA スキルアップ Excel2013 マクロ 6 / 12 マクロを含むブックを開く マクロを悪用したマクロウィルスの侵入を防ぐため マクロを含むブックを開くと マクロが無効になり セキュリティの警告メッセージ が表示されます 操作マクロを含むブックを開きます 1[ ファイル ] タブから [ 開く ] を選択し 請求書マクロ.xlsm を選択します 2 セキュリティの警告のメッセージバーが表示されます マクロを実行できるようにするには [ コンテンツの有効化 ] ボタンをクリックします マクロが有効になりメッセージバーが閉じられます 操作セキュリティ設定を確認しましょう 1[ 開発 ] タブ [ コード ] グループの [ マクロのセキュリティ ] をクリックします [ セキュリティセンター ] ダイアログボックスが表示されます 2 警告を表示して すべてのマクロを無効にする が選択されているのを確認します Excel では マクロによるウィルスの感染を防ぐために 4 段階のセキュリティレベルが用意されています 3[ キャンセル ] ボタンをクリックします VBE からのマクロの表示 記録したマクロは Visual Basic Editor を使用し マクロの内容を表示したり編集したりできます 操作マクロの内容を確認しましょう 1[ 開発 ] タブ [ コード ] グループの [ マクロ ] をクリック します 2 表示された [ マクロ ] ダイアログボックスで作成したマクロを選択し [ 編集 ] をクリックします
OA スキルアップ Excel2013 マクロ 7 / 12 Visual Basic Editor が起動し 記述されたマクロの VBA のコードが表示されます 緑色で表示されている部分は コメントでマクロ処理以外の関連情報がコメントとして記述されています プログラムの開始 コメント マクロで記録した内容 プログラムの終了 マクロ処理は上から順番に 1 行ずつ実行されます Range("A5:C5,B10:B17,E10:E17").Select "A5:C5,B10:B17,E10:E17" セルを選択 Range("E10").Activate "E10" セルをアクティブにする Selection.ClearContents 選択しているセル範囲のデータを削除 マクロの削除 不要になったマクロは間違って実行されないよう削除します 操作 データ削除 マクロを削除します 1[ 開発 ] タブ [ コード ] グループの [ マクロの表示 ] をクリックします [ マクロ ] ダイアログボックスが表示されます 2 削除する データ削除 マクロを選択します [ 削除 ] ボタンをクリックします 3 の確認のメッセージが表示されたら [ はい ] をクリックします マクロの実行ボタンを削除します 4[Ctrl] キーを押しながらボタンをクリックして [Delete] キーを押します
OA スキルアップ Excel2013 マクロ 8 / 12 一連の操作をマクロとして記録する マクロ記録操作のポイント マクロ記録機能だけで 様々な操作をマクロ化するには 相対参照での記録 と ショートカットキー を上手に利用することが重要です 相対参照を効果的に使う マクロの記録は絶対参照で記録されます 絶対参照で記録すると 選択したセルやセル範囲のみに操作が記録されます 相対参照では マクロを記録する時点でのアクティブセルからの相対的なセル位置を元に操作が記録されます 記録された操作が同じ場合でも 相対参照と絶対参照ではマクロの実行結果が異なります マクロの記録例 ) A1 セルが選択された状態で記録を開始 D1 セルを選択し を入力し ここまでの操作を記録し A3 セルが選択された状態で記録したマクロを実行します 絶対参照で記録した場合 相対参照で記録した場合 マクロの記録内容 D1 セル に を入力 選択されたセルの 3 列右のセル に を入力 マクロの実行結果 D1 セル に が入力 A3 セルの 3 列右のセル D4 に が入力 特定のセルではなく 基点となるアクティブセルの相対的な位置関係にあるセルに対し操作を実行したい場合 相対参照で記録します ショートカットキーの利用 売上台帳や顧客名簿などデータが日々追加される表全体に対して 常に操作を実行させたい場合 ショートカットキーを使用して 表全体のセル範囲を操作対象とする 表の最終行にセル移動する といった操作指示をマクロに記録します また Excel 操作を実行するショートカットキーも活用しましょう マクロで使用される代表的なショートカットキーは以下の通りです アクティブセルを基準として選択 移動するショートカットキー 操作ショートカットキー操作ショートカットキー 表全体を選択する [Ctrl] キー +[Shift] キー +[*] キー Excel 操作を実行するショートカットキー 操作 または [Ctrl] キー +[*] キー ショートカットキー 切り取り [Ctrl] キー +[X] キー コピー [Ctrl] キー +[C] キー 貼り付け [Ctrl] キー +[V] キー 最終列への移動 [Ctrl] キー +[ ] キー 表の列選択 [Ctrl] キー +[Shift] キー +[ ] キー最終行への移動 [Ctrl] キー +[ ] キー 表の行選択 [Ctrl] キー +[Shift] キー +[ ] キー
OA スキルアップ Excel2013 マクロ 9 / 12 記録する操作の確認 複雑な業務をマクロ化する場合 各作業工程のまとまりごとに マクロに分けて作成します 社員への意識調査アンケートの回収進捗を管理する業務を次の 2 つのマクロで実行します マクロ 1: マクロ名 回収日登録 相対参照で記録記録する操作 :1 回収した社員の管理 ID のセルを選択 2 そのセルの 4 列右のセル に本日の日付を入力本日の日付はショートカットキー [Ctrl] キー +[;( セミコロン )] キーで入力します マクロ 2: マクロ名 未回収者リスト作成 絶対参照で記録記録する操作 :1 社員名簿 シートのテーブルから回収日が 空欄 のデータを抽出 2 抽出データをコピー 3 新しいシートに貼り付け 対象者に督促メールをするためのリストを作成します 1 回収日が 空欄 のデータを抽出 3 新しいシートに貼り付け 2 抽出データをコピー マクロ 1( 相対参照でのマクロ作成 ) 相対参照でマクロを記録します
OA スキルアップ Excel2013 マクロ 10 / 12 操作 回収日登録 マクロを作成します 1[ 開発 ] タブ [ コード ] グループの [ 相対参照で記録 ] をクリックします 操作の基点となるアクティブセルを選択します 2 社員名簿 シートの A8 セルを選択します 3 ステータスバーの [ マクロの記録 ] ボタンをクリックします [ マクロ ] ダイアログボックスが表示されます 4[ マクロ名 ] ボックスにマクロ名 回収日登録 と入力します 5[ マクロの保存先 ] に 作業中のブック と表示されていることを確認します 6[OK] ボタンをクリックします 以下の操作を記録します 7 E8 セルをクリックし [Ctrl] キー +[;( セミコロン )] キーを押します 8[Ctrl] キー +[Enter] キーで確定します POINT! [Ctrl] キー +[Enter] キーで確定すると アクティブセルを下に移動せず文字を確定します 9 ステータスバーの [ 記録終了 ] ボタンをクリックします
OA スキルアップ Excel2013 マクロ 11 / 12 操作ボタンにマクロを登録します 1 2-4 ボタンからマクロを実行 の手順を参考に シート上にボタンを作成して 回収日登録 マクロを登録します ボタンからマクロを実行します 2 A10 セルをクリックし ボタンをクリックします マクロ 2( 絶対参照でのマクロ作成 ) 絶対参照でマクロを記録します 操作 未回収者リスト作成 マクロを作成します 絶対参照に戻します 1[ 開発 ] タブ [ コード ] グループの [ 相対参照で記録 ] をクリックして解除します 2 ステータスバーの [ マクロの記録 ] ボタンをクリックします [ マクロの記録 ] ダイアログボックスが表示されます 3[ マクロ名 ] ボックスにマクロ名 未回収者リスト作成 と入力します 4[ マクロの保存先 ] に 作業中のブック と表示されていることを確認し [OK] ボタンをクリックします 以下の操作を記録します 5 A3 セルをクリックします 未回収者のデータを抽出します 6 回収日 フィールドの [ オートフィルター ] ボタンをクリックします 7[ 日付フィルター ] から [ すべて選択 ] を選択し すべての選択を一旦解除してから [( 空白セル )]] をクリックします
OA スキルアップ Excel2013 マクロ 12 / 12 回収日が空欄の未回収者のデータが抽出されます 抽出データを選択します アクティブデータ領域を選択するショートカットキーを使用します 8[Ctrl] キー +[*] キーを押します POINT! [*] キーはテンキーを使用します 文字キーの [*] キーを使用する場合は [Ctrl] キー +[Shift] キー +[*] キーを押します 抽出データが選択されます コピーを実行します 9[Ctrl] キー +[C] キーを押します 対象データが破線で囲まれます 新規ワークシートを挿入します 10[ 新しいシート ] ボタンをクリックします 新規ワークシートに列幅を維持したまま貼り付けます 11[ クリップボード ] グループの [ 貼り付け ] から [ 元の列幅を保持 ] をクリックします 12 シート見出し 社員名簿 をクリックしてシートを切り替えます フィルターの設定を解除します 13[ データ ] タブ [ 並べ替えとフィルター ] グループの [ クリア ] をクリックします 14 A1 セルをクリックします 15 ステータスバーの [ 記録終了 ] ボタンをクリックします 操作ボタンにマクロを登録します 2-4 ボタンからマクロを実行 の手順を参考に シート上にボタンを作成して 未回収者リスト作成 マクロを登録します ボタンをクリックし マクロが実行されることを確認します