スポンサーリンク

セルのコピペでPaste実行時に「実行時エラー’438′:オブジェクトは、このプロパティまたはメソッドをサポートしていません。」と表示される【Excel VBA】【エラー】

スポンサーリンク
スポンサーリンク
この記事は約3分で読めます。

セルに入力されている内容をコピペしたいだけなのに、このようなエラーが表示されて困ってしまうことがあります。

実行時エラー’438′:オブジェクトは、このプロパティまたはメソッドをサポートしていません。

この記事では、このエラーが発生した場合の対処法について確認します。

とにかくコピペができれば良いという方は対処法の項目へ進んでください。

原因:RangeオブジェクトはPasteメソッドを持たない(セル指定でのコピペはPasteを使えない)

A1からC9までのセルの値をI1からK9までコピペしようとしています。

実行するとこのようにエラーが発生します。

 

Pasteメソッド実行時のエラー

RangeやCellsでセルを指定した場合、Rangeオブジェクトが取得されます。

オブジェクトを操作するにはメソッドを使いますが、コピペを行うためのCopy,Pasteはメソッドに含まれます。

そして、RangeオブジェクトはCopyメソッドを持ちますが、Pasteメソッドを持ちません。

言い換えると、RangeやCellsでセルやその値を指定したときはCopyは使えますが、Pasteは使えません。そのためにエラーが発生します。

このエラーが発生しやすい例を挙げます。

これらは全てRangeオブジェクトのプロパティに含まれます。

どれもマクロを組む際にはよく使われるものです。

Range、Cells、Currentregion

EntireColumn、Columns

EntireRows、Rows

Resize、End、Value

対処法:Pasteの代わりにPasteSpecialを使う

RangeやCellsでセルやその値を指定した場合はPasteを使うことができないので、代わりにPasteSpecialを使いましょう。

実行結果はこのようになります。

RangeオブジェクトをPasteSpecialでペースト

まとめ

このエラーに直面するとオブジェクト、プロパティ、メソッドの話が出てきます。

この辺のことをよく理解していないままにマクロを組もうとしていた私は、ここでオブジェクトなどについて知る必要があると感じました。

この記事を読んでいただいているあなたにとっても、今回のエラーをきっかけにオブジェクトやプロパティ、メソッドについて学習する良いタイミングではないかと思います。

学習にはこちらの書籍を活用しています。

2冊目はKindle Unlimitedの対象です。

月1,000円で対象の本ならいくらでも読むことができます。

基礎知識を蓄えるには1冊目を、実際にマクロを組んでいく際には2冊目を使って行いたい処理から逆引きすると便利です。

Kindle Unlimitedはスマホにアプリをダウンロードすることで使うことができるので、ぜひ活用してみましょう。

コメント