範囲を選択してコピーするという操作をボタン一つで実現します。マクロの記録でもできそうなのですが、違うところは、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 | ブック |
