- ベストアンサー
エクセルマクロで指定範囲のデータを別のブックの特定のシートにコピーする方法
- エクセルのマクロを使って、指定範囲のデータを別のブックの特定のシートにコピーする方法について教えてください。
- 具体的な手順としては、まず、コピー元のブックとシート、コピー先のブックとシートを指定します。次に、コピー元のデータ範囲を選択し、コピー先のシートにデータを貼り付けます。
- この方法で、コピー元の指定範囲のデータをコピー先のブックの特定のシートに簡単にコピーすることができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 両Bookは同一パス内にありコピー先のsheetも事前にできています。 マクロを記載したBOOKは当然開いているでしょうが、マクロ実行で転記する先のBOOKはどうなっているのでしょうか? 一応、開いていても、あるいは閉じていてもどちらでも大丈夫なように作成してみました。 Sub TEST01() Dim wb As Workbook '変数宣言 Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") 'Book1のSheet1をwsとする。 On Error Resume Next 'エラー回避 Set wb = Workbooks(ws.Range("A1").Value & ".xls") '対象BOOKが開いていればwbとする。 On Error GoTo 0 'エラー回避終了 If wb Is Nothing Then '対象BOOKが開いてなければ、 Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & ws.Range("A1").Value & ".xls") '開きwbとする。 End If ws.Range("A1:C5").Copy wb.Sheets(ws.Range("B1").Value).Range("A2:C6") 'データ転記 End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
丸投げ質問する前に、やることがある。 質問の操作をマクロの記録を取り、2回目からは何処をどう変えて実行すれば良いか考えて、コードの変更をやってみること。 その段階で判らないことを質問すべきだ。 同類の操作(作業)はこれ1回で終りか。どこかを変えて同様操作を繰り返すのか。はっきりしない。 VBAの勉強するだけ以外では、1例しか実行しないものをVBAでやるメリットは少ない。 >マクロ内の行にコメントで解説を入れていただけると助かります それはそうだが、自分で出した問題なのだから、コードを読み解く努力をしないと。回答者は家庭教師ではない、甘えすぎ。 回答が出て、その回答でわからない点は、お礼で補足依頼も出来る。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようなマクロにしてはどうでしょう。 Sub Macro2() Set WS1 = Worksheets("Sheet1") Application.ScreenUpdating = False Range("A1:C5").Select Selection.Copy Windows("" & WS1.Range("A1") & "").Activate Worksheets("" & WS1.Range("B1") & "").Activate Range("A2").Select ActiveSheet.Paste WS1.Activate Application.CutCopyMode = False Range("A1").Select Application.ScreenUpdating = True End Sub
お礼
参考になりました。 ありがとうございます。
お礼
お礼が遅くなり申し訳ございません。 ご丁寧に解説まで入れていただき大変参考になりました。 ありがとうございました。