|
動作環境 XP SP3
Execl2003
インターネットエクスプローラは7
xps と Exeecl BOOKは、同じフォルダに保存されています。
他の市販の本を読んでみて、時間を稼ぐことが必要かもと思って下記に書き換えました。
でも、結果は同じでした。
実行させると、画面は立ち上がるがコピー・貼り付けはしないで終了してしまいます。
もうしばらく、考えています。
Sub tensou()
'Microsoft XPS Document Writerからのコピー貼り付けマクロ
Dim mypath As String
Dim myid As Double
mypath = ActiveWorkbook.Path & "\"
myid = Shell("C:\Program Files\Internet Explorer\iexplore.exe " & mypath & "発注一覧表.xps", vbNormalFocus)
With Application
.Wait Time + TimeValue("00:00:30")
AppActivate myid
.Wait Time + TimeValue("00:00:05")
SendKeys "^A", True 'ctrl+A を転送する。全部指定
.Wait Time + TimeValue("00:00:45")
SendKeys "^C", True 'コピーする。
.Wait Time + TimeValue("00:00:45")
.Windows("商品一覧.xls").Activate
SendKeys "^V", True
.Wait Time + TimeValue("00:00:45")
End With
End Sub
▼ma さん:
>neptuneさん くそひねりさん 教えていただきましてありがとうございました。
>
>neptuneさんの
>
>>開くのはC++とか、C#とか、VBなどでラッパーというんですか、DLL
>なりを作成して、やればできるような????
>
>を調べてみたのですが自分ではDLL作成できるほど知識は全然ないのです。
>ただ、HPの中に「XPS ドキュメント API の概要」との記事があったのでAPIと言う物を設定すればいいのかな?考えています。
>
>
>くそひねりさんの方法でも、呼び出せました。ありがとうございました。
>
>
>とりあえず、自分なりに作ってみました。
>どうも、初歩的なことで躓いています。
>
>動作環境 XP SP3
> インターネットエクスプローラは7
>
>xps と Exeecl BOOKは、同じフォルダに保存されています。
>
>
>Sub tensou()
>'Microsoft XPS Document Writerからのコピー貼り付けマクロ
>
>Dim mypath As String
>Dim myid As Long
>
>mypath = ActiveWorkbook.Path & "\"
>
>myid = Shell("C:\Program Files\Internet Explorer\iexplore.exe " & mypath & "発注一覧表.xps", vbNormalFocus)
>
>AppActivate myid
>
>↓ここからの、キーが送れていないみたいです。ここから、ディバックしていっても何も起こりません。
>
>SendKeys "^A", True 'ctrl+A を転送する。全部指定
>SendKeys "^C", True 'コピーする。
>
>Application.Windows("商品一覧.xls").Activate
>
>SendKeys "^V", True
>
>
>End Sub
>
>
>APIの設定が、できればいいのかな?
>
>APIの設定をしたことが無いので、お分かりになる方がいらっしゃいましたらヒントなどを教えていただければと想います。
>
>よろしくお願い致します。
>
>自分でも、もう少し考えてみます。
|
|