マスター Excel VBA:マクロ、モジュール、プロシージャを理解する
Excel Visual Basic for Applications (VBA) は強力なプログラミング言語です。 VBA を使用すると、タスクを自動化し、カスタム関数を作成し、スプレッドシートの機能を強化できます。 VBA を始める場合は、マクロ、モジュール、プロシージャなどの重要な用語を理解することが不可欠です。これらの概念は相互に関連していますが、異なる目的を果たします。
このチュートリアルでは、Excel VBA の用語、マクロ、モジュール、プロシージャについて説明します。開始に役立つ説明、例、実践的なヒントを含めて詳しく説明します。
手順を進めるには、[開発] タブが有効になっている Excel (2007 以降のバージョン) が必要です。
- 表示されていない場合は、ファイルに移動します。 タブ>> オプションを選択します>> リボンのカスタマイズを選択します>> 開発者を選択します 右側
1.マクロとは何ですか?
マクロは、VBA への最もユーザーフレンドリーなエントリ ポイントです。これは基本的に、Excel での反復的なタスクを自動化する、記録または文書化された一連の指示です。 Excel のマクロ レコーダーを使用すると、プログラミングの深い知識がなくてもマクロを作成できます。セルの書式設定や数式の挿入などのアクションをキャプチャし、VBA コードに変換します。
実際には、人々が「マクロを記録した」または「マクロを作成した」と言うとき、通常はモジュールに格納されている Sub プロシージャについて話しています。 Excel のマクロ レコーダーは、Sub プロシージャを自動的に作成します。
主な特徴:
- 目的: タスクを自動化して時間を節約します。たとえば、マクロを使用すると、ワンクリックでデータの並べ替え、フィルタの適用、レポートの生成を行うことができます。
- 作成方法:
- 記録: 簡単なタスクにはマクロ レコーダーを使用します。
- 執筆: より複雑なロジックについては、VBA エディタでコードを手動で編集または作成します。
- 範囲: マクロは通常、ワークブックに保存され、ボタン、ショートカット、またはマクロ ダイアログから実行できます。
- 制限事項: 記録されたマクロには不要なコード(セルの選択など)が含まれることが多く、セル参照が複雑に見える場合があるため、手動でクリーンアップされることがよくあります。
マクロ ≠ VBA: VBA はプログラミング言語です。マクロは、VBA を使用して構築された (または VBA に記録された) 実行可能なオートメーションです。
例:単純なマクロの作成と実行
- 開発者に移動します。 タブ>> マクロの記録 を選択します。
- ApplyFormatという名前を付けます。 (スペースは使用できません)>> 必要に応じてショートカットを割り当てます>> OK をクリックします

- アクションの実行:
- ヘッダーを選択します
- ホームに移動します タブ>> 太字を選択します
- 塗りつぶしを適用します。 色とフォント 色
- 記録を停止する:開発者に移動します。 タブ>> [記録の停止] をクリックします。

Excel はバックグラウンドで次のような VBA コードを生成します。
Sub ApplyFormat()
'
' ApplyFormat Macro
'
' Keyboard Shortcut: Ctrl+Shift+F
'
Range("A1:G1").Select
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End Sub
- これはプロシージャの一種である Sub (サブルーチンの略) です

マクロを実行します:
- 開発者に移動します。 タブ>> マクロを選択します
- フォーマットの適用を選択します。>>実行を選択します
- または、Ctrl+Shift+F を押します。

コーディングの専門知識がなくても、マクロを作成して使用して迅速に自動化できるようになりました。
2.プロシージャとは何ですか?
プロシージャは最も基本的な単位です。これは、特定のタスクを実行する VBA コードのブロックです。これは、Excel を実行するときに従う一連の指示であると考えてください。プロシージャは実際のロジックが存在する場所です。他の言語の関数またはメソッドと考えてください。
主な特徴:
- タイプ:
- サブプロシージャ (サブ): アクションを実行しますが、値を返しません。これが、VBA の文脈における「マクロ」という意味でほとんどの人が意味するものです。 Sub で始まり End Sub で終わります。
- 関数プロシージャ (関数): 計算を実行して値を返します。 Function で始まり End Function で終わります。ワークシート内のカスタム数式に便利です。
- 目的: 再利用可能なコードを作成します。プロシージャには、ループ、条件、変数、Excel オブジェクト (セルやグラフなど) との相互作用を含めることができます。
- 範囲: パブリック (どこからでもアクセス可能) またはプライベート (モジュールに限定) にすることができます。
- パラメータ: 柔軟に入力 (引数) を受け入れることができます。
例:サブプロシージャと関数プロシージャ
- 開発者に移動します。 タブ>> Visual Basic を選択します。 (またはAlt+F11 を押します )
- [挿入] をクリックします。>> モジュールを選択します
サブプロシージャ (マクロなど):
Sub ClearFormatting()
Range("A1:G1").ClearFormats
MsgBox "Formatting is cleared"
End Sub
- コードを実行して書式設定をクリアすると、「書式設定がクリアされました」というメッセージが表示されます

関数プロシージャ:
Function Multiply(num1 As Integer, num2 As Integer) As Integer Multiply = num1 * num2 End Function
- =Multiply(E2,F2) のようなセルで使用して、値を乗算します

マクロとの関係: すべてのマクロは Sub プロシージャですが、すべての Sub プロシージャがマクロとして記録されるわけではありません。単純な記録を超えた高度な Sub プロシージャを作成できます。
構造化された再利用可能なコードが必要な場合は、プロシージャを使用します。複雑なタスクを複数の手順に分割して、より適切に整理します。
3.モジュールとは何ですか?
モジュールは、1 つ以上のプロシージャを保存するコンテナです。これは、VBA コードを記述して整理する VBA エディター内のファイルです。これはコードを整理するフォルダーのようなもので、管理と再利用が容易になります。
モジュールの種類:
- 標準モジュール: 最も一般的なタイプ。汎用コードを記述します。
- これらは、VBA プロジェクト エクスプローラーに「Module1」、「Module2」などとして表示されます。
- VBA エディタを開く>> 挿入 をクリックします。>> モジュールを選択します .
- ワークブック モジュール (ThisWorkbook): ワークブック イベント (開く前、閉じる前など) に関連付けられたコードを保持します。
- ワークブックを開いたり閉じたりするなどのアクションに応答するイベント プロシージャ
- ワークシート モジュール (Sheet1、Sheet2 など): これらは、特定のシートにアタッチされた特別なモジュールです。
- シートのクリックなどのアクションに応答するイベント プロシージャが含まれており、シートが変更されるとコードが実行されます。
- クラス モジュール: これらのモジュールはカスタム オブジェクトの作成に使用される高度なモジュールですが、開始時には必要ありません。これは、カスタム クラスの作成など、オブジェクト指向プログラミングに使用されます。
- ユーザーフォーム モジュール: カスタム ダイアログ ボックスのデザイン用。

例:モジュールの操作
- 開発者に移動します。 タブ>> Visual Basic を選択します。 (またはAlt+F11 を押します )
- プロジェクト エクスプローラー (左ペイン) で、
- ワークブックを右クリックし、[挿入] をクリックします。>> モジュールを選択します

- プロシージャをコピーしてそこに貼り付けます:
Sub FormatSalesReport()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Range("A1:H1").Font.Bold = True
ws.Range("A1:H" & lastRow).Borders.LineStyle = xlContinuous
Dim i As Long
For i = 2 To lastRow
If ws.Cells(i, "H").Value > 100 Then ws.Cells(i, "H").Interior.Color = RGB(0, 255, 0)
Next i
End Sub
- この VBA コードはデータをフォーマットし、H 列の 100 を超える値を強調表示します
- ワークブックを保存します
- この手順はマクロとして利用できるようになりました
- F5 を押します。 または [実行] をクリックします。

マクロおよびプロシージャとの関係:
- モジュールは保持します 手順
- マクロはサブプロシージャです。 モジュールに保存される
- モジュールのないマクロですか?すべての VBA コードは何らかのモジュール内に存在するため、不可能です。
いつ使用するか: あらゆる VBA プロジェクトの場合。小さなタスクには 1 つのモジュールから始めてください。乱雑を避けるために、大きいものには複数を使用してください。
これらの組み合わせ:マクロ → プロシージャ → モジュール
マクロは、Sub プロシージャを表すユーザー向けの用語です。プロシージャはコードブロックです。モジュールは、整理のための手順をグループ化します。
ワークフローの例:
- マクロを記録する → 新しいモジュール (通常は「Module1」) に Sub プロシージャを作成します
- プロシージャを編集して改良する
- 同じモジュールにプロシージャを追加するか、新しいモジュールを作成する

ベスト プラクティスとヒント
- 命名規則: Sub Macro1() の代わりに Sub CalculateTotalSales() のようなわかりやすい名前を使用します。スペースは避けてください。キャメルケースを使用してください。
- エラー処理: エラー発生時の次の再開 を追加 またはエラー時 GoTo ErrorHandler 手順をより堅牢にする
- セキュリティ :マクロはコードを実行できるため、信頼できるソースからのみ有効にしてください (ファイル>> オプション>> セキュリティ センター>> マクロ設定 ).
- デバッグ: VBA エディタでコードをステップ実行するには、F8 キーを使用します。
- 高度なヒント: モジュール (.bas ファイル) をエクスポートして、ワークブック間でコードを再利用します。
- よくある落とし穴: Excel マクロと Office スクリプト (新しい Excel バージョンでは JavaScript ベース) を混同しないでください。 VBA はデスクトップ オートメーションにとってより強力です。
結論
このチュートリアルに従うことで、マクロ、モジュール、プロシージャという Excel VBA 用語を理解できます。これらの用語を理解すると、VBA を効率的に使用できるようになります。これは、VBA ドキュメントを参照したり、他の Excel ユーザーとコミュニケーションしたり、コードをより効果的に整理したりするのに役立ちます。まずはマクロを記録して実際の手順を確認し、プロジェクトの成長に合わせてマクロをモジュールに整理します。独自のスプレッドシートで簡単なタスクを自動化して練習すると、VBA の威力がすぐにわかります。
ソリューション付きの高度な Excel 演習を無料で入手しましょう!-
Excel テーブルの重複行を削除する方法
この投稿では偽者を扱います! いいえ、テーブルの重複エントリを意味します。この議論の終わりまでに、私たちはそれらを管理し、取り除き、必要に応じて飼いならすことができるようになります.それでは、飛び込みましょう! 重複行の削除 テーブルまたは範囲からは簡単です。テーブルまたは範囲のデータが異なるソースから収集された場合、アイテムが重複する可能性があります。ほとんどの場合、重複を削除する必要があります .以前は、重複データの削除は手作業でした。しかし現在、Excel には、テーブルまたは範囲から重複する値を簡単に見つけて削除できるいくつかの便利なツールが用意されています。小さい範囲または範囲内
-
このプロダクトキーは、Officeの地域メッセージ用ではありません
この投稿では、修正方法を説明しますこのプロダクトキーはお住まいの地域向けではありません エラー。このエラーは、購入したプロダクトキーを使用してMSOfficeまたはOffice365をアクティブ化しようとしたときに発生します。 ある国(たとえばインド)からプロダクトキーを購入し、別の国(たとえば米国)からOfficeをアクティブ化しようとすると、それは機能せず、このエラーが表示されます。したがって、このエラーの解決に役立つ可能性のあるいくつかの簡単なオプションについて説明しました。 WindowsまたはOfficeキーのリージョンはロックされていますか? Windowsの場合–簡単