前提・実現したいこと
ここに質問の内容を詳しく書いてください。
Excel VBAで複数ファイルにまたがるsheetの表をマージさせようとしましたが、クラスモジュールで複数のworkbookを保持して標準モジュールで呼び出そうとした所、コンパイルエラーが発生します。
通常クラスモジュールはこのような使い方をしないのでしょうか?
よろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ コンパイルエラー: メソッドまたはデータメンバーが見つかりません。
該当のソースコード
Excel VBA ソースコード '------------------------------------------------------------------------------------------ Public Sub set_zero() Debug.Print "start" Dim item As path_and_worksheetname Set item = New path_and_worksheetname Call item.Init Dim wb1 As Workbook ' : Set wb1 = item.Get_wb01() '<-ここでコンパイルエラーが発生 ' : '----------------------------------------------------------------------------------------- ' ここからクラスモジュール '----------------------------------------------------------------------------------------- Private file01 As String ' : Private wb01 As Workbook ' : '----------------------------------------------------------------------------------------- 'ファイルを読み込みworkbookを取得する '----------------------------------------------------------------------------------------- Public Sub Init() Dim path1 As String ' : Call GetTableInfo path1 = ThisWorkbook.path & "\" & file01 ' : If Dir(path1) = "" Then MsgBox "指定した""" & path1 & """ファイルは存在していません" Exit Sub End If ' : Set wb01 = Workbooks.Open(path1) ' : End Sub '----------------------------------------------------------------------------------------- ' Get_wb01 '----------------------------------------------------------------------------------------- Public Property Get Get_wb01() As Workbook Get_wb01 = wb01 End Property
あーソースの中に記載しているのか。。。
以下は無視して下さい
エラーメッセージは省略せず全て質問に記載して下さい。
どこでそのエラーが発生しているのかという重要な情報が抜け落ちてます
Call GetTableInfo
のGetTableInfoはどこで定義されてますか。
GetTableInfo関数はInit()のfile01変数を取る為にクラスモジュール内に定義されています。
file01 に値を設定するコードがありませんが、それがクラスモジュールのすべてのコードですか。
それだけではどうしたって動きませんよ。
あっ、GetTableInfo で取得しているのか?
それも省略せずに乗せたほうがいいと思います。
原因は、Set がないからだとは思いますが。
わかりにくくてすみませんでした。
無事動作いたしました。どうもありがとうございました。
回答1件
あなたの回答
tips
プレビュー