Internet Explorerにはクリップボードを操作する機能が実装されていますので、オートメーションでInternet Explorerのインスタンスを利用すれば、クリップボードの読み書きを行えます。ここではその方法と、Internet Explorer7.0での注意点を解説します。
Internet Explorerを利用してクリップボードを操作するには次のようにします。次のコードは、クリップボードの内容をクリアし、新しいテキストをセットした後に、格納されているテキストを取り出します。
Sub Sample1()
Dim IE, cbText As String
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "about:blank"
Do While IE.Busy Or IE.Document.ReadyState <> "complete"
DoEvents
Loop
''ClipBoardの内容をクリアする
IE.Document.ParentWindow.ClipboardData.ClearData "text"
''ClipBoardに文字列をセットする
IE.Document.ParentWindow.ClipboardData.SetData "text", "We are REDS!!"
''ClipBoardの文字列を取得する
cbText = IE.Document.ParentWindow.ClipboardData.GetData("text")
IE.Quit
Set IE = Nothing
MsgBox cbText
End Sub
それほど難しくありませんね。
しかし、上記のコードをInternet Explorer7.0で実行するときは注意が必要です。
Internet Explorerはクリップボードを操作する機能があります。ということは、悪意を持ったページに「クリップボードのデータを盗み見」するスクリプトを仕込まれていると、クリップボードにコピーした情報が丸見えになってしまうのです。これはマズイです。そこで新しいInternet Explorer7.0では、スクリプトがクリップボードを操作しようとすると、次のような警告ダイアログボックスが表示される機能が追加されました。