Excel-macros-quick-guide
Excelマクロ-概要
Excelマクロは、アクションを記録したり、名前を付けたり、保存したり、何度でも好きなときに実行したりできる一連のアクションです。 マクロを作成すると、マウスのクリックとキーストロークが記録されます。 保存されたマクロを実行すると、記録されたマウスクリックとキーストロークは、記録された順序と同じ順序で実行されます。
マクロを使用すると、頻繁に実行する必要があるデータ操作とデータレポートに関連する反復タスクの時間を節約できます。
マクロとVBA
ExcelコマンドまたはExcel VBAからマクロを記録および実行できます。
VBAはVisual Basic for Applicationsの略で、リボンの[開発者]タブから利用できるExcel Visual Basic Editor(VBE)を介して利用できるシンプルなプログラミング言語です。 マクロを記録すると、ExcelはVBAコードを生成します。 マクロを記録して実行するだけであれば、Excel VBAを学ぶ必要はありません。 ただし、マクロを変更する場合は、Excel VBAエディターでVBAコードを変更することによってのみマクロを変更できます。
章-単純なマクロの作成で、単純なマクロを記録し、Excelコマンドで実行する方法を学習します。 マクロについて、およびExcel VBAエディターからマクロを作成および/または変更する方法については、後の章で詳しく説明します。
個人用マクロワークブック
マクロは、記録した場所から同じブックに保存できます。 その場合、そのブックからのみマクロを実行できるため、開いたままにしておく必要があります。 Excelは、すべてのマクロを保存するための代替方法を提供します。 マクロを保存できる個人用マクロブックであり、任意のブックからこれらのマクロを実行できます。
個人用マクロブックについては、「すべてのマクロを単一のブックに保存する」の章で学習します。
マクロセキュリティ
マクロは、ExcelにVBAコードとして保存されます。 他のコードの場合と同様に、マクロコードは、ブックを開いたときに実行される悪意のあるコードの影響も受けます。 これはコンピューターに対する脅威です。 マイクロソフトは、このようなマクロウイルスからコンピューターを保護するのに役立つマクロセキュリティ機能を提供しました。
これについては、「マクロセキュリティ」の章で詳しく説明します。
絶対参照と相対参照
マクロの記録中に、クリックするセルに対して絶対参照または相対参照を使用できます。 絶対参照により、マクロを記録したセルと同じセルでマクロが実行されます。 一方、相対参照を使用すると、アクティブセルでマクロが実行されます。
これらについては、「マクロの絶対参照の使用」および「マクロの相対参照の使用」の章で学習します。
VBAのマクロコード
Excel VBAを知らなくても、Excelからマクロを記録および実行できます。 ただし、記録されたマクロを変更するか、VBAコードを記述してマクロを作成する必要がある場合は、Excel VBAを学習する必要があります。 このチュートリアルライブラリのExcel VBAチュートリアルを参照できます。
ただし、マクロコードを表示する方法を知っている必要があります。 ExcelでVBAエディターにアクセスする方法、およびVBAエディターのさまざまな部分については、「Excel VBA」の章で学習できます。
Excel VBAエディターでマクロコードを表示する方法を学習し、「マクロコードについて」の章でマクロコードを理解できます。
オブジェクトへのマクロの割り当て
図形、グラフィック、コントロールなどのオブジェクトにマクロを割り当てることができます。 次に、そのオブジェクトをクリックしてマクロを実行できます。 これについては、「マクロをオブジェクトに割り当てる」の章で学習します。
マクロを実行する
Excelには、マクロを実行する方法がいくつか用意されています。 マクロの実行方法を選択できます。 「マクロの実行」の章で、マクロを実行するさまざまな方法について学習します。
VBAエディターを使用してマクロを作成する
マクロコードを記述する場合は、「VBAエディターを使用してマクロを作成する」の章で学習できます。 ただし、前提条件は、Excel VBAの知識があることです。
マクロを編集する
Excel VBAエディターでマクロコードを変更できます。 大規模な変更を行う場合は、Excel VBAの知識が必要です。 ただし、コードにわずかな変更を加える場合、または記録されたマクロから別のマクロにVBAコードをコピーする場合は、「マクロの編集」の章を参照してください。
マクロの名前を変更したり、削除することもできます。 これについては、同じ章でも学習します。
ユーザーフォーム
フォームは通常、必要な情報を収集するために使用されます。 自明であり、タスクを単純にします。 Excel VBAエディターから作成されたExcelユーザーフォームも同じ目的を果たし、テキストボックス、チェックボックス、ラジオボタン、リストボックス、コンボボックス、スクロールバーなどの使い慣れたオプションを提供します。 コントロールとして。
「ユーザーフォーム」の章で、ユーザーフォームの作成方法とさまざまなコントロールの使用方法を学習します。
マクロコードのデバッグ
マクロが期待どおりに実行されない場合があります。 マクロを作成したか、誰かから提供されたマクロを使用している可能性があります。 他のコードをデバッグするのと同じようにマクロコードをデバッグして、欠陥を発見して修正することができます。 これについては、「マクロコードのデバッグ」の章で学習します。
ワークブックを開くときに実行するマクロの構成
ブックを開いたときにマクロを自動的に実行できます。 これを行うには、Auto_Runマクロを作成するか、ブックを開くイベントのVBAコードを記述します。 これについては、「ブックを開くときに実行するマクロの構成」の章で学習します。
Excelマクロ-作成
キーストロークとマウスクリックを記録し、マクロに名前を付け、マクロの保存方法を指定することにより、Excelコマンドでマクロを作成できます。 このように記録されたマクロは、Excelコマンドで実行できます。
次の形式で特定の結果を繰り返し収集する必要があるとします-
毎回テーブルを作成する代わりに、マクロを使用してテーブルを作成できます。
マクロを記録する
マクロを記録するには、次のようにします-
- リボンの[表示]タブをクリックします。
- [マクロ]グループの[マクロ]をクリックします。
- ドロップダウンリストから[マクロの記録]を選択します。
[マクロの記録]ダイアログボックスが表示されます。
- [マクロ名]ボックスに「 MyFirstMacro 」と入力します。
- [説明]ボックスに「 A Simple Macro 」と入力し、[OK]をクリックします。
キーストロークやマウスクリックは記録されます。
- セルB2をクリックします。
- テーブルを作成します。
- ワークシートの別のセルをクリックします。
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[記録の停止]を選択します。
マクロの記録が完了しました。
特定のセルをクリックする最初のステップは、マクロが記録されたステップの配置を開始する正確な場所を指示するため重要です。 記録が完了したら、記録の停止をクリックして、不要なステップの記録を回避する必要があります。
マクロを実行する
記録したマクロは何度でも実行できます。 マクロを実行するには、次のようにします-
- 新しいワークシートをクリックします。
アクティブなセルに注意してください。 この例では、A1です。
- リボンの VIEW タブをクリックします。
- *マクロ*をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
記録したマクロのみがマクロリストに表示されます。
- [マクロ]ダイアログボックスでマクロ名– MyFirstMacroをクリックします。 マクロの記録中に入力した説明が表示されます。 マクロの説明により、マクロを記録した目的を特定できます。
- [実行]ボタンをクリックします。 マクロの記録中に作成したのと同じテーブルが、ほんの一瞬で表示されます。
Excelがありふれたタスクの時間を節約するために提供する魔法の杖を発見しました。 あなたは次のことを観察します-
- マクロを実行する前のアクティブセルはA1でしたが、記録したとおり、テーブルはセルB2に配置されます。
- さらに、記録を停止する前にそのセルをクリックしたため、アクティブセルはE2になりました。
マクロを実行する前に、アクティブなセルが異なる複数のワークシートでマクロを実行し、上記と同じ条件を観察できます。 このことをメモしておくだけで、このチュートリアルの後半でその理由を理解できます。
アクティブなセルに記録されたステップを配置するマクロ記録を作成することもできます。 チュートリアルを進めるにつれて、これを行う方法を学習します。
マクロを保存する
作成されたマクロを保存する方法を疑問に思うかもしれません。 このコンテキストでは、知る必要があります-
- マクロを保存する
- マクロ対応ファイルの保存
マクロを作成するときに、その特定のマクロを保存する場所を選択できます。 これは、[マクロの記録]ダイアログボックスで実行できます。
ボックス-*マクロを保存*をクリックします。 次の3つのオプションが利用可能です-
- このワークブック。
- 新しいワークブック。
- 個人用マクロワークブック
このワークブック
これはデフォルトのオプションです。 マクロは、マクロを作成した場所から現在のワークブックに保存されます。
新しいワークブック
このオプションは使用可能ですが、推奨されていません。 マクロを別の新しいブックに保存するようExcelに要求することになりますが、ほとんどの場合それは不要です。
個人用マクロワークブック
ブック全体で使用する複数のマクロを作成する場合、パーソナルマクロブックはすべてのマクロを1か所に保存する機能を提供します。 このオプションの詳細については、次の章で説明します。
マクロ対応ファイルの保存
マクロを保存するためのオプションとして*このワークブック*を選択した場合は、マクロとともにワークブックを保存する必要があります。
ブックを保存してみてください。 既定では、Excelにブックを.xlsファイルとして保存するように要求します。 Excelは、以下に示すように、Excelの機能VBプロジェクトをマクロのないブックに保存できないことを示すメッセージを表示します。
注-[はい]をクリックすると、Excelはブックをマクロのない.xlsファイルとして保存し、このワークブックオプションで保存したマクロは保存されません。 これを回避するために、Excelには、拡張子が.xlsmのマクロ対応ブックとしてブックを保存するオプションが用意されています。
- 警告メッセージボックスで[いいえ]をクリックします。
- [ファイルの種類]で[Excelマクロ有効ワークブック(* .xlsm)]を選択します。
- 保存をクリックします。
これらの詳細については、このチュートリアルの後の章で説明します。
Excelマクロ-単一のブック内のマクロ
Excelには、すべてのマクロを1つのブックに保存する機能があります。 このブックは、Personal Macro Workbook-Personal.xlsbと呼ばれます。 これは、コンピューターに保存されている非表示のブックであり、Excelを開くたびに開きます。 これにより、任意のブックからマクロを実行できます。 コンピューターごとに1つの個人用マクロワークブックがあり、コンピューター間で共有することはできません。 コンピューター上の任意のブックからパーソナルマクロブックのマクロを表示および実行できます。
個人用マクロブックにマクロを保存する
マクロの記録中に保存オプションとして選択することにより、個人用マクロブックにマクロを保存できます。
[*マクロの保存先]カテゴリの下のドロップダウンリストから[個人用マクロブック]を選択します。
- 2番目のマクロを記録します。
- 以下に示すように、[マクロの記録]ダイアログボックスでマクロの詳細を指定します。
- OKをクリックしてください。
録音が開始されます。 以下に示すようにテーブルを作成します。
- 記録を停止します。
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。 [マクロ]ダイアログボックスが表示されます。
マクロ名には接頭辞PERSONAL.XLSBが表示されます! マクロが個人用マクロブックにあることを示します。
ブックを保存します。 マクロがブックにないため、.xlsファイルとして保存され、Excelを閉じます。
個人用マクロブックへの変更の保存に関する次のメッセージが表示されます-
[保存]ボタンをクリックします。 マクロはコンピューターの Personal.xlsb ファイルに保存されます。
個人用マクロブックの非表示/再表示
デフォルトでは、個人用マクロブックは非表示になります。 Excelを起動すると、個人用マクロブックが読み込まれますが、非表示になっているため表示できません。 あなたは次のようにそれを再表示することができます-
- リボンの VIEW タブをクリックします。
- [ウィンドウ]グループの[再表示]をクリックします。
[再表示]ダイアログボックスが表示されます。
[ブックの再表示]ボックスにPERSONAL.XLSBが表示され、[OK]をクリックします。
これで、個人用マクロブックに保存されたマクロを表示できます。
個人的なマクロワークブックを非表示にするには、次を行います-
- 個人用マクロブックをクリックします。
- リボンの[表示]タブをクリックします。
- リボンの[非表示]をクリックします。
個人用マクロブックに保存されたマクロの実行
任意のブックから個人用マクロブックに保存されたマクロを実行できます。 マクロを実行するために、個人用マクロブックが非表示になっていても非表示になっていても違いはありません。
- [マクロの表示]をクリックします。
- マクロリストからマクロ名を選択します。
- [実行]ボタンをクリックします。 マクロが実行されます。
個人用マクロブックでのマクロの追加/削除
先ほど見たように、マクロの記録中に[マクロの保存]オプションでマクロを選択すると、個人用マクロブックにさらにマクロを追加できます。
次のように、個人用マクロブックのマクロを削除できます-
- 個人用マクロブックが隠れていないことを確認してください。
- [マクロの表示]ダイアログボックスでマクロ名をクリックします。
- [削除]ボタンをクリックします。
個人用マクロブックが非表示の場合、「非表示のブックのマクロを編集できません」というメッセージが表示されます。
個人用マクロブックを再表示し、選択したマクロを削除します。
マクロはマクロリストに表示されません。 ただし、新しいマクロを作成して個人用ブックに保存するか、マクロに含まれるマクロを削除すると、最初に保存した場合と同様に個人用ブックを保存するように求められます。
Excelマクロ-セキュリティ
Excelで作成するマクロは、プログラミング言語VBA(Visual Basic for Applications)で記述されます。 後の章でExcelマクロコードについて学習します。 ご存知のように、実行可能コードがある場合、ウイルスの脅威があります。 マクロもウイルスの影響を受けやすくなっています。
マクロウイルスとは
マクロが記述されているExcel VBAは、ほとんどのWindowsシステムコールにアクセスし、ブックを開くと自動的に実行されます。 したがって、マクロとして記述されたウイルスの存在の潜在的な脅威があり、ブックを開くときに実行されるExcel内に隠されています。 したがって、Excelマクロは多くの点でコンピューターにとって非常に危険です。 ただし、Microsoftはブックをマクロウイルスから保護するための適切な対策を講じています。
マイクロソフトは、マクロセキュリティを導入しました。これにより、信頼できるマクロとできないマクロを識別できます。
マクロ対応Excelワークブック
最も重要なExcelマクロセキュリティ機能は-ファイル拡張子です。
Excelブックは、デフォルトで.xlsxファイル拡張子で保存されます。 拡張子が.xlsxのワークブックは、マクロを保存できず、脅威を伴わないため、常に信頼できます。
マクロを含むExcelブックは、.xlsmファイル拡張子で保存されます。 これらは、マクロ対応Excelワークブックと呼ばれます。 このようなブックを開く前に、含まれるマクロが悪意のないことを確認する必要があります。 このため、このタイプのワークブックの起源を信頼できることを確認する必要があります。
マクロ対応ワークブックを信頼する方法
Excelは、マクロが有効なワークブックを信頼する3つの方法を提供します。
- マクロが有効なワークブックを信頼できるフォルダーに配置する
- マクロがデジタル署名されているかどうかを確認する
- マクロ対応ワークブックを開く前にセキュリティ警告メッセージを有効にする
マクロが有効なワークブックを信頼できるフォルダーに配置する
これは、マクロセキュリティを管理する最も簡単で最適な方法です。 Excelでは、フォルダーを信頼できる場所として指定できます。 すべてのマクロ対応ワークブックをその信頼できるフォルダーに配置します。 警告または制限なしで、この場所に保存されているマクロ対応ワークブックを開くことができます。
マクロがデジタル署名されているかどうかを確認する
デジタル署名により、著者の身元が確認されます。 警告または制限なしに、信頼できる人からデジタル署名されたマクロを実行するようにExcelを構成できます。 また、作成者が署名してから変更された場合、Excelは受信者に警告します。
マクロ対応ワークブックを開く前にセキュリティ警告メッセージを有効にする
ブックを開くと、Excelにはブックにマクロが含まれていることが警告され、マクロを有効にするかどうかを尋ねられます。 ブックのソースが信頼できる場合は、[コンテンツを有効にする]ボタンをクリックできます。
Excelオプションのセキュリティセンターで、これら3つのオプションのいずれかを設定できます。
組織で作業している場合、システム管理者がデフォルト設定を変更して、だれも設定を変更できないようにしている可能性があります。 マイクロソフトは、セキュリティセンターのセキュリティ設定を変更しないことをお勧めします。その結果、データが失われたり、データが盗まれたり、コンピューターまたはネットワークのセキュリティが侵害される可能性があるためです。
ただし、次のセクションでマクロのセキュリティ設定を学習し、変更する必要があるかどうかを確認できます。 コンテキストとファイルの生成元に関する知識に基づいて、これらのオプションのいずれかを決定するには、独自の直感を使用する必要があります。
セキュリティセンターのマクロセキュリティ設定
マクロの設定は、Excelオプションのセキュリティセンターにあります。 セキュリティセンターにアクセスするには、次のようにします-
- リボンの[ファイル]タブをクリックします。
- オプションをクリックします。 [Excelオプション]ダイアログボックスが表示されます。
- 左ペインの[ Trust Center ]をクリックします。
- Microsoft Excel Trust Centerの下にある Trust Center Settings ボタンをクリックします。
[ Trust Center ]ダイアログボックスが表示されます。
左ペインのExcel Trust Centerで利用可能なさまざまなオプションが表示されます。 次のセクションで、Excelマクロに関連するオプションについて学習します。
マクロ設定
マクロ設定は、セキュリティセンターにあります。
[マクロの設定]で、4つのオプションを使用できます。
- 通知なしですべてのマクロを無効にする-このオプションを選択すると、マクロおよびマクロに関するセキュリティ警告が無効になります。
- 通知付きのすべてのマクロを無効にする-マクロは無効になっていますが、マクロが存在する場合はセキュリティ警告が表示されます。 マクロは、ケースバイケースで有効にできます。
- デジタル署名されたマクロを除くすべてのマクロを無効にする-マクロは無効になっていますが、マクロが存在する場合はセキュリティ警告が表示されます。 ただし、マクロが信頼できる発行元によってデジタル署名されている場合、発行元を信頼するとマクロが実行されます。 発行元を信頼していない場合、署名されたマクロを有効にして発行元を信頼するように通知されます。
- すべてのマクロを有効にします(推奨されません、マクロウイルスの影響を受けやすい)-このオプションを選択すると、すべてのマクロが実行されます。 この設定により、コンピューターは潜在的に悪意のあるコードに対して脆弱になります。
[開発者マクロの設定]の下に、チェックボックス付きの追加のセキュリティオプションがあります。
- * VBAプロジェクトオブジェクトモデルへのアクセスを信頼します。*
- このオプションを使用すると、オートメーションクライアントからVisual Basic for Applications(VBA)オブジェクトモデルにプログラムでアクセスできます。
- このセキュリティオプションは、Officeプログラムを自動化し、VBA環境とオブジェクトモデルを操作するために記述されたコード用です。
- これはユーザーごとおよびアプリケーションごとの設定であり、既定ではアクセスを拒否し、不正なプログラムが有害な自己複製コードを作成するのを妨げます。
- 自動化クライアントがVBAオブジェクトモデルにアクセスするには、コードを実行しているユーザーがアクセスを許可する必要があります。 アクセスを有効にするには、チェックボックスを選択します。
信頼できる場所の定義
マクロが有効なワークブックが信頼できるソースからのものであると考えられる場合は、デフォルトのセキュリティセンター設定を安全性の低いマクロセキュリティ設定に変更するのではなく、Excelで識別される信頼できる場所にファイルを移動することをお勧めします。
信頼済みフォルダーの設定は、セキュリティセンターで見つけることができます。
[セキュリティセンター]ダイアログボックスで[信頼できる場所]をクリックします。 Microsoft Officeによって設定された信頼できる場所が右側に表示されます。
新しい場所を追加したり、既存の場所を削除したり、既存の場所を変更したりできます。 識別された信頼できる場所は、Microsoft Officeによってファイルを開くための信頼できる場所として扱われます。 ただし、場所を追加または変更する場合は、その場所が安全であることを確認してください。
また、インターネット上の場所など、オフィスが推奨しないオプションを見つけることもできます。
信頼できるソースからのデジタル署名されたマクロ
マイクロソフトは、デジタル署名されたマクロに対応するオプションを提供しています。 ただし、マクロがデジタル署名されている場合でも、信頼できる発行元からのものであることを確認する必要があります。
信頼できる発行元は、セキュリティセンターにあります。
- [セキュリティセンター]ダイアログボックスで[信頼できる発行元]をクリックします。 証明書のリストが右側に表示され、詳細(発行先、発行元、有効期限)が示されます。
- 証明書を選択して、「表示」をクリックします。
証明書情報が表示されます。
この章で前述したように、発行元を信頼している場合にのみデジタル署名されたマクロを実行するオプションを設定できます。 発行元を信頼しない場合、署名されたマクロを有効にして発行元を信頼するように通知されます。
警告メッセージの使用
開いているファイルにマクロがある場合、メッセージバーにセキュリティ警告が表示されます。 シールドアイコンのある黄色のメッセージバーは、マクロが無効になっていることを警告します。
マクロが信頼できるソースからのものであることがわかっている場合は、メッセージバーの[コンテンツを有効にする]ボタンをクリックしてマクロを有効にすることができます。
セキュリティ警告が必要ない場合は、メッセージバーオプションを無効にできます。 一方、メッセージバーオプションを有効にしてセキュリティを強化できます。
メッセージバーのセキュリティアラートの有効化/無効化
次のようにメッセージバーでセキュリティアラートを有効/無効にすることができます-
- リボンの[ファイル]タブをクリックします。
- オプションをクリックします。 [Excelオプション]ダイアログボックスが表示されます。
- [セキュリティセンター]をクリックします。
- [セキュリティセンターの設定]ボタンをクリックします。
- [メッセージバー]をクリックします。
すべてのOfficeアプリケーションのメッセージバー設定が表示されます。
-*メッセージバーの表示*の下に2つのオプションがあります。
- オプション1 *-マクロなどのアクティブコンテンツがブロックされている場合、すべてのアプリケーションでメッセージバーを表示します。
- これはデフォルトのオプションです。 安全でない可能性のあるコンテンツが無効になっている場合、メッセージバーが表示されます。
- [セキュリティセンターのマクロ設定で通知せずにすべてのマクロを無効にする]を選択した場合、このオプションは選択されず、メッセージバーは表示されません。
- オプション2 *-ブロックされたコンテンツに関する情報を表示しない。
このオプションを選択すると、セキュリティセンターのセキュリティ設定に関係なく、メッセージバーが無効になり、セキュリティの問題に関するアラートは表示されません。
Excelマクロ-絶対参照
Excelマクロは、絶対参照または相対参照で記録できます。 絶対参照で記録されたマクロは、アクティブセルに関係なく、記録されたステップを記録されたセルに正確に配置します。 一方、相対参照で記録されたマクロは、ワークシートの異なる部分で記録されたタスクを実行できます。
この章では、マクロの絶対参照について学習します。 次の章で相対参照について学びます。
次の形式で、毎日の終わりにチームの作業に関するレポートを提出する必要があるとします-
ここで、レポートはセルB2に配置され、指定された形式である必要があります。
レポートに記入されたサンプルは以下のようになります-
次のセルのデータを除き、情報はプロジェクト用に生成するすべてのレポートで一定です。
- C3 –日付のレポート。
- C13 –いいえ。 今日完了したタスクの数。
- C14 –合計番号 完了したタスクの数。 *C15 –作業完了率。
これらのうち、C3(日付のレポート)では、Excel関数=* TODAY()*を配置できます。これにより、ユーザーの介入なしにレポートの日付が配置されます。 さらに、セルC15では、数式C14/C12を使用して、セルC15をパーセントでフォーマットして、Excelで計算された作業完了率を得ることができます。
これにより、毎日入力する必要があるC13とC14の2つのセルのみが残ります。 したがって、レポートを作成するたびに、残りのセルの情報を取得することが理想的です。 これにより時間を節約でき、わずか数分で日常的なレポート作業を行うことができます。
ここで、このようなレポートを3つのプロジェクトに送信する必要があるとします。 時間を節約し、その日のよりやりがいのある仕事を引き受けることができ、もちろん経営陣から称賛を得ることができる時間を想像できます。
これを実現するには、プロジェクトごとにマクロを記録し、それらを日常的に実行して、わずか数分で必要なレポートを生成します。 ただし、マクロを実行するたびに、アクティブセルに関係なく、上記のようにレポートがワークシートに表示されます。 このためには、絶対参照を使用する必要があります。
絶対参照の確保
絶対参照でマクロを記録するには、ステップを開始する必要があるセルからマクロが記録されていることを確認する必要があります。 これは、前のセクションで示した例の場合、次のことを行う必要があることを意味します-
- マクロの記録を開始します。
- 新しいワークシートを作成します。
- 新しいワークシートのB2以外のセルをクリックします。
- セルB2をクリックします。
- マクロの記録を続けます。
これにより、新しいレポートごとに新しいワークシートが作成され、マクロを実行するたびにレポート形式がセルB2に配置されます。
注-上記の最初の3つのステップは不可欠です。
- 新しいワークシートを作成しない場合、マクロを実行すると、同じワークシートに記録したものが同じ場所に配置されます。 これはあなたが望むものではありません。 すべてのレポートを異なるワークシートに作成する必要があります。
- 記録の開始時に別のセルをクリックしないと、アクティブセルがB2であっても、Excelは記録されたステップをアクティブセルに配置します。 マクロを実行すると、アクティブセルに基づいてワークシートの任意の部分に記録されたレポート形式が配置されます。 明示的にB2以外のセルをクリックしてからセルB2をクリックすると、レコーダーに常にマクロステップをセルB2に配置するよう指示します。
マクロを記録する
マクロの記録を開始するには、リボンの[表示]タブ→[マクロ]の[マクロの記録]コマンドを使用します。 Excelタスクバーの左側にある[マクロの記録を開始]ボタンをクリックすることもできます。
- マクロの記録を開始します。 [マクロの記録]ダイアログボックスが表示されます。
- 特定のプロジェクトのレポートとしてマクロを識別するために意味のある名前を付けます。
- この特定のワークブックからのみレポートを作成するため、[マクロを保存]で[このワークブック]を選択します。
- マクロに説明を入力して、[OK]をクリックします。
マクロが記録を開始します。
- 新しいワークシートを作成します。 これにより、新しいレポートが新しいワークシートに作成されます。
- 新しいワークシートのB2以外のセルをクリックします。
- セルB2をクリックします。 これにより、マクロは記録されたステップを常にB2に配置します。
- レポートの形式を作成します。
- プロジェクトレポートの静的情報を入力します。
- C3に= TODAY()、C15セルに= C14/C12を配置します。
- 日付でセルをフォーマットします。
マクロの記録を停止します。
マクロの記録を停止するには、リボンの[表示]タブ→[マクロ]の[記録の停止]コマンドを使用するか、Excelタスクバーの左側にある[記録の停止]ボタンをクリックします。
プロジェクトレポートマクロの準備ができました。 ブックをマクロ対応のブック(拡張子.xlsm)として保存します。
マクロを実行する
マクロを実行するだけで、数秒で任意の数のレポートを生成できます。
- リボンの[表示]ボタンをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。 [マクロ]ダイアログボックスが表示されます。
- マクロReport_ProjectXYZをクリックします。
- [実行]ボタンをクリックします。
ワークブックに新しいワークシートが作成され、レポートステンシルがセルB2に作成されます。
Excelマクロ-相対参照
相対参照マクロは、アクティブセルからのオフセットを記録します。 このようなマクロは、ワークシートのさまざまな場所で手順を繰り返す必要がある場合に役立ちます。
280の選挙区から収集された有権者のデータを分析する必要があるとします。 各選挙区について、次の詳細が収集されます-
- 選挙区名。
- 選挙区の総人口。
- 選挙区の有権者の数。
- 男性有権者の数、および
- 女性有権者の数。
データは、以下に示すワークシートで提供されます。
上記の形式のデータを分析することはできません。 そのため、以下に示すようにデータをテーブルに配置します。
あなたが上記の形式で指定されたデータを配置しようとする場合-
- 280の選挙区からのデータを整理するにはかなりの時間がかかります
- エラーが発生しやすい
- 日常的なタスクになり、技術的なことに集中できなくなります
解決策は、数秒以内にタスクを完了できるようにマクロを記録することです。 データを配置しながら行を下に移動するため、マクロは相対参照を使用する必要があります。
相対参照の使用
マクロレコーダーに相対参照を使用する必要があることを知らせるために、次の操作を行います-
- リボンの VIEW タブをクリックします。
- *マクロ*をクリックします。
- [相対参照を使用]をクリックします。
データ形式の準備
上記のデータを配置する最初のステップは、ヘッダーを持つテーブルでデータ形式を定義することです。
以下に示すようにヘッダーの行を作成します。
マクロを記録する
次のようにマクロを記録します-
- [マクロの記録]をクリックします。
- マクロに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マクロ-VBA
Excelは、マクロをExcel VBA(Visual Basic for Applications)コードとして保存します。 マクロを記録した後、生成されたコードを表示したり、変更したり、その一部をコピーしたりできます。 VBAでのプログラミングに慣れている場合は、マクロコードを自分で作成することもできます。
「VBAエディターを使用してマクロを作成する」の章で、VBAコードを記述してマクロを作成する方法を学習します。 「マクロの編集」の章でVBAコードを編集して、マクロを変更する方法を学習します。 この章では、Excel VBAの機能について学習します。
リボンの[開発]タブ
リボンの[開発]タブからVBAのマクロコードにアクセスできます。
リボンに[開発]タブが見つからない場合は、次のように追加する必要があります-
- リボンを右クリックします。
- ドロップダウンリストから[リボンのカスタマイズ]を選択します。
[* Excelオプション*]ダイアログボックスが表示されます。
- [リボンのカスタマイズ]ドロップダウンリストから[メインタブ]を選択します。
- [メインタブ]リストの[開発者]ボックスをオンにして、[OK]をクリックします。 開発者タブが表示されます。
マクロの開発者向けコマンド
開発者タブでマクロ用のコマンドを知っておく必要があります。
リボンの[開発者]タブをクリックします。 次のコマンドは、コードグループで利用可能です-
- ビジュアルベーシック
- マクロ
- レコードマクロ
- 相対参照を使用する
- マクロセキュリティ
Visual Basicコマンドを使用してExcelでVBAエディターを開き、マクロコマンドを使用してマクロを表示、実行、および削除します。
前の章でVBAエディター以外のコマンドを既に学習しました。
VBAエディター
VBA EditorまたはVBEは、ExcelのVBAの開発者プラットフォームです。
このチュートリアルの前半の章-単純なマクロの作成で保存したMyFirstMacro.xlsmブックを開きます。
あなたは2つの方法のいずれかでVBEを開くことができます-
- オプション1 *-リボンの[開発]タブの下の[コード]グループで[Visual Basic]をクリックします。
- オプション2 *-[表示]タブ→[マクロ]→[マクロの表示]をクリックすると表示される[マクロ]ダイアログボックスで[編集]をクリックします。
VBEが新しいウィンドウに表示されます。
Excelマクロが有効なワークブック名の名前には、Microsoft Visual Basic for Applicationsというプレフィックスが付きます。
あなたはVBEで以下を見つけるでしょう-
- プロジェクトエクスプローラー。
- プロパティ
- コード付きのモジュールウィンドウ。
プロジェクトエクスプローラー
Project Explorerは、VBAプロジェクト名を見つける場所です。 プロジェクトの下には、シート名とモジュール名があります。 モジュール名をクリックすると、対応するコードがウィンドウの右側に表示されます。
プロパティウィンドウ
プロパティは、VBAオブジェクトのパラメーターです。 コマンドボタンなどのオブジェクトがある場合、そのプロパティは[プロパティ]ウィンドウに表示されます。
コード付きモジュールウィンドウ
マクロのコードは、VBAのモジュールに保存されます。 マクロを選択して[編集]をクリックすると、対応するモジュールウィンドウにマクロのコードが表示されます。
Excelマクロ-コードについて
マクロを記録すると、ExcelはそれをVBAコードとして保存します。 このコードはVBAエディターで表示できます。 Excel VBAについて十分な知識がある場合は、コードを理解して変更できます。 このチュートリアルライブラリのExcel VBAチュートリアルを参照して、言語を理解してください。
ただし、Excel VBAエディターでマクロコードを表示し、マクロで記録した手順と一致させることはできます。 このチュートリアルで作成した最初のマクロMyFirstMacroのコードを表示して理解する方法を学習します。
VBAエディターでマクロコードを表示する
マクロコードを表示するには、次のようにします-
- マクロを保存したブックを開きます。
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロリストで[MyFirstMacro]をクリックします。
- [編集]ボタンをクリックします。
VBAエディターが開き、マクロMyFirstMacroのコードが表示されます。
記録されたアクションをコードの一部として理解する
マクロコードを参照して、記録されたステップにマップできます。
- コードの読み取りを開始します。
- 記録されたステップにコードをマップします。
コードを下にスクロールして、さらにコードを表示します。 または、コードウィンドウを拡大できます。
コードが単純であることを確認してください。 Excel VBAを学習している場合は、VBAエディターでコードを記述してマクロを作成できます。
「VBAエディターを使用してマクロを作成する」の章で、VBAコードを記述してマクロを作成する方法を学習します。
Excelマクロ-オブジェクトへのマクロの割り当て
数回実行する必要があるマクロを作成したとします。 たとえば、絶対参照および相対参照用に作成したマクロ。 その後、マウスのクリックを使用してマクロを実行できれば簡単です。 これを実現するには、マクロをシェイプ、グラフィック、またはコントロールなどのオブジェクトに割り当てます。
この章では、ワークブックにオブジェクトを含めてマクロを割り当てる方法を学習します。
相対参照を使用して作成したマクロを思い出してください。 マクロは、データ分析を容易にするために、1つの列で指定されたデータをテーブルに配置します。
マクロを図形に割り当てる
わかりやすいテキストを含む意味のある形式のワークシートに図形を挿入できます。このテキストをクリックすると、割り当てられたマクロが実行されます。
- リボンの[挿入]タブをクリックします。
- [イラスト]グループの[*形状]をクリックします。
- ドロップダウンリストに表示される既製の図形を選択します。 たとえば、フローチャートの形状-準備、データの準備中です。
形状を描画し、フォーマットします。
- 図形を右クリックして、ドロップダウンリストから[テキストの編集]を選択します。
- 図形内にテキストを入力します-マクロを実行します。
- テキストをフォーマットします。
- 図形を右クリックします。
- ドロップダウンリストから[マクロの割り当て]を選択します。
[マクロの割り当て]ダイアログボックスが表示されます。 マクロ名をクリックします RelativeMacroをクリックし、[OK]をクリックします。
マクロが図形に割り当てられます。
- マクロを実行する必要があるセルをクリックして、B4と言います。
- カーソル(ポインター)を図形に移動します。 カーソル(ポインター)が指に変わります。
次に、図形をクリックします。 マクロが実行されます。 マウスのクリックを繰り返してマクロを数回実行するだけで、数秒でデータをテーブルに配置するタスクが完了します。
グラフィックへのマクロの割り当て
ワークシートにグラフィックを挿入して、マクロを割り当てることができます。 マクロを視覚化するためにグラフィックを選択できます。 たとえば、マクロがデータをテーブルに配置することを表すテーブルのグラフィックを作成できます。
- リボンの[挿入]タブをクリックします。
- [イラスト]グループの[写真]をクリックします。
- グラフィックを含むファイルを選択します。
残りの手順は、前のセクションで示した形状の手順と同じです。
マクロをコントロールに割り当てる
VBAコントロールを挿入してマクロを割り当てると、作業がプロフェッショナルに見えます。 リボンの[開発]タブからVBAコントロールを挿入できます。
- リボンの[開発者]タブをクリックします。
- [コントロール]グループの[*挿入]をクリックします。
以下のスクリーンショットに示すように、ドロップダウンリストから*フォームコントロール*の下にあるボタンアイコンを選択します-
- ボタンコントロールを挿入するワークシート上のセルをクリックします。 [マクロの割り当て]ダイアログボックスが表示されます。
- マクロ名をクリックし、[OK]をクリックします。
マクロが割り当てられたコントロールボタンが挿入されます。
- ボタンを右クリックします。
- [テキストの編集]をクリックします。
- タイプ-マクロの実行。
- テキストの書式設定とボタンのサイズ変更。
ボタンを繰り返しクリックするだけで、マクロを何度でも実行できます。
フォームコントロールの使用は、ユーザーと対話するための簡単で効果的な方法です。 これについては、「ユーザーとの対話」の章で詳しく説明します。
Excelマクロ-マクロの実行
ワークブックでマクロを実行する方法はいくつかあります。 マクロは、マクロが有効なワークブックまたは個人用マクロブックに保存され、以前に学習したように任意のブックからアクセスできます。
次の方法でマクロを実行できます-
- [表示]タブからマクロを実行する
- Ctrlキーとショートカットキーを押してマクロを実行する
- クイックアクセスツールバーのボタンをクリックしてマクロを実行する
- リボンのカスタムグループのボタンをクリックしてマクロを実行する
- グラフィックオブジェクトをクリックしてマクロを実行する
- 開発者タブからマクロを実行する
- VBAエディターからマクロを実行する
[表示]タブからマクロを実行する
リボンの[表示]タブからマクロの実行を既に学習しました。 簡単な要約-
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名をクリックします。
- [実行]ボタンをクリックします。
ショートカットキーでマクロを実行する
マクロにショートカットキー(Ctrl +キー)を割り当てることができます。 [マクロの作成]ダイアログボックスでマクロを記録中にこれを行うことができます。 それ以外の場合は、後で[マクロオプション]ダイアログボックスで追加できます。
マクロの記録中にショートカットキーを追加する
- [表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの記録]を選択します。
[マクロの作成]ダイアログボックスが表示されます。
- マクロ名を入力してください
- [ショートカットキー]の下の[Ctrl] +の隣のボックスにqと言う文字を入力します。
マクロオプションにショートカットキーを追加する
- [表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名を選択します。
- [オプション]ボタンをクリックします。
[マクロオプション]ダイアログボックスが表示されます。 [ショートカットキー]の下の[Ctrl] +の隣のボックスにqと言う文字を入力します。 OKをクリックしてください。
ショートカットキーでマクロを実行するには、Ctrlキーとキーqを同時に押します。 マクロが実行されます。
注意-マクロのショートカットキーには、小文字または大文字を使用できます。 ExcelショートカットキーであるCtrl +文字の組み合わせを使用する場合、それを上書きします。 例には、Ctrl + C、Ctrl + V、Ctrl + Xなどが含まれます。 したがって、手紙を選択する際には管轄権を使用してください。
クイックアクセスツールバーからマクロを実行する
クイックアクセスツールバーにマクロボタンを追加し、クリックしてマクロを実行できます。 このオプションは、個人用マクロブックにマクロを保存するときに役立ちます。 追加したボタンは、開いているブックのクイックアクセスツールバーに表示されるため、マクロを簡単に実行できます。
個人用マクロブックにMyMacroという名前のマクロがあるとします。
クイックアクセスツールバーにマクロボタンを追加するには、次のようにします-
- クイックアクセスツールバーを右クリックします。
- ドロップダウンリストから[クイックアクセスツールバーのカスタマイズ]を選択します。
[Excelオプション]ダイアログボックスが表示されます。 カテゴリの下にあるドロップダウンリストから[マクロ]を選択します-[コマンドの選択元]。
マクロの下にマクロのリストが表示されます。
- PERSONAL.XLSB!MyMacroをクリックします。
- [追加]ボタンをクリックします。
マクロ名がマクロボタンの画像とともに右側に表示されます。
マクロボタンの画像を変更するには、次のように進みます-
- 右側のボックスでマクロ名をクリックします。
- [変更]ボタンをクリックします。
[*修正ボタン]ダイアログボックスが表示されます。 1つのシンボルを選択して、ボタンのアイコンとして設定します。
クイックアクセスツールバーのボタン画像にポインターを置いたときに表示される表示名を、この例ではMyMacroを実行するなどの意味のある名前に変更します。 OKをクリックしてください。
右ペインでマクロ名とアイコンシンボルが変わります。 OKをクリックしてください。
クイックアクセスツールバーにマクロボタンが表示され、ボタンにポインターを置くとマクロ表示名が表示されます。
マクロを実行するには、クイックアクセスツールバーのマクロボタンをクリックするだけです。
カスタムグループでマクロを実行する
リボンにカスタムグループとカスタムボタンを追加して、ボタンにマクロを割り当てることができます。
- リボンを右クリックします。
- ドロップダウンリストから[リボンのカスタマイズ]を選択します。
[* Excelオプション*]ダイアログボックスが表示されます。
- [リボンのカスタマイズ]の下の[メインタブ]を選択します。
- [新しいタブ]をクリックします。
[メインタブ]リストに[新しいタブ(カスタム)]が表示されます。
- [新しいタブ(カスタム)]をクリックします。
- [新しいグループ]ボタンをクリックします。
[新しいタブ(カスタム)]の下に[新しいグループ(カスタム)]が表示されます。
- [新しいタブ(カスタム)]をクリックします。
- [名前の変更]ボタンをクリックします。
[名前の変更]ダイアログボックスが表示されます。 リボンの[メイン]タブに表示されるカスタムタブの名前を入力します(「マイマクロ」など)、[OK]をクリックします。
注-リボンのすべてのメインタブは大文字です。 あなたの裁量を使用して、大文字または小文字を使用することができます。 標準のタブで目立つように、単語の大文字と小文字を選択しました。
新しいタブ名が[マイマクロ(カスタム)]に変わります。
- [新しいグループ(カスタム)]をクリックします。
- [名前の変更]ボタンをクリックします。
[名前の変更]ダイアログボックスが表示されます。 [表示名]ダイアログボックスにグループ名を入力し、[OK]をクリックします。
新しいグループ名は、個人用マクロ(カスタム)に変わります。
左ペインの[コマンドの選択]の下にある[マクロ]をクリックします。
- マクロ名を選択します。たとえば、マクロリストからMyFirstMacroを選択します。
- [追加]ボタンをクリックします。
マクロは、個人用マクロ(カスタム)グループの下に追加されます。
- リストの[マイマクロ(カスタム)]をクリックします。
- タブを上下に移動するには、矢印をクリックします。
メインタブリスト内のタブの位置により、リボン上のどこに配置されるかが決まります。 OKをクリックしてください。
カスタムタブ-マイマクロがリボンに表示されます。
[マイマクロ]タブをクリックします。 個人用マクログループがリボンに表示されます。 MyFirstMacroは、個人用マクログループに表示されます。 マクロを実行するには、Personal MacrosグループのMyFirstMacroをクリックするだけです。
オブジェクトをクリックしてマクロを実行する
ワークシートに図形、グラフィック、VBAコントロールなどのオブジェクトを挿入して、マクロを割り当てることができます。 マクロを実行するには、オブジェクトをクリックするだけです。
オブジェクトを使用したマクロの実行の詳細については、「マクロをオブジェクトに割り当てる」の章を参照してください。
[開発]タブからマクロを実行する
[開発]タブからマクロを実行できます。
- リボンの[開発]タブをクリックします。
- マクロをクリックします。
[マクロ]ダイアログボックスが表示されます。 マクロ名をクリックし、[実行]をクリックします。
VBAエディターからマクロを実行する
次のようにVBAエディタからマクロを実行できます-
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
VBAエディターを使用してマクロを作成する
VBAエディターでコードを記述することにより、マクロを作成できます。 この章では、マクロのコードをどこでどのように記述するかを学習します。
VBAオブジェクトとモジュール
マクロのコーディングを開始する前に、VBAオブジェクトとモジュールを理解してください。
- 最初のマクロでマクロ対応ブックを開きます。
- リボンの[開発者]タブをクリックします。
- [コード]グループの[Visual Basic]をクリックします。
VBAエディターウィンドウが開きます。
あなたは、プロジェクトエクスプローラウィンドウで次を観察します-
- マクロが有効なワークブック– MyFirstMacro.xlsmがVBAプロジェクトとして表示されます。
- すべてのワークシートとワークブックは、プロジェクトの下にMicrosoft Excelオブジェクトとして表示されます。
- Module1がModulesの下に表示されます。 マクロコードはここにあります。
- Module1をクリックします。
- リボンの[表示]タブをクリックします。
- ドロップダウンリストから[コード]を選択します。
マクロのコードが表示されます。
コーディングによるマクロの作成
次に、同じワークブックに2つ目のマクロを作成します–今回はVBAコードを記述します。
あなたは2つのステップでこれを行うことができます-
- コマンドボタンを挿入します。
- コマンドボタンをクリックしたときに実行されるアクションを示すコードを記述します。
コマンドボタンの挿入
- 新しいワークシートを作成します。
- 新しいワークシートをクリックします。
- リボンの[開発者]ボタンをクリックします。
- [コントロール]グループの[挿入]をクリックします。
- *フォームコントロール*からボタンアイコンを選択します。
- コマンドボタンを配置するワークシートをクリックします。
- [マクロの割り当て]ダイアログボックスが表示されます。
Visual Basicエディターが表示されます。
あなたは次のことを観察します-
- 新しいモジュール– Module2がプロジェクトエクスプローラーに挿入されます。
- Module2(コード)というタイトルのコードウィンドウが表示されます。 *サブプロシージャButton1_Click()がModule2コードに挿入されます。
マクロのコーディング
コーディングの半分はVBAエディター自体によって行われます。
たとえば、サブプロシージャButton1_Click()にMsgBox* “ Best Wishes to You!” *と入力します。 コマンドボタンがクリックされると、指定された文字列を含むメッセージボックスが表示されます。
それでおしまい! マクロコードを実行する準備ができました。 ご存じのとおり、VBAコードはインタープリターで実行されるため、コンパイルは不要です。
VBAエディターからマクロを実行する
VBAエディター自体からマクロコードをテストできます。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。 入力した文字列を含むメッセージボックスがワークシートに表示されます。
ボタンが選択されていることがわかります。 メッセージボックスで[OK]をクリックします。 VBAエディターに戻ります。
ワークシートからマクロを実行する
ワークシートから何度でもコーディングしたマクロを実行できます。
- ワークシートのどこかをクリックします。
- ボタンをクリックします。 ワークシートにメッセージボックスが表示されます。
VBAコードを記述してマクロを作成しました。 ご覧のとおり、VBAコーディングは簡単です。
Excelマクロ-編集
前の章でVBAエディターでマクロコードを記述する方法を学習しました。 マクロコードを編集し、マクロの名前を変更し、マクロを削除できます。
Excel VBAをマスターしている場合、マクロのコードの記述やコードの変更は簡単な作業です。 マクロコードは自由に編集できます。 マクロコードに簡単な変更を少しだけ加えたい場合は、マクロコードをある場所から別の場所にコピーすることもできます。
マクロコードのコピー
マクロが有効なワークブックMyFirstMacro.xlsmに、MyFirstMacroとButton1_Clickの2つのマクロを作成しました。 手順を記録して最初のマクロを作成し、コードを記述して2番目のマクロを作成しました。 最初のマクロから2番目のマクロにコードをコピーできます。
- ブックMyFirstMacro.xlsmを開きます。
- リボンの[開発]タブをクリックします。
- Visual Basicをクリックします。 Visual Basicエディターが開きます。
- Module1(MyFirstMacroマクロコード)およびModule2(Button1_Click()マクロコード)のコードを開きます。
- リボンの[ウィンドウ]タブをクリックします。
- ドロップダウンリストから[水平に並べて表示]を選択します。
タイルウィンドウで2つのマクロのコードを表示できます。
- Module2コードのMsgBox行をコピーします。
- その行の上に貼り付けます。
- 文字列を次のように変更します- + MsgBox“ Hello World!”
- Module1から次のコードをコピーします。
MsgBoxの2行のコードの間にあるModule2コードに貼り付けます。
- [保存]アイコンをクリックしてコードを保存します。
- Excelシートのボタンをクリックします。 メッセージボックス-Hello World!が表示されます。 OKをクリックしてください。
テーブルデータが(コピーしたコードに従って)表示され、メッセージボックスにメッセージ-Best Wishes to You!が表示されます。
ほんの数ステップでコードを変更できます。 これは初心者にとって最も簡単なタスクです。
マクロの名前を変更する
コマンドボタンがあるワークシート以外のワークシートから編集したマクロを実行するとします。 マクロの名前を変更することで、ボタンのクリックに関係なく実行できます。
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名-Button1_Clickをクリックします。
- [編集]ボタンをクリックします。
VBAエディターにマクロコードが表示されます。
Sub行に表示される名前をButton1_ClickからRenamedMacroに変更します。 Subと括弧はそのままにします。
[マクロ]ダイアログボックスを開きます。 名前を変更すると、マクロ名が表示されます。
- RenamedMacroをクリックします。
- [実行]ボタンをクリックします。 マクロが実行されます。 これで、ボタンをクリックする必要はありません。
マクロを削除する
記録またはコーディングしたマクロを削除できます。
- [マクロ]ダイアログボックスを開きます。
- マクロ名をクリックします。
- [削除]ボタンをクリックします。
- 削除*確認メッセージが表示されます。
マクロを削除する場合は、[はい]をクリックしてください。 それ以外の場合は、[いいえ]をクリックします。
Excelマクロ-ユーザーフォーム
時には、他の人から繰り返し情報を収集する必要があるかもしれません。 Excel VBAは、このタスク- UserForm を処理する簡単な方法を提供します。 記入する他のフォームと同様に、UserFormを使用すると、提供する情報を簡単に理解できます。 UserFormは、提供されるコントロールがわかりやすく、必要に応じて追加の指示が表示されるという点で、ユーザーフレンドリーです。
UserFormの主な利点は、情報の入力方法と入力方法に費やす時間を節約できることです。
ユーザーフォームの作成
ユーザーフォームを作成するには、次のように進みます-
- リボンの[開発者]タブをクリックします。
- Visual Basicをクリックします。 ブックのVisual Basicウィンドウが開きます。
- [挿入]をクリックし、
- ドロップダウンリストからUserFormを選択します。
ウィンドウの右側にユーザーフォームが表示されます。
ユーザーフォームを理解する
UserForm.xlsx – UserForm1ウィンドウを最大化します。
これで、設計モードになりました。 ユーザーフォームにコントロールを挿入し、それぞれのアクションのコードを記述できます。 コントロールはツールボックスで使用できます。 UserFormのプロパティは[プロパティ]ウィンドウにあります。 UserForm1(UserFormのキャプション)は、Projects ExplorerのFormsの下に表示されます。
- プロパティウィンドウで、ユーザーフォームのキャプションをプロジェクトレポート-毎日に変更します。
- UserFormの名前をProjectReportに変更します。
変更は、ユーザーフォーム、プロパティ、およびプロジェクトエクスプローラーに反映されます。
ツールボックスのコントロール
ユーザーフォームにはさまざまなコンポーネントがあります。 コンポーネントのいずれかをクリックすると、情報の提供方法と提供方法に関する指示が表示されるか、選択するオプション(選択肢)が表示されます。 これらはすべて、ユーザーフォームのツールボックス内のActiveXコントロールによって提供されます。
Excelには、フォームコントロールとActiveXコントロールの2種類のコントロールがあります。 これら2つのタイプのコントロールの違いを理解する必要があります。
フォームコントロール
フォームコントロールは、Excelバージョン5.0以降の以前のバージョンのExcelと互換性のあるExcelオリジナルコントロールです。 フォームコントロールは、XLMマクロシートで使用するためにも設計されています。
フォームコントロールを使用してマクロを実行できます。 既存のマクロをコントロールに割り当てるか、新しいマクロを作成または記録できます。 コントロールをクリックすると、マクロ。 ワークシートのフォームコントロールからコマンドボタンを挿入してマクロを実行する方法を既に学習しました。 ただし、これらのコントロールをユーザーフォームに追加することはできません。
ActiveXコントロール
ActiveXコントロールは、VBAユーザーフォームで使用できます。 ActiveXコントロールには、外観、動作、フォント、およびその他の特性をカスタマイズするために使用できる広範なプロパティがあります。
UserForm ToolBoxに次のActiveXコントロールがあります-
- ポインタ
- ラベル
- テキストボックス
- コンボボックス
- リストボックス
- チェックボックス
- オプションボタン
- フレーム
- トグルボタン
- CommandButton
- タブストリップ
- マルチページ
- スクロール・バー
- スピンボタン
- 画像
これらのコントロールに加えて、Visual Basicには、メッセージの表示やユーザーにアクションを促すために使用できるMsgBox関数が用意されています。
次のいくつかのセクションでは、これらのコントロールとMsgBoxについて理解します。 次に、ユーザーフォームの設計に必要なこれらのコントロールを選択することができます。
ラベル
タイトル、キャプション、および/または簡単な指示などの説明テキストを表示することにより、識別目的でラベルを使用できます。
例
テキストボックス
テキストを入力、表示、または編集するには、長方形のボックスであるTextBoxを使用できます。 また、読み取り専用情報を表示する静的テキストフィールドとしてTextBoxを使用することもできます。
例
リストボックス
リストボックスを使用して、ユーザーが選択できる1つ以上のテキストアイテムのリストを表示できます。 リストボックスを使用して、数や内容が異なる多数の選択肢を表示します。
- ユーザーフォームにリストボックスを挿入します。
- リストボックスをクリックします。
- ListBoxの[プロパティ]ウィンドウで、名前にProjectCodesと入力します。
リストボックスには3種類あります-
- 単一選択リストボックス-単一選択リストボックスでは、1つの選択肢のみが有効になります。 この場合、リストボックスはオプションボタンのグループに似ていますが、リストボックスは多数のアイテムをより効率的に処理できる点が異なります。
- 複数選択リストボックス-複数選択リストボックスは、1つの選択肢または連続した(隣接する)選択肢を有効にします。
- 拡張選択リストボックス-拡張選択リストボックスでは、1つの選択肢、連続した選択肢、および不連続な(またはばらばらの)選択肢を使用できます。
[プロパティ]ウィンドウから、これらのタイプのリストボックスのいずれかを選択できます。
- UserFormを右クリックします。
- ドロップダウンリストから[コードの表示]を選択します。 UserFormのコードウィンドウが開きます。
- コードウィンドウの右上のボックスで[初期化]をクリックします。
- Private Sub UserForm_Initialize()の下に次を入力します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
次に、リスト内のアイテムを選択するアクションのコードを記述できます。 それ以外の場合は、選択したテキストのみを表示できます。これは、レポートにプロジェクトコードを入力する場合です。
コンボボックス
テキストボックスとリストボックスを組み合わせた ComboBox を使用して、ドロップダウンリストボックスを作成できます。 コンボボックスはリストボックスよりもコンパクトですが、ユーザーが下矢印をクリックしてアイテムのリストを表示する必要があります。 コンボボックスを使用して、リストから1つのアイテムのみを選択します。
- ユーザーフォームにComboBoxを挿入します。
- ComboBoxをクリックします。
- ComboBoxの[プロパティ]ウィンドウで、[名前]にProjectCodes2と入力します。
- UserFormを右クリックします。
- ドロップダウンリストから[コードの表示]を選択します。
- UserFormのコードウィンドウが開きます。
次のように入力します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
下矢印をクリックして、アイテムのリストを表示します。
Project2016-5などの必要な項目をクリックします。 選択したオプションがコンボボックスに表示されます。
チェックボックス
チェックボックスを使用して、ボックスをクリックして表示される1つ以上のオプションを選択できます。 オプションにはラベルが付いており、選択されているオプションを明確に視覚化できます。
チェックボックスは2つの状態を持つことができます-
- 選択(オン)、ボックス内のチェックマークで表示
- クリアされた(オフになっている)、クリアボックスで示されています
コンボボックスでオプションを選択するためのチェックボックスを使用して、スペースを節約できます。 このような場合、チェックボックスはまた、第三の状態を持つことができます-
- 混合。オンとオフの状態の組み合わせを意味し、ボックス内の黒い点で示されます。 これは、チェックボックス付きのコンボボックスで複数の選択を示すために表示されます。
- 以下に示すように、ユーザーフォームにチェックボックスを挿入します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
- 選択したオプションのボックスをクリックします。
オプションボタン
オプションボタン(ラジオボタンとも呼ばれます)を使用して、相互に排他的な限られた選択肢の中から1つの選択肢を作成できます。 オプションボタンは通常、グループボックスまたはフレームに含まれています。
オプションボタンは小さな円で表されます。 オプションボタンは、次の2つの状態のいずれかを持つことができます-
- 選択(オン)、円内のドットで示
- クリア(オフ)、空白で表示
フレーム
グループボックスとも呼ばれるフレームコントロールを使用して、関連するコントロールを1つの視覚的な単位にグループ化できます。 通常、オプションボタン、チェックボックス、または密接に関連するコンテンツは、フレームコントロールにグループ化されます。
フレームコントロールは、オプションのラベルが付いた長方形のオブジェクトで表されます。
- キャプションが「選択」のフレームを挿入します。
- キャプションが「はい」と「いいえ」の2つのオプションボタンをフレームコントロールに挿入します。 [はい]と[いいえ]オプションは相互に排他的です。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
- 選択したオプションをクリックします。
トグルボタン
トグルボタンを使用して、YesやNoなどの状態、またはonやoffなどのモードを示すことができます。 このボタンをクリックすると、有効状態と無効状態が切り替わります。
以下に示すように、ユーザーフォームにトグルボタンを挿入します-
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。 トグルボタンはデフォルトで有効な状態になります。
トグルボタンをクリックします。 トグルボタンは無効になります。
トグルボタンを再度クリックすると、有効になります。
CommandButton
コマンドボタンを使用して、ユーザーがクリックするとアクションを実行するマクロを実行できます。 ワークシートのコマンドボタンを使用してマクロを実行する方法は既に学習しました。
コマンドボタンは、プッシュボタンとも呼ばれます。 以下に示すように、ユーザーフォームにコマンドボタンを挿入します-
- コマンドボタンを右クリックします。
- サブCommandbutton1_click()に次のコードを入力します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
コマンドボタンをクリックします。 コードで記述したアクションであるため、コンボボックスのドロップダウンリストが開きます。
タブストリップ
ユーザーフォーム上のExcelタブに似たタブストリップを挿入できます。
スクロール・バー
スクロール矢印をクリックするか、スクロールボックスをドラッグして、スクロールバーを使用して値の範囲をスクロールできます。
ユーザーフォームに必要な位置に描画してスクロールバーを挿入し、スクロールバーの長さを調整します。
- スクロールバーを右クリックします。
- ドロップダウンリストから[コードの表示]を選択します。 コードウィンドウが開きます。
- sub ScrollBar1_Scroll()の下に次の行を追加します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
スクロールボックスをドラッグします。 テキスト-スクロール値は、スクロールバースクロールのアクションとして指定したとおりにテキストボックスに表示されます。
MsgBox()
MsgBox()関数を使用して、何かをクリックしたときにメッセージを表示できます。 これは、ガイドラインまたは何らかの情報、警告またはエラーアラートになります。
たとえば、スクロールボックスのスクロールを開始すると、値がスクロールされているというメッセージを表示できます。
メッセージボックスアイコンの表示
特定のメッセージを表すメッセージボックスアイコン表示を使用できます。 あなたの目的に合わせて複数のメッセージボックスのアイコンがあります-
- ScrollBar1_scrollの下に次のコードを入力します。
- リボンの[実行]タブをクリックします。
- ドロップダウンリストからRun Sub/UserFormを選択します。
- スクロールボックスをドラッグします。
次のメッセージボックスが連続して表示されます。
ユーザーフォームの設計
これで、ユーザーフォームで使用できるさまざまなコントロールを理解できました。 コントロールを選択し、必要に応じてグループ化し、いくつかの意味のあるシーケンスに従ってユーザーフォームに配置します。 それぞれのコントロールに対応するコードとして必要なアクションを記述します。
UserFormの例については、このチュートリアルライブラリのVBAチュートリアルを参照してください。
Excelマクロ-コードのデバッグ
マクロがExcelにVBAコードとして保存されることを学習しました。 また、VBAエディターでマクロを作成するコードを直接作成できることも学びました。 ただし、他のコードの場合と同様に、マクロコードにも欠陥があり、期待どおりにマクロが実行されない場合があります。
これには、コードを調べて欠陥を見つけて修正する必要があります。 ソフトウェア開発でこのアクティビティに使用される用語は、デバッグです。
VBAデバッグ
VBAエディターを使用すると、コードの実行を一時停止し、必要なデバッグタスクを実行できます。 以下は、実行できるデバッグタスクの一部です。
- コードのステップ実行
- ブレークポイントを使用する
- コードのバックアップまたは前進
- コードの各行をステップスルーしない
- コードのステップ実行中に何かを照会する
- 実行の停止
これらは、VBAのデバッグ環境で実行できるタスクのほんの一部です。
コードのステップ実行
デバッグのために最初にしなければならないことは、実行中にコードをステップ実行することです。 コードのどの部分がおそらく欠陥を引き起こしているのかがわかっている場合は、コードのその行にジャンプできます。 それ以外の場合は、コードを1行ずつ実行し、コードをバックアップまたは前方に移動できます。
ブックの[マクロ]ダイアログボックスまたはVBAエディター自体からコードにステップインできます。
ワークブックからコードにステップイン
ブックからコードにステップインするには、次のようにします-
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名をクリックします。
- [ステップイン]ボタンをクリックします。
VBAエディターが開き、コードウィンドウにマクロコードが表示されます。 マクロコードの最初の行は黄色で強調表示されます。
- VBAエディターからコードにステップイン*
VBAエディターからコードにステップインするには、次のようにします-
- リボンの[開発者]タブをクリックします。
- Visual Basicをクリックします。 VBAエディターが開きます。
- マクロコードを含むモジュールをクリックします。
コードウィンドウにマクロコードが表示されます。
- リボンの[デバッグ]タブをクリックします。
- ドロップダウンリストから*ステップイン*を選択します。
マクロコードの最初の行が強調表示されます。 コードはデバッグモードであり、[デバッグ]ドロップダウンリストのオプションがアクティブになります。
コードのバックアップまたは前進
[ステップオーバー]または[ステップアウト]を選択すると、コードを前後に移動できます。
コードの各行をステップスルーしない
議論する必要があるコードの潜在的な部分を特定する場合、カーソルまで実行を選択することにより、各行コードのステップ実行を回避できます。
ブレークポイントを使用する
または、特定のコード行にブレークポイントを設定してコードを実行し、各ブレークポイントで結果を確認できます。 必要に応じて、ブレークポイントを切り替えて、すべてのブレークポイントをクリアできます。
ウォッチを使用する
デバッグ中にウォッチを追加して、式が評価され、変数が特定の値に達したときに実行を停止できます。 これは、ウォッチ式を設定することを意味します。ウォッチ式は、真になるまで監視され、その後マクロが停止し、ブレークモードのままになります。 VBAは、探しているものを達成するために、いくつかの種類の時計を提供しています。
実行の停止
デバッグ中に、いつでも、何が間違っているかについての手がかりを見つけた場合、実行を停止してさらに解読することができます。
経験豊富な開発者であれば、デバッグの用語はおなじみであり、VBAエディターのデバッグオプションを使用すると、作業が簡単になります。 それ以外の場合でも、VBAを学習してコードを理解していれば、このスキルを習得するのにそれほど時間はかかりません。
Excelマクロ-マクロの構成
マクロを記録し、Auto_Openという名前で保存して、このマクロを含むブックを開くたびに実行できます。
ブックのOpenイベントを使用して、同じ目的でVBAコードを作成することもできます。 Openイベントは、ブックを開くたびにサブプロシージャWorkbook_Open()のコードを実行します。
Auto_Openマクロの記録
次のようにAuto_Runマクロを記録することができます-
- リボンの[表示]タブをクリックします。
- マクロをクリックします。
- [マクロの記録]をクリックします。 [マクロの記録]ダイアログボックスが表示されます。
- マクロ名にAuto_Runと入力します。
- 説明を入力して[OK]をクリックします。
- マクロの記録を開始します。
- 記録を停止します。
- ワークブックをマクロ対応ワークブックとして保存します。
- ブックを閉じます。
- ブックを開きます。 マクロAuto_Runは自動的に実行されます。
Auto_Openマクロを実行せずにExcelを起動する場合は、Excelを起動するときにShiftキーを押したままにします。
Auto_Openマクロの制限
Auto_Openマクロの制限は次のとおりです-
- Auto_Openマクロを保存したブックにブックのOpenイベントのコードが含まれている場合、OpenイベントのコードはAuto_Openマクロのアクションをオーバーライドします。
- Openメソッドを使用するコードを実行してブックを開いた場合、Auto_Openマクロは無視されます。
- Auto_Openマクロは、他のブックが開く前に実行されます。 したがって、デフォルトのBook1ブックまたはXLStartフォルダーからロードされたブックでExcelに実行するアクションを記録すると、Excelを再起動するとAuto_Openマクロが失敗します。 。
Auto_Openマクロを記録する代わりに、これらの制限のいずれかに遭遇した場合、次のセクションで説明するように、Openイベントのコードを記述する必要があります。
ワークブックのオープンイベントのVBAコード
ブックを開いたときに実行されるコードを作成できます。 VBAは、ブックを開くときに実行するアクションのVBAプロシージャを組み込んだopenと呼ばれるイベントを提供します。
絶対参照用に作成したマクロReport_ProjectXYZを保存したワークブックを開きます。 このマクロを実行すると、新しいワークシートがワークブックに追加され、プロジェクトレポート構造が新しいワークシートに表示されます。
ブックを開くときにこれらのアクションを実行するマクロコードを記述できます。 つまり、プロジェクトレポートワークブックを開くと、レポート構造を備えた新しいワークシートで詳細を入力できる状態になります。
VBAエディターで以下の手順に従います
- Projects ExplorerでThisWorkbookをダブルクリックします。
- コードウィンドウの左側のドロップダウンリストで[ワークブック]を選択し、右側のドロップダウンリストで[開く]を選択します。 サブWorkbook_Open()が表示されます。
- プロジェクトエクスプローラーで[モジュール]をクリックします。
- マクロコードを含むモジュール名をダブルクリックします。
- モジュールからマクロコードをコピーし、Sub WorkBook_Open()に貼り付けます。
マクロ対応ブックを保存します。 もう一度開きます。 マクロが実行され、レポート構造を持つ新しいワークシートが挿入されます。