エクセルvbaについて教えてください
新しいシートを一番右に作成し、その新規作成したシートの名前を変えたいです
Sub Sample()
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "結果1"
End Sub
と作成しました
マクロを実行したら、「結果1」という名のシートが一番右に作成されます
その後、実行をしたら「結果2」、さらに実行したら「結果3」といった感じにどんどん「結果+数字」のシートを作成したのですが、今のままでは「結果1」というシートしか作成されません
「結果2」、「結果3」、・・・・エンドレスに作成するようにするにはどうしたらよいのでしょうか
――――――――――――――――――――――――――――――――――――
なぜこのようなことをしているかといいますと、AdvancedFilterでxlFilterCopyを利用し、抽出した結果を新しいシートに作成するようにするのが最終目標です
それで、まずAdvancedFilterでデータを反映させる新しいシートを作成することに取り組んでいるところです
もし分かる方がいましたら、AdvancedFilterでxlFilterCopyする際、上で説明しました新しいシートが作成できた場合、CopyToRangeをどのように記載すればいいのか分かればそれも教えていただけると助かります
よろしくお願いします
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処理範囲は適切な範囲に変更して下さい。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
VBAでユーザーに別ファイルのシ...
-
エクセルでシートの並び替えで...
-
コマンドボタンがデザインモー...
-
Excelで,特定のシートを開いた...
-
マクロを特定の複数シートで実...
-
Excel2007シート移動のショート...
-
EXCELでマクロを使わずに図形の...
-
複数シートにある列を削除
-
エクセルで、マクロボタンの表...
-
エクセルのチェックボックス
-
左隣のシートをコピーして挿入
-
エクセルVBA/シートのチェ...
-
複数シートの保護・解除
-
VBAマクロが動きません
-
ExcelのSheetに作られたMacro1...
-
曜日によりそれに関する複数のE...
-
マクロ 各シートの決められた位...
-
Excelファイルのすべてのシート...
-
シートを保護した時でも並べ替...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
シートを保護した時でも並べ替...
-
EXCELのエラー
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELの起動時に常に同じ...
-
VBA シート名を先月の名前に...
-
エクセル2013でマクロのボタン...
-
Excelのマクロの呼び出し元を知...
-
Excelで,特定のシートを開いた...
おすすめ情報