質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

13207閲覧

Excel Range.Paste で「このプロパティまたはメソッドをサポートしていません」

hsk

総合スコア728

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2015/12/01 03:11

お世話になっております。Microsoft Excel 2007 のVBAに関して質問があります。
###前提・実現したいこと
あるワークシートについて、1行目の各セル以外の内容をクリアする(1行目の各値のみそのまま)ロジックを書いています。

###発生している問題・エラーメッセージ
下記コードを実行させると、次のエラーが発生してしまいます。

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

PasteSpecial を行うと
実行時エラー '1004': Range クラスの PasteSpecial メソッドが失敗しました。

###ソースコード

Dim wsDest As Excel.Worksheet Set wsDest = ActiveSheet wsDest.Range("1:1").Copy wsDest.Cells.Clear wsDest.Range("1:1").Paste 'または wsDest.Range("1:1").PasteSpecial xlPasteValues

###質問
CopyメソッドのあとでCopy元セルをClearしてしまうと、クリップボードの内容が壊れてしまうのでしょうか?
Clear前に、配列変数などへ地道にセル値を保存をしておく方法くらいしかないのでしょうか?ロジック実現にあたり、シンプルな方法があればぜひご教示ください。

(ちなみに、VBAソースコードのmarkdown記法では、言語記号に何を指定するとVBAと認識してくれるか、ご存じでしょうか?)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

エラーが発生するのはコピーした行自体がPasteする際には削除されているからだと思います。

改善案としては、例えば
・1行目の内容を退避⇒全体をクリア⇒1行目の内容を戻す
という手順を
・2行目以降、最終行(もしくは最終データ行)までクリア
と読み替えてみてはいかがでしょうか?
(※読み替えるというより当初の「1行目の各セル以外の内容をクリアする」という目的そのものですね)

VBA

1 Dim wsDest As Excel.Worksheet 2 Set wsDest = ActiveSheet 3 4 wsDest.Range("2:" & ActiveCell.End(xlDown).Row).Clear '最終行までクリア 5 'wsDest.Range("2:" & ActiveCell.SpecialCells(xlLastCell).Row).Clear '最終データ行までクリア 6

投稿2015/12/01 05:22

編集2015/12/01 05:27
jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hsk

2015/12/02 00:07

有難う御座います。 なるほど、読み替えるのが簡単そうですね。
guest

0

「wsDest.Cells.Clear」のところでコピーが消えているため、
貼り付けできないと思います。

クリアをなくして下記のようにすれば実行できました。
wsDest.Range("1:1").PasteSpecial Paste:=xlPasteValues

コピーした後に全セルをクリアするなら、コピーした内容を
一旦、別シートに退避しておくか、変数等に退避しておくかする必要があると
思います。

投稿2015/12/01 04:17

編集2015/12/01 04:22
tomo.ina

総合スコア357

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問