• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAでの質問です。)

エクセルVBAでの表のコピー操作でエラーが発生する

このQ&Aのポイント
  • エクセルVBAで表のコピー操作を行い、コピー先のセルが空白かどうかで処理を切り分けています。しかし、実行時エラー424が発生してしまいます。
  • エクセル2003でVBAを使用して、book1のシート1からbook2のシート18セルC30へ表のコピーを行いたいと考えています。
  • コピー先のセルが空白であれば、そのまま貼り付け、非空白であれば表の最下部から2行あけて貼り付けたいです。しかし、実行時エラー424が発生してしまいます。解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

ANo.1です。 エラー438は「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」だと思いますが、 うっかりして前回回答の2行目にタイプミスがありました。  (eが抜けてました。すみません。) [ 正 ]  Selection.PasteSpecial Paste:=xlPasteValues でも、このタイプミスが原因だと、1004のエラーになるはずなんですが… 1行目、または(修正した)2行目で、こちらの環境では問題なく動きます。(Excel2003) 何か条件的に、質問文にないものがありますか? (セルの結合とか…何かの定義領域にかかっているとか…) セルの結合では別のエラーになるので、これも違うとは思いますが… 他の行でエラーがでてないようなので、関係ないとは思いますが、book1やbook2、shhet1、sheet2などはきちんと定義されていますよね?(あるいはオブジェクト名を使用か?) >コピー元のセルが参照セルであるため、~ エラーが起きているのが ペーストの実行時で、しかも「値をペースト」なので問題にはならないはずです。 念のためいくつかの参照式で確認をしましたが、エラーはでませんでした。 原因究明の一助として、エラーとなる部分をコメントアウトしておいて、そこまでをマクロで実行すると、クリップボードにセル内容がコピーされ、ペースト対象セルを選択した状態で終わるはずです。ここで、まず、選択状態を確認してみてください。(変な選択になっていないか、違うものが選択されていないか) さらに、この状態で、続きを手動でペースト(値をペースト)したときにどうなるでしょうか?  (手動なので、同じエラーにはならないと思いますが、どのようなエラーがでるでしょうか?)

am5511
質問者

お礼

たびたび回答ありがとうございます。 先ほどAMo.1にて回答をいただいたコードを追加した際に、selectionの 部分をあやまって削除してしまった為、不具合が発生していました。 このたびは本当にありがとうございました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

Selection.PasteSpecial.xlPasteValues の部分を  Selection.PasteSpecial( xlPasteValues )  または、  Selection.PasteSpecial Past:=xlPasteValues   としたらどうでしょうか。

am5511
質問者

お礼

回答ありがとうございます。 上記方法を試してみたところ、今度は実行時エラー438が発生してしまました。 コピー元のセルが参照セルであるため、コピー内容が参照の参照になってしまっている事が原因なのでしょうか?