Acrobat ReaderのCtrl+Cコマンドでクリップボードに
コピーしたのち以下のVBで簡単にクリップボードの
内容が取り込めるかと思っていましたがX=""でした。
なぜ取り込めないんでしょう、クリップボードの中身を
見るソフトではちゃんと入ってるのが見えます。
ご教授よろしくお願いします。VB6.0
'クリップボードからの取り込み
If Clipboard.GetFormat(vbCFRTF) = True Then
X = Clipboard.GetText
End If
GetFormat で調査している物と、GetText で取得している物が
異なっていますよね。上記のコードにある
X = Clipboard.GetText
というのは、
X = Clipboard.GetText(vbCFText)
というコードを意味しますから。
> なぜ取り込めないんでしょう、クリップボードの中身を
> 見るソフトではちゃんと入ってるのが見えます。
クリップボードには、どの形式で格納されていましたか? (RTF ですか?)
テキストだと思うんですが
X = Clipboard.GetText(vbCFText)
X = Clipboard.GetText(vbCFRTF)
どちらを指定しても
「クリップボードが開けません」とエラーが出ます。
> テキストだと思うんですが
思う、ではなく、きちんとツール等を使うなりコードを書くなりして、実際のクリップボード情報を
調べてみましょう。(回答者側が代わりに調べるというわけにもいきませんしね)
単にテキストといっても、CF_OEMTEXT, CF_TEXT, CF_UNICODETEXT
あるいは、HTML や RTF 等々、いろいろな形式があります。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200509/05090041.txt
それによって、VB 標準の機能で取り込めるのか、それとも別のオブジェクトや
API 等を使わなければいけないのかも変わってきますよ。
http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp
http://msdn.microsoft.com/library/ja/jpipc/html/_win32_getclipboarddata.asp
> 「クリップボードが開けません」とエラーが出ます。
他のウィンドウが既にクリップボードを開いている場合、VB 側での
クリップボード操作が失敗する可能性があります。
開いたクリップボードを即座に閉じていないソフトがあった場合、あるいは、
偶然クリップボード操作が重なった場合には、そのような状況になりえるかと。
ツイート | ![]() |