いくつも全く同じレイアウトのエクセルシートがあります。この全てのシートのレイアウトをいっぺんに全く同様なレイアウト変更(ある場所のセル内容を別の場所にカット&ペーストで移したい)したいのですが、マクロでどう書けばいいかお教え下さい。シート名を一つ一つ指定するやり方では実行できましたが、問題は一つのファイルのワークシートの数は毎回変更されるところです。因みにワークシート名(タブの部分)のネーミングルールは同じです(Plan(1), Plan(2)....Plan(n)となります)。以下に一つ一つ指定した場合のマクロを載せます。宜しくお願いいたします。
Sheets("PLAN(1)").Activate
Rows("29:31").Select
Selection.Delete Shift:=xlUp
ActiveWindow.LargeScroll ToRight:=-1
Range("j3:q28").Select
Selection.Cut
Range("a29").Select
ActiveSheet.Paste
Range("Q23").Select
Sheets("PLAN(2)").Activate
Rows("29:31").Select
Selection.Delete Shift:=xlUp
ActiveWindow.LargeScroll ToRight:=-1
Range("j3:q28").Select
Selection.Cut
Range("a29").Select
ActiveSheet.Paste
Range("Q23").Select
以下、同様です。
No.1
- 回答日時:
>ワークシート名(タブの部分)のネーミングルールは同じです(Plan(1), Plan(2)....Plan(n)
Sub test()
Dim n As Integer, shn As String, i As Integer
n = 10 '最終番号
For i = 1 To n
shn = "PLAN(" & i & ")"
'処理
Sheets(shn).Activate
Rows("29:31").Delete Shift:=xlUp
Range("j3:q28").Cut Range("a29") '.Paste
Next
End Sub
で、いかがでしょう?
No.2ベストアンサー
- 回答日時:
下記コードの書き方だと、シート名は問題になりません。
Sub Sample()
Dim SH As Worksheet
'画面の再描写を停止
Application.ScreenUpdating = False
'マクロが書かれたブック内の全シートでループ処理
'変数SHにはシートがひとつひとつセットされます
For Each SH In ThisWorkbook.Worksheets
'処理除外するシートがあればここで判定
'シート名で比較します
If SH.Name <> "除外シート" Then
'除外シートでなければ
With SH
'29~31行目を削除
.Rows("29:31").Delete Shift:=xlUp
'J3:Q28を切り取り、A29に貼り付け
.Range("J3:Q28").Cut Destination:=.Range("A29")
End With
End If
Next SH
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
エクセルの2つのシートを並び...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
EXCELの「シートの見出し」のフ...
-
エクセルのシート連番の振り直し
-
エクセル シート同士の引き算
-
ワークシートそのものの色を変...
-
InputBoxに入力した言葉をシー...
-
エクセルのシー名を二段表示に...
-
エクセル、別のシートの表をポ...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
DATE関数 4月31日などのあ...
-
【ExcelVBA】マクロの入ったシ...
-
Accessのテーブルを既存のExcel...
-
accessへエクセルの複数のシー...
-
エクセルの非表示シートを一括表示
-
Numbersについてお伺いです。 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
エクセルのシート連番の振り直し
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
【Excel VBA】データ貼り付け先...
-
EXCELの「シートの見出し」のフ...
おすすめ情報