【質問】
以下のコードは、転記元ブックから転記先ブックへセルの値をコピー・貼付します
最初、Workbooks("転記元.xlsm").Activate の記述をしなかった場合エラーとなりました
追加後は動きました
ここで質問ですが
以下の記述の前にも Workbooks("転記先.xlsm").Activate を入れなくても
動くのでしょうか?(なぜ動くのでしょうか)
Workbooks("転記先.xlsm").Worksheets("Sheet1").Cells(1, 1).PasteSpecial xlPasteValues
という質問です
自分のイメージは以下のイメージなためです
●転記元ブック アクティブ
⇒転記元ブックのデータをコピー
●転記先ブック アクティブ・・・・・この記述がないと、マクロが転記先へ移動しないと思います
が実際は、移動して、貼付の実行をしてくれます
⇒転記先へデータを貼付
ご存じの方、ご指導お願いします
【コード動きます】
Sub 転記()
Dim lastrow As Long
lastrow = Workbooks("転記元.xlsm").Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Workbooks("転記元.xlsm").Activate
Workbooks("転記元.xlsm").Worksheets("Sheet1").Range(Cells(1, 1), Cells(lastrow, 3)).Copy
Workbooks("転記先.xlsm").Worksheets("Sheet1").Cells(1, 1).PasteSpecial xlPasteValues
End Sub
No.2ベストアンサー
- 回答日時:
こんばんは
エクセルの気持ち(?)になって考えてみましょう。
「A1セルの値を読んで」と言われても、シートが沢山あるとどのシートのA1セルのことなのかわかりません。
この場合は、エクセルはアクティブなシートのA1セルを読みに行きます。
同様に、複数のブックが開いているときに、
「シート1のA1セルを読んで」と言われても、どのブックかわからないので、アクティブなブックのシート1を読みに行きます。
一方で、
「ブックAのシート1のA1セルを読んで」と言われれば、曖昧なところはなくなるので、アクティブなブックやシートが何であっても、正しく「ブックAのシート1のA1セル」を読みに行きます。
それだけの話です。
No.3
- 回答日時:
>>Rangeの中でCellsを使う場合は、前もって.Activate記述が要ります。
vbaの仕様です。
Rangeの中でと言う事じゃ無いです。
この場合、たまたまそうなってるだけです。
RangeはWorkbooksとWorksheetsを明示して使ってるけど、Cellsは何も明示しないでイキナリCellsを使ってるからです。
No.1
- 回答日時:
Workbooks("転記元.xlsm").Worksheets("Sheet1").Range(Cells(1, 1), Cells(lastrow, 3)).Copy
この記述が問題なのです。
Rangeの中のCellsは、ブック・シートを省略するとアクティブブック・シートの事になります。
転送先のSheet1がアクティブになっていたり、転記元の別シートがアクティブになってたとしたら、変な事になります。
なので、Rangeの中でCellsを使う場合は、前もって.Activate記述が要ります。
vbaの仕様です。
Activate記述をしたく無いなら、以下の様にCellsにブック・シートを指定したフル記述します
Workbooks("転記元.xlsm").Worksheets("Sheet1").Range(Workbooks("転記元.xlsm").Worksheets("Sheet1").Cells(1, 1), Workbooks("転記元.xlsm").Worksheets("Sheet1").Cells(lastrow, 3)).Copy
以下、勉強になりました。ご指摘ありがとうございます。
Rangeの中でCellsを使う場合は、前もって.Activate記述が要ります。
vbaの仕様です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Excel 1の位の数字で処理を分岐させたい
Excel(エクセル)
-
エクセル IF計算式?でしょうか?
Excel(エクセル)
-
【マクロ】顧客番号にて一致させ、情報を表へ上書きする為には
Excel(エクセル)
-
-
4
2列に入っているデータを1列で表示する関数について
Excel(エクセル)
-
5
データチェックを行うエクセルマクロをおしえてほしい
Excel(エクセル)
-
6
Excelの数式の効率化について
Excel(エクセル)
-
7
エクセルマクロを教えてほしい(月別のシートを一つにまとめたい)
Excel(エクセル)
-
8
Excelを無料で使うには? パソコン購入して、マイクロソフトに登録して そのままExcelがデスク
Excel(エクセル)
-
9
再質問です。マクロの修正箇所を教えてください。
Excel(エクセル)
-
10
とびとびの大量セルを選択したいのですが・・・
Excel(エクセル)
-
11
【マクロ】Ifとwith ステートメントにて分からない部分があります
Excel(エクセル)
-
12
重複しない値を取り出したい
Excel(エクセル)
-
13
エクセルを使用して、円周率を表示させる方法
Excel(エクセル)
-
14
【マクロ】for nest について 別のブックを動かす際のコード
Excel(エクセル)
-
15
エクセル②
Excel(エクセル)
-
16
VBAについての質問です
Excel(エクセル)
-
17
エクセルで 自動的に◯や数字を表示させることできます? 例えばなんですが 日付 山田 1 ◯ みたい
Excel(エクセル)
-
18
ある表にフィルターをかけて出てきた記号の個数を知りたいのですが、簡単な関数はないでしょうか?
Excel(エクセル)
-
19
Excel関数の式の作り方を教えてください
Excel(エクセル)
-
20
Excel 対象のセルに入力が無いとセルに入力できないようにしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
ユーザーフォームの切り替えに...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【Excel VBA】書き込み先ブック...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBS Bookを閉じるコード
-
【マクロ】違うフォルダにある...
-
VBAで別ブックのシートを指定し...
-
VBA 別ブックからコピペしたい...
-
VBA 特定のユーザーのみパス...
-
VBSでExcelのオープン確認
-
別ブックからの取込み保存エラー
-
Dir関数で複数ブックへ行いたい...
-
リソース不足を解消したい
-
VBAで別のブックにシートをコピ...
-
Excelマクロ 該当する値の行番...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA シート名が一致した場合の...
-
VBA 実行時エラー 2147024893
-
VBAで別のブックにシートをコピ...
-
VBS Bookを閉じるコード
-
【マクロ】違うフォルダにある...
-
ユーザーフォームの切り替えに...
-
[Excel]ADODBでNull変換されて...
-
vbaで他のブックに転記したい。...
-
【Excel VBA】書き込み先ブック...
-
Excel2007VBAファイルの表示に...
-
vbaでvbaProjectのパスワード解...
おすすめ情報