文字オブジェクトをクリックして文字内容をクリップボードにコピーする物です。
マクロとVBSを併用です。
※このVBSにはAcadRemoconは必要ありません。
※VBS=AcadRemoconと思い込んでいる人も多いようですので念のため。
※「AcadRemoconって何?」って人は気にしなくて良いです。使いませんので。
※参考スレhttps://totthi.bbs.fc2.com/?act=reply&tid=16703972
まずは、下記のプログラム構文をコピーしてメモ帳に貼り付けて下さい。
そして、Dドライブの直下(フォルダを作らないでD:の中)に、「TextClip.vbs」の名前で保存してください。
拡張子は「.txt」ではありません。「.vbs」です。
保存する際の文字コードは「ANSI」です。(これ大事)
保存したファイルのアイコンが水色の「S」という文字のロゴに変わっていれば正常に保存された事になります。
アイコンがテキストファイルのままなら、拡張子を確認して下さい。
本来は、保存ファイル名や保存する場所は、どこでも良いのですが、
今回は、従って下さい。うまく実行出来たら、お好きに変えて下さい。
「私のパソコンにはDドライブなんて無いわよ」なんて人はお好きな場所にどうぞ。
その代わり、文末のマクロ内のDドライブの記述(AI_STARTAPP "D:TextClip.vbs")を書き換えて。
↓ここからvbsプログラム
Option Explicit
Call Main
Sub Main
Dim s
WScript.Sleep 500
s = GetClipboardText()
s = mid(s , InStrRev(s , "新しい文字を入力 <"))
s = mid(s , InStr(s , "<") + 1)
s = mid(s , 1 , InStr(s , ">: lonLONLon") - 1)
SetClipboard s
End Sub
Function GetClipboardText()
Dim objHTML
Set objHTML = CreateObject("htmlfile")
GetClipboardText = Trim(objHTML.ParentWindow.ClipboardData.GetData("text"))
End Function
Function SetClipboard(ScrMsg)
Dim ws, cl, si
Set ws = CreateObject("WScript.Shell")
Set cl = ws.Exec("Clip")
Set si = cl.stdIn
si.Write ScrMsg
si.Close
Set si = Nothing
Set cl = Nothing
SEt ws = Nothing
End Function
↑ここまでvbsプログラム
マクロはこうなります。(R版で使用する場合は、次の書き込みを確認&実行してください)
*^C^Cchange;si;\;;;;;$M=$(if,$(getvar,cmdactive),,change;p;;;;;;)lonLONLon;u;copyhist;GRAPHSCR;AI_STARTAPP "D:TextClip.vbs"^M
※このマクロは、ダイナミックテキスト専用です。
マルチテキストや寸法値にも使いたい場合は、次の次の次の書き込みを参考にしてください。
属性文字には使えません。
①マクロ起動
②文字オブジェクトクリック
③EXCELのセルを右クリックして貼付け
【VBS使用】文字オブジェクトをクリックして文字内容をクリップボードにコピー
- Lon
- 2022/07/15 (Fri) 15:14:34