VBAをでクリップボードの値を読み込んだり、書き込んだりするには
DataObjectを使用します。
参照するライブラリ
DataObjectを利用するにはMicrosoft Forms 2.0 Object libraryに
参照設定を行う必要があります。
参照設定の設定方法についてはこちらをご覧ください。

VBAで参照設定を行う
VBAに標準で含まれていない機能があるときは
外部のライブラリを参照して、外部ライブラリ内の機能を利用します。
この外部ライブラリの機能を利用する設定を、参照設定と言います。
参照設定にMicrosoft Forms 2.0 Object libraryがない場合は
こちらをご覧ください。

【VBA】参照設定でファイルが見つからないのときの解決方法
VBAの参照設定を行うことによって、DictionaryやFileSystemObjectなどの
便利なオブジェクトを利用することができます。
ときどき、利用しようとしたライブラリファイルが見つからないことがあります。
その場合の...
コード
クリップボードに値を設定するプロシージャ
クリップボードに値を設定するコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 |
Option Explicit Sub setClipBoard(val As Variant) 'クリップボードに値を設定する Dim dataObj As DataObject Set dataObj = New DataObject dataObj.SetText val dataObj.PutInClipboard Set dataObj = Nothing End Sub |
7 |
dataObj.SetText val |
DataObjectに引数valの値を設定します。
8 |
dataObj.PutInClipboard |
DataObjectのPutInClipboarメソッドを使用して
DataObjectの値をクリップボードに転送します。
クリップボードから値を読み込むプロシージャ
クリップボードから値を読みこむコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Option Explicit Function readClipBoard() As String 'クリップボードの値を取得して返す Dim dataObj As DataObject Set dataObj = New DataObject dataObj.GetFromClipboard readClipBoard = dataObj.GetText Set dataObj = Nothing End Function |
8 |
dataObj.GetFromClipboard |
クリップボードの値をDataObjectに転送します。
9 |
readClipBoard = dataObj.GetText |
DataObjectの値を戻り値として格納します。
クリップボードのテスト
テストコードは以下になります。
1 2 3 4 5 6 7 8 9 10 |
Option Explicit Sub testClipBoard() Dim val As String val = InputBox("何か入力してください") Call setClipBoard(val) MsgBox "クリップボードの値は「" & readClipBoard & "」です。" End Sub |
インプットボックスが表示されるので値を入力します。
setClipBoardプロシージャを利用して、「あいうえお」の文字列を
クリップボードに流し込みます。
readClipBoardプロシージャでクリップボードの値を読み込んで
メッセージボックスに表示します。
コメント