VBAをでクリップボードの値を読み込んだり、書き込んだりするにはDataObject
を使用します。
参照するライブラリ #
DataObjectを利用するにはMicrosoft Forms 2.0 Object libraryに参照設定を行う必要があります。 参照設定の設定方法についてはこちらをご覧ください。
VBAで参照設定を行う
·1 分
Programming
VBA
参照設定にMicrosoft Forms 2.0 Object libraryがない場合はこちらをご覧ください。
【VBA】参照設定でファイルが見つからないのときの解決方法
·1 分
Programming
VBA
コード #
クリップボードに値を設定するプロシージャ #
クリップボードに値を設定するコードは以下になります。
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
dataObj.SetText val
dataObj.PutInClipboard
DataObject
に引数val
の値を設定します。
PutInClipboar
を使用してDataObject
の値をクリップボードに転送します。
クリップボードから値を読み込むプロシージャ #
クリップボードから値を読みこむコードです。
Option Explicit
Function readClipBoard() As String
'クリップボードの値を取得して返す
Dim dataObj As DataObject
Set dataObj = New DataObject
dataObj.GetFromClipboard
readClipBoard = dataObj.GetText
Set dataObj = Nothing
End Function
dataObj.GetFromClipboard
readClipBoard = dataObj.GetText
クリップボードの値をDataObject
に転送します。
DataObject
の値を戻り値として格納します。
クリップボードのテスト #
テストコードは以下になります。
Option Explicit
Sub testClipBoard()
Dim val As String
val = InputBox("何か入力してください")
Call setClipBoard(val)
MsgBox "クリップボードの値は「" & readClipBoard & "」です。"
End Sub
インプットボックスが表示されるので値を入力します。

setClipBoard
を利用して、「あいうえお」の文字列をクリップボードに流し込みます。
readClipBoard
でクリップボードの値を読み込んでメッセージボックスに表示します。
