目次
マクロの記録、表示、実行、保存をステップバイステップで行う初心者向けのチュートリアルです。 また、Excelでマクロがどのように動作するかの内部メカニズムも学ぶことができます。
マクロは、Excelで繰り返しの作業を自動化するのに最適な方法です。 何度も同じことを繰り返していると感じたら、その動きをマクロとして記録し、キーボードショートカットを割り当てましょう。 そして、記録したすべての動作を、キーを押すだけで自動的に実行させることができるのです!
エクセルでマクロを記録する方法
他のVBAツールと同様に、Excelのマクロは以下の場所に存在します。 デベロッパー というタブがありますが、デフォルトでは非表示になっています。 そこで、まず最初にExcelのリボンに「開発者」タブを追加する必要があります。
Excelでマクロを記録するには、次の手順を実行します。
- について デベロッパー タブで コード グループをクリックします。 記録マクロ ボタンをクリックします。
または 記録マクロ の左側にあるボタンをクリックします。 ステータス バーです。
マウスではなくキーボードで操作したい場合は、次のようにAlt , L , Rの順にキーを押してください(一度にすべてのキーを押すのではなく、1つずつ押してください)。
- での 記録マクロ ダイアログボックスが表示されたら、マクロの主要なパラメータを設定します。
- での マクロ 名前 ボックスで、マクロの名前を入力します。 意味のある、説明的な名前にすると、後でリストでマクロをすぐに見つけることができます。
マクロ名には、文字、数字、アンダースコアを使用できますが、最初の文字は文字でなければなりません。 スペースは使用できないので、各部を大文字で始める1語形式の名前にするか(例. マイファーストマクロ ) またはアンダースコアで単語を区切る (例. マイファーストマクロ ).
- での ショートカットキー ボックスに任意の文字を入力し、マクロにキーボードショートカットを割り当てます(オプション)。
マクロのショートカットは、マクロを含むワークブックが開いている間、Excelのデフォルトのショートカットを上書きするためです。 たとえば、マクロにCtrl + Sを割り当てると、ショートカットでExcelファイルを保存する機能が失われます。 Ctrl + Shift + Sを割り当てると、ショートカットは維持されます。標準の保存ショートカットです。
- より マクロを格納する ドロップダウン・リストから、マクロを保存する場所を選択します。
- パーソナルマクロワークブック - という特別なワークブックにマクロを保存します。 パーソナル.xlsb このワークブックに保存されているすべてのマクロは、Excel を使用するときにいつでも利用できます。
- このワークブック (デフォルト) - マクロは現在のワークブックに保存され、ワークブックを再び開いたり、他のユーザーと共有したりする際に利用できます。
- 新しいワークブック - は新しいワークブックを作成し、そのワークブックにマクロを記録します。
- での 商品説明 ボックスに、そのマクロが何をするものなのか短い説明を入力します(オプション)。
このフィールドは任意ですが、常に簡単な説明を記述することをお勧めします。 多くの異なるマクロを作成する場合、各マクロが何を行うかをすぐに理解するのに役立ちます。
- クリック よっしゃー をクリックすると、マクロの記録が開始されます。
- での マクロ 名前 ボックスで、マクロの名前を入力します。 意味のある、説明的な名前にすると、後でリストでマクロをすぐに見つけることができます。
- 自動化したい動作を実行する(録画マクロの例を参照してください)。
- 終了したら 録画の停止 ボタンをクリックします。 デベロッパー タブで表示します。
の類似のボタンでもいい。 ステータス バーです。
関連項目: エクセルで累計を行う方法(累積和の計算式)
Excelでマクロを記録する例
実際にどのように動作するかを確認するために、選択したセルに何らかの書式を適用するマクロを記録してみましょう。 そのためには、次のようにします。
- 書式設定したいセルを1つまたは複数選択する。
- について デベロッパー タブまたは ステータス をクリックします。 記録マクロ .
- での 記録マクロ ダイアログボックスで、以下の設定を行います。
- マクロ名 ヘッダーフォーマット (列のヘッダーをフォーマットするため)。
- にカーソルを合わせます。 ショートカットキー のボックスを開き、Shift + Fキーを同時に押すことで、Ctrl + Shift + Fのショートカットがマクロに割り当てられます。
- マクロをこのワークブックに保存することを選択します。
- について 商品説明 のように、マクロが何をするものかを説明する以下の文章を使います。 テキストを太字にし、塗りつぶしの色をつけ、中央揃えにする .
- クリック よっしゃー をクリックして録音を開始します。
- あらかじめ選択したセルに、好きなように書式を設定します。 この例では、太字のテキスト書式、水色の塗りつぶし色、中央揃えを使用しています。
ヒント:マクロの記録を開始した後は、セルを選択しないでください。 そうすることで、すべての書式設定が 選択 特定の範囲ではありません。
- クリック 録画の停止 のどちらかになります。 デベロッパー タブまたは ステータス バーです。
これでマクロの記録は完了です。 あとは、任意のシートの任意のセル範囲を選択して、割り当てられたショートカット(Ctrl+Shift+F)を押せば、選択したセルにカスタム書式が即座に適用されます。
Excelで記録されたマクロを操作する方法
Excel が提供するマクロの主なオプションは、すべて、以下の方法でアクセスできます。 マクロ をクリックすると、ダイアログボックスが表示されます。 マクロ ボタンをクリックします。 デベロッパー タブをクリックするか、Alt+F8のショートカットを押してください。
開いたダイアログボックスでは、開いているすべてのワークブックで利用できるマクロ、または特定のワークブックに関連するマクロの一覧を表示し、以下のオプションを利用することができます。
- 実行 - は、選択したマクロを実行します。
- ステップイン - を使用すると、Visual Basic Editorでマクロのデバッグとテストができます。
- 編集 - 選択したマクロをVBAエディタで開き、コードの表示と編集ができます。
- 削除 - 選択したマクロを永久に削除します。
- オプション - のようなマクロのプロパティを変更することができます。 ショートカット キー と 商品説明 .
Excelでマクロを表示する方法
Excelマクロのコードは、Visual Basic Editorで表示および修正できます。 Editorを開くには、Alt + F11キーを押すか、または ビジュアルベーシック ボタンをクリックします。 デベロッパー タブで表示します。
VB Editorを初めてご覧になる方も、気後れせずにご覧ください。 VBA言語の構造や構文についてお話しすることはありません。 ここでは、Excelマクロの仕組みとマクロの記録が実際にどのように行われるのかについて、基本的な理解を深めていただくだけです。
VBA Editorにはいくつかのウィンドウがありますが、ここでは主要な2つのウィンドウを取り上げます。
プロジェクト・エクスプローラ - 開いているすべてのワークブックとそのシートのリストを表示します。 さらに、モジュール、ユーザーフォーム、クラスモジュールも表示します。
コードウィンドウ - ここでは、Project Explorerに表示されている各オブジェクトのVBAコードの表示、編集、書き込みを行うことができます。
サンプルマクロを記録したところ、バックエンドで次のようなことが起こりました。
- 新しいモジュール( モデュエル1 )が挿入された。
- マクロのVBAコードは、コードウィンドウに書きました。
特定のモジュールのコードを見るには、そのモジュールをダブルクリックします( モジュール1 通常、マクロコードは以下のような構成になっています。
マクロ名
VBAでは、どのマクロも サブ の後にマクロ名が続き、最後に エンド・サブ ここで、"Sub "は、"S "の略です。 サブルーチン (とも言う 手順 という名前のサンプルマクロを作成しました。 Header_Formatting() というわけで、コードはこの行から始まります。
Sub Header_Formatting()を希望する場合 マクロの名前を変更する の場合は、現在の名前を削除して、コードウィンドウに直接新しい名前を入力するだけです。
コメント
アポストロフィ(')を先頭に持ち、デフォルトで緑色で表示される行は実行されません。 これらは情報提供のために追加されたコメントです。 コメント行は、コードの機能に影響を与えることなく安全に削除することが可能です。
通常、記録されたマクロには、マクロ名(必須)、説明、ショートカット(記録前に指定した場合)の1〜3行のコメント行があります。
実行可能なコード
コメントの後に、記録したアクションを実行するコードがあります。 記録したマクロには余計なコードがたくさんあることがありますが、それでもVBAで物事がどのように動くかを理解するのに役立つことがあります :)
下の画像は、マクロの各コードが何を行っているかを示しています。
記録されたマクロを実行する方法
マクロを実行することで、Excelに記録したVBAコードに戻り、まったく同じ手順を実行するように指示します。 Excelで記録したマクロを実行するにはいくつかの方法がありますが、ここでは最も速い方法を紹介します。
- を割り当てた場合 キーボードショートカット をマクロに追加する場合は、そのショートカットを押してください。
- Alt + 8を押すか マクロ ボタンをクリックします。 デベロッパー タブに表示されます。 マクロ ダイアログボックスで、目的のマクロを選択し 実行 .
また、記録したマクロを自分でボタンをクリックして実行することも可能です。 作り方は「Excelでマクロボタンを作成する方法」をご覧ください。
エクセルでマクロを保存する方法
マクロを記録した場合も、手動でVBAコードを書いた場合も、マクロを保存するには、ワークブックをマクロ有効(拡張子.xlms)で保存する必要があります。 その方法は次のとおりです。
- マクロが含まれているワークブックで セーブ ボタンを押すか、Ctrl + S を押してください。
- での 名前を付けて保存 ダイアログボックスで Excel マクロ対応ワークブック (*.xlsm) から タイプとして保存 のドロップダウンリストをクリックし 保存 :
エクセルマクロ:記録されるものとされないもの
このように、Excelでマクロを記録することは非常に簡単ですが、効果的なマクロを作成するためには、その裏側で何が行われているかを理解することが必要です。
収録内容
Excelのマクロレコーダーは、ほとんどすべてのマウスクリックとキー入力をキャプチャします。 そのため、マクロの予期せぬ動作を引き起こす可能性のある過剰なコードを避けるため、慎重に手順を考える必要があります。 以下に、Excelが記録する内容の例をいくつか紹介します。
- マウスやキーボードでセルを選択する。 操作前の最後の選択のみ記録される。 例えば、範囲A1:A10を選択し、セルA11をクリックすると、A11の選択のみが記録される。
- 塗りつぶしやフォントの色、配置、枠線など、セルの書式を設定することができます。
- パーセンテージ、通貨などの数値フォーマット
- 数式や値を編集する。 変更はEnterキーを押した後に記録されます。
- スクロール、Excelウィンドウの移動、他のワークシートやワークブックへの切り替え。
- ワークシートの追加、名前付け、移動、削除。
- ワークブックを作成し、開き、保存する。
- 他のマクロを実行する
記録できないもの
Excelは様々なことを記録できるにもかかわらず、ある機能はマクロレコーダーの能力を超えています。
- Excel リボンとクイックアクセスツールバーのカスタマイズ。
- などのExcelダイアログ内のアクション 条件付き書式設定 または 検索と置換 (結果のみ記録される)。
- 他のプログラムとの相互作用:例えば、ExcelワークブックからWord文書へのコピー&ペーストを記録することはできません。
- VBAエディタを使うもの。 これは最も大きな制限で、プログラミングレベルでできることの多くが記録できない。
- カスタム関数の作成
- カスタムダイアログボックスを表示する
- などのループを作ること。 For Next , それぞれについて , Do While など。
- 条件を評価する VBAでは IF Then Else ステートメントを使用して、条件をテストし、条件が真であればいくつかのコードを実行し、条件が偽であれば別のコードを実行します。
- イベントに応じたコードの実行 VBAでは、多くのイベントを利用して、そのイベントに関連するコードを実行することができます(ワークブックを開く、ワークシートを再計算する、選択範囲を変更する、などなど)。
- 引数の使用 VBA Editorでマクロを記述する際、マクロが特定のタスクを実行するための入力引数を与えることができます。 記録されたマクロは独立し、他のマクロと接続されないため、引数を持つことができません。
- ロジックを理解する。 例えば、特定のセルをコピーするマクロを記録する場合、例えば 合計 行にコピーされたセルのアドレスのみが記録されます。 VBA を使用すると、コピーされたセルの値をコピーするロジックを記述することができます。 合計 の行になります。
VBA言語の知識がなくても、マクロを記録し、そのコードを分析することができます。
Excelでマクロを記録するための便利なヒント
このページでは、マクロをより効率的に使いこなすためのヒントや注意点をご紹介します。
マクロ記録で相対参照を使用する
デフォルトでは、Excelは 絶対 参照 つまり、マクロを実行するときにワークシートのどこにいても、VBAコードは常に選択したセルとまったく同じセルを参照することになります。
ただし、デフォルトの動作を 相対参照 この場合、VBAはセルアドレスをハードコードせず、アクティブな(現在選択されている)セルに対して相対的に動作します。
相対参照でマクロを記録するには 使用方法 相対参照 ボタンをクリックします。 デベロッパー 絶対参照に戻すには、このボタンをもう一度クリックして、オフにします。
例えば、デフォルトの絶対参照でテーブルの設定を記録した場合、マクロは常に同じ場所にテーブルを再作成します(この場合。 ヘッダー をA1で表示します。 項目1 をA2で表示します。 アイテム2 をA3)でご覧ください。
Sub Absolute_Referencing() Range( "A1" ).Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ).Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ).Select ActiveCell.FormulaR1C1 = "Item2" End Sub
同じマクロを相対参照で記録した場合、マクロを実行する前にカーソルを置いた場所にテーブルが作成されます( ヘッダー をアクティブセルで表示します。 項目1 を下のセルに、など)。
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range("A1" ).Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range("A1" ).Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range("A1" ).Select End Sub.注意事項
- 相対参照を使用する場合、マクロの記録を開始する前に、必ず最初のセルを選択してください。
- 相対参照はすべてに有効なわけではなく、Excelの機能の中には、範囲を表に変換する場合など、絶対参照を必要とするものがあります。
キーボードショートカットを使って範囲を選択する
マウスや矢印キーでセルやセル範囲を選択すると、Excelにセルのアドレスが書き込まれます。 そのため、マクロを実行すると、記録された操作が同じセルに対して正確に実行されます。 これが気に入らない場合は、セルや範囲を選択するショートカットを使用してください。
例として、下表の日付に特定の書式(d-mmm-yy)を設定するマクロを記録してみましょう。
このために、次の操作を記録します:Ctrl + 1を押して、[Ctrl + 1]を開きます。 セルのフォーマット dialog> Date> choose format> OK. 記録にマウスや矢印キーでの範囲選択が含まれている場合、Excelは以下のVBAコードを生成します。
Sub Date_Format() Range("A2:B4" ).Select Selection.NumberFormat = "d-mmm-yy" End Sub上記のマクロを実行すると、毎回A2:B4の範囲が選択されます。 テーブルにいくつかの行を追加しても、マクロによって処理されません。
では、ショートカットでテーブルを選択するとどうなるかを見てみましょう。
対象範囲(この例ではA2)の左上のセルにカーソルを置き、記録を開始し、Ctrl + Shift + End を押します。 その結果、コードの最初の行は次のようになります。
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). セレクトこのコードは、アクティブなセルから最後に使用されたセルまでのすべてのセルを選択します。つまり、すべての新しいデータが自動的に選択範囲に含まれることになります。
または、Ctrl + Shift + 矢印の組み合わせでも可能です。
- Ctrl + Shift + 右矢印で、右側の使用されているセルをすべて選択し、次に
- Ctrl + Shift + 下矢印で、使用するセルをすべて下に選択します。
この場合、1行ではなく2行のコードが生成されますが、結果は同じで、アクティブなセルの下と右にあるデータのあるすべてのセルが選択されます。
Range(Selection, Selection.End (xlToRight)). Select Range(Selection, Selection.End (xlDown)). Select Range(Selection, Selection.End (xlDown)).特定のセルではなく、選択したセルに対してマクロを記録
上記の方法(アクティブセルから始まる使用中のセルをすべて選択する方法)は、表全体に対して同じ操作を行うのに適しています。 しかし、状況によっては、表全体ではなく、特定の範囲を処理するマクロが必要な場合があります。
このため、VBAでは セレクション オブジェクトで、現在選択されているセルを参照します。 範囲でできることのほとんどは、選択範囲でもできます。 どんな利点がありますか? 多くの場合、記録中に何も選択する必要はありません。 アクティブなセルに対してマクロを記述するだけです。 そして、任意の範囲を選択してマクロを実行すると、選択範囲全体を操作します。
例えば、この1行マクロは、選択されたセルを任意の数だけパーセントでフォーマットすることができます。
Sub Percent_Format() Selection.NumberFormat = "0.00%" End Sub記録する内容を綿密に計画する
Microsoft Excel Macro Recorderは、あなたが犯したミスや修正も含め、ほぼすべての操作を記録します。 例えば、Ctrl + Zキーを押して何かを取り消した場合も記録されます。 最終的には、不必要なコードが大量に残ってしまうかもしれません。 これを避けるには、VB Editorでコードを編集するか、記録を停止して不足のマクロを削除してから新たに記録を開始するようにしてください。
マクロを実行する前にワークブックをバックアップまたは保存する
Excelのマクロの結果は元に戻せないので、マクロを最初に実行する前に、ワークブックのコピーを作成するか、少なくとも現在の作業を保存して、予期せぬ変更を防ぐことが理にかなっています。 マクロが何か悪いことをした場合は、保存せずにワークブックを閉じればいいのです。
記録されたマクロを短くする
一連の作業を自動化する場合、つい1つのマクロにまとめて記録したくなりますが、そうしない理由は大きく2つあります。 1つは、長いマクロをミスなく記録するのが難しいこと、もう1つは、大きなマクロは理解、テスト、デバッグが難しいことです。 そこで、大きなマクロはいくつかのパートに分割すると良いでしょう。 たとえば、サマリーテーブルを作成する場合複数のソースから情報を取得する場合、1つのマクロで情報をインポートし、別のマクロでデータを統合し、3つ目のマクロでテーブルをフォーマットすることができます。
このチュートリアルで、Excelでマクロを記録する方法についてご理解いただけたでしょうか? とにかく、お読みいただきありがとうございました!また、来週のブログでお会いできることを楽しみにしています。