No.1ベストアンサー
- 回答日時:
シート全体をコピーしたいのですよね?
クリップボードを経由する必要はあるのでしょうか。
Sheets("Sheet1").Cells.Copy Sheets("Sheet2").Cells
あるいは
Sheets("Sheet1").Cells.Copy Sheets("Sheet2").Cells(1, 1)
でSheet1をSheet2に直接コピーできますよ。
ありがとうございます。
目からうろこが落ちる、と言う感じです。
copyの distinationがあるのですね。
小生、長いこと、マクロのレコーディング機能を使ってやっていたので、
全然、気がつかなかったです。
ありがとうございます。
No.5
- 回答日時:
No.1です。
補足説明です。まず質問者様のやり方がうまくいかなかった理由ですが、たとえば、
Worksheets("Sheet1").Range("A1:B2").Copy
と範囲を絞ってコピーした場合、
Worksheets("Sheet2").Paste
とすると、これはSheet2の現在選択されているセルを起点として、Sheet1のA1:B2の内容がコピーされます。Sheet2でD3が選択されている場合、D3:E4にコピーされるわけです。
しかし、これを
Worksheets("Sheet1").Range("A:A").Copy
Worksheets("Sheet2").Paste
とA列全体をコピーした場合、Sheet2で1行目のどこかが選択されていないとエラーになります。そうでないとPasteする際にセルの最大範囲を超えてしまうからです。
それを踏まえてですが、
Sheets("Sheet1").Cells.Copy
では、Sheet1の全範囲をコピーします。そうすると、
Worksheets("Sheet2").Paste
は、上に述べたように貼り付ける先が「コピーした範囲をセルがはみ出さない領域」でなければエラーとなります。しかしコピーした範囲は全セルなので、コピー先シートでA1以外のセルが選択されていない場合は失敗します。A1が選択されている場合(あるいはコピーした範囲と同じく全セルが選択されている場合)のみ、貼り付けが成功します。
これはActiveSheetでも同じで、
ActiveSheet.Paste
がうまくいったのは単に偶然そのシートのA1を選択していたからに過ぎないと思います。実際、A1以外のセルを選択した状態で
Sheets("Sheet1").Cells.Copy
ActiveSheet.Paste
を実行すると、エラーになります。
したがって、回避策としては、「明示的にコピー先のA1セルを指定する(あるいは全セル範囲を指定する)」必要があるわけです。
そうすると、
Sheets("Sheet2").Cells(1, 1).PasteSpecial
あるいは
Sheets("Sheet2").Cells.PasteSpecial
という書き方になります。(Rangeオブジェクトの場合はメソッドはPasteSpecialになります)
ただ、手作業ならいったんクリップボードにコピーして貼り付ける、というのでいいのですが、マクロでやるのであれば、Copyメソッドは貼り付け先を直接指定できる(省略するとクリップボードにコピー)ので、No.1の回答では、
Sheets("Sheet1").Cells.Copy Sheets("Sheet2").Cells
Sheets("Sheet1").Cells.Copy Sheets("Sheet2").Cells(1, 1)
とSheet2のセル全体、あるいは左上のセルを指定してコピーしているのです。
ご親切、本当に感謝します。
ご指摘の通りです。コピー先にて、A1以外のセルが選択されていて、
結果、worksheets("ペースト先").paste がエラーになっていました。
どうしたって、ペースト先のシートをアクティブにしなければいけないのか!(A1を選択するために)、と先に進めないでいました。
皆様のお陰で、copy機能が持つ、destinationを使うことで、解決できる
ことがわかり、本当に感謝しています。
ありがとうございます。
No.4
- 回答日時:
こんにちは。
たとえば、
Sub Test()
'Sheets という使い方もあるのですが、Worksheets のほうがはっきりしています。
Worksheets("Sheet1").Cells.Copy
Worksheets("Sheet3").Paste
End Sub
で、コードは通るはずです。
>worksheets("ペースト先").paste 見たいなものと想像しましたが、だめでした。
自分は、そういうスタイルをあまり書かないだけであっても、それ自体に間違いは見出せません。
どうダメだったのか、実行時エラーでどういう反応をしたか、それが明らかでないと、Copy メソッドにDirection を入れても同じだと思います。おそらく、どこか、別のミスや見落としがあるはずです。たとえば、「インデックスが有効範囲ではありません」という場合、シート名が違っているとか、シート自体が存在しないとか、そういうことが原因ではないでしょうか?
ありがとうございます。
ペーストするシートにて、A1以外のセルが選択されていました。
皆様のお陰で、コピーに関することは、はっきりと理解できました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Evernote Simplenoteのコピー&ペースト 1 2022/05/17 14:09
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
自分の通っていた小学校のあるある
進学したり大人になってから、「あれって自分の小学校だけだったのかな」と思うことありますよね。 逆に「他の小学校ってそんなことするの!?」と思ったり。 そんな「自分の通っていた小学校」のあるあるを教えてください!
-
我が家のお雑煮スタイル、教えて下さい
我が家のお雑煮スタイル、教えて下さい! (お汁)味噌汁系? すまし汁系? (お餅)角餅? 丸餅? / プレーンなお餅? あんこ餅?
-
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのアポストロフィを一...
-
エクセル:マクロ「Application...
-
エクセルで隣接していない複数...
-
エクセルで勝手に「折り返して...
-
メールソフト「サンダーバード...
-
Excelに、ダブルクォーテーショ...
-
エクセルで、選択範囲の数値全...
-
Excel 行の連続データを列に参...
-
エクセル 別シートへのコピー...
-
EXCELのオートフィルの設定を変...
-
EXCEL数値が存在する列の項目名...
-
エクセルでの行数・列数を指定...
-
エクセルで値だけコピーして背...
-
Excelでコピーした行の挿入を繰...
-
エクセルの2ページ目の作り方
-
エクセルでコピー領域と貼り付...
-
Excel 他のファイルからシート...
-
エクセルで「コピーしたセルの...
-
Excelでコピーをとったセルの色...
-
エクセルのコピペでクリップボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで隣接していない複数...
-
エクセルで勝手に「折り返して...
-
メールソフト「サンダーバード...
-
Excel 行の連続データを列に参...
-
Excelでコピーした行の挿入を繰...
-
Excelに、ダブルクォーテーショ...
-
エクセルで値だけコピーして背...
-
エクセルの2ページ目の作り方
-
エクセルで、選択範囲の数値全...
-
エクセル 別シートへのコピー...
-
EXCELのオートフィルの設定を変...
-
「選択範囲を解除してアクティ...
-
エクセルのコピペでクリップボ...
-
エクセルオートフィルで書式を...
-
エクセル コピーしたデータを1...
-
EXELで複数のとびとびのセルを...
-
エクセルVBA/イベント発生でコ...
-
エクセルでの行数・列数を指定...
おすすめ情報