1

ワークシート モジュールの 1 つで宣言されたパブリック関数があります。

Public Function isValidContract(contract As String) As Boolean
    ' Code reads cell values from the worksheet and determines
    ' if passed-in contract is one of them.
End Function

他のモジュールやクラスモジュールからアクセスできるようにしたいです。私は次のことを試しました:

Public Sub someRandomSubInAntoherModule()

    Dim contract As String
    Dim sh as Worksheet

    ' Code that sets contract
    Set sh = Sheets("Matrix")
    If Not sh.isValidContract(contract) Then
        ' blah
    End If

End Sub

しかし、「メソッドまたはデータ メンバーが見つかりません」というコンパイル エラーが発生します。これは、おそらく Worksheet オブジェクトとして宣言shWorksheetオブジェクトにメソッドがないためです。しかし、 Matrixワークシートで定義されたメソッドを使用したいと考えています。isValidContract()isValidContract()

それを機能させる唯一の方法は、 Objectshとして宣言することです。しかし、入力すると気の利いた小さなコードのヒントが得られません

sh.

shWorksheet オブジェクト特定のMatrixコードのコード ヒントを取得する方法はありますか?

4

1 に答える 1

2

わかりました-それで、私はそれを理解しました。

シートの「Excel 名」を意味のあるものに変更します...この場合、プロパティを編集してSheet1の名前をMatrixSheetに変更しました。

次に、クライアント コードで:

Public Sub someRandomSubInAntoherModule()

    Dim contract As String
    Dim sh as MatrixSheet

    Set sh = Sheets("Matrix")

    ' Code that sets contract
    If Not sh.isValidContract(contract) Then
        ' blah
    End If

End Sub

それはコンパイルされ、コードのヒントが得られます。それは素晴らしいことです。

于 2015-11-03T16:07:48.247 に答える