editorの関係で、VBAで作ってVBSに移植を行っています。
clipbosrd操作もVBAとVBSで違いがあるようです。
HTMLfile objectを使用します。
'clipboard操作用
Set objHTML = CreateObject("htmlfile")
clipbordのtext取得はVBAとVBSで同じ方法で行けそう。
'clipboardの内容を取得する
strTEXT = objHTML.ParentWindow.clipboardData.GetData("text")
clipboardへの書き込みが問題です。
'Clip BoardにSetする VBAはこちら
objHTML.ParentWindow.clipboardData.setData "Text", strTEXT
'Clip BoardにSetする VBSはこちら
cmd = "cmd /c ""echo " & strTEXT & "|
clip"""
CreateObject("WScript.Shell").Run cmd, 0
VBA用はVBSではうまく動かず、VBS用はVBAではうまく動かず、良く分かりません。
VBS用は注意点がいくつかあります。
最後に改行codeが入る|の前にspaceを入れるとspaceが入ってしまう
strTEXTが空白だとechoの結果がclipboardに入ってしまう
strTEXTに"が含まれているとうまく動作しない
改行codeをなくすには無理やりですが以下のようにしました。
'Clip BoardにSetする VBSはこちらcmd = "cmd /c ""set /p a=""" & strURL & """ < nul | clip"""
CreateObject("WScript.Shell").Run cmd, 0
いずれにせよ制約が多そうなので、careしながら使うことにします。
このtopicsと全然関係ないですが、今回VBAで他に嵌ったのは、
val関数が使えない。
これは\と,を””に置換したらstringのまま計算できた。
err objectがglobal変数だと思っていたらlocal変数だった
private subに入ったら別の中身になっていました.
VBAでも同じかな。documentを読むとglobalみたいなのですけど。
少なくともclipbord操作くらいはVBSの標準機能にしてほしいですね。
0 件のコメント:
コメントを投稿