クリップボードのデータの格納と読み取り (Visual Basic)

クリップボードは、テキスト、イメージなどのデータの格納に使用できます。 アクティブなプロセスすべてがこのクリップボードを共有しているため、クリップボードを使ってデータをプロセス間で転送することができます。 My.Computer.Clipboard オブジェクトを使用すると、クリップボードに簡単にアクセスして、読み込みや書き込みを実行できます。

クリップボードからの読み取り

GetText メソッドを使用すると、クリップボードからテキストを読み取ることができます。 次のコードはテキストを読み取って、メッセージ ボックスに表示します。 この例を正しく動作させるには、クリップボードにテキストが格納されている必要があります。

MsgBox(My.Computer.Clipboard.GetText())

このコード例は、IntelliSense コード スニペットとしても利用できます。 コード スニペット ピッカーでは、これは [Windows フォーム アプリケーション] > [クリップボード] にあります。 詳細については、「Code Snippets」を参照してください。

GetImage メソッドを使用すると、クリップボードからイメージを取得できます。 この例では、イメージを取得して PictureBox1 に割り当てる前に、そのイメージがクリップボードにあるかどうかを確認します。

If My.Computer.Clipboard.ContainsImage() Then
    Dim grabpicture As System.Drawing.Image
    grabpicture = My.Computer.Clipboard.GetImage()
    picturebox1.Image = grabpicture
End If

このコード例は、IntelliSense コード スニペットとしても利用できます。 コード スニペット ピッカーでは、これは [Windows フォーム アプリケーション] > [クリップボード] にあります。詳しくは、「コード スニペット」をご覧ください。

クリップボード内のアイテムは、アプリケーションの終了後も保持されます。

クリップボードに格納されているファイルの種類の確認

クリップボードには、テキスト、オーディオ ファイル、イメージなど、さまざまな形式のデータを格納できます。 クリップボード内のファイルの種類を確認するには、ContainsAudioContainsFileDropListContainsImageContainsText などのメソッドを使用します。 確認対象にカスタム形式が含まれる場合は、ContainsData メソッドを使用できます。

ContainsImage 関数を使用すると、クリップボードに含まれるデータがイメージかどうかを確認できます。 次のコードでは、データがイメージかどうかを確認し、それに応じて報告します。

If My.Computer.Clipboard.ContainsImage() Then
    MsgBox("Clipboard contains an image.")
Else
    MsgBox("Clipboard does not contain an image.")
End If

クリップボードのクリア

Clear メソッドはクリップボードをクリアします。 クリップボードは他のプロセスによって共有されているため、クリップボードをクリアすると、こうしたプロセスに影響することがあります。

Clear メソッドの使用例を次のコードに示します。

My.Computer.Clipboard.Clear()

クリップボードへの書き込み

SetText メソッドを使用して、クリップボードにテキストを書き込みます。 次のコードでは、"This is a test string" という文字列をクリップボードに書き込みます。

My.Computer.Clipboard.SetText("This is a test string.")

SetText メソッドは、TextDataFormat 型を含む書式パラメーターを受け取ることができます。 次のコードでは、"This is a test string" という文字列を RTF テキストとしてクリップボードに書き込みます。

My.Computer.Clipboard.SetText("This is a test string.", 
System.Windows.Forms.TextDataFormat.Rtf)

SetData メソッドを使用して、クリップボードにデータを書き込みます。 この例では、DataObject dataChunkをカスタム書式 specialFormat でクリップボードに書き込みます。

My.Computer.Clipboard.SetData("specialFormat", dataChunk)

SetAudio メソッドを使用して、クリップボードにオーディオ データを書き込みます。 この例では、バイト配列 musicReader を作成し、cool.wav ファイルを読み込んでから、それをクリップボードに書き込みます。

Dim musicReader = My.Computer.FileSystem.ReadAllBytes("cool.wav")
My.Computer.Clipboard.SetAudio(musicReader)

重要

クリップボードには他のユーザーもアクセスできるため、パスワード、機密データなどの機密情報は格納しないでください。

関連項目