- ベストアンサー
エクセルVBAでの表のコピー操作でエラーが発生する
- エクセルVBAで表のコピー操作を行い、コピー先のセルが空白かどうかで処理を切り分けています。しかし、実行時エラー424が発生してしまいます。
- エクセル2003でVBAを使用して、book1のシート1からbook2のシート18セルC30へ表のコピーを行いたいと考えています。
- コピー先のセルが空白であれば、そのまま貼り付け、非空白であれば表の最下部から2行あけて貼り付けたいです。しかし、実行時エラー424が発生してしまいます。解決策を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1です。 エラー438は「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」だと思いますが、 うっかりして前回回答の2行目にタイプミスがありました。 (eが抜けてました。すみません。) [ 正 ] Selection.PasteSpecial Paste:=xlPasteValues でも、このタイプミスが原因だと、1004のエラーになるはずなんですが… 1行目、または(修正した)2行目で、こちらの環境では問題なく動きます。(Excel2003) 何か条件的に、質問文にないものがありますか? (セルの結合とか…何かの定義領域にかかっているとか…) セルの結合では別のエラーになるので、これも違うとは思いますが… 他の行でエラーがでてないようなので、関係ないとは思いますが、book1やbook2、shhet1、sheet2などはきちんと定義されていますよね?(あるいはオブジェクト名を使用か?) >コピー元のセルが参照セルであるため、~ エラーが起きているのが ペーストの実行時で、しかも「値をペースト」なので問題にはならないはずです。 念のためいくつかの参照式で確認をしましたが、エラーはでませんでした。 原因究明の一助として、エラーとなる部分をコメントアウトしておいて、そこまでをマクロで実行すると、クリップボードにセル内容がコピーされ、ペースト対象セルを選択した状態で終わるはずです。ここで、まず、選択状態を確認してみてください。(変な選択になっていないか、違うものが選択されていないか) さらに、この状態で、続きを手動でペースト(値をペースト)したときにどうなるでしょうか? (手動なので、同じエラーにはならないと思いますが、どのようなエラーがでるでしょうか?)
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
Selection.PasteSpecial.xlPasteValues の部分を Selection.PasteSpecial( xlPasteValues ) または、 Selection.PasteSpecial Past:=xlPasteValues としたらどうでしょうか。
お礼
回答ありがとうございます。 上記方法を試してみたところ、今度は実行時エラー438が発生してしまました。 コピー元のセルが参照セルであるため、コピー内容が参照の参照になってしまっている事が原因なのでしょうか?
お礼
たびたび回答ありがとうございます。 先ほどAMo.1にて回答をいただいたコードを追加した際に、selectionの 部分をあやまって削除してしまった為、不具合が発生していました。 このたびは本当にありがとうございました。