Excel VBA 質問スレッド №2093 (解決済)

cells を使った別ブックへの転記について

投稿者 : 浜松餃子     投稿日時 : 2025/03/06(Thu) 22:23:19     OS : 未指定     EXCEL : 未指定
はじめまして。
初心者です。よろしくお願いいたします。

開いている二つのブックにおいて、ブックからもう一方のブックにcells を使って転記をしたいのですが、エラーが出ます
(アプリケーション定義またはオブジェクションの定義エラーです(エラーコード1004))。
cellsではなくrange("a1:b2")等では転記できます。
cellsで変数を指定したいのでrange ではなくcellsでの転記を考えています(下記はテストなので変数の箇所は数値にしています)。

下記となっていますが、ご教示お願い致します。

------------------------------------------------------------

Sub 貼り付けテスト()

Dim wb1 As Workbook

Set wb1 = Workbooks("貼り付け先.xlsx")
wb1.Activate

Dim wb2 As Workbook

Set wb2 = Workbooks("元データ.xlsm")
wb2.Activate

wb1.Sheets("sheet1").Range(Cells(1, 1), Cells(3, 2)).Value = wb2.Sheets("sheet1").Range(Cells(1, 1), Cells(3, 2)).Value

MsgBox "貼り付け完了しました!"

End Sub

スポンサーリンク
[返信 1] Re : cells を使った別ブックへの転記について
投稿者 : さんこう     投稿日時 : 2025/03/06(Thu) 22:41:19
参考になれば。

<range(cells cells) エラー>
https://www.google.com/search?q=range%28cells+cells%29+%E3%82%A8%E3%83%A9%E3%83%BC

[返信 2] Re : cells を使った別ブックへの転記について
投稿者 : てらてら     投稿日時 : 2025/03/07(Fri) 06:13:15
こんにちは。

Rangeの中のCellsにも、ブック指定、シート指定しないとダメです。

wb1.Sheets("sheet1").Range(wb1.Sheets("sheet1").Cells(1, 1), wb1.Sheets("sheet1").Cells(3, 2)).Value = _
wb2.Sheets("sheet1").Range(wb2.Sheets("sheet1").Cells(1, 1), wb2.Sheets("sheet1").Cells(3, 2)).Value

冗長になってしまうので、普通は互いのシートを変数に代入して記述します。

それと、ブックやシートを指定する場合は、wb1.Activate などは不要です。

[返信 3] Re : cells を使った別ブックへの転記について
投稿者 : 浜松餃子     投稿日時 : 2025/03/07(Fri) 08:10:18
さんこうさん、てらてらさん、ありがとうございました。

cellsにブック指定、シート指定で無事に転記できました。

たしかに冗長なので、次はシート名に変数を代入してやってみます。

ありがとうございました。

[返信 4] Re : cells を使った別ブックへの転記について
投稿者 : 浜松餃子     投稿日時 : 2025/03/07(Fri) 23:04:05
てらてらさん

シート名に変数を代入して無事に転記できました。

ありがとうございました。

----------------------------------------------------------

Dim wb1 As Workbook
Set wb1 = Workbooks("貼り付け先.xlsx")

Dim ws1 As Worksheet
Set ws1 = wb1.Worksheets("sheet1")

Dim wb2 As Workbook
Set wb2 = Workbooks("元データ.xlsm")

Dim ws2 As Worksheet
Set ws2 = wb2.Worksheets("sheet1")

ws1.Range(ws1.Cells(1, 1), ws1.Cells(3, 2)).Value = ws2.Range(ws2.Cells(1, 1), ws2.Cells(3, 2)).Value

MsgBox "貼り付け完了しました!

[返信 5] Re : cells を使った別ブックへの転記について
投稿者 : てらてら     投稿日時 : 2025/03/08(Sat) 04:14:58
こうすれば、もっと簡単に書ける。

Dim ws1 As Worksheet
Set ws1 = Workbooks("貼り付け先.xlsx").Worksheets("sheet1")

Dim ws2 As Worksheet
Set ws2 = Workbooks("元データ.xlsm").Worksheets("sheet1")

[返信 6] Re : cells を使った別ブックへの転記について
投稿者 : 浜松餃子     投稿日時 : 2025/03/08(Sat) 17:40:38
てらてらさん、ありがとうございました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-05 17:38:22 )
タイトルとURLをコピーしました