[ 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 Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>