範囲を選択してコピーするという操作をボタン一つで実現します。マクロの記録でもできそうなのですが、違うところは、Excelでコピーをすると選択範囲が点線で囲まれてしまいます。この動作をしないで直接クリップボードへ持っていこうということです。
VBAなので範囲でなくても、なんでもいいわけです。
手順は簡単です。
Dim objClipBoard As New DataObject
objClipBoard.SetText strData
objClipBoard.PutInClipboard
- DataObject型で定義します。
- クリップボードへ送りたいデータをSetTextでセットします。
- セットされたデータをクリップボードへ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 | ブック |