image

VBAの操作中に、プロシージャを実行すると、このエラーポップアップが表示される場合があります。このエラーは、「あいまいな名前が検出されました:プロシージャ名」と表示されます。この記事では、このエラーが発生する理由とその解決方法について説明します。

なぜこのエラーですか?

ポップアップに示されているように、VBAエンジンは、同じモジュールで同じ名前の1つ以上のプロシージャを検出しました。これにより、VBAエンジンが混乱しました。したがって、VBAはエラーを報告します。

この問題を解決する方法は?

それは簡単です。 1つのモジュールに同じ名前の2つの同じプロシージャを含めないでください。プロシージャの名前を変更するか、削除するか、他のモジュールに移動してください。

このエラーは通常、

の操作中にポップアップします`link:/ events-in-vba-the-events-in-excel-vba [Excelのイベント]`。*ワークシートイベントを使用してsheet1で作業しているとします。ここで、ユーザーがセルの選択を変更するとすぐにメッセージをトリガーする必要があります。その場合は、 `link:/ Tips-using-worksheet-change-event-to-run-macro-when-any-change-is-made [Worksheet_SelectionChange()

を使用します。イベント] `。

ここでも、ユーザーがセルの選択を変更するときに、ユーザーにいくつかの質問をしたいとします。次に、同じイベントを使用する必要があります。

これで、異なるタスク用の2つのイベント処理手順を作成しました。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox "Hi"

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Application.InputBox ("who are you?")

End Sub

シートの選択を変更すると、これが得られます。

image

シートの選択を変更すると、これが得られます。

image

ほら、Excelはこれを許可していないということです。モジュール内に2つ以上の同じ名前の関数を含めることはできません。イベントでもありません。それはあいまいさにつながります。

同じイベントで別のタスクを実行する場合は、そのコードを同じ1つのイベントプロシージャに配置する必要があります。条件を使用してイベントを制御します。

以下のイベントは完全に正常に機能します。ユーザーがシート1のセル選択を変更すると、hiメッセージがポップアップ表示され、その後、入力ボックスを使用してユーザーに質問します。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox "Hi"

Application.InputBox ("who are you?")

End Sub

あいまいさがなくなったので、イベントは完全に正常に機能し、あいまいな名前が検出されたというエラーが再び発生することはありません。

そうですね、これがExcelVBAのあいまいさのエラーを解決する方法です。これがお役に立てば幸いです。この記事または他の記事について疑問がある場合は、以下のコメントセクションで私に質問してください。

関連記事:

link:/ Tips-reference-isnt-valid-excel-error-and-how-to-solve-it [Reference Is n’t Valid Excel Error and How to Solve It?]:このエラーは、存在しない、または変更されたオブジェクトまたは場所。この問題を解決するために、参照を追跡します。

link:/ events-in-vba-the-events-in-excel-vba [ExcelVBAのイベント] | Excelには7種類のイベントがあります。各イベントは異なるスコープを扱います。アプリケーションイベントは、ワークブックレベルを扱います。シートレベルのワークブック。範囲レベルのワークシートイベント。

link:/ events-in-vba-the-worksheet-events-in-excel-vba [ExcelVBAのワークシートイベント] |ワークシートイベントは、指定されたイベントが発生したときにマクロを実行する場合に非常に便利です。シート。

link:/ events-in-vba-workbook-events-using-vba-in-microsoft-excel [MicrosoftExcelでVBAを使用するブックイベント] |ブックイベントは、ブック全体で機能します。すべてのシートがワークブックの一部であるため、これらのイベントもそれらに作用します。

link:/ events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [MicrosoftExcelのVBAを使用して自動マクロ/イベントマクロが実行されるのを防ぐ] | auto_openマクロの実行を防ぐには、Shiftキーを使用します。

link:/ events-in-vba-chart-object-events-using-vba-in-microsoft-excel [MicrosoftExcelでVBAを使用してオブジェクトイベントをグラフ化する] |チャートは複雑なオブジェクトであり、それらにアタッチしたコンポーネントがいくつかあります。チャートイベントを作成するには、クラスモジュールを使用します。

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット] |あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数] |これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。

link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] |この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。

ダッシュボードを準備するには、Countif関数が不可欠です。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法] |これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。