2014.07.15 (Tue) Category : technology,VBA Author :

Excel VBAでクリップボードを扱う

Excelでクリップボードが扱えます。excel

範囲を選択してコピーするという操作をボタン一つで実現します。マクロの記録でもできそうなのですが、違うところは、Excelでコピーをすると選択範囲が点線で囲まれてしまいます。この動作をしないで直接クリップボードへ持っていこうということです。

VBAなので範囲でなくても、なんでもいいわけです。

手順は簡単です。

Dim objClipBoard As New DataObject
objClipBoard.SetText strData
objClipBoard.PutInClipboard

  1. DataObject型で定義します。
  2. クリップボードへ送りたいデータをSetTextでセットします。
  3. セットされたデータをクリップボードへPutInClipboardで送ります。

以上。

簡単ですね。

逆にクリップボードから取得する場合は、

GetClipboard

です。簡単ですね。

取得する前に、クリップボードが画像の場合もあるので、

Application.ClipboardFormats

を確認しましょう。

返ってくる変数名は、けっこうな種類があります。

名前 説明
xlClipboardFormatBIFF 8 Excel バージョン 2.x 用バイナリ交換ファイル形式
xlClipboardFormatBIFF12 63 バイナリ交換ファイル形式 12
xlClipboardFormatBIFF2 18 バイナリ交換ファイル形式 2
xlClipboardFormatBIFF3 20 バイナリ交換ファイル形式 3
xlClipboardFormatBIFF4 30 バイナリ交換ファイル形式 4
xlClipboardFormatBinary 15 バイナリ形式
xlClipboardFormatBitmap 9 ビットマップ形式
xlClipboardFormatCGM 13 CGM 形式
xlClipboardFormatCSV 5 CSV 形式
xlClipboardFormatDIF 4 DIF 形式
xlClipboardFormatDspText 12 Dsp Text 形式
xlClipboardFormatEmbeddedObject 21 埋め込みオブジェクト
xlClipboardFormatEmbedSource 22 埋め込みソース
xlClipboardFormatLink 11 リンク
xlClipboardFormatLinkSource 23 ソース ファイルへのリンク
xlClipboardFormatLinkSourceDesc 32 ソースの説明へのリンク
xlClipboardFormatMovie 24 移動
xlClipboardFormatNative 14 ネイティブ
xlClipboardFormatObjectDesc 31 オブジェクトの説明
xlClipboardFormatObjectLink 19 オブジェクトのリンク
xlClipboardFormatOwnerLink 17 オーナーへのリンク
xlClipboardFormatPICT 2 画像
xlClipboardFormatPrintPICT 3 印刷画像
xlClipboardFormatRTF 7 RTF 形式
xlClipboardFormatScreenPICT 29 表示画像
xlClipboardFormatStandardFont 28 標準フォント
xlClipboardFormatStandardScale 27 標準スケール
xlClipboardFormatSYLK 6 SYLK
xlClipboardFormatTable 16 テーブル
xlClipboardFormatText 0 テキスト
xlClipboardFormatToolFace 25 ツール表示
xlClipboardFormatToolFacePICT 26 ツール表示画像
xlClipboardFormatVALU 1
xlClipboardFormatWK1 10 ブック

 

%d人のブロガーが「いいね」をつけました。