Excelマクロ-クイックガイド
Excelマクロは、記録、名前の付け、保存、および実行を何度でも、いつでも実行できるアクションまたはアクションのセットです。マクロを作成すると、マウスのクリックとキーストロークが記録されます。保存したマクロを実行すると、記録されたマウスクリックとキーストロークが記録されたのと同じ順序で実行されます。
マクロは、頻繁に実行する必要のあるデータ操作やデータレポートに関連する反復タスクの時間を節約するのに役立ちます。
マクロとVBA
マクロは、ExcelコマンドまたはExcelVBAから記録および実行できます。
VBAはVisualBasic for Applicationsの略で、リボンの[開発者]タブから利用できるExcel Visual Basic Editor(VBE)から利用できる単純なプログラミング言語です。マクロを記録すると、ExcelはVBAコードを生成します。マクロを記録して実行するだけの場合は、ExcelVBAを学習する必要はありません。ただし、マクロを変更する場合は、ExcelVBAエディターでVBAコードを変更することによってのみ変更できます。
単純なマクロを記録し、Excelコマンドを使用して実行する方法については、「単純なマクロの作成」の章で学習します。マクロの詳細と、Excel VBAエディターからのマクロの作成および/または変更については、後の章で学習します。
パーソナルマクロワークブック
マクロは、記録した場所と同じブックに保存できます。その場合、そのワークブックからのみマクロを実行できるため、開いたままにしておく必要があります。Excelは、すべてのマクロを保存する別の方法を提供します。これは、マクロを保存できる個人用マクロブックであり、任意のブックからそれらのマクロを実行できます。
パーソナルマクロワークブックについては、「すべてのマクロを1つのワークブックに保存する」の章で学習します。
マクロセキュリティ
マクロはVBAコードとしてExcelに保存されます。他のコードの場合と同様に、マクロコードも、ブックを開いたときに実行される可能性のある悪意のあるコードの影響を受けやすくなっています。これはコンピュータへの脅威です。マイクロソフトは、このようなマクロウイルスからコンピュータを保護するのに役立つマクロセキュリティ機能を提供しました。
これについては、「マクロセキュリティ」の章で詳しく説明します。
絶対参照と相対参照
マクロの記録中に、クリックしているセルの絶対参照または相対参照のいずれかを使用できます。絶対参照により、マクロを記録したのと同じセルでマクロが実行されます。一方、相対参照により、マクロはアクティブセルで実行されます。
これらについては、「マクロの絶対参照の使用」および「マクロの相対参照の使用」の章で学習します。
VBAのマクロコード
Excel VBAを知らなくても、Excelからマクロを記録して実行できます。ただし、記録されたマクロを変更したり、VBAコードを記述してマクロを作成したりする必要がある場合は、ExcelVBAを学習する必要があります。これについては、このチュートリアルライブラリのExcelVBAチュートリアルを参照できます。
ただし、マクロコードの表示方法を知っておく必要があります。ExcelでVBAエディターにアクセスする方法と、VBAエディターのさまざまな部分については「ExcelVBA」の章で学ぶことができます。
Excel VBAエディターでマクロコードを表示する方法を学び、「マクロコードについて」の章でマクロコードを理解することができます。
オブジェクトへのマクロの割り当て
図形、グラフィック、コントロールなどのオブジェクトにマクロを割り当てることができます。次に、そのオブジェクトをクリックしてマクロを実行できます。これについては、「マクロのオブジェクトへの割り当て」の章で学習します。
実行中のマクロ
Excelには、マクロを実行するいくつかの方法があります。マクロの実行方法を選択できます。マクロを実行するこれらのさまざまな可能な方法については、「マクロの実行」の章で学習します。
VBAエディターを使用したマクロの作成
マクロコードを作成する場合は、「VBAエディターを使用したマクロの作成」の章で学習できます。ただし、前提条件は、ExcelVBAの知識が必要であることです。
マクロの編集
ExcelVBAエディターでマクロコードを変更できます。大規模な変更を行う場合は、ExcelVBAの知識が必要です。ただし、コードにわずかな変更を加えるだけの場合、または記録されたマクロから別のマクロにVBAコードをコピーする場合は、「マクロの編集」の章を参照してください。
マクロの名前を変更したり、削除したりすることもできます。これについても同じ章で学びます。
ユーザーフォーム
フォームは通常、必要な情報を収集するために使用されます。タスクを簡単にすることは自明です。Excel VBAエディターから作成されたExcelユーザーフォームも同じ目的を果たし、テキストボックス、チェックボックス、ラジオボタン、リストボックス、コンボボックス、スクロールバーなどの使い慣れたオプションをコントロールとして提供します。
「ユーザーフォーム」の章では、ユーザーフォームの作成方法とさまざまなコントロールの使用方法を学習します。
マクロコードのデバッグ
マクロが期待どおりに実行されない場合があります。マクロを作成したか、誰かから提供されたマクロを使用している可能性があります。他のコードをデバッグするのと同じようにマクロコードをデバッグして、欠陥を発見して修正することができます。これについては、「マクロコードのデバッグ」の章で学習します。
ブックを開いたときに実行するマクロの構成
ブックを開いたときに、マクロを自動的に実行することができます。これを行うには、Auto_Runマクロを作成するか、ブックを開くイベントのVBAコードを記述します。これについては、「ブックを開いたときに実行するマクロの構成」の章で学習します。
キーストロークとマウスクリックを記録し、マクロに名前を付け、マクロの保存方法を指定することにより、Excelコマンドでマクロを作成できます。このように記録されたマクロは、Excelコマンドで実行できます。
次の形式で特定の結果を繰り返し収集する必要があるとします。
毎回テーブルを作成する代わりに、マクロを作成して作成することができます。
マクロの記録
マクロを記録するには、次のようにします。
- リボンの[表示]タブをクリックします。
- [マクロ]グループの[マクロ]をクリックします。
- ドロップダウンリストから[マクロの記録]を選択します。
ザ・ Record Macro ダイアログボックスが表示されます。
タイプ MyFirstMacro [マクロ名]ボックスに入力します。
タイプ A Simple Macro [説明]ボックスで、[OK]をクリックします。
キーストロークとマウスクリックが何であれ、これで記録されることを忘れないでください。
セルB2をクリックします。
テーブルを作成します。
ワークシートの別のセルをクリックします。
リボンの[表示]タブをクリックします。
[マクロ]をクリックします。
選択する Stop Recording ドロップダウンリストから。
マクロ記録が完了しました。
特定のセルをクリックする最初のステップは、マクロが記録されたステップの配置を開始する必要がある場所を正確に示すため、重要です。記録が完了したら、不要なステップの記録を避けるために、[記録の停止]をクリックする必要があります。
マクロの実行
記録したマクロは何度でも実行できます。マクロを実行するには、次のようにします-
- 新しいワークシートをクリックします。
アクティブセルに注意してください。私たちの場合はA1です。
クリック VIEW リボンのタブ。
クリック Macros。
選択する View Macros ドロップダウンリストから。
[マクロ]ダイアログボックスが表示されます。
記録したマクロのみがマクロリストに表示されます。
[マクロ]ダイアログボックスでマクロ名–MyFirstMacroをクリックします。マクロの記録中に入力した説明が表示されます。マクロの説明を使用すると、マクロを記録した目的を特定できます。
[実行]ボタンをクリックします。マクロの記録中に作成したものと同じテーブルが、ほんの一瞬で表示されます。
あなたは、Excelが日常的なタスクの時間を節約するために提供する魔法の杖を発見しました。次のことを確認します-
マクロを実行する前のアクティブセルはA1でしたが、記録したとおり、テーブルはセルB2に配置されます。
さらに、記録を停止する前にそのセルをクリックしたため、アクティブセルはE2になりました。
マクロを実行する前に、アクティブセルが異なる複数のワークシートでマクロを実行し、上記と同じ条件を確認できます。これをメモしておくと、このチュートリアルの後半で、なぜそうなったのかがわかります。
記録したステップをアクティブセルに配置するマクロ記録を作成することもできます。チュートリアルを進めるにつれて、これを行う方法を学習します。
マクロの保存
作成されたマクロを保存する方法がわからないかもしれません。この文脈では、あなたは知る必要があります-
- マクロの保存
- マクロ対応ファイルの保存
マクロを作成するときに、その特定のマクロを保存する場所を選択できます。あなたはでこれを行うことができますRecord Macro ダイアログボックス。
ボックスをクリックします- Store macro in。次の3つのオプションが利用可能です-
- このワークブック。
- 新しいワークブック。
- パーソナルマクロワークブック
このワークブック
これはデフォルトのオプションです。マクロは、マクロを作成した場所から現在のブックに保存されます。
新しいワークブック
このオプションは利用可能ですが、お勧めしません。マクロを別の新しいブックに保存するようにExcelに要求しますが、ほとんどの場合、これは必要ありません。
パーソナルマクロワークブック
ワークブック全体で使用する複数のマクロを作成する場合、パーソナルマクロワークブックには、すべてのマクロを1か所に保存する機能があります。このオプションの詳細については、次の章で説明します。
マクロ対応ファイルの保存
あなたが選んだなら This Workbook マクロを保存するためのオプションとして、マクロと一緒にブックを保存する必要があります。
ブックを保存してみてください。デフォルトでは、ブックを.xlsファイルとして保存するようにExcelに要求します。以下に示すように、Excelは、Excel機能のVBプロジェクトをマクロのないブックに保存できないことを示すメッセージを表示します。
Note− [はい]をクリックすると、Excelはワークブックをマクロフリーの.xlsファイルとして保存し、このワークブックオプションで保存したマクロは保存されません。これを回避するために、Excelには、拡張子が.xlsmのマクロ対応のブックとしてブックを保存するオプションがあります。
- 警告メッセージボックスで[いいえ]をクリックします。
- [名前を付けて保存]タイプで[Excelマクロ対応ブック(* .xlsm)]を選択します。
- [保存]をクリックします。
これらについては、このチュートリアルの後の章で詳しく学習します。
Excelには、すべてのマクロを1つのブックに保存する機能があります。このワークブックは、Personal MacroWorkbook-Personal.xlsbと呼ばれます。これは、コンピューターに保存されている非表示のブックであり、Excelを開くたびに開きます。これにより、任意のブックからマクロを実行できます。コンピューターごとに1つのパーソナルマクロワークブックがあり、コンピューター間で共有することはできません。パーソナルマクロワークブックのマクロは、コンピューター上の任意のワークブックから表示および実行できます。
パーソナルマクロワークブックにマクロを保存する
マクロの記録中に保存オプションとしてマクロを選択すると、マクロをパーソナルマクロワークブックに保存できます。
カテゴリの下のドロップダウンリストから[パーソナルマクロワークブック]を選択します Store macro in。
- 2番目のマクロを記録します。
- 以下に示すように、[マクロの記録]ダイアログボックスにマクロの詳細を入力します。
- [OK]をクリックします。
録音が始まります。以下に示すようにテーブルを作成します。
録音を停止します。
リボンの[表示]タブをクリックします。
[マクロ]をクリックします。
選択する View Macrosドロップダウンリストから。[マクロ]ダイアログボックスが表示されます。
マクロ名は接頭辞PERSONAL.XLSBで表示されます!マクロがパーソナルマクロワークブックにあることを示します。
ブックを保存します。マクロがブックにないため、.xlsファイルとして保存され、Excelを閉じます。
パーソナルマクロワークブックへの変更の保存に関して、次のメッセージが表示されます-
[保存]ボタンをクリックします。マクロはに保存されますPersonal.xlsb コンピュータ上のファイル。
パーソナルマクロワークブックの非表示/非表示
パーソナルマクロワークブックは、デフォルトで非表示になります。Excelを起動すると、個人用マクロブックが読み込まれますが、非表示になっているため表示されません。次のように再表示できます-
クリック VIEW リボンのタブ。
[ウィンドウ]グループの[再表示]をクリックします。
[再表示]ダイアログボックスが表示されます。
[ブックの再表示]ボックスにPERSONAL.XLSBが表示され、[OK]をクリックします。
これで、個人用マクロブックに保存されているマクロを表示できます。
パーソナルマクロブックを非表示にするには、次の手順を実行します。
- パーソナルマクロワークブックをクリックします。
- リボンの[表示]タブをクリックします。
- リボンの[非表示]をクリックします。
パーソナルマクロワークブックに保存された実行中のマクロ
パーソナルマクロブックに保存されているマクロは、任意のブックから実行できます。マクロを実行するために、個人用マクロブックが非表示か非表示かは関係ありません。
- [マクロの表示]をクリックします。
- マクロリストからマクロ名を選択します。
- [実行]ボタンをクリックします。マクロが実行されます。
パーソナルマクロワークブックでのマクロの追加/削除
前に見たように、マクロの記録中に[マクロを保存する]オプションでマクロを選択すると、パーソナルマクロブックにマクロを追加できます。
パーソナルマクロワークブックのマクロは、次のように削除できます-
- 個人用マクロブックが非表示になっていないことを確認してください。
- [マクロの表示]ダイアログボックスでマクロ名をクリックします。
- [削除]ボタンをクリックします。
個人用マクロブックが非表示になっている場合は、「非表示のブックのマクロを編集できません」というメッセージが表示されます。
個人用マクロブックを再表示し、選択したマクロを削除します。
マクロはマクロリストに表示されません。ただし、新しいマクロを作成して個人用ブックに保存するか、マクロに含まれているマクロを削除すると、最初に保存した場合と同じように、個人用ブックを保存するように求められます。
Excelで作成するマクロは、プログラミング言語VBA(Visual Basic for Applications)で記述されます。Excelマクロコードについては、後の章で学習します。ご存知のように、実行可能コードがあると、ウイルスの脅威があります。マクロもウイルスに感染しやすいです。
マクロウイルスとは何ですか?
マクロが記述されているExcelVBAは、ほとんどのWindowsシステムコールにアクセスでき、ブックを開くと自動的に実行されます。したがって、マクロとして記述され、ブックを開いたときに実行されるExcel内に隠されているウイルスが存在するという潜在的な脅威があります。したがって、Excelマクロは多くの点でコンピュータにとって非常に危険です。ただし、Microsoftは、ワークブックをマクロウイルスから保護するための適切な対策を講じています。
マイクロソフトは、信頼できるマクロと信頼できないマクロを識別できるように、マクロセキュリティを導入しました。
マクロ対応のExcelワークブック
最も重要なExcelマクロセキュリティ機能は、ファイル拡張子です。
Excelブックは、デフォルトで.xlsxファイル拡張子で保存されます。.xlsxファイル拡張子の付いたブックはマクロを保存できず、脅威をもたらさないため、いつでも信頼できます。
マクロを含むExcelブックは、.xlsmファイル拡張子で保存されます。これらは、マクロ対応のExcelワークブックと呼ばれます。このようなブックを開く前に、ブックに含まれているマクロが悪意のあるものでないことを確認する必要があります。このためには、このタイプのワークブックの出所を信頼できることを確認する必要があります。
マクロ対応ワークブックを信頼する方法
Excelには、マクロ対応のブックを信頼する3つの方法があります。
マクロが有効なブックを信頼できるフォルダーに配置する
マクロがデジタル署名されているかどうかの確認
マクロが有効なブックを開く前にセキュリティ警告メッセージを有効にする
マクロが有効なブックを信頼できるフォルダーに配置する
これは、マクロセキュリティを管理するための最も簡単で最良の方法です。Excelでは、フォルダを信頼できる場所として指定できます。マクロが有効なすべてのブックをその信頼できるフォルダーに配置します。警告や制限なしに、この場所に保存されているマクロ対応のブックを開くことができます。
マクロがデジタル署名されているかどうかの確認
デジタル署名は、著者の身元を確認します。警告や制限なしに、信頼できる人からデジタル署名されたマクロを実行するようにExcelを構成できます。Excelは、作成者が署名してから変更された場合にも受信者に警告します。
マクロが有効なブックを開く前にセキュリティ警告メッセージを有効にする
ブックを開くと、Excelはブックにマクロが含まれていることを警告し、マクロを有効にするかどうかを尋ねます。あなたはクリックすることができますEnable Content ブックのソースが信頼できる場合はボタン。
これらの3つのオプションは、Excelオプションのセキュリティセンターで設定できます。
組織で作業している場合、システム管理者がデフォルト設定を変更して、だれも設定を変更できないようにしている可能性があります。マイクロソフトでは、トラストセンターのセキュリティ設定を変更しないことをお勧めします。その結果、データの損失、データの盗難、またはコンピューターやネットワークのセキュリティが侵害される可能性があります。
ただし、次のセクションでマクロのセキュリティ設定を学習し、それらを変更するかどうかを確認できます。コンテキストとファイルの出所に関する知識に基づいて、これらのオプションのいずれかを決定するには、独自の本能を使用する必要があります。
トラストセンターのマクロセキュリティ設定
マクロ設定は、Excelオプションのセキュリティセンターにあります。トラストセンターにアクセスするには、次の手順を実行します。
リボンの[ファイル]タブをクリックします。
[オプション]をクリックします。[Excelのオプション]ダイアログボックスが表示されます。
クリック Trust Center 左側のペインで。
クリック Trust Center Settings Microsoft Excel TrustCenterの下のボタン。
ザ・ Trust Center ダイアログボックスが表示されます。
左側のペインのExcelセキュリティセンターで使用できるさまざまなオプションが表示されます。次のセクションでは、Excelマクロに関連するオプションについて学習します。
マクロ設定
マクロ設定は、セキュリティセンターにあります。
マクロ設定では、4つのオプションを使用できます。
Disable all macros without notification −このオプションを選択すると、マクロとマクロに関するセキュリティアラートが無効になります。
Disable all macros with notification−マクロは無効になっていますが、マクロが存在する場合はセキュリティアラートが表示されます。ケースバイケースでマクロを有効にすることができます。
Disable all macros except digitally signed macros−マクロは無効になっていますが、マクロが存在する場合はセキュリティアラートが表示されます。ただし、マクロが信頼できる発行元によってデジタル署名されている場合、発行元を信頼するとマクロが実行されます。パブリッシャーを信頼していない場合は、署名付きマクロを有効にしてパブリッシャーを信頼するように通知されます。
Enable all macros (not recommended, susceptible to macro viruses)−このオプションを選択すると、すべてのマクロが実行されます。この設定により、コンピュータは潜在的に悪意のあるコードに対して脆弱になります。
[開発者マクロ設定]の下に、チェックボックス付きの追加のセキュリティオプションがあります。
Trust access to the VBA project object model.
このオプションを使用すると、オートメーションクライアントからVisual Basic for Applications(VBA)オブジェクトモデルにプログラムでアクセスできます。
このセキュリティオプションは、Officeプログラムを自動化し、VBA環境とオブジェクトモデルを操作するために記述されたコード用です。
これはユーザーごとおよびアプリケーションごとの設定であり、デフォルトでアクセスを拒否し、許可されていないプログラムが有害な自己複製コードを作成するのを防ぎます。
自動化クライアントがVBAオブジェクトモデルにアクセスするには、コードを実行しているユーザーがアクセスを許可する必要があります。アクセスをオンにするには、チェックボックスをオンにします。
信頼できる場所の定義
マクロ対応のブックが信頼できるソースからのものであると思われる場合は、デフォルトのセキュリティセンター設定を安全性の低いマクロセキュリティ設定に変更するのではなく、Excelで識別される信頼できる場所にファイルを移動することをお勧めします。
信頼できるフォルダの設定は、セキュリティセンターにあります。
[セキュリティセンター]ダイアログボックスで[信頼できる場所]をクリックします。MicrosoftOfficeによって設定された信頼できる場所が右側に表示されます。
新しい場所を追加したり、既存の場所を削除したり、既存の場所を変更したりできます。識別された信頼できる場所は、ファイルを開くのに信頼できるものとしてMicrosoftOfficeによって扱われます。ただし、場所を追加または変更する場合は、その場所が安全であることを確認してください。
インターネット上の場所など、オフィスが推奨しないオプションもあります。
信頼できるソースからのデジタル署名されたマクロ
Microsoftは、デジタル署名されたマクロに対応するオプションを提供しています。ただし、マクロがデジタル署名されている場合でも、信頼できる発行元からのものであることを確認する必要があります。
信頼できる発行元は、トラストセンターにあります。
クリック Trusted Publishers[セキュリティセンター]ダイアログボックスで。証明書のリストが右側に表示され、詳細(発行先、発行者、有効期限)が示されます。
証明書を選択し、[表示]をクリックします。
証明書情報が表示されます。
この章の前半で学習したように、発行元を信頼する場合にのみデジタル署名されたマクロを実行するオプションを設定できます。パブリッシャーを信頼しない場合は、署名付きマクロを有効にしてパブリッシャーを信頼するように通知されます。
警告メッセージの使用
開いているファイルにマクロがある場合、メッセージバーにセキュリティアラートが表示されます。シールドアイコンの付いた黄色のメッセージバーは、マクロが無効になっていることを警告します。
1つまたは複数のマクロが信頼できるソースからのものであることがわかっている場合は、メッセージバーの[コンテンツを有効にする]ボタンをクリックして、マクロを有効にすることができます。
セキュリティアラートが必要ない場合は、メッセージバーオプションを無効にできます。一方、メッセージバーオプションを有効にしてセキュリティを強化することもできます。
メッセージバーのセキュリティアラートの有効化/無効化
次のように、メッセージバーを使用してセキュリティアラートを有効/無効にできます。
- リボンの[ファイル]タブをクリックします。
- [オプション]をクリックします。[Excelのオプション]ダイアログボックスが表示されます。
- [セキュリティセンター]をクリックします。
- [セキュリティセンターの設定]ボタンをクリックします。
- メッセージバーをクリックします。
すべてのOfficeアプリケーションのメッセージバー設定が表示されます。
下に2つのオプションがあります- Showing the Message Bar。
Option 1 −マクロなどのアクティブなコンテンツがブロックされている場合、すべてのアプリケーションでメッセージバーを表示します。
これはデフォルトのオプションです。安全でない可能性のあるコンテンツが無効になっている場合、メッセージバーが表示されます。
選択した場合- Disable all macros without notification in the Macro Settings of the Trust Center、このオプションは選択されておらず、メッセージバーは表示されません。
Option 2 −ブロックされたコンテンツに関する情報を表示しないでください。
このオプションを選択すると、メッセージバーが無効になり、セキュリティセンターのセキュリティ設定に関係なく、セキュリティの問題に関するアラートは表示されません。
Excelマクロは、絶対参照または相対参照のいずれかで記録できます。絶対参照で記録されたマクロは、アクティブセルに関係なく、記録されたステップを記録されたセルに正確に配置します。一方、相対参照で記録されたマクロは、ワークシートのさまざまな部分で記録されたタスクを実行できます。
この章では、マクロの絶対参照について学習します。次の章では、相対参照について学習します。
毎日の終わりに、チームの作業に関するレポートを次の形式で送信する必要があるとします。
ここで、レポートはセルB2に配置され、指定された形式である必要があります。
レポートに記入されるサンプルは次のようになります-
次のセルのデータを除いて、情報はプロジェクト用に生成するすべてのレポートで一定です。
- C3 –日付のレポート。
- C13 –今日完了したタスクの数。
- C14 –完了したタスクの総数。
- C15 –%作業完了。
これらのうち、C3(Report for Date)では、Excel関数を配置できます= TODAY ()それはあなたの介入なしにあなたの報告の日付を置きます。さらに、セルC15では、数式C14 / C12を使用し、セルC15をパーセンテージでフォーマットして、Excelで計算された作業完了率を取得できます。
これにより、C13とC14の2つのセルだけが残り、毎日入力する必要があります。したがって、レポートを作成する必要があるたびに、残りのセルの情報を用意しておくことが理想的です。これにより時間を節約でき、レポート作成という日常的なアクティビティをわずか数分で実行できます。
ここで、3つのプロジェクトについてそのようなレポートを送信する必要があるとします。あなたはあなたが節約してその日のより挑戦的な仕事を引き受けることができる時間を想像することができます、そしてもちろんあなたの経営陣から称賛を得ることができます。
これを実現するには、プロジェクトごとにマクロを記録し、それらを日常的に実行して、必要なレポートをわずか数分で生成します。ただし、マクロを実行するたびに、アクティブセルに関係なく、レポートは上記のようにワークシートに表示されます。このためには、絶対参照を使用する必要があります。
絶対参照の確保
絶対参照を使用してマクロを記録するには、ステップを開始する必要のあるセルからマクロが記録されていることを確認する必要があります。つまり、前のセクションで示した例の場合、次のことを行う必要があります。
- マクロの記録を開始します。
- 新しいワークシートを作成します。
- 新しいワークシートのB2以外のセルをクリックします。
- セルB2をクリックします。
- マクロの記録を続けます。
これにより、新しいレポートごとに新しいワークシートが作成され、マクロを実行するたびにセルB2にレポート形式が配置されます。
Note −上記の最初の3つのステップは不可欠です。
新しいワークシートを作成しない場合、マクロを実行すると、同じワークシートに記録したものはすべて同じ場所に配置されます。これはあなたが望むものではありません。すべてのレポートを異なるワークシートに配置する必要があります。
記録の開始時に別のセルをクリックしないと、アクティブセルがB2であっても、Excelは記録されたステップをアクティブセルに配置します。マクロを実行すると、記録されたレポート形式がアクティブセルに基づいてワークシートの任意の部分に配置されます。B2以外のセルをクリックしてからセルB2をクリックすることにより、マクロステップを常にセルB2に配置するようにレコーダーに指示します。
マクロの記録
マクロの記録を開始するには、 Record Macro[表示]タブ→[マクロ]の下のリボンのコマンド。クリックすることもできますStart Recording Macro Excelタスクバーの左側にあるボタン。
マクロの記録を開始します。ザ・Record Macro ダイアログボックスが表示されます。
マクロを特定のプロジェクトのレポートとして識別するために、意味のある名前を付けます。
このワークブックを下で選択します Store macro in、この特定のワークブックからのみレポートを作成するため。
マクロに説明を入力し、[OK]をクリックします。
マクロが記録を開始します。
新しいワークシートを作成します。これにより、新しいレポートが新しいワークシートに表示されます。
新しいワークシートのB2以外のセルをクリックします。
セルB2をクリックします。これにより、マクロは記録されたステップを常にB2に配置します。
レポートのフォーマットを作成します。
プロジェクトレポートの静的情報を入力します。
= TODAY()をC3に配置し、= C14 / C12をセルC15に配置します。
セルを日付でフォーマットします。
マクロの記録を停止します。
マクロの記録は、次のいずれかの方法で停止できます。 Stop Recording [表示]タブ→[マクロ]の下のリボンのコマンド、またはExcelタスクバーの左側にある[マクロの記録の停止]ボタンをクリックします。
プロジェクトレポートマクロの準備ができました。ブックをマクロ対応のブック(拡張子.xlsm)として保存します。
マクロの実行
マクロを実行するだけで、数秒で任意の数のレポートを生成できます。
- リボンの[表示]ボタンをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。[マクロ]ダイアログボックスが表示されます。
- マクロReport_ProjectXYZをクリックします。
- [実行]ボタンをクリックします。
新しいワークシートがワークブックに作成され、セルB2にレポートステンシルが作成されます。
相対参照マクロは、アクティブセルからのオフセットを記録します。このようなマクロは、ワークシートのさまざまな場所で手順を繰り返す必要がある場合に役立ちます。
280の選挙区から収集された有権者のデータを分析する必要があるとします。各構成員について、以下の詳細が収集されます-
- 構成員名。
- 構成員の総人口。
- 選挙区の有権者の数。
- 男性有権者の数、および
- 女性有権者の数。
データは、以下のようにワークシートで提供されます。
上記の形式のデータを分析することはできません。したがって、以下のようにデータを表に並べてください。
与えられたデータを上記の形式で整理しようとすると-
280の構成員からのデータを整理するのにかなりの時間がかかります
エラーが発生しやすい可能性があります
それはあなたが技術的なことに集中することを許さない平凡な仕事になります
解決策は、マクロを記録して、数秒以内にタスクを完了できるようにすることです。データの配置中に行を下に移動するため、マクロは相対参照を使用する必要があります。
相対参照の使用
マクロレコーダに相対参照を使用する必要があることを通知するには、次のようにします。
クリック VIEW リボンのタブ。
クリック Macros。
クリック Use Relative References。
データ形式の準備
上記のデータを配置する最初のステップは、ヘッダー付きのテーブルでデータ形式を定義することです。
以下に示すように、ヘッダーの行を作成します。
マクロの記録
次のようにマクロを記録します-
[マクロの記録]をクリックします。
マクロにDataArrangeなどの意味のある名前を付けます。
タイプ= row ()- 3セルB4内。これは、S。No。が現在の行番号(その上の3行)であるためです。
セルB5、B6、B7、B8、およびB9を切り取り、それぞれセルC4からC8に貼り付けます。
次に、セルB5をクリックします。テーブルは次のようになります。
最初のデータセットは、テーブルの最初の行に配置されます。行B6〜B11を削除し、セルB5をクリックします。
アクティブセルがB5であり、次のデータセットがここに配置されることがわかります。
マクロの記録を停止します。データを配置するためのマクロの準備ができました。
マクロの実行
以下に示すように、テーブル内のデータ配置を完了するには、マクロを繰り返し実行する必要があります。
アクティブセルはB5です。マクロを実行します。2番目のデータセットはテーブルの2行目に配置され、アクティブセルはB6になります。
マクロを再実行してください。3番目のデータセットはテーブルの3行目に配置され、アクティブセルはB7になります。
マクロを実行するたびに、アクティブセルは次の行に進み、適切な位置で記録されたステップの繰り返しを容易にします。これは、マクロ内の相対参照のために可能です。
280個のデータセットがすべてテーブル内の280行に配置されるまで、マクロを実行します。このプロセスには数秒かかり、手順が自動化されているため、演習全体にエラーが発生しません。
Excelは、マクロをExcel VBA(Visual Basic for Applications)コードとして保存します。マクロを記録した後、生成されたコードを表示、変更、コピーするなどできます。VBAでのプログラミングに慣れている場合は、マクロコードを自分で作成することもできます。
「VBAエディタを使用したマクロの作成」の章で、VBAコードを記述してマクロを作成する方法を学習します。「マクロの編集」の章で、VBAコードを編集してマクロを変更する方法を学習します。この章では、ExcelVBAの機能について学習します。
リボンの[開発者]タブ
リボンの[開発者]タブからVBAのマクロコードにアクセスできます。
リボンに[開発者]タブが見つからない場合は、次のように追加する必要があります-
リボンを右クリックします。
選択する Customize the Ribbon ドロップダウンリストから。
ザ・ Excel Options ダイアログボックスが表示されます。
選択する Main Tabs から Customize the Ribbon ドロップダウンリスト。
[メインタブ]リストの[開発者]チェックボックスをオンにして、[OK]をクリックします。[開発者]タブが表示されます。
マクロの開発者コマンド
[開発者]タブのマクロ用のコマンドを知っている必要があります。
リボンの[開発者]タブをクリックします。次のコマンドは、コードグループで使用できます-
- Visual Basic
- Macros
- マクロの記録
- 相対参照を使用する
- マクロセキュリティ
Visual Basicコマンドを使用してExcelでVBAエディターを開き、Macrosコマンドを使用してマクロを表示、実行、および削除します。
前の章で、VBAエディター以外のコマンドを既に学習しました。
VBAエディター
VBAエディターまたはVBEは、ExcelのVBAの開発者プラットフォームです。
このチュートリアルの前の章で保存したワークブック– MyFirstMacro.xlsm –単純なマクロの作成を開きます。
VBEは、次の2つの方法のいずれかで開くことができます-
Option 1 −リボンの[開発者]タブの下にある[コード]グループの[VisualBasic]をクリックします。
Option 2 − [表示]タブ→[マクロ]→[マクロの表示]をクリックすると表示される[マクロ]ダイアログボックスで[編集]をクリックします。
VBEが新しいウィンドウに表示されます。
Excelマクロが有効なブック名の名前は、接頭辞– Microsoft Visual Basic forApplicationsが付いて表示されます。
VBEには次のものがあります-
- プロジェクトエクスプローラー。
- Properties.
- コード付きのモジュールウィンドウ。
プロジェクトエクスプローラー
プロジェクトエクスプローラーは、VBAプロジェクト名を見つける場所です。プロジェクトの下に、シート名とモジュール名があります。モジュール名をクリックすると、対応するコードがウィンドウの右側に表示されます。
プロパティウィンドウ
プロパティは、VBAオブジェクトのパラメータです。コマンドボタンなどのオブジェクトがある場合、そのプロパティは[プロパティ]ウィンドウに表示されます。
コード付きのモジュールウィンドウ
マクロのコードは、VBAのモジュールに保存されます。マクロを選択して[編集]をクリックすると、対応するモジュールウィンドウにマクロのコードが表示されます。
マクロを記録すると、ExcelはそれをVBAコードとして保存します。このコードはVBAエディターで表示できます。Excel VBAについて十分な知識がある場合は、コードを理解して変更できます。このチュートリアルライブラリのExcelVBAチュートリアルを参照して、言語を理解することができます。
ただし、Excel VBAエディターでマクロコードを表示し、マクロに記録した手順と一致させることはできます。このチュートリアルで作成した最初のマクロであるMyFirstMacroのコードを表示し、理解する方法を学習します。
VBAエディターでのマクロコードの表示
マクロコードを表示するには、次のようにします-
- マクロを保存したブックを開きます。
- リボンの[表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロリストでMyFirstMacroをクリックします。
- [編集]ボタンをクリックします。
VBAエディターが開き、マクロMyFirstMacroのコードが表示されます。
記録されたアクションをコードの一部として理解する
マクロコードを参照して、記録されたステップにマップできます。
- コードを読み始めます。
- コードを記録されたステップにマップします。
コードを下にスクロールして、他のコードを表示します。または、コードウィンドウを拡大することもできます。
コードが単純であることを確認してください。Excel VBAを習得している場合は、VBAエディターでコードを記述してマクロを作成できます。
「VBAエディタを使用したマクロの作成」の章で、マクロを作成するためのVBAコードの記述方法を学習します。
数回実行する必要のあるマクロを作成したとします。たとえば、絶対参照と相対参照用に作成したマクロ。次に、マウスクリックを使用してマクロを実行できれば簡単です。これは、図形、グラフィック、コントロールなどのオブジェクトにマクロを割り当てることで実現できます。
この章では、ワークブックにオブジェクトを含め、それにマクロを割り当てる方法を学習します。
相対参照を使用して作成したマクロを思い出してください。マクロは、データ分析を容易にするために、1つの列で指定されたデータをテーブルに配置します。
図形へのマクロの割り当て
ワークシートに、わかりやすいテキストを含む意味のある形式の図形を挿入できます。この図形をクリックすると、割り当てられたマクロが実行されます。
クリック INSERT リボンのタブ。
クリック Shapes イラストグループで。
ドロップダウンリストに表示される既製の形状のいずれかを選択します。たとえば、データを準備している最中のフローチャートの形状–準備。
形状を描き、フォーマットします。
形状を右クリックして、 Edit Text ドロップダウンリストから。
図形内にテキストを入力します-マクロを実行します。
テキストをフォーマットします。
- 図形を右クリックします。
- ドロップダウンリストから[マクロの割り当て]を選択します。
[マクロの割り当て]ダイアログボックスが表示されます。マクロ名(RelativeMacro)をクリックし、[OK]をクリックします。
マクロは形状に割り当てられます。
B4などのマクロを実行する必要があるセルをクリックします。
カーソル(ポインタ)を図形に移動します。カーソル(ポインタ)が指に変わります。
次に、形状をクリックします。マクロが実行されます。マウスクリックを繰り返してマクロを数回実行するだけで、数秒でデータをテーブルに配置するタスクが完了します。
グラフィックへのマクロの割り当て
ワークシートにグラフィックを挿入し、それにマクロを割り当てることができます。グラフィックを選択して、マクロを視覚化できます。たとえば、マクロがデータをテーブルに配置することを表すテーブルのグラフィックを作成できます。
- リボンの[挿入]タブをクリックします。
- イラストグループの画像をクリックします。
- グラフィックを含むファイルを選択します。
残りの手順は、前のセクションで示した形状の手順と同じです。
コントロールへのマクロの割り当て
VBAコントロールを挿入し、それにマクロを割り当てると、作業がプロフェッショナルに見えます。リボンの[開発者]タブからVBAコントロールを挿入できます。
クリック DEVELOPER リボンのタブ。
クリック Insert コントロールグループ内。
下のボタンアイコンを選択します Form Controls 以下のスクリーンショットに示すように、ドロップダウンリストから-
ボタンコントロールを挿入するワークシートのセルをクリックします。[マクロの割り当て]ダイアログボックスが表示されます。
マクロ名をクリックし、[OK]をクリックします。
マクロが割り当てられたコントロールボタンが挿入されます。
- ボタンを右クリックします。
- [テキストの編集]をクリックします。
- タイプ–マクロの実行。
- テキストのフォーマットとボタンのサイズ変更。
ボタンを繰り返しクリックするだけで、マクロを何度でも実行できます。
フォームコントロールの使用は、ユーザーと対話するための簡単で効果的な方法です。これについては、「ユーザーとの対話」の章で詳しく説明します。
ブックでマクロを実行するには、いくつかの方法があります。マクロは、マクロが有効なブックまたは個人用マクロブックに保存されており、以前に学習したように、任意のブックからアクセスできます。
次の方法でマクロを実行できます-
- [表示]タブからマクロを実行する
- Ctrlキーとショートカットキーを押してマクロを実行する
- クイックアクセスツールバーのボタンをクリックしてマクロを実行する
- リボンのカスタムグループのボタンをクリックしてマクロを実行する
- グラフィックオブジェクトをクリックしてマクロを実行する
- [開発者]タブからマクロを実行する
- VBAエディターからマクロを実行する
[表示]タブからマクロを実行する
リボンの[表示]タブからマクロを実行する方法を既に学習しました。簡単な要約-
- リボンの[表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名をクリックします。
- [実行]ボタンをクリックします。
ショートカットキーを使用したマクロの実行
マクロにショートカットキー(Ctrl +キー)を割り当てることができます。マクロを記録しているときにこれを行うことができますCreate Macroダイアログボックス。それ以外の場合は、後でこれを追加できますMacro Options ダイアログボックス。
マクロの記録中にショートカットキーを追加する
- [表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの記録]を選択します。
[マクロの作成]ダイアログボックスが表示されます。
- マクロ名を入力します
- ショートカットキーの下のCtrl +の横のボックスにqなどの文字を入力します。
マクロオプションにショートカットキーを追加する
- [表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名を選択します。
- [オプション]ボタンをクリックします。
[マクロオプション]ダイアログボックスが表示されます。ショートカットキーの下のCtrl +の横のボックスに文字(qなど)を入力します。[OK]をクリックします。
ショートカットキーでマクロを実行するには、Ctrlキーとキーqを同時に押します。マクロが実行されます。
Note−マクロのショートカットキーには、小文字または大文字を使用できます。ExcelのショートカットキーであるCtrl +文字の組み合わせを使用する場合は、それを上書きします。例としては、Ctrl + C、Ctrl + V、Ctrl + Xなどがあります。したがって、文字を選択する際は、管轄区域を使用してください。
クイックアクセスツールバーからマクロを実行する
クイックアクセスツールバーにマクロボタンを追加し、クリックしてマクロを実行できます。このオプションは、マクロを個人用マクロブックに保存するときに役立ちます。追加されたボタンは、開いているブックのクイックアクセスツールバーに表示されるため、マクロを簡単に実行できます。
個人用マクロブックにMyMacroという名前のマクロがあるとします。
クイックアクセスツールバーにマクロボタンを追加するには、次の手順を実行します。
クイックアクセスツールバーを右クリックします。
選択する Customize Quick Access Toolbar ドロップダウンリストから。
[Excelのオプション]ダイアログボックスが表示されます。カテゴリの下のドロップダウンリストからマクロを選択します-Choose commands from。
マクロのリストが[マクロ]の下に表示されます。
- PERSONAL.XLSB!MyMacroをクリックします。
- [追加]ボタンをクリックします。
マクロ名が右側に表示され、マクロボタンの画像が表示されます。
マクロボタンの画像を変更するには、次の手順に従います。
- 右側のボックスでマクロ名をクリックします。
- [変更]ボタンをクリックします。
ザ・ Modify Buttonダイアログボックスが表示されます。シンボルを1つ選択して、ボタンのアイコンとして設定します。
クイックアクセスツールバーのボタン画像にポインタを置いたときに表示される表示名を、意味のある名前に変更します。たとえば、この例ではMyMacroを実行します。[OK]をクリックします。
右側のペインでマクロ名とアイコン記号が変わります。[OK]をクリックします。
クイックアクセスツールバーにマクロボタンが表示され、ボタンにポインタを置くとマクロ表示名が表示されます。
マクロを実行するには、クイックアクセスツールバーのマクロボタンをクリックするだけです。
カスタムグループでのマクロの実行
リボンにカスタムグループとカスタムボタンを追加して、マクロをボタンに割り当てることができます。
- リボンを右クリックします。
- ドロップダウンリストから[リボンのカスタマイズ]を選択します。
ザ・ Excel Options ダイアログボックスが表示されます。
- [リボンのカスタマイズ]の下の[メインタブ]を選択します。
- [新しいタブ]をクリックします。
[新しいタブ(カスタム)]が[メインタブ]リストに表示されます。
- [新しいタブ(カスタム)]をクリックします。
- [新しいグループ]ボタンをクリックします。
新しいグループ(カスタム)が[新しい]タブ(カスタム)の下に表示されます。
- [新しいタブ(カスタム)]をクリックします。
- [名前の変更]ボタンをクリックします。
[名前の変更]ダイアログボックスが表示されます。リボンの[メイン]タブに表示されるカスタムタブの名前を入力します。たとえば、[マイマクロ]と入力し、[OK]をクリックします。
Note−リボンのすべてのメインタブは大文字です。大文字または小文字を自由に使用できます。標準のタブで目立つように、単語を大文字にする小文字を選択しました。
新しいタブ名が[マイマクロ(カスタム)]に変わります。
- [新しいグループ(カスタム)]をクリックします。
- [名前の変更]ボタンをクリックします。
ザ・ Renameダイアログボックスが表示されます。[表示名]ダイアログボックスにグループ名を入力し、[OK]をクリックします。
新しいグループ名がパーソナルマクロ(カスタム)に変更されます。
下の左側のペインで[マクロ]をクリックします Choose commands from。
- マクロ名を選択します。たとえば、マクロリストからMyFirstMacroを選択します。
- [追加]ボタンをクリックします。
マクロは、[個人用マクロ(カスタム)]グループの下に追加されます。
- リストの[マイマクロ(カスタム)]をクリックします。
- 矢印をクリックして、タブを上下に移動します。
メインタブリスト内のタブの位置によって、リボンのどこに配置されるかが決まります。[OK]をクリックします。
カスタムタブ– [マイマクロ]がリボンに表示されます。
タブ-マイマクロをクリックします。個人用マクログループがリボンに表示されます。MyFirstMacroは、パーソナルマクログループに表示されます。マクロを実行するには、[個人用マクロ]グループの[MyFirstMacro]をクリックするだけです。
オブジェクトをクリックしてマクロを実行する
ワークシートに図形、グラフィック、VBAコントロールなどのオブジェクトを挿入し、それにマクロを割り当てることができます。マクロを実行するには、オブジェクトをクリックするだけです。
オブジェクトを使用してマクロを実行する方法の詳細については、「オブジェクトへのマクロの割り当て」の章を参照してください。
[開発者]タブからマクロを実行する
[開発者]タブからマクロを実行できます。
- リボンの[開発者]タブをクリックします。
- [マクロ]をクリックします。
[マクロ]ダイアログボックスが表示されます。マクロ名をクリックしてから、[実行]をクリックします。
VBAエディターからマクロを実行する
次のように、VBAエディターからマクロを実行できます。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
VBAエディターでコードを記述することにより、マクロを作成できます。この章では、マクロのコードをどこでどのように記述するかを学習します。
VBAオブジェクトとモジュール
マクロのコーディングを開始する前に、VBAオブジェクトとモジュールを理解してください。
- 最初のマクロでマクロが有効なブックを開きます。
- リボンの[開発者]タブをクリックします。
- [コード]グループの[VisualBasic]をクリックします。
VBAエディタウィンドウが開きます。
プロジェクトエクスプローラウィンドウで次のことがわかります-
マクロが有効なブック–MyFirstMacro.xlsmがVBAプロジェクトとして表示されます。
すべてのワークシートとブックは、プロジェクトの下にMicrosoftExcelオブジェクトとして表示されます。
Module1はModulesの下に表示されます。マクロコードはここにあります。
Module1をクリックします。
リボンの[表示]タブをクリックします。
ドロップダウンリストから[コード]を選択します。
マクロのコードが表示されます。
コーディングによるマクロの作成
次に、同じワークブックに2番目のマクロを作成します。今回はVBAコードを記述します。
これは2つのステップで実行できます-
コマンドボタンを挿入します。
コマンドボタンをクリックしたときに実行されるアクションを示すコードを記述します。
コマンドボタンの挿入
新しいワークシートを作成します。
新しいワークシートをクリックします。
リボンのDEVELOPERボタンをクリックします。
[コントロール]グループの[挿入]をクリックします。
ボタンアイコンをから選択します Form Controls。
- コマンドボタンを配置するワークシートをクリックします。
- [マクロの割り当て]ダイアログボックスが表示されます。
VisualBasicエディターが表示されます。
次のことを確認します-
- 新しいモジュール–Module2がプロジェクトエクスプローラーに挿入されます。
- Module2(コード)というタイトルのコードウィンドウが表示されます。
- モジュール2コードにサブプロシージャButton1_Click()が挿入されます。
マクロのコーディング
コーディングは、VBAエディター自体によって半分実行されます。
たとえば、MsgBoxと入力します “Best Wishes to You!”サブプロシージャButton1_Click()で。コマンドボタンをクリックすると、指定した文字列のメッセージボックスが表示されます。
それでおしまい!マクロコードを実行する準備ができました。ご存知のように、VBAコードはインタープリターで実行されるため、コンパイルは必要ありません。
VBAエディターからマクロを実行する
マクロコードは、VBAエディター自体からテストできます。
リボンの[実行]タブをクリックします。
ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。入力した文字列を含むメッセージボックスがワークシートに表示されます。
ボタンが選択されていることがわかります。メッセージボックスで[OK]をクリックします。VBAエディターに戻ります。
ワークシートからマクロを実行する
ワークシートから、コーディングしたマクロを何度でも実行できます。
- ワークシートのどこかをクリックします。
- ボタンをクリックします。ワークシートにメッセージボックスが表示されます。
VBAコードを記述してマクロを作成しました。ご覧のとおり、VBAコーディングは単純です。
前の章で、VBAエディターでマクロコードを作成する方法を学習しました。マクロコードを編集したり、マクロの名前を変更したり、マクロを削除したりできます。
Excel VBAをマスターしている場合、コードの記述やマクロのコードの変更は簡単な作業です。マクロコードは好きなように編集できます。マクロコードに簡単な変更を少しだけ加えたい場合は、マクロコードをある場所から別の場所にコピーすることもできます。
マクロコードのコピー
マクロが有効なブックMyFirstMacro.xlsmでMyFirstMacroとButton1_Clickの2つのマクロを作成しました。手順を記録して最初のマクロを作成し、コードを記述して2番目のマクロを作成しました。最初のマクロから2番目のマクロにコードをコピーできます。
ブックMyFirstMacro.xlsmを開きます。
リボンの[開発者]タブをクリックします。
VisualBasicをクリックします。VisualBasicエディターが開きます。
Module1(MyFirstMacroマクロコード)およびModule2(Button1_Click()マクロコード)のコードを開きます。
リボンの[ウィンドウ]タブをクリックします。
ドロップダウンリストから[水平方向に並べて表示]を選択します。
タイル型ウィンドウで2つのマクロのコードを表示できます。
Module2コードのMsgBox行をコピーします。
その行の上に貼り付けます。
文字列を-として変更します
MsgBox「HelloWorld!」
Module1から次のコードをコピーします。
2つのMsgBoxコード行の間のModule2コードに貼り付けます。
[保存]アイコンをクリックして、コードを保存します。
Excelシートのボタンをクリックします。メッセージボックスが表示され、メッセージが表示されます-Hello World![OK]をクリックします。
(コピーしたコードに従って)テーブルデータが表示され、メッセージボックスにメッセージが表示されます-Best Wishes to You!
ほんの数ステップでコードを変更できます。これは初心者にとって最も簡単な作業です。
マクロの名前を変更する
コマンドボタンのあるワークシート以外のワークシートから編集したマクロを実行するとします。マクロの名前を変更することで、ボタンのクリックに関係なく実行できます。
- リボンの[表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名をクリックします–Button1_Click。
- [編集]ボタンをクリックします。
マクロコードがVBAエディターに表示されます。
サブ行に表示される名前をButton1_ClickからRenamedMacroに変更します。Subと括弧はそのままにしておきます。
[マクロ]ダイアログボックスを開きます。名前を変更すると、マクロ名が表示されます。
- RenamedMacroをクリックします。
- [実行]ボタンをクリックします。マクロが実行されます。これで、ボタンをクリックする必要はありません。
マクロの削除
記録またはコーディングしたマクロは削除できます。
- [マクロ]ダイアログボックスを開きます。
- マクロ名をクリックします。
- [削除]ボタンをクリックします。
ザ・ Delete 確認メッセージが表示されます。
クリック Yes必ずマクロを削除する場合。それ以外の場合は、[いいえ]をクリックします。
場合によっては、他の人から繰り返し情報を収集しなければならないことがあります。Excel VBAは、このタスクを処理する簡単な方法を提供します-UserForm。あなたが記入する他のフォームと同様に、UserFormは、どのような情報が提供されるかを簡単に理解できるようにします。UserFormは、提供されるコントロールが自明であり、必要に応じて追加の指示が伴うという点でユーザーフレンドリーです。
UserFormの主な利点は、情報を入力する内容と方法に費やす時間を節約できることです。
ユーザーフォームの作成
ユーザーフォームを作成するには、次の手順に従います-
- リボンの[開発者]タブをクリックします。
- VisualBasicをクリックします。ブックのVisualBasicウィンドウが開きます。
- [挿入]をクリックし、
- ドロップダウンリストから[ユーザーフォーム]を選択します。
ユーザーフォームがウィンドウの右側に表示されます。
ユーザーフォームを理解する
UserForm.xlsx –UserForm1ウィンドウを最大化します。
これでデザインモードになりました。ユーザーフォームにコントロールを挿入し、それぞれのアクションのコードを記述できます。コントロールはツールボックスで使用できます。ユーザーフォームのプロパティは、[プロパティ]ウィンドウにあります。UserForm1(ユーザーフォームのキャプション)は、プロジェクトエクスプローラーのフォームの下に表示されます。
- プロパティウィンドウで、ユーザーフォームのキャプションをプロジェクトレポート–毎日に変更します。
- ユーザーフォームの名前をProjectReportに変更します。
変更は、ユーザーフォーム、プロパティ、およびプロジェクトエクスプローラーに反映されます。
ToolBoxのコントロール
ユーザーフォームにはさまざまなコンポーネントがあります。コンポーネントのいずれかをクリックすると、情報を提供する内容と方法についての説明が表示されるか、選択するオプション(選択肢)が表示されます。これらはすべて、ユーザーフォームのツールボックスにあるActiveXコントロールによって提供されます。
Excelには、フォームコントロールとActiveXコントロールの2種類のコントロールがあります。これら2種類のコントロールの違いを理解する必要があります。
フォームコントロール
フォームコントロールは、Excelバージョン5.0以降の以前のバージョンのExcelと互換性のあるExcel独自のコントロールです。フォームコントロールは、XLMマクロシートで使用するためにも設計されています。
フォームコントロールを使用してマクロを実行できます。既存のマクロをコントロールに割り当てたり、新しいマクロを書き込んだり記録したりできます。コントロールをクリックすると、マクロ。ワークシートのフォームコントロールからコマンドボタンを挿入してマクロを実行する方法については、すでに学習しました。ただし、これらのコントロールをユーザーフォームに追加することはできません。
ActiveXコントロール
ActiveXコントロールはVBAユーザーフォームで使用できます。ActiveXコントロールには、外観、動作、フォント、その他の特性をカスタマイズするために使用できる広範なプロパティがあります。
UserFormToolBoxには次のActiveXコントロールがあります-
- Pointer
- Label
- TextBox
- ComboBox
- ListBox
- CheckBox
- OptionButton
- Frame
- ToggleButton
- CommandButton
- TabStrip
- MultiPage
- ScrollBar
- SpinButton
- Image
これらのコントロールに加えて、Visual Basicは、メッセージを表示したり、ユーザーにアクションを要求したりするために使用できるMsgBox関数を提供します。
次のいくつかのセクションでは、これらのコントロールとMsgBoxについて理解します。次に、ユーザーフォームの設計に必要なこれらのコントロールを選択できるようになります。
ラベル
タイトル、キャプション、簡単な説明などの説明テキストを表示することで、識別目的でラベルを使用できます。
Example
テキストボックス
長方形のボックスであるTextBoxを使用して、テキストを入力、表示、または編集できます。TextBoxを、読み取り専用情報を表示する静的テキストフィールドとして使用することもできます。
Example
リストボックス
リストボックスを使用して、ユーザーが選択できる1つ以上のテキスト項目のリストを表示できます。リストボックスを使用して、数や内容が異なる多数の選択肢を表示します。
- ユーザーフォームにリストボックスを挿入します。
- リストボックスをクリックします。
- リストボックスの[プロパティ]ウィンドウに「名前のProjectCodes」と入力します。
リストボックスには3つのタイプがあります-
Single-selection List box−単一選択リストボックスでは、1つの選択肢しか使用できません。この場合、リストボックスはオプションボタンのグループに似ていますが、リストボックスが多数のアイテムをより効率的に処理できる点が異なります。
Multiple selection List Box −複数選択リストボックスは、1つの選択肢または隣接する(隣接する)選択肢のいずれかを有効にします。
Extended-selection List Box −拡張選択リストボックスは、1つの選択肢、連続した選択肢、および連続していない(またはばらばらの)選択肢を有効にします。
[プロパティ]ウィンドウから、これらのタイプのリストボックスのいずれかを選択できます。
- ユーザーフォームを右クリックします。
- ドロップダウンリストから[コードの表示]を選択します。UserFormのコードウィンドウが開きます。
- コードウィンドウの右上のボックスで[初期化]をクリックします。
- Private Sub UserForm_Initialize()の下に次のように入力します。
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
次に、リスト内のアイテムを選択する際のアクションのコードを記述できます。それ以外の場合は、選択したテキストを表示するだけで済みます。これは、レポートにプロジェクトコードを入力する場合です。
コンボボックス
使用できます ComboBoxテキストボックスとリストボックスを組み合わせて、ドロップダウンリストボックスを作成します。コンボボックスはリストボックスよりもコンパクトですが、ユーザーが下矢印をクリックしてアイテムのリストを表示する必要があります。コンボボックスを使用して、リストから1つのアイテムのみを選択します。
- ユーザーフォームにComboBoxを挿入します。
- ComboBoxをクリックします。
- ComboBoxの[プロパティ]ウィンドウで、[名前]に「ProjectCodes2」と入力します。
- ユーザーフォームを右クリックします。
- ドロップダウンリストから[コードの表示]を選択します。
- UserFormのコードウィンドウが開きます。
以下のように入力します。
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
下矢印をクリックして、アイテムのリストを表示します。
必要なアイテム、たとえばProject2016-5をクリックします。選択したオプションがコンボボックスに表示されます。
チェックボックス
チェックボックスを使用して、ボックスをクリックすると表示される1つ以上のオプションを選択できます。オプションにはラベルが付いており、選択されているオプションを明確に視覚化できます。
チェックボックスには2つの状態があります-
- 選択済み(オン)、ボックス内のチェックマークで示されます
- クリアされた(オフにされた)、クリアボックスで示されます
スペースを節約するために、コンボボックスのオプションを選択するためのチェックボックスを使用できます。このような場合、チェックボックスは3番目の状態を持つこともできます-
混合。オン状態とオフ状態の組み合わせを意味し、ボックス内の黒い点で示されます。これは、チェックボックス付きのコンボボックスで複数の選択を示すために表示されます。
以下に示すように、ユーザーフォームにチェックボックスを挿入します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
- 選択したオプションのボックスをクリックします。
OptionButton
ラジオボタンとも呼ばれるオプションボタンを使用して、相互に排他的な選択肢の限られたセット内で1つの選択肢を作成できます。オプションボタンは通常、グループボックスまたはフレームに含まれています。
オプションボタンは小さな円で表されます。オプションボタンは、次の2つの状態のいずれかになります-
- 選択済み(オン)、円内のドットで示されます
- クリア(オフ)、空白で示されます
フレーム
グループボックスとも呼ばれるフレームコントロールを使用して、関連するコントロールを1つのビジュアルユニットにグループ化できます。通常、オプションボタン、チェックボックス、または密接に関連するコンテンツは、フレームコントロールにグループ化されます。
フレームコントロールは、オプションのラベルが付いた長方形のオブジェクトで表されます。
「Choice」というキャプション付きのフレームを挿入します。
フレームコントロールに「はい」と「いいえ」のキャプションが付いた2つのオプションボタンを挿入します。[はい]と[いいえ]のオプションは相互に排他的です。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
- 選択したオプションをクリックします。
ToggleButton
トグルボタンを使用して、「はい」や「いいえ」などの状態、またはオンやオフなどのモードを示すことができます。ボタンをクリックすると、有効状態と無効状態が切り替わります。
以下に示すように、ユーザーフォームにトグルボタンを挿入します-
リボンの[実行]タブをクリックします。
ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。トグルボタンはデフォルトで有効な状態になります。
トグルボタンをクリックします。トグルボタンは無効になります。
トグルボタンをもう一度クリックすると、有効になります。
CommandButton
コマンドボタンを使用して、ユーザーがクリックしたときにいくつかのアクションを実行するマクロを実行できます。ワークシートのコマンドボタンを使用してマクロを実行する方法については、すでに学習しました。
コマンドボタンは、プッシュボタンとも呼ばれます。以下に示すように、ユーザーフォームにコマンドボタンを挿入します-
- コマンドボタンを右クリックします。
- サブCommandbutton1_click()に次のコードを入力します。
ProjectCodes2.DropDown
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
コマンドボタンをクリックします。コードに記述したアクションであるため、コンボボックスのドロップダウンリストが開きます。
TabStrip
ユーザーフォームのExcelタブに似たタブストリップを挿入できます。
スクロール・バー
スクロールバーを使用して、スクロール矢印をクリックするか、スクロールボックスをドラッグして、値の範囲をスクロールできます。
スクロールバーを必要な位置に描画してユーザーフォームに挿入し、スクロールバーの長さを調整します。
- スクロールバーを右クリックします。
- ドロップダウンリストから[コードの表示]を選択します。コードウィンドウが開きます。
- サブScrollBar1_Scroll()の下に次の行を追加します。
TextBox2.Text = "Scrolling Values"
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
スクロールボックスをドラッグします。スクロールバーのスクロールのアクションとして指定したテキスト–スクロール値がテキストボックスに表示されます。
MsgBox()
MsgBox()関数を使用して、何かをクリックしたときにメッセージを表示できます。ガイドライン、情報、警告、エラーアラートなどが考えられます。
たとえば、スクロールボックスのスクロールを開始すると、値がスクロールされているというメッセージを表示できます。
メッセージボックスアイコンの表示
特定のメッセージを表すメッセージボックスアイコン表示を使用できます。目的に合わせて複数のメッセージボックスアイコンがあります-
- ScrollBar1_scrollの下に次のコードを入力します。
MsgBox "Select Ok or Cancel", vbOKCancel, "OK - Cancel Message"
MsgBox "It's an Error!", vbCritical, "Run time result"
MsgBox "Why this value", vbQuestion, "Run time result"
MsgBox "Value Been for a Long Time", vbInformation, "Run time result"
MsgBox "Oh Is it so", vbExclamation, "Run time result"
- リボンの[実行]タブをクリックします。
- ドロップダウンリストから[サブ/ユーザーフォームの実行]を選択します。
- スクロールボックスをドラッグします。
次のメッセージボックスが連続して表示されます。
ユーザーフォームのデザイン
これで、ユーザーフォームで使用できるさまざまなコントロールについて理解できました。コントロールを選択し、必要に応じてグループ化し、意味のある順序に従ってユーザーフォームに配置します。必要なアクションを、それぞれのコントロールに対応するコードとして記述します。
UserFormの例については、このチュートリアルライブラリのVBAチュートリアルを参照してください。
マクロがVBAコードとしてExcelに保存されることを学びました。また、VBAエディターでマクロを作成するコードを直接記述できることも学びました。ただし、他のコードの場合と同様に、マクロコードでも欠陥があり、マクロが期待どおりに実行されない場合があります。
これには、コードを調べて欠陥を見つけて修正する必要があります。ソフトウェア開発でこのアクティビティに使用される用語は、デバッグです。
VBAデバッグ
VBAエディターを使用すると、コードの実行を一時停止して、必要なデバッグタスクを実行できます。以下は、実行できるデバッグタスクの一部です。
- コードのステップスルー
- ブレークポイントの使用
- コードでのバックアップまたは前進
- コードの各行をステップスルーしない
- コードをステップスルーしながら何かをクエリする
- 実行を停止する
これらは、VBAのデバッグ環境で実行する可能性のあるタスクのほんの一部です。
コードのステップスルー
デバッグのために最初に行う必要があるのは、コードの実行中にコードをステップ実行することです。コードのどの部分がおそらく欠陥を引き起こしているのかがわかっている場合は、コードのその行にジャンプできます。それ以外の場合は、コードを1行ずつ実行し、コードをバックアップまたは前に進めることができます。
ワークブックの[マクロ]ダイアログボックスまたはVBAエディター自体からコードにステップインできます。
Stepping into the code from the workbook
ワークブックからコードにステップインするには、次のようにします。
- リボンの[表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名をクリックします。
- [ステップイン]ボタンをクリックします。
VBAエディターが開き、マクロコードがコードウィンドウに表示されます。マクロコードの最初の行は黄色で強調表示されます。
Stepping into the code from the VBA editor
VBAエディターからコードにステップインするには、次のようにします。
- リボンの[開発者]タブをクリックします。
- VisualBasicをクリックします。VBAエディターが開きます。
- マクロコードを含むモジュールをクリックします。
マクロコードがコードウィンドウに表示されます。
リボンの[デバッグ]タブをクリックします。
選択する Step into ドロップダウンリストから。
マクロコードの最初の行が強調表示されます。コードはデバッグモードであり、[デバッグ]ドロップダウンリストのオプションがアクティブになります。
コードのバックアップまたは前進
[ステップオーバー]または[ステップアウト]を選択すると、コード内を前後に移動できます。
コードの各行をステップスルーしない
Run to Cursorを選択することにより、議論する必要のあるコードの潜在的な部分を特定した場合、各ラインコードをステップスルーすることを回避できます。
ブレークポイントの使用
または、コードの特定の行にブレークポイントを設定してコードを実行し、各ブレークポイントで結果を確認することもできます。必要に応じて、ブレークポイントを切り替えて、すべてのブレークポイントをクリアできます。
ウォッチの使用
デバッグ中にウォッチを追加して、式を評価し、変数が特定の値に達したときに実行を停止できます。これは、ウォッチ式を構成することを意味します。ウォッチ式は、trueになるまで監視され、その後マクロが停止して、ブレークモードのままになります。VBAは、探しているものを実現するために、選択できるいくつかの時計タイプを提供します。
実行を停止する
デバッグ中はいつでも、何が問題になっているのかについての手がかりを見つけた場合は、実行を停止してさらに解読することができます。
経験豊富な開発者であれば、デバッグ用語はよく知っており、VBAエディターのデバッグオプションによって作業が簡単になります。それ以外の場合でも、VBAを学習してコードを理解していれば、このスキルを習得するのにそれほど時間はかかりません。
マクロを記録し、Auto_Openという名前で保存して、このマクロを含むブックを開くたびに実行できます。
ブックのOpenイベントを使用して、同じ目的でVBAコードを作成することもできます。Openイベントは、ブックを開くたびに、サブプロシージャWorkbook_Open()のコードを実行します。
Auto_Openマクロの記録
Auto_Runマクロは次のように記録できます-
- リボンの[表示]タブをクリックします。
- [マクロ]をクリックします。
- [マクロの記録]をクリックします。[マクロの記録]ダイアログボックスが表示されます。
- マクロ名として「Auto_Run」と入力します。
- 説明を入力して[OK]をクリックします。
- マクロの記録を開始します。
- 録音を停止します。
- ブックをマクロ対応のブックとして保存します。
- ブックを閉じます。
- ブックを開きます。マクロAuto_Runは自動的に実行されます。
Auto_Openマクロを実行せずにExcelを起動する場合は、Shiftキーを押しながらExcelを起動します。
Auto_Openマクロの制限
Auto_Openマクロの制限は次のとおりです-
Auto_Openマクロを保存したブックにブックOpenイベントのコードが含まれている場合、OpenイベントのコードはAuto_Openマクロのアクションをオーバーライドします。
Openメソッドを使用するコードを実行してブックを開くと、Auto_Openマクロは無視されます。
Auto_Openマクロは、他のブックが開く前に実行されます。したがって、ExcelでデフォルトのBook1ブックまたはXLStartフォルダーから読み込まれたブックで実行するアクションを記録する場合、マクロは既定のブックとスタートアップブックが開く前に実行されるため、Excelを再起動するとAuto_Openマクロは失敗します。 。
これらの制限のいずれかが発生した場合は、Auto_Openマクロを記録する代わりに、次のセクションで説明するようにOpenイベントのコードを作成する必要があります。
ワークブックのオープンイベントのVBAコード
ブックを開いたときに実行されるコードを記述できます。VBAは、ブックを開くときに実行するアクションのVBAプロシージャを組み込んだopenというイベントを提供します。
絶対参照用に作成したマクロ(Report_ProjectXYZ)を保存したブックを開きます。このマクロを実行すると、新しいワークシートがワークブックに追加され、プロジェクトレポート構造が新しいワークシートに表示されます。
ブックを開いたときにこれらのアクションを実行するマクロコードを記述できます。つまり、プロジェクトレポートワークブックを開くと、レポート構造を含む新しいワークシートで詳細を入力できるようになります。
VBAエディタで以下の手順に従ってください-
プロジェクトエクスプローラーでThisWorkbookをダブルクリックします。
コードウィンドウで、左側のドロップダウンリストで[ワークブック]を選択し、右側のドロップダウンリストで[開く]を選択します。サブWorkbook_Open()が表示されます。
プロジェクトエクスプローラーで[モジュール]をクリックします。
マクロコードを含むモジュール名をダブルクリックします。
モジュールからマクロコードをコピーして、Sub WorkBook_Open()に貼り付けます。
マクロが有効なブックを保存します。もう一度開きます。マクロが実行され、レポート構造を持つ新しいワークシートが挿入されます。