このページの本文へ

Windows Info 第335回

Windowsの基本機能 クリップボードをさらに活用する

2022年07月10日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 クリップボードは、Windowsでも利用頻度が高い機能の1つだろう。そもそもGUIシステムとクリップボードは切っても切れない関係にある。クリップボードは、基本的にはコピーや切り取りを実行するアプリケーションがデータを登録する。このときアプリケーションは、同一内容のデータを複数の形式で保存できる。できるだけ多くの形式で登録することが推奨されているが、何を登録するのかはアプリケーション次第である。貼り付けを実行するプログラムは、登録されたデータから適当と思われるものを取り出す。

 結局のところ、クリップボードとは、アプリケーションから見ればWindowsが用意した機能をAPIを介して利用することだ。また、Windowsなどが用意するGUI部品の中には、コピーやペーストに対応しているものもあり、アプリケーションがその動作を禁止しない限り有効になることもある。こうした場合、アプリケーションは何もしなくてよい。

PowerShellでクリップボードを扱う

 基本的にはGUIで使うクリップボードだが、コマンドラインからの操作もできる。cmd.exeにはclip.exe、PowerShellには「Set-Clipboard」「Get-Clipboard」というコマンドが用意されている。clip.exeは、クリップボードへの登録しかできないが、PowerShellだと、クリップボードデータの取り出しも可能だ。

PowerShellでGet-Clipboardコマンドを使えば、クリップボードの内容を取り出すことができる

 それぞれ、以下に解説がある。

●Get-Clipboard
 https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-clipboard?view=powershell-5.1

●Set-Clipboard
 https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/set-clipboard?view=powershell-5.1

 PowerShellでGet-Clipboardを使う場合、画像や音声データも取り出すことができる。ただしテキスト以外は、PowerShellでは直接扱うことは不可能。そこで画像データであれば以下のようにして、ファイルに保存すれば利用できるようになる。

(Get-Clipboard -Format Image).Save("c:\Temp\test.png")

クリップボードをさらに活用する

 アプリケーションはデータをコピーするとき、可能な限り多くのデータ形式をクリップボードに登録することが推奨されていると書いた。つまり、クリップボードには複数のデータ形式が同時に登録できることを意味する。PowerShellにはクリップボードを扱うコマンドがあるが、前述のように機能が限定されている。なので、直接.NET Frameworkを使う。

 .NET Frameworkでのクリップボード機能(Clipboardクラス)は、Win32APIとほぼ同等だが、簡略化されている。たとえば、Win32APIでは、クリップボードが変化したときにイベント処理ができるが、.NET Frameworkではこうした機能はカバーされていない。

 ClipboardクラスをWindows PowerShellから使うには、準備として以下のコマンドを実行する。

Add-Type -AssemblyName PresentationFramework

 上記のコマンドは、Windows PowerShell起動後に1回だけ実行すればよい。では、Excelでセル範囲をコピーしたとき、どのようなデータが出てくるのかを調べて見る。Excelが登録したデータ形式は、以下のコマンドで調べることができる。

[System.Windows.Clipboard]::GetDataObject().GetFormats()

Excelはセル範囲のコピーで25種類のデータ形式をクリップボードに登録している。ただし、Excelのバージョンより違いが出る可能性がある

 いくつかの形式は、利用頻度が高いため、Windowsでは標準的なものとして登録されている。これについては、以下に記述がある。

●DataFormats クラス
 https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.dataformats?view=netframework-4.8

 Excelは、24種のデータ形式を登録している。

 この表では、各形式を「テキスト」「メディアデータ(画像、音声)」「バイナリデータ」に分類している。Excelのセル範囲のコピーなのに「画像」は変に思うかもしれない。しかし、貼り付けするアプリケーションは、たとえば、ペイント(mspaint.exe)かもしれない。

 データ形式を確認するだけなら、フォーマット名には、上記のコマンドで表示されたものを使う。たとえばテキスト(Text)データなら

[System.Windows.Clipboard]::GetDataObject().GetData("Text")

とすればよい。

 指定したフォーマットにより、読み出し方にはいろいろと違いがある。画像データ("System.Drawing.Bitmap")の場合には、上記のコマンドを使うと、ビットマップオブジェクトのプロパティが表示される。

System.Drawing.BitmapオブジェクトならSaveメソッドが使えるのでファイルとして保存すれば表示できる

 これは、以下のようにすることでGIFファイルに保存できる。

[System.Windows.Clipboard]::GetDataObject().GetData("System.Drawing.Bitmap").Save("c:\temp\excel.gif")

 表示や保存などはフォーマットごとに違う。どんなオブジェクトが出力されたのかは、Get-Memberコマンドで調べることができる。たとえば、Excelの"DataInterchangeFormat"形式の場合、

[System.Windows.Clipboard]::GetDataObject().GetData("DataInterchangeFormat") | get-member

とすると、「System.IO.MemoryStream」オブジェクトが出力されていることがわかる。

出力されるデータ形式が「System.IO.MemoryStream」の場合、ToArray()メソッドを使ってバイト配列に変換する

 この場合には、「ToArray()」メソッドで1回、バイト配列に変換することでデータを取り込むことが可能だ。たとえば、

[System.Windows.Clipboard]::GetDataObject().GetData("DataInterchangeFormat").ToArray() | Format-Hex

とすれば、16進数でダンプできる。

バイト配列に変換したら、たとえばFormat-Hexコマンドを使って16進数ダンプにできる

 スクリプトやコマンドなどを併用することで、クリップボードの中身を変換――たとえば日付の書式を変える――して再度クリップボードに書き戻すことが可能だ。

「2022年」というテキストがクリップボードに入っているとき、これを読み出して書式を変更して、クリップボードに書き戻すことができる。この処理はコマンドラインだが、クリップボード経由なので、GUIアプリケーションからデータを受け取り、GUIアプリケーションに渡すことが可能だ

 手作業では面倒だが、スクリプトを使えば簡単な変換処理は結構ある。このとき、スクリプトへの入力と出力にクリップボードを使うとGUIプログラムの間をスクリプトで補完することが可能になる。

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
1
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - スカイブルー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - スカイブルー
¥176,566
2
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、512GB SSDストレージ、1080p FaceTime HDカメラ、Touch ID - ブラッシュ
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、512GB SSDストレージ、1080p FaceTime HDカメラ、Touch ID - ブラッシュ
¥113,853
3
【整備済み品】富士通 LIFEBOOK A5510 15.6型 第10世代CPU Core i5-10210U /Windows11 Pro/MS Office2021搭載/初期設定不要/Webカメラ/テンキー搭載/DVD-ROM/WIFI内蔵/Bluetooth/HDMI/有線静音マウス付属 (ホワイト/テンキー搭載, メモリ16GB,SSD512GB)
【整備済み品】富士通 LIFEBOOK A5510 15.6型 第10世代CPU Core i5-10210U /Windows11 Pro/MS Office2021搭載/初期設定不要/Webカメラ/テンキー搭載/DVD-ROM/WIFI内蔵/Bluetooth/HDMI/有線静音マウス付属 (ホワイト/テンキー搭載, メモリ16GB,SSD512GB)
¥40,880
4
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥35,129
5
【整備済み品】ノートパソコン 東芝 Dynabook G83 13.3インチ FHD 軽量 Webカメラ 第11世代 Corei5-1135G7/Windows 11 Pro/MS Office 2021搭載/初期設定不要/Wifi 6/Bluetooth/HDMI/Type C/LANポート/SDカードスロット/有線静音マウス付属(メモリ8GB,SSD256GB)
【整備済み品】ノートパソコン 東芝 Dynabook G83 13.3インチ FHD 軽量 Webカメラ 第11世代 Corei5-1135G7/Windows 11 Pro/MS Office 2021搭載/初期設定不要/Wifi 6/Bluetooth/HDMI/Type C/LANポート/SDカードスロット/有線静音マウス付属(メモリ8GB,SSD256GB)
¥33,048

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,680
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,690
4
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
5
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GW
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GW
¥1,535
7
エレコム USB Type C ケーブル 1m 100W PD対応 高速充電 シリコン素材 なめらか やわらか 【 MacBook/iPad/Galaxy/Android スマホ タブレット 等対応 】 ブラック 【iPhone 16 シリーズ 対応検証済】 MPA-CCECSS10BK
エレコム USB Type C ケーブル 1m 100W PD対応 高速充電 シリコン素材 なめらか やわらか 【 MacBook/iPad/Galaxy/Android スマホ タブレット 等対応 】 ブラック 【iPhone 16 シリーズ 対応検証済】 MPA-CCECSS10BK
¥980
8
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,519
9
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,645
10
【Amazon.co.jp限定】バッファロー 外付けハードディスク 4TB テレビ録画/PC/PS4/4K対応 バッファロー製nasne™対応 静音&コンパクト 日本製 故障予測 みまもり合図 HD-AD4U3
【Amazon.co.jp限定】バッファロー 外付けハードディスク 4TB テレビ録画/PC/PS4/4K対応 バッファロー製nasne™対応 静音&コンパクト 日本製 故障予測 みまもり合図 HD-AD4U3
¥17,980

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン