質問: VBAの宣言DIMで各プロシージャ事に宣言することは、 Dim wb As workbook wb=workbook(“A.xlsm”).worksheets(“sheet1”) Sum a () wb.Range(“A1”).copy ...... ...... ...... End Sub Sum b () wb.Range(“A46”).copy ...... ...... ...... End Sub と言うようにできると思って宣言しましたが、宣言エラーになります。 コードの構文がおかしいですか?
回答: 質問者さんがやりたいのは多分こういうのだと思いますけれども。 Dim sh As Worksheet Sub Sample1() Set sh = ActiveSheet sh.Range("A1").Copy End Sub Sub Sample2() sh.Range("A1").Copy End Sub Worksheet型変数は、Set 変数 = です。 それと、一回でも「プロシージャ内で」変数を格納する必要があるので、上記の例だとSample1を実行後はSample2で同じ変数を使えますが、Sample2をいきなり実行はできないです。