← コード一覧へ戻る
実務Excel・Windows連携

クリップボードの文字・画像・ファイル形式を調べる

IsClipboardFormatAvailableで、代表的な3種類の形式が利用できるか確認します。

実行前に確認

  • クリップボードは複数形式を同時に持てます。Falseが3つでも空とは限らず、この例で調べていない独自形式がある場合もあります。
  • 画像はDIB形式だけを確認する例です。すべての画像形式を列挙するものではありません。
  • 公式仕様とコードを照合した例です。Excel実機での実行は未検証です。業務ブックではなくコピーで試してください。

1サンプルコード

Option Explicit
Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" (ByVal format As Long) As Long
Sub PracticeAdvanced8047()
    Const CF_UNICODETEXT As Long = 13
    Const CF_DIB As Long = 8
    Const CF_HDROP As Long = 15
    Dim report As String
    report = "Unicode文字: " & CStr(IsClipboardFormatAvailable(CF_UNICODETEXT) <> 0)
    report = report & vbCrLf & "DIB画像: " & CStr(IsClipboardFormatAvailable(CF_DIB) <> 0)
    report = report & vbCrLf & "ファイル一覧: " & CStr(IsClipboardFormatAvailable(CF_HDROP) <> 0)
    MsgBox report
End Sub

図で見る操作の流れ

イメージ図

準備、実行する操作、確認する結果の順で示しています。

  1. 準備

    Windows版VBA7の32/64ビット用です。メモ帳の文字、画像、エクスプローラーのファイルなどを1種類ずつコピーして比べます。

  2. 操作

    IsClipboardFormatAvailableで、代表的な3種類の形式が利用できるか確認します。

  3. 結果

    対応形式が利用できるとTrue、利用できないとFalseと表示されます。内容そのものは読み取らず変更もしません。

クリップボードは複数形式を同時に持てます。Falseが3つでも空とは限らず、この例で調べていない独自形式がある場合もあります。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[標準モジュール]へ、この例だけを貼り付けます。

  2. 2

    Windows版VBA7の32/64ビット用です。メモ帳の文字、画像、エクスプローラーのファイルなどを1種類ずつコピーして比べます。

  3. 3

    PracticeAdvanced8047を実行します。別の種類をコピーして再実行します。

  4. 4

    対応形式が利用できるとTrue、利用できないとFalseと表示されます。内容そのものは読み取らず変更もしません。

使っている機能の公式ドキュメント(Microsoft Learn)