• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba エクセルシートの追加、名前の変更について)

VBAエクセルシートの追加・名前変更について

このQ&Aのポイント
  • VBAを使用してエクセルシートを追加し、新しいシートの名前を変更する方法について教えてください。
  • マクロを実行すると、一番右に新しいシートが作成され、そのシートの名前が指定した名前に変更されます。
  • また、新しいシートを連続して作成する方法も教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Asahi2001
  • ベストアンサー率54% (6/11)
回答No.2

No.1さんで答えが出てますがCopyToRangeの記載は、 Sub macro1()  Dim w As Worksheet  Dim res As Long  For Each w In Worksheets   If w.Name Like "結果*" Then    res = Application.Max(res, Val(Mid(w.Name, 3, 9)))  End If  Next ' 新規シート追加 Set w = Worksheets.Add(after:=Worksheets(Worksheets.Count))   w.Name = "結果" & res + 1 'AdvancedFilter処理   With Worksheets("Sheet1")     .Range("A4:G10").AdvancedFilter _     Action:=xlFilterCopy, _     CriteriaRange:=.Range("A1:A2"), _     CopyToRange:=w.Range("A1"), _     Unique:=False   End With End Sub コードを利用させて頂き、こんな感じになります。 AdvancedFilter処理範囲は適切な範囲に変更して下さい。

kidibotkbg
質問者

お礼

AdvancedFilterまでありがとうございます 勉強不足だったので、レベルの低い質問をしてすみませんでした

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

結果シートを探して番号を拾います。 sub macro1()  dim w as worksheet  dim res as long  for each w in worksheets   if w.name like "結果*" then    res = application.max(res, val(mid(w.name,3,9)))   end if  next  res = res + 1  worksheets.add after:=worksheets(worksheets.count)  activesheet.name = "結果" & res ’res番シートに対して操作します  worksheets("結果" & res).range("A1") = "hello world" end sub

kidibotkbg
質問者

お礼

とりあえず新しいシートの作成コード分かりました ありがとうございました

関連するQ&A