質問: activesheetの使い方が分からないので教えていただきたいです。 ExcelVBAでsheet名(21.9.16)のA1のデータをボタンを押してsheet1のA1に転記したいのですが、(21.9.16)のsheetを移動またはコピーして、コピーした(21.9.17)のA1のデータをボタンを押してもsheet1に転記されるコードを教えていただきたいです。sheetを日にちごとにコピーしていきコピーしたsheetから転記できるようにしたいです。 選択したsheetがactiveになるようなコードです。 分かりづらいですが、よろしくお願いします。
回答: シート名を省略して Range() = とした場合、 標準モジュール→アクティブシート シートモジュール→そのボタンがあるシート なので、マクロは標準モジュールに置いてシートモジュールの方からCallで呼び出してはどうでしょうか。 標準モジュール Sub A1転記() Sheets("Sheet1").Range("A1").Value = Range("A1").Value End Sub シートモジュール Private Sub CommandButton1_Click() Call A1転記 End Sub