こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルVBAの値貼り付けについて

いつもお世話になっております。
エクセルVBAについての質問ですが
以下のコードを使用するとどうしても元の書式の貼り付けになってします。
値(テキスト)貼り付けを実行したいのですがどこのコードをどのように変えればいいか教えてください。
-------------------------------------------------------------------------------------------
Sub IE_Open_Copy()
Dim objIE As Object
Const OLECMDID_SELECTALL = 17
Const OLECMDID_COPY = 12
Const OLECMDEXECOPT_DODEFAULT = 0

Const URL As String = "https://okwave.jp/question/"
Set objIE = CreateObject("InternetExplorer.Application")

With objIE
.Visible = True
.Navigate URL
Do While .Busy
DoEvents
Loop
Do Until .ReadyState = 4
DoEvents
Loop
.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
Application.Wait Now() + TimeValue("00:00:05")
.Quit
End With
AppActivate Application.Caption, True
Range("A1").Select
Application.Wait Now() + TimeValue("00:00:05")
Application.SendKeys "^v"

Set objIE = Nothing
End Sub
---------------------------------------------------------------------------------------------

投稿日時 - 2018-01-26 11:32:47

QNo.9422381

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

期待していることを私が正しく理解しているかどうか
少々不安がありますが...

Application.SendKeys "^v"
↑を↓に置き換えることで
ActiveSheet.PasteSpecial Format:="テキスト", _
    link:=False, DisplayAsIcon:=False

テキストだけがクリップボードから張り付くと思います。

投稿日時 - 2018-01-26 20:42:27

あ、分かった。

Range("A1").Select

がペアレント指定してない。

投稿日時 - 2018-01-26 12:38:12

objIE.Wait Now() + TimeValue("00:00:05")

ってやる。

投稿日時 - 2018-01-26 11:41:57

補足

回答ありがとうございます。
2つあるApplication.Wait Now() + TimeValue("00:00:05")を
objIE.Wait Now() + TimeValue("00:00:05")に変えてみたら
「オブジェクトは、このプロパティまたはメソッドをサポートしておりません」と表示され実行できませんでした。

投稿日時 - 2018-01-26 11:54:30

あなたにオススメの質問