※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAで、シートをコピーした際、コピーされた新しいシートのほう)
エクセルVBAでシートをコピーする方法とシートを指定する方法
このQ&Aのポイント
エクセルVBAでシートをコピーする際、新しいシートを指定する方法が知りたいです。現在は元のシートをコピーして、番号を増やし、データを消去する方法を使っていますが、新しいシートを指定して番号を増やし、データを消去したいです。
現在のVBAコードでは、指定したシートをコピーして、新しいシートを作成し、番号を増やし、データを消去しています。しかし、シート名には内訳の番号(1、2、3...)が表示されるので、新しいシートを指定して番号を増やし、データを消去したいと思っています。
今のVBAコードでは、シートをコピーして新しいシートを作成し、番号を増やし、データを消去していますが、新しいシートを指定して番号を増やし、データを消去する方法が知りたいです。現在は元のシートの前にコピーを作成し、番号を増やし、データを消去しているので、シート名には内訳の番号が表示されます。
エクセルVBAで、シートをコピーした際、コピーされた新しいシートのほう
エクセルVBAで、シートをコピーした際、コピーされた新しいシートのほうを指定する言葉を知りたい。
コマンドボタンにて、(1)内訳用シートをコピーで増やす。(2)新しいシートの番号を連番になるよう1増やす。(3)新しいシートのほうは入力しやすいよう、入力欄を消去する。シート名も1.2.3...とふえていくようにしたい。
新しくコピーされたほうのシートを指定したい場合はどのようなVBA用語になりますか?
いまは、元のシート指定方法しかわからないため、元シートの前にコピー作成し、元シートのNoを1増やし、データ消去で対応していますが、これだと、シート名に表示される内訳(1)(2)・・という番号になるので、できれば、コピーしたほうのシートを指定して、Noを1増やし、データ消去できれば解決するとおもうので。。いま、使ってるVBAはこんな式です。
ちなみにK6はシートNo、("B10:H30")("J10:K30")は入力欄です。
Private Sub CommandButton1_Click()
ActiveSheet.Copy Before:=ActiveSheet
Range("K6").Value = Range("K6").Value + 1
Range("B10:H30").ClearContents
Range("J10:K30").ClearContents
ActiveSheet.Select
ActiveSheet.Name = Range("K6").Value
End Sub
お礼
質問内容文がわかりにくかったのに、意図をくみとってくださりありがとうございます。 いままでのVBAだとシート名の番号が実際と逆転するのがネックだったのですが・・・。 最終シートはシート名も「内訳最終」と言う感じにして、 ActiveSheet.Name = "内訳" & "【" & (Range("K6").Value - 1) & "】" Sheets("内訳最終").Select とすることでうまくいきました。ありがとうございました。