今更ながらだが、Windowsのクリップボードについて整理しておく。なお、クリップボードの応用的については過去記事(「Windowsの基本機能 クリップボードをさらに活用する」)がある。本記事はそのアップデートも含む。
クリップボードはWindowsの基本機能
クリップボードとは、プログラム間でテキストや画像などのデータを交換する方法の1つだ。Windowsの基本機能であり、多くのアプリケーションやWindows付属アプリ、システムプログラムがこれをサポートする。
マウスのドラッグや「Shift+カーソルキー」で選択状態となるものは、基本的にクリップボードに「コピー」可能だ。この処理は、ウィンドウを表示しているプログラムがする。Windowsの標準的な機能であるため、コピー操作は「Ctrl+C」または「Ctrl+Ins」でできることが多い。これは、ホットキーではなく、プログラム自体が処理するキーボードショートカットである。
以下の表は、クリップボード関連の操作を示す。このうち、グローバル欄に丸印があるのものは、どの場面でも有効なホットキーである。
印のないもので、キーストロークを表すものは、ウィンドウを表示しているプログラムが処理するキーボードショートカットだ。その動作はプログラムに依存する。ただし、Windowsはユーザーインターフェースのガイドラインを策定しており、多くのプログラムがこれに従うため、同種の動作には、同じショートカットが割り当てられる。
クリップボードにデータを転送することを「コピー」、データを受け取ることを「貼り付け」と呼ぶが、この操作が可能かどうかは実際にはプログラム次第だ。なお、「切り取り」はクリップボードの操作としては「コピー」だが、処理するアプリケーションが対象を削除することで実現されている。
ほとんどのアプリケーションでは、受け入れ可能なデータ形式が決まっており、必ずしもクリップボードのデータを受け入れられるとは限らない。たとえば、メモ帳はテキスト形式は受け入れられるが、画像データは受け入れられない。
クリップボードのコピーでは、貼り付け先アプリケーションが何を受け付けるのかがわからないため、できる限り多数の形式でクリップボードにデータをコピーする。Windowsは、あらかじめ定義されたデータ形式を持っている(前掲の過去記事参照)。これは、Win32APIと.NETで個別に定義されている。.NETのクリップボード(クラス)は、Win32APIのクリップボードを使って実装されているものの、APIとしては異なる。
クリップボード履歴と共有で
他のマシン間でクリップボードの内容を共有する
Windowsのクリップボードには、「履歴」と「共有」の機能がある。これは、設定アプリの「システム」→「クリップボード」で有効化する。履歴機能と共有機能は個別にオンオフを指定できる。
クリップボード履歴には、テキストとHTMLデータ、画像しか登録されない。1つのデータは最大4MBである。また、履歴には最大25個のデータを記録し、追加されるたびに、最も古いものから消去されていく。ただし、トータルでの最大容量に制限があるようで、大きな画像が登録されると、複数の項目が消えることがあり、常に25個のデータが登録されているわけではないようだ。
画像データは、クリップボードに入っているときにはWindows BitmapやWindows DIB(Device Independent Bitmap)形式となるが、クリップボード履歴内での記録形式は不明でWindows Bitmap形式ではない模様。というのも、PNG形式などで4MB以下になるような画像でも、Windows Bitmap形式だと4MBを越えてしまうことがあるからだ。
クリップボード共有は、前述の設定ページで、同期方法を自動・手動のどちらかを選択できる。「自動」は、他のマシン(リモート側)でコピーがされたとき、自動的にローカルのクリップボードに反映させる。また、ローカル側でコピーをしたときは、自動的に他のマシンにデータを転送する。
これに対して、「手動」は、他のマシンでコピーがされても、ローカルのクリップボードは変化せず、「Win+V」でクリップボード履歴を表示させて、そこからクリップボードにコピーするデータを選択する。ローカルでコピーしたデータをリモート側に反映させるには手動で同期をする。
「自動」と「手動」は、設定ページでは「コピーしたテキストを自動的に同期する」「コピーしたテキストを手動で同期する」と表記されているが、実際にはテキストだけでなく履歴に入れることができる画像やHTMLも同期の対象である。
「Win+V」で表示される「クリップボード履歴パネル」は、Windows 11では、「Win+ピリオド」で開く「絵文字パネル」とウィンドウを共有しており、最上部にあるアイコンで機能を選択できる。この一番右側にあるのがクリップボード履歴だ。
ここには、クリップボードにコピーされたデータの履歴が並び、項目をクリックすることで、データは現在のクリップボードにコピーされる。また、「クリア」ボタンを使って履歴すべてを消去できるが、データ項目の右下のピン留めアイコンをクリックすることで、クリアの対象から外せる。
クリップボード履歴パネルでは、個々の項目の右上にある点が3つ並んだアイコンで、削除や手動同期が可能。ローカルからコピーされたデータで、クリップボード共有の同期が手動の場合には、同期ボタンが表示される。右端のゴミ箱アイコンは、項目の削除である。
リモートでコピーされたデータでは、同期ボタンは表示されない。どの場合でも対象がテキストデータの場合、右側に「テキストとしてコピー」ボタンが表示される。
この連載の記事
-
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る - この連載の一覧へ