OfficeType

VBA~クリップボードに格納されているデータの形式を判定しよう~Excel

VBAでクリップボードに格納されているデータの形式を判定したい場合はApplication.ClipboardFormatsプロパティを使います。クリップボードが空の場合はClipboardFormats(1)が-1になります。

下のコードを実行するとクリップボードが空の場合はメッセージボックスに"クリップボードに何もありません。"と表示されます。画像がある場合は画像がアクティブシートのセルB2に貼り付けられます。

image-01

画像がある場合は画像がアクティブシートのセルB2に貼り付けられます。

image-02

Sub test1()

Dim a As Long

If Application.ClipboardFormats(1) = True Then

MsgBox "クリップボードに何もありません。"
Exit Sub

End If

For a = 1 To UBound(Application.ClipboardFormats)

If Application.ClipboardFormats(a) = xlClipboardFormatBitmap Then

ActiveSheet.Paste Destination:=Range("B2")
Exit For

End If

Next

End Sub

形式は以下の通りになります。

名前説明
xlClipboardFormatBIFF8Excel バージョン 2.x 用バイナリ交換ファイル形式
xlClipboardFormatBIFF1263バイナリ交換ファイル形式 12
xlClipboardFormatBIFF218バイナリ交換ファイル形式 2
xlClipboardFormatBIFF320バイナリ交換ファイル形式 3
xlClipboardFormatBIFF430バイナリ交換ファイル形式 4
xlClipboardFormatBinary15バイナリ形式
xlClipboardFormatBitmap9ビットマップ形式
xlClipboardFormatCGM13CGM 形式
xlClipboardFormatCSV5CSV 形式
xlClipboardFormatDIF4DIF 形式
xlClipboardFormatDspText12Dsp Text 形式
xlClipboardFormatEmbeddedObject21埋め込みオブジェクト
xlClipboardFormatEmbedSource22埋め込みソース
xlClipboardFormatLink11リンク
xlClipboardFormatLinkSource23ソース ファイルへのリンク
xlClipboardFormatLinkSourceDesc32ソースの説明へのリンク
xlClipboardFormatMovie24移動
xlClipboardFormatNative14ネイティブ
xlClipboardFormatObjectDesc31オブジェクトの説明
xlClipboardFormatObjectLink19オブジェクトのリンク
xlClipboardFormatOwnerLink17オーナーへのリンク
xlClipboardFormatPICT2画像
xlClipboardFormatPrintPICT3印刷画像
xlClipboardFormatRTF7RTF 形式
xlClipboardFormatScreenPICT29表示画像
xlClipboardFormatStandardFont28標準フォント
xlClipboardFormatStandardScale27標準スケール
xlClipboardFormatSYLK6SYLK
xlClipboardFormatTable16テーブル
xlClipboardFormatText0テキスト
xlClipboardFormatToolFace25ツール表示
xlClipboardFormatToolFacePICT26ツール表示画像
xlClipboardFormatVALU1
xlClipboardFormatWK110ブック