メインコンテンツへスキップ
【VBA】クリップボードを利用する

【VBA】クリップボードを利用する

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

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でクリップボードの値を読み込んでメッセージボックスに表示します。

関連記事

【VBA】穴掘り法で迷路を自動生成
··6 分
Programming VBA アルゴリズム
【VBA】参照設定でファイルが見つからないのときの解決方法
·1 分
Programming VBA
【VBA】UsedRangeで最終行・最終列を取得する
·2 分
Programming VBA