Windows環境でのアプリケーション連携で最も使われているのはデータのカット&ペーストである。これはクリップボードと呼ばれるOS内部の一種の共有メモリによって実現されている。必要なら、Windows標準のツールでクリップボードの現在の内容を確認することができる。
対象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]ボタンをクリックする。
すると次のようなクリップブックのウィンドウが表示される。この例では、クリップボードに何もカット(コピー)されていない状態で実行したので、子ウィンドウである「クリップボード」には何も表示されていない。
このクリップブックには、現在のクリップボードの内容を表示する機能以外にも、ネットワーク環境でクリップボードのデータを共有可能にする機能、クリップボードのデータをファイルとして出力する機能などがあるのだが、これらについては別稿に譲ることにしよう。
それではここで、Wordで適当な文書を開き、文書データの一部をクリップボードにコピーしてみる。
Wordでのクリップボードへのデータ転送が完了したら。先ほどと同じ手順でクリップブックを起動する。今度はクリップボードにデータが転送されているので、次のように「クリップボード」にデータが表示される。
ここで、クリップブックの[表示]メニューをドロップダウンしてみる。この[表示]メニューには、現在クリップボードに格納されているデータの形式が一覧されるようになっている。こうしてみると、Wordから実に数多くの形式のデータがクリップボードに転送されていることが分かる。
このうち、選択可能なメニュー項目は、クリップブックで表示可能なデータ形式である。これに対し、メニューで選択不能な項目(淡色表示されている項目)は、クリップブックでは表示できないが、その形式のデータがクリップボードに格納されていることを示している。このように、Wordで文書データの一部をコピーしただけでも、実にさまざまな形式のデータがクリップボードに転送されていることが分かる。ざっと眺めても、テキスト(テキスト・データのみ)、Unicodeテキスト(Unicode形式のテキスト・データだと思われる)といった文字コードのデータ以外にも、ピクチャ(ページ・イメージのビットマップだと思われる)、Native(Wordのネイティブ形式だと思われる)、Rich Text Format(文字の修飾情報などを含むRTF形式のデータ)、HTML Format(HTML形式のデータだと思われる)などがある。これはWordからデータを転送したからで、別のアプリケーションからデータを転送すれば、これらとは違った形式のデータが転送されることになるだろう。
ここで試しに、形式の1つである[ピクチャ]を選択してみる。
このようにクリップブックを活用すれば、アプリケーションがどのようなデータをクリップボードにコピーしているかをのぞき見ることができる。カット&ペーストが思ったように機能しないときなどは、この方法でクリップボードの中身を確認してみるとよいだろう。
■更新履歴
【2002/04/26】Windows XPに関する情報を加筆・修正しました。
【2000/12/19】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.