
VBA入門者です。宜しくお願いします。
以下の作業を、シート(1)~(3)に繰り返したいのです
◎シート(”レポート”)列A,C,F…40列まで3列置きにコピー
◎シート(1)のA3に貼付
初歩的な構文だとシートごとに設定するのが大変です(汗)
下の構文をコンパクトにまとめ、
できれば・・・
シート(2)には(B4,B23)~、シート(3)には(C4,C23)~同じ流れでコピペする動作も
まとめたいのです。
With Worksheets("レポート")
.Range("A4:A23").Copy
Worksheets("1").Range("A3").PasteSpecial xlPasteValues
.Range("C4:C23").Copy
Worksheets("1").Range("B3").PasteSpecial xlPasteValues
.Range("F4:F23").Copy
Worksheets("1").Range("C3").PasteSpecial xlPasteValues
.Range("I4:I23").Copy
Worksheets("1").Range("D3").PasteSpecial xlPasteValues
'……40列まで続く
End With
No.1ベストアンサー
- 回答日時:
こんにちは!
>'……40列まで続く
とは「レポート」Sheetの40列(AN列)までというコトでしょうか?
それともデータがある限り3列毎に40回同じ操作を繰り返す!というコトなのでしょうか?
質問文では
A・C・F・I・・・
となっていますので、
A列はそのまま値をコピー&ペーストし、C列以降3列毎というコトですよね?
二つやってみました。
「Sample1」がAN列までで、「Sample2」がデータがある限りC列以降3列毎に40回コピー&ペーストしています。
Sub Sample1()
Dim j As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("1")
With Worksheets("レポート")
.Range("A4:A23").Copy
wS.Range("A3").PasteSpecial Paste:=xlPasteValues
cnt = 1
For j = 3 To 40 Step 3 '//C列~AN列まで3列毎
cnt = cnt + 1
Range(.Cells(4, j), .Cells(23, j)).Copy
wS.Cells(3, cnt).PasteSpecial Paste:=xlPasteValues
Next j
End With
End Sub
Sub Sample2()
Dim j As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("1")
With Worksheets("レポート")
.Range("A4:A23").Copy
wS.Range("A3").PasteSpecial Paste:=xlPasteValues
For j = 3 To .UsedRange.Columns.Count Step 3 '//C列~最終列まで3列毎
If cnt = 40 Then Exit For '//40回繰り返したらループから抜ける★
cnt = cnt + 1
Range(.Cells(4, j), .Cells(23, j)).Copy
wS.Cells(3, cnt + 1).PasteSpecial Paste:=xlPasteValues
Next j
End With
End Sub
こんな感じで良いのでしょうか?m(_ _)m
tom04さんへ
ありがとうございます!!
【Sample1】を参考にさせていただきました!
本当に助かりました!
これで、上手く行きそうです!
感謝♡
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
Excel VBAでn行毎に行の選択
Excel(エクセル)
-
VBA 連続行データを5行ずつ隣の列に貼り付ける
Excel(エクセル)
-
-
4
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
5
エクセルで1個飛ばしで、一括でコピペする方法は有りますか?
Excel(エクセル)
-
6
エクセル VBA 指定の範囲内をコピー 複数行あけて貼り付けを指定範囲内で
Excel(エクセル)
-
7
EXCELマクロで、シート間でのコピーペーストを繰り返す方法
Excel(エクセル)
-
8
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
9
複数のセルをコピーし、別シートの任意のセルへペーストをするためのマクロ
Excel(エクセル)
-
10
UserForm1.Showでエラーになります。
工学
-
11
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
12
【VBA】全ての複数シートから指定した列をコピー、新しいブックの1シートに抽出する
Visual Basic(VBA)
-
13
Excelで行ごとコピー、同じ行を3行にしたい
Excel(エクセル)
-
14
【Excel マクロ】別シートの表に1行おきにデータを貼り付けしたい
Excel(エクセル)
-
15
マクロの「1列おきに貼り付け処理を行う方法」を知りたいです。
Excel(エクセル)
-
16
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
17
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
18
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
19
一行おきにコピーするマクロが知りたい
Excel(エクセル)
-
20
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】2つのシートの値を比較...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
VBAで指定範囲内の空白セルを左...
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
vba 2つの条件が一致したら...
-
targetをA列のセルに限定するに...
-
【VBA】オートフィルタで抽出し...
-
IIF関数の使い方
-
C# dataGridViewの値だけクリア
-
VBAで、特定の文字より後を削除...
-
【VBA】複数行あるカンマ区切り...
-
VBAのFind関数で結合セルを検索...
-
VBAを用いて条件付きの平均値、...
-
DataGridViewに空白がある場合...
-
セルに値が入っていた時の処理
-
SetDlgItemTextの使い方について
-
Excel VBA:エクセルのマクロで...
-
Worksheet_Change(ByVal Target...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Worksheets メソッドは失敗しま...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
IIF関数の使い方
-
Changeイベントでの複数セルの...
-
【VBA】2つのシートの値を比較...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
VBAのFind関数で結合セルを検索...
-
DataGridViewに空白がある場合...
-
VBAを使って検索したセルをコピ...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
VBAでのリスト不一致抽出について
-
エクセル 2つの表の並べ替え
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBA 列が空白なら別のマクロへ...
おすすめ情報