[ VBA ] 別シートの関数コールでコンパイルエラー(メソッドまたはデータメンバーが見つかりません)

Pocket

ここでは、初歩的な話題になりますが、あるシートから別シートに定義した関数コール時にコンパイルエラーとなる原因を掲載しています。なお、その他の原因の場合もあるかもしれません。

スポンサーリンク

エラーダイアログ

別シートに定義した関数をコールしようとしたときに、次のようなコンパイルエラーダイアログが出力されることがあります。

コンパイルエラー:メソッドまたはデータメンバーが見つかりません。

コンパイルエラー

シート1からシート2に定義された関数の呼び出し

シート1のVBAスクリプト

Option Explicit

Private Sub CommandButton1_Click()

    ' コンパイルエラーが発生する箇所
    Call Sheet2.Sheet2_Function

End Sub

シート2のVBAスクリプト

Option Explicit

Private Sub Sheet2_Function()

    MsgBox "I am Sheet2 Function !"

End Sub

このときのコンパイルエラーの原因は、Sheet2_Function 関数が Private で修飾されていることです。Private で修飾されている場合は、同一シートのスクリプト内からしか、呼び出すことはできません。

Private から Public に変更すると、エラーとなることなく、関数呼び出しを行うことができるようになります。

Public 宣言されていて、別シートから呼び出し可能な場合は、インテリセンスにも表示されます。Private 宣言の場合は、一覧に出力されません。

インテリセンスでも確認できる

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *