質問: 2つのオブジェクト(1つは開いているブックともう1つはテーブル)をサブプロシージャからユーザーフォームに渡したい。サブの前に両方をグローバルにしました。 サブプロシージャからユーザーフォームに2つのオブジェクト(1つは開いているブックともう1つはテーブル)を渡したいです。私はサブの前にそれらの両方をグローバルにしました。 1. Subの前に2つのパブリック宣言(Sub内に設定されている)だけを書き込むと、Sub内では正常に機能しますが、ユーザーフォームを初期化すると、**「オブジェクト変数またはブロック変数が設定されていません」というエラーがスローされます。** **- Subの前に2つのパブリック宣言(Sub内に設定されている)だけを書き込むと、Sub内では正常に機能しますが、ユーザーフォームが初期化されると、**「オブジェクト変数またはブロック変数が設定されていません」というエラーがスローされます。** Subの前に2つのパブリック宣言(Sub内に設定されている)だけを書き込むと、Sub内では正常に機能しますが、ユーザーフォームが初期化されると、エラー**"オブジェクト変数またはブロック変数が設定されていません"**"オブジェクト変数またはブロック変数が設定されていません" ``` Public N As Workbook Public E As ListObject Sub... ``` `Public N As Workbook Public E As ListObject Sub...` Public N As Workbook パブリックEAs ListObject サブ... 2. Subの前にこれら2つのオブジェクトを設定しようとしましたが、Subが実行されず、コンパイルエラーがスローされ、**「無効な外部プロシージャ」** - Subの前にこれら2つのオブジェクトを設定しようとしましたが、Subが実行されず、コンパイルエラーがスローされます。**"無効な外部プロシージャ"** Subの前にこれら2つのオブジェクトを設定しようとしましたが、 Subが実行されず、コンパイルエラーがスローされます。**「Invalidoutsideprocedure」**「Invalidoutsideprocedure」 ``` Public N As Workbook Set N=Workbooks.Open(ThisWorkbook.Sheets("New").Range("A1").Text) Public E As ListObject Set E=N.Sheets(1).ListObjects(1) Sub... ``` `Public N As Workbook Set N=Workbooks.Open(ThisWorkbook.Sheets("New").Range("A1").Text) Public E As ListObject Set E=N.Sheets(1).ListObjects(1) Sub...` Public N As Workbook N=Workbooks.Open(ThisWorkbook.Sheets("New")。Range("A1")。Text)を設定します パブリックEAs ListObject E=N.Sheets(1).ListObjects(1)に設定します サブ... サブプロシージャからユーザーフォームにオブジェクト変数を渡す方法は?現在私が見ている唯一の解決策は、サブプロシージャとユーザーフォームの両方でオブジェクトを設定することです。 サブプロシージャからユーザーフォームにオブジェクト変数を渡す方法は?現在私が見ている唯一の解決策は、SubプロシージャとUserformの両方でオブジェクトを設定することです。**
回答: CADE-0を追加| CADE-1へ| CADE-2を設定するには|および`ListObject`オブジェクト。 ユーザーフォーム: プリコード-0| 呼び出しコード内: プリコード-1|