Windowsでクリップボードの中身をのぞき見る方法Tech TIPS

Windows環境でのアプリケーション連携で最も使われているのはデータのカット&ペーストである。これはクリップボードと呼ばれるOS内部の一種の共有メモリによって実現されている。必要なら、Windows標準のツールでクリップボードの現在の内容を確認することができる。

» 2002年04月26日 05時00分 公開
[小川誉久デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000 Professional/Windows XP Professional/Windows XP Home Edition/Windows 2000 Server/Windows 2000 Advanced Server



解説

 複数のアプリケーションをマルチウィンドウで同時実行できるWindowsの大きなメリットの1つは、あるアプリケーションで作業中のデータを、簡単に別のアプリケーションに持っていけることだろう。いうまでもなく、最も簡単な方法はカット&ペースト(コピー&ペースト)を活用することである。

●クリップボードとは?

 カット&ペースト(日本語Windowsのメニュー名でいえば、これは「切り取り−貼り付け」ということになるが、ここでは広く一般的に浸透したものとして、「カット&ペースト」と呼ぶことにする)するには、まずコピー元のアプリケーションで、コピーしたい要素を選択し、アプリケーションの[編集]−[切り取り]メニューを実行する。すると選択した要素が消去される([編集]−[切り取り]ではなく、[編集]−[コピー]を実行すれば、選択要素は消去されない)。次にコピー先のアプリケーションをアクティブにし、このアプリケーションの[編集]−[貼り付け]メニューを実行する。すると、先ほどカット(コピー)した要素が挿入される。ほとんどのアプリケーションにおいて、このカット&ペーストには、それぞれ[Ctrl]+[X](コピーは[Ctrl]+[C])と[Ctrl]+[V]というショートカット・キーが割り当てられている。Windowsのヘビー・ユーザーであるみなさんにとっては、メニューよりもこちらのショートカット・キーの方がなじみ深いかもしれない。

 さて、Windows環境でこのようなカット&ペーストが利用可能なのは、「クリップボード」と呼ばれるメカニズムがOSに備えられているからだ。OSの内部的に見れば、クリップボードは、複数のアプリケーションからアクセス可能な、一種の共有メモリだと考えることができる。あるアプリケーションでデータをカット(コピー)すると、そのデータがこの共有メモリに転送され、別のアプリケーションでこのデータをペーストすると、共有メモリからアプリケーションにデータが転送されるというわけだ。

 このクリップボードには、重要な性質がいくつかある。1つは、あるアプリケーションからデータがクリップボードにコピーされるとき、複数の形式でデータがコピーされるということ。例えばワードプロセッサのWordで、文書の一部を選択してクリップボードへのコピーを実行すると、文字修飾情報など(太字や斜体、フォントの種類、文字サイズなど)を含むWordネイティブのデータに加え、テキストのみのデータや、ページ・イメージのビットマップ・データまで、複数のフォーマットでデータが転送される(これについては、すぐ次で実例をご紹介する)。そしてWordでデータをペーストしたときには、すべての情報を含むWordネイティブ形式のデータが、テキスト・コードしか扱えないテキスト・エディタでペーストしたときにはテキスト形式のデータが、ビットマップ・エディタでペーストしたときにはビットマップ・データがクリップボードから転送される。このようにクリップボードにデータを転送するアプリケーションは、できるだけさまざまなアプリケーションがデータを受け取れるように、さまざまな形式でクリップボードへデータを転送する。一方、データを受け取るアプリケーション(データを貼り付けるアプリケーション)側では、現在クリップボードに転送されているデータ形式のうち、自分が処理可能なもので、最も情報損失が少ない形式のデータをクリップボードから取り出すようにする。

クリップボードの動作原理 クリップボードの動作原理
クリップボードは、異なるプログラムからアクセス可能な一種の共有メモリとして実装されている。データを転送するアプリケーションは、できるだけ多くのアプリケーションがデータを取得できるように、さまざまな形式のデータをクリップボードに転送する。それを取り出す側のアプリケーションは、クリップボードに格納されたさまざまな形式の中から、情報損失が最も少ないものを取り出す。

 クリップボードの第2の特徴は、クリップボードに転送されたデータは、次に新しいデータがクリップボードに転送されないかぎり、ずっとクリップボード上に存在し続けるということだ。このためクリップボード上のデータは、別のアプリケーションから何回でも、ペーストすることができる。ただし逆にいえば、クリップボードはデータの履歴などを保存することはできず、新しいデータが転送されると、以前のデータは消去されてしまう(ただし、Office 2000以降のOffice製品では、独自にクリップボードの履歴を管理するOfficeクリップボードの機能が追加された)。

操作方法

●クリップボードの中身を覗くと……

 今述べたとおり、クリップボードはOSの内部的なメカニズムなので、通常はユーザーが直接中身を覗くことはできない。しかしこれを行うツールは標準で提供されている。これはWindowsのシステム・フォルダにある「クリップブック」という名前のツール(%SystemRoot%\System32\clipbrd.exe)である。一般ユーザーにとっては無縁のツールと判断されたのかどうか、デフォルトでは[スタート]−[プログラム]メニューにはショートカットは追加されていない。ちなみに、Windows 2000のクリップブックのバージョンはVer.5.0 build 2195であり、Windows XPではこれがVer.5.1 build 2600にバージョンアップしている。ただし、両者に機能差はないようだ。

 クリップブックを実行するには、[スタート]−[ファイル名を指定して実行]を実行し、表示されるダイアログで次のように「clipbrd」と入力し、[OK]ボタンをクリックする。

クリップブックの実行 クリップブックの実行
Windowsのシステム・フォルダに標準でインストールされているが、[スタート]−[プログラム]メニューには登録されていないので、この[スタート]−[ファイル名を指定して実行]から実行する。もちろん便利だと思えば、マニュアル操作でショートカットを追加すればよい。
  (1)クリップブックを実行するには、ファイル名である「clipbrd」と入力する。
  (2)うえでプログラムのファイル名を入力したら、このボタンをクリックしてプログラムを実行する。

 すると次のようなクリップブックのウィンドウが表示される。この例では、クリップボードに何もカット(コピー)されていない状態で実行したので、子ウィンドウである「クリップボード」には何も表示されていない。

起動されたクリップブック 起動されたクリップブック
内部に表示されている「クリップボード」子ウィンドウが現在のクリップボードの内容である。クリップブックには、クリップボードの内容を表示する以外にも、ネットワーク環境でクリップボードのデータを共有可能にする機能、クリップボードのデータをファイルとして出力する機能などがある。
  (1)現在のクリップボードの内容。この例では、クリップボードに何もカット(コピー)されていない状態でクリップブックを実行したので、ウィンドウには何も表示されていない。すでにクリップボード内にデータがあるときには、そのデータが「クリップボード」ウィンドウに表示される。

 このクリップブックには、現在のクリップボードの内容を表示する機能以外にも、ネットワーク環境でクリップボードのデータを共有可能にする機能、クリップボードのデータをファイルとして出力する機能などがあるのだが、これらについては別稿に譲ることにしよう。

 それではここで、Wordで適当な文書を開き、文書データの一部をクリップボードにコピーしてみる。

Wordから文書データの一部をクリップボードにコピーする Wordから文書データの一部をクリップボードにコピーする
Wordで文書を開き、その一部分を選択したところ。ここで[編集]−[切り取り](カット)ないし[編集]−[コピー]メニューを実行すれば、選択した文書領域のデータがクリップボードに転送される。
  (1)クリップボードに転送するデータ。ここでカットまたはコピー操作を行えば、選択したデータがクリップボードに転送される。

 Wordでのクリップボードへのデータ転送が完了したら。先ほどと同じ手順でクリップブックを起動する。今度はクリップボードにデータが転送されているので、次のように「クリップボード」にデータが表示される。

Wordでデータを転送したのち、クリップブックを起動したところ Wordでデータを転送したのち、クリップブックを起動したところ
今度はクリップボードが空ではないので、「クリップボード」ウィンドウに転送されたデータが表示されている。
  (1)Wordから転送されたデータ。

 ここで、クリップブックの[表示]メニューをドロップダウンしてみる。この[表示]メニューには、現在クリップボードに格納されているデータの形式が一覧されるようになっている。こうしてみると、Wordから実に数多くの形式のデータがクリップボードに転送されていることが分かる。

クリップブックで[表示]メニューをドロップダウンしたところ クリップブックで[表示]メニューをドロップダウンしたところ
クリップブックの[表示]メニューでは、現在クリップボードに格納されているデータの形式が一覧表示される。ここで適当な形式を選択すれば、その形式のデータを表示することができる。
  (1)Wordから転送されたデータの形式一覧。このうち選択可能な項目はクリップブックで表示可能な形式、選択不能な項目はクリップブックでは表示不能だが、クリップボード内にはこの形式のデータが格納されていることを示す。

 このうち、選択可能なメニュー項目は、クリップブックで表示可能なデータ形式である。これに対し、メニューで選択不能な項目(淡色表示されている項目)は、クリップブックでは表示できないが、その形式のデータがクリップボードに格納されていることを示している。このように、Wordで文書データの一部をコピーしただけでも、実にさまざまな形式のデータがクリップボードに転送されていることが分かる。ざっと眺めても、テキスト(テキスト・データのみ)、Unicodeテキスト(Unicode形式のテキスト・データだと思われる)といった文字コードのデータ以外にも、ピクチャ(ページ・イメージのビットマップだと思われる)、Native(Wordのネイティブ形式だと思われる)、Rich Text Format(文字の修飾情報などを含むRTF形式のデータ)、HTML Format(HTML形式のデータだと思われる)などがある。これはWordからデータを転送したからで、別のアプリケーションからデータを転送すれば、これらとは違った形式のデータが転送されることになるだろう。

 ここで試しに、形式の1つである[ピクチャ]を選択してみる。

[表示]メニューから[ピクチャ]形式を選択したところ [表示]メニューから[ピクチャ]形式を選択したところ
ピクチャ形式では、文書中に挿入されたビットマップ画像を含めて、ページ・イメージのビットマップ画像が保存されていた。
  (1)ピクチャ形式のデータ。文字データだけでなく、文書中に挿入されていた画像データも含んだビットマップ・データがクリップボードに転送されていることが分かる。

 このようにクリップブックを活用すれば、アプリケーションがどのようなデータをクリップボードにコピーしているかをのぞき見ることができる。カット&ペーストが思ったように機能しないときなどは、この方法でクリップボードの中身を確認してみるとよいだろう。

■更新履歴

【2002/04/26】Windows XPに関する情報を加筆・修正しました。

【2000/12/19】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。