お世話になっております。
複数の各シートに行を追加したいです。
コードを考えてみました。
以下のコードで相違ないでしょうか。
Sub Test2()
Dim Wb1 As Workbook, Wb2 As Workbook
Dim Ws1 As Worksheet, Ws2 As Worksheet
Dim LastRow1 As Long, LastRow2 As Long
Dim sheetNames As Variant
Dim i As Integer
' ソースのWorkbookを定義
Set Wb1 = Workbooks("Book1.xlsm")
' ターゲットのWorkbookを定義
Set Wb2 = Workbooks("Book2.xlsm")
' シート名の配列を定義
sheetNames = Array("Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6", "Sheet7", "Sheet8", "Sheet9", "Sheet10", "Sheet11", "Sheet12", "Sheet13", "Sheet14")
' 各シートにループ
For i = LBound(sheetNames) To UBound(sheetNames)
' ソースのWorksheetを定義
Set Ws1 = Wb1.Sheets(sheetNames(i))
' ターゲットのWorksheetを定義
Set Ws2 = Wb2.Sheets(sheetNames(i))
' 最終行を見つける
LastRow1 = Ws1.Cells(Ws1.Rows.Count, "C").End(xlUp).Row
LastRow2 = Ws2.Cells(Ws2.Rows.Count, "C").End(xlUp).Row
' コピーと挿入
Ws1.Rows("2:" & LastRow1).Copy
Ws2.Rows(LastRow2 + 1).Insert Shift:=xlDown
' クリップボードをクリア
Application.CutCopyMode = False
' オブジェクト参照を解放
Set Ws1 = Nothing
Set Ws2 = Nothing
Next i
' オブジェクト参照を解放
Set Wb1 = Nothing
Set Wb2 = Nothing
End Sub
ご回答をお待ちしております。
どうぞ宜しくお願い申し上げます。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
実際に実行してみて、望んだ結果が得られればそれで良いと思います。
上記のマクロは、以下のことを前提に作成されていると理解しました。
1.マクロを格納しているブックは、Book1.xlsmでもBook2.xlsmでもない。それ以外のブックである。
2.このマクロを実行時、Book1.xlsmとBook2.xlsmは、手動でオープン済みである。
そうであれば、問題ありません。
No.1
- 回答日時:
このVBAスクリプトは、Book1.xlsm から Book2.xlsm へ複数のシートのデータをコピーして挿入するためのものです。
スクリプトは以下の手順に従っています:Book1.xlsm と Book2.xlsm のワークブックを開きます。
Sheet2 から Sheet14 までの各シートに対してループ処理を行います。
各シートの列Cの最終行を見つけます。
Book1.xlsm の2行目から最終行までのデータをコピーし、Book2.xlsm の最終行の次に挿入します。
クリップボードをクリアして、オブジェクト参照を解放します。
スクリプトは正しく機能しているように見えますが、Application.CutCopyMode = False の後に Application.Wait または DoEvents を追加することで、挿入操作が完了するのを確実に待つことができます。これは特に大量のデータを扱う場合に有効です。
また、エラーハンドリングを追加することで、スクリプトの堅牢性を高めることができます。例えば、指定されたシート名が存在しない場合や、ワークブックが開かれていない場合にエラーメッセージを表示するなどです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです 3 2024/02/05 22:10
- Excel(エクセル) エクセルマクロでデータ出力の際の条件がうまく機能しません。 2 2023/09/30 13:01
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) Sub 分けてソートして貼り付ける() Dim srcSheet As Worksheet Dim 6 2023/08/04 19:57
- Visual Basic(VBA) エクセルマクロで出力行の増やし方がわかりません。 4 2023/09/28 23:40
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
Excel VBA 文字列のセルを反映させたいです
Visual Basic(VBA)
-
VBAコードについて
Visual Basic(VBA)
-
-
4
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
5
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
6
近似した文字列を置換するエクセル関数またはVBAについて
Visual Basic(VBA)
-
7
引数に数値、文字列の混在
Visual Basic(VBA)
-
8
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
9
for 文の 繰り返し処理に使えるのかどうかについて
Visual Basic(VBA)
-
10
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
11
エクセルvbaについて
Visual Basic(VBA)
-
12
VBAのコードを教えてください
Visual Basic(VBA)
-
13
エクセルVBAの配列について
Visual Basic(VBA)
-
14
【ExcelVBA】VBA実行でダイアログメッセージを無視する方法はありますか?
Visual Basic(VBA)
-
15
VBAユーザーホームテキストボックスにカーソルを自動で表示したい
Visual Basic(VBA)
-
16
月ごとに作成している日報ファイルを、VBAでコピーし日付ごとのシートにしたい
Visual Basic(VBA)
-
17
エラー表示になってしまいます。
Excel(エクセル)
-
18
VBA 二つのブックをうまく扱えないでいます
Visual Basic(VBA)
-
19
VBAに関して
Visual Basic(VBA)
-
20
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
エクセルのマクロでアクティブ...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelのVBAのマクロで他のシー...
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
同じ作業を複数のシートに実行...
-
ExcelVBA:複数の特定のグラフ...
-
実行時エラー1004「Select メソ...
-
ブック名、シート名を他のモジ...
-
VBA 存在しないシートを選...
-
特定の文字を含むシートを選択...
-
VBA 検索して一致したセル...
-
Excel VBA 複数行を数の分だけ...
-
【VBA】シート名に特定文字が入...
-
ListViewの画面の更新
-
エクセルVBA Ifでシート名が合...
-
EXCELVBAを使ってシートを一定...
-
ユーザーフォームに入力したデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
同じ作業を複数のシートに実行...
-
ブック名、シート名を他のモジ...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
Excelマクロのエラーを解決した...
-
エクセル・マクロ シートの非...
-
VBAで同じシート名のコピー時は...
-
ExcelのVBAのマクロで他のシー...
-
【VBA】色のついたシート名を取得
おすすめ情報