- 技術 💻
クリップボードとは|履歴の見方・消し方と仕組みをOS別に実例で解説
結論
クリップボードとは、コピーや切り取りをしたデータを一時的に置いておく場所です。貼り付けると、そこからデータが取り出されます。
この記事でわかること
- Windows・Mac・スマホ4種の履歴の見方と消し方
- 1回のCtrl+Cで並んだ形式名13種の実物
- Python・JavaScriptで読み書きした出力とエラー原文
コピーすると、データはアプリの外にある OS の置き場(クリップボード)に入ります。貼り付けるアプリは、そこから受け取ります。新しくコピーすると、前の中身は上書きされます。
flowchart TD
A[アプリA<br>ブラウザ・メールなど] -->|コピー Ctrl+C<br>切り取り Ctrl+X| C[(クリップボード<br>OS の一時置き場)]
C -->|貼り付け Ctrl+V| B[アプリB<br>メモ帳など]
C -->|何度でも貼り付け| D[アプリC]
E[次のコピー] -->|上書き| C
急いでいる人向けに、よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| クリップボードとは | コピーしたものの一時的な置き場 | クリップボードとは |
| どこにある? | PC・スマホのメモリの中。ファイルではない | クリップボードとは |
| Windows で履歴を見る | Windows ロゴ キー+V | Windows |
| Mac で中身を見る | Finder の「編集」>「クリップボードを表示」 | Mac |
| Mac の履歴(macOS 26) | Spotlight で Command+4 | Mac |
| iPhone で見る | 履歴は無い。メモ等に貼り付けて見る | iPhone・Android |
| Android で履歴を見る | Gboard のクリップボードのアイコン | iPhone・Android |
| Windows の履歴を消す | Win+V の「すべてクリア」 | Windows |
| 貼り付けできない | 中身が空・形式が合わない・権限 | よくあるトラブル |
確認環境:Ubuntu 24.04.4 LTS。Xvfb 21.1.12(画面の無い X サーバー)の上で xclip 0.13・xsel 1.2.1、Weston 13.0.0(Wayland のコンポジター)の上で wl-clipboard 2.2.1 を動かしました。Chromium 141.0.7390.37 を playwright-core 1.56.1 と Node.js v22.22.2 で画面ありの状態で動かし、Ctrl+C・Ctrl+V と Clipboard API でコピーしたときに、クリップボードに入った形式を xclip で読み出しました。Python は 3.11.15 と pyperclip 1.11.0 です。Windows・Mac・iPhone・Android の操作と上限は、Microsoft サポート・Microsoft Learn・Apple サポート・Apple Developer・Android Developers・Android 公式サイト、Web の仕様は MDN・W3C・web.dev、Linux の仕組みは freedesktop.org の文書で確かめました(確認日 2026年10月23日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「クリップボードとは|履歴の見方・消し方と仕組みをOS別に実例で解説」
クリップボードとは(意味・読み方・どこにあるか)
この節では、クリップボードという言葉の意味と、データがどこに置かれているのかが分かります。
クリップボード(clipboard)は、コピー(複製)や切り取りをしたデータを、貼り付けるまで一時的に置いておく OS の機能です。 置かれるのはメモリの中で、ファイルとして保存されるわけではありません。そのため、電源を切ったり再起動したりすると、ふつうは中身が消えます。
英語の clipboard は、紙を挟んで持ち歩く「紙ばさみ(バインダーのような板)」のことです。「書類をいったん挟んでおく板」になぞらえた名前です。
1置いておけるのは基本1つ
新しくコピーすると、前の中身は上書きされて消える。Android の公式ドキュメントも「クリップボードに置けるのは一度に1つ」と説明している。
2アプリをまたいで使える
ブラウザでコピーした文字を、メール・エディター・チャットに貼り付けられる。アプリの外(OS)にある置き場だから。
3何度でも貼り付けられる
貼り付けても中身は残る。同じ文字を3か所に貼るなら、コピーは1回で済む。
4履歴は別の機能
過去にコピーしたものを並べる「クリップボード履歴」は、Windows の Win+V や Android の Gboard などの追加の機能。
「クリップボード」の意味の見分け表
| 場面 | 意味 | この記事 |
|---|---|---|
| パソコン・スマホ | コピーしたデータの一時的な置き場 | 扱う |
| クリップボード履歴 | 過去にコピーした複数の項目の一覧 | 扱う |
| 文房具 | 紙を挟んで書くための板(紙ばさみ) | ここだけ |
| プログラミング | Clipboard API・pyperclip など、クリップボードを読み書きする仕組み | 扱う |
| Mac・iPhone の開発 | 同じ仕組みを「ペーストボード(pasteboard)」と呼ぶ | 一言 |
Apple の開発者向けドキュメントでは、Mac・iPhone のクリップボードを「ペーストボード」と呼んでいます。ペーストボードのサーバーは、動いているすべてのアプリが共有する、と説明されています。
コピー・切り取り・貼り付けの仕組み
この節では、コピー・切り取り・貼り付けのそれぞれで、クリップボードに何が起きるのかと、操作のキーが分かります。
コピーは「元を残したまま、複製をクリップボードに入れる」、切り取りは「クリップボードに入れて、元を消す」、貼り付けは「クリップボードの中身を今の場所に入れる」操作です。
| 操作 | 元のデータ | クリップボード | Windows | Mac |
|---|---|---|---|---|
| コピー | 残る | 複製が入る(前の中身は消える) | Ctrl+C | Command+C |
| 切り取り(カット) | 消える | 入る(前の中身は消える) | Ctrl+X | Command+X |
| 貼り付け(ペースト) | 変わらない | 中身は残る | Ctrl+V | Command+V |
| 書式なしで貼り付け | 変わらない | 中身は残る | Ctrl+Shift+V(ブラウザ等) | Option+Shift+Command+V |
| 取り消し | 元に戻る | 変わらない | Ctrl+Z | Command+Z |
Mac のキーは Apple のキーボードショートカットのページによるものです。Mac では Option+Shift+Command+V を「ペーストしてスタイルを合わせる」と呼びます。iPhone・Android では、文字を長押しして範囲を選び、出てきたメニューの「コピー」をタップし、貼り付ける場所を長押しして「ペースト」(Android は「貼り付け」)をタップします。
画面全体の画像(スクリーンショット)も、クリップボードに入れられます。 Microsoft のサポートページでは、PrtScn キーで画面全体の画像がクリップボードにコピーされます。Mac では、スクリーンショットのキー(Shift+Command+3 など)に Control を足すと、ファイルではなくクリップボードに入ります(Apple サポート)。
ファイルのコピーとの違い
エクスプローラーや Finder では、ファイルも同じ Ctrl+C・Command+C でコピーし、貼り付けた場所に複製ができます。Mac の Finder では、Command+C の後に Option+Command+V を押すと、複製ではなく元の場所からの「移動」になります(Apple のキーボードショートカットのページ)。
1回のコピーに複数の形式が入る(Linuxで実物を見る)
この節では、ブラウザで文字をコピーしたとき、クリップボードに「文字だけ」「書式つき」など何種類のデータが同時に入るのかを、実際に取り出して確かめます。
コピーした側のアプリは、同じ内容を何種類かの形式で用意します。貼り付ける側は、その中から自分が使える、いちばん情報の多い形式を選びます。 Microsoft Learn も、同じ情報を別の形式で複数置けること、貼り付ける側は分かる中でいちばん詳しい形式を選ぶことを説明しています。
ブラウザで太字とリンクを含む文をコピーした
Chromium で、次の HTML の1行を選んで Ctrl+C を押しました。
<p id="src">価格は <b>1,200円</b>(<a href="https://example.com/">詳細</a>)</p>
そのあと、Linux のコマンド xclip で「どの形式で受け取れるか(TARGETS)」を聞きました。
xclip -selection clipboard -o -t TARGETS
TIMESTAMP
TARGETS
SAVE_TARGETS
MULTIPLE
STRING
TEXT
UTF8_STRING
chromium/x-internal-source-rfh-token
chromium/x-source-url
text/html
text/plain
text/plain;charset=utf-8
1回の Ctrl+C で、13種類の名前が並びました。TIMESTAMP・TARGETS・SAVE_TARGETS・MULTIPLE は X の決まりの問い合わせ用で、データの形式としては次のものが入っています。
| 形式 | 中身(実際に取り出した値) | 使う場面 |
|---|---|---|
| text/plain・UTF8_STRING 等 | 価格は 1,200円(詳細) |
メモ帳・ターミナル |
| text/html | <b ...>1,200円</b> や <a href=...>詳細</a> を含む HTML |
メール・ワープロ・ブラウザの編集欄 |
| chromium/x-source-url | コピー元のページの URL(別の確かめでは http://127.0.0.1:37900/ev.html) |
Chromium の中の処理 |
text/html を取り出すと、次のように文字の色・フォントまで style 属性で付いていました(長いので途中を省略)。
<span style="color: rgb(0, 0, 0); font-family: "Times New Roman"; …">価格は<span> </span></span><b style="color: rgb(0, 0, 0); …">1,200円</b><span …>(</span><a href="https://example.com/" style="…">詳細</a><span …>)</span>
Word やメールに貼ると太字やリンクが付いてくるのは、貼り付ける側が text/html を選んでいるからです。 メモ帳のように文字しか扱えないアプリは text/plain を選ぶので、太字もリンクも落ちます。
書式なしで貼り付ける(Ctrl+Shift+V)
同じクリップボード(text/plain と text/html の両方)を、Chromium の編集できる欄に Ctrl+V と Ctrl+Shift+V で貼り付け、欄の HTML を比べました。
同じクリップボードを貼り付けた結果
クリップボードの中身は同じ。どの形式を使うかを貼り付ける側が変えている
表をコピーすると「タブ区切り」の文字も入る
Web ページの表(table)をコピーすると、text/plain は「列はタブ、行は改行」の文字になっていました。Python で取り出した結果です(取り出すコードは後の節にあります)。
形式: ['chromium/x-internal-source-rfh-token', 'chromium/x-source-url', 'text/html', 'text/plain', 'text/plain;charset=utf-8']
text/plain: '\n商品\t価格\nりんご\t120\nみかん\t80'
表として読む: [[''], ['商品', '価格'], ['りんご', '120'], ['みかん', '80']]
表計算ソフトに貼ると列が分かれて入るのは、この「タブ区切り」か text/html の表を読んでいるからです。
OS ごとの形式の名前
同じ考え方で、OS ごとに形式の名前が決まっています。
| 中身 | Windows(Win32) | Mac(NSPasteboard) | Linux・Web |
|---|---|---|---|
| 文字 | CF_UNICODETEXT・CF_TEXT | string | text/plain・UTF8_STRING |
| 書式つきの文字 | 登録形式(RTF・HTML 等) | html・rtf | text/html |
| 画像 | CF_DIB・CF_DIBV5・CF_BITMAP | png・tiff | image/png |
Microsoft Learn では、OS が決めた形式を「標準のクリップボード形式」、アプリが名前を付けて足す形式を「登録されたクリップボード形式」と呼びます。CF_TEXT と CF_UNICODETEXT のように、OS が自動で変換する組み合わせもあります。
コピー元のアプリを閉じると消える?(Linux の仕組みと PRIMARY)
この節では、Linux(X Window System)で「コピー元のアプリを閉じたら貼り付けられなくなった」が起きる理由と、選んだだけでコピーされる PRIMARY の仕組みが分かります。
X Window System では、クリップボードのデータは X サーバーには置かれず、コピーしたアプリ(所有者)が持ち続けます。 貼り付けるときに、所有者のアプリに「この形式でください」と頼んで受け取ります。freedesktop.org の文書も、データは貼り付けのときに元のアプリが渡すので、コピー元のアプリを閉じると中身が無くなる、と説明しています。
flowchart TD
A[コピーしたアプリ<br>所有者] -->|持っていると宣言| X[X サーバー]
B[貼り付けるアプリ] -->|text/html がほしい| X
X -->|所有者に頼む| A
A -->|データを渡す| B
xclip で確かめる
xclip は、コピーするとバックグラウンドに残り、自分が所有者になってデータを渡し続けます。その xclip を止めると、中身はなくなりました。
$ printf 'owner test' | xclip -selection clipboard
$ ps -o pid,stat,cmd -C xclip
PID STAT CMD
1395 S xclip -selection clipboard ← この xclip がデータを持っている
$ xclip -selection clipboard -o
owner test
$ kill 1395
$ xclip -selection clipboard -o
Error: target STRING not available
Chromium でも同じでした。 Clipboard API で文字をコピーし、Chromium を閉じた前後で読み出した結果です。
閉じる前: ブラウザを閉じる前にコピー
閉じた後: Error: target STRING not available
ふだん使う Linux のデスクトップ(GNOME・KDE など)では、クリップボードマネージャーと呼ばれる常駐ソフトが、コピーされた内容を受け取って持っておくので、アプリを閉じても貼り付けられることが多くなります。上の結果は、マネージャーの無い最小の X サーバーで確かめたものです。
選ぶだけで入る PRIMARY と、Ctrl+C の CLIPBOARD
X には、クリップボードが2種類あります。
CLIPBOARD
メニューの「コピー」や Ctrl+C で入る
Ctrl+V で貼り付ける
Windows・Mac のクリップボードと同じ動き
PRIMARY
文字をマウスで選んだだけで入る
マウスの中ボタン(ホイールのクリック)で貼り付ける
CLIPBOARD とは別の中身を持てる
Chromium で文を選んで Ctrl+C を押したあと、PRIMARY を読むと、選んだ文が入っていました(価格は 1,200円(詳細))。
xclip で -selection clipboard を付け忘れると、Ctrl+V で貼り付けられません。 xclip の既定は PRIMARY だからです。
$ printf 'selection を付けずにコピー' | xclip
$ xclip -o ← PRIMARY
selection を付けずにコピー
$ xclip -selection clipboard -o ← CLIPBOARD(Ctrl+V で使う方)は空のまま
Wayland の場合(wl-copy・wl-paste)
Ubuntu や Fedora の新しいデスクトップが使う Wayland では、xclip ではなく wl-clipboard の wl-copy・wl-paste を使います。Weston の上で動かしました。
$ printf 'Waylandでコピー' | wl-copy
$ wl-paste --list-types
text/plain
text/plain
text/plain;charset=utf-8
TEXT
STRING
UTF8_STRING
$ wl-paste
Waylandでコピー
$ wl-copy < orange.png ← 画像を入れる
$ wl-paste --list-types
image/png
$ wl-paste --type image/png | wc -c
93
wl-copy も、コピーしたあとバックグラウンドに残ってデータを渡します(--foreground で前に残す、--paste-once で1回渡したら終わる、という引数があります)。
Windowsのクリップボード履歴(Win+V)の使い方と消し方
この節では、Windows 11・10 で、過去にコピーした項目を一覧から選んで貼る方法、残る件数、消し方が分かります。
Windows ロゴ キー+V を押すと、クリップボードの履歴が開きます。 初めて使うときは、Win+V で出る画面の「有効にする」を選びます(Microsoft サポート、2026年10月4日更新)。
履歴をオンにする
Windows ロゴ キー+V を押し、「有効にする」を選ぶ。設定の「システム」>「クリップボード」からもオンにできる。
いつもどおりコピーする
Ctrl+C でコピーするたびに、履歴に1件ずつ足される。
一覧から選んで貼り付ける
貼り付けたい場所で Windows ロゴ キー+V を押し、一覧の項目を選ぶ。
よく使う項目はピン留めする
ピン留めした項目は、再起動しても「すべてクリア」をしても残る。
要らない項目を消す
1件ずつなら項目の「詳細(...)」から「削除」。全部なら一覧の上の「すべてクリア」。
| やりたいこと | 操作(Microsoft サポートの文言) |
|---|---|
| 履歴を開く | Windows ロゴ キー+V |
| 1件消す | 項目の「詳細 (...)」>「削除」 |
| この PC の履歴を全部消す | Win+V の「すべてクリア」(ピン留めは残る) |
| クラウドの分も含めて消す | 「設定」>「システム」>「クリップボード」>「クリップボードのデータのクリア」の「クリア」 |
| 再起動したら | 履歴は消える。ピン留めした項目は残る |
ほかの Windows PC と同期する
「設定」>「システム」>「クリップボード」で「デバイス間のクリップボードの履歴」をオンにすると、同じ Microsoft アカウント(または職場のアカウント)でサインインした PC どうしで履歴を共有できます。「コピーするテキストを自動的に同期する」を選ぶと自動で、「コピーするテキストを手動で同期する」を選ぶと、履歴の項目ごとの同期ボタンで送ります。
パスワードなど人に見せたくないものを扱う PC では、自動の同期をオンにするかどうかを先に決めます。 コピーしたものがクラウドを通ってほかの PC に届くからです。
コマンドで使う(clip・PowerShell)
コマンドプロンプトの clip は、コマンドの出力をクリップボードに入れます(Microsoft Learn)。
dir | clip
clip < readme.txt
PowerShell では Set-Clipboard で入れ、Get-Clipboard で取り出します。Microsoft Learn によると、PowerShell 7 では Linux(xclip が必要)と macOS(pbpaste を使う)でも動きます。
Set-Clipboard -Value 'hello world'
Get-Clipboard
WSL(Windows の中の Linux)からは、Windows 側の clip.exe にパイプで渡すと、Windows のクリップボードに入ります。WSL の作り方は、関連記事「WSL2環境構築|Ubuntu開発環境をコマンドだけで整える手順」で扱っています。
Windows の便利ツール集 PowerToys には、クリップボードの中身をプレーンテキスト・Markdown・JSON などに変えて貼る「Advanced Paste」があります。関連記事「PowerToysとは|使い方・全ツール一覧とショートカット早見表」で扱っています。
Macのクリップボードの見方(Finder・Spotlightの履歴・ユニバーサルクリップボード)
この節では、Mac でクリップボードの中身を見る方法、macOS Tahoe 26 で加わった履歴、iPhone・iPad との間でコピーする方法が分かります。
今の中身を見るだけなら、Finder のメニューバーの「編集」>「クリップボードを表示」です。 小さなウインドウに、いまクリップボードにある文字や画像が表示されます。
Spotlight でクリップボードの履歴を見る(macOS Tahoe 26)
Apple の Mac ユーザガイド(macOS Tahoe 26)では、Spotlight で以前クリップボードにコピーした情報を検索できます。
Spotlight を開く
Command+スペースバーを押す。
クリップボードの画面にする
検索フィールドの右のクリップボードのボタンをクリックするか、Command+4 を押す。初めてのときは「オンにする」を求められることがある。
探して貼り付ける
検索フィールドに入力して絞り込み、項目を選んで Command+C でコピーし、貼り付ける場所で Command+V。
履歴を消す
検索フィールドの右の「もっと見る」ボタン>「履歴を消去」。
Apple のガイドは、クリップボードには機密情報が含まれる場合がある、と注意しています。Finder の「クリップボードを表示」で見られるのは、今の1件だけです。
ユニバーサルクリップボード(Mac・iPhone・iPad の間でコピー)
Mac でコピーしたものを、近くの iPhone や iPad でそのまま貼り付けられる機能です。 逆向きも使えます。Apple サポートによると、次の条件がそろうと使えます。
- 1各デバイスが近くにある使う端末どうしを近くに置く
- 2同じ Apple Account でサインインしているMac・iPhone・iPad のすべてで同じアカウント
- 3Bluetooth と Wi-Fi がオン両方の端末で
- 4Handoff がオンデフォルトでオン
コピーした内容は、しばらくの間か、どちらかの端末でほかのものをコピーするまで残ります(Apple サポート)。Apple の開発者向けドキュメントでは、Mac の標準のペーストボードは、macOS 10.12 以降でユニバーサルクリップボードに自動で参加します。
Mac のアプリがクリップボードを読むとき
Apple の開発者向けドキュメント(NSPasteboard)では、アプリがクリップボードを読もうとしたときに確認の通知(ペーストボードへのアクセスの通知)が出ることがあり、一度通知を出したアプリについては、ユーザーがシステム設定でアプリごとに扱いを変えられます。ターミナルでは pbcopy(入れる)と pbpaste(出す)を使います。
iPhone・Androidのクリップボードの見方
この節では、スマホでクリップボードの中身を見る方法と、履歴の機能の有無が分かります。
| 比べる点 | iPhone | Android(Gboard) |
|---|---|---|
| 中身を見る | メモなどに貼り付けて見る | キーボードの上のクリップボードのアイコン |
| 履歴 | OS の機能としては無い | Gboard でオンにすると使える |
| 残る時間 | 次にコピーするまで | 固定しない項目は1時間で消える |
| 固定 | 無い | 項目を長押し>「固定」 |
| 他の端末と共有 | ユニバーサルクリップボード(Apple の端末どうし) | 機種・アプリによる |
iPhone
iPhone では、文字を長押しして範囲を選び、「コピー」をタップします。中身を一覧で見る画面は無いので、メモなどの入力欄を長押しして「ペースト」すると、いま入っているものが分かります。
iOS 16 以降では、アプリがほかのアプリでコピーされた内容を読み取ろうとすると、許可を求める表示が出ます。 Apple の開発者向けドキュメント(UIPasteControl)は、iOS 16 以降、プログラムからの貼り付けではユーザーの承認を求める表示が出ると説明しています。アプリの「ペースト」ボタンを自分で押したときは出ません。
Android(Gboard)
Android 公式サイトの解説では、Gboard(Google のキーボード)のクリップボードは、次のように使います。
1開く
文字の入力欄をタップし、キーボードの上のクリップボードのアイコンをタップ。
2オンにする
買ったときはオフ。クリップボードを開いて「クリップボードをオンにする」をタップ。
3残す
コピーした文字は1時間後に消える。残したい項目は長押しして「固定」。
4画像も入る
画像を長押しして「画像をコピーする」。設定で、最近のスクリーンショットを自動で入れることもできる。
Android Developers によると、Android 13 以降はコピーしたときに画面に確認の表示(コピーした内容のプレビュー)が出ます。Android 12 以降は、アプリがクリップボードを読んだとき「(アプリ名) pasted from your clipboard」の形の通知が出ることがあります。手順は機種・Android の版で変わることがあります。
コマンドで使う(xclip・wl-copy・pbcopy・clip の早見表)
この節では、ターミナルでクリップボードに入れる・取り出すコマンドを OS ごとに比べられます。
| OS | 入れる | 取り出す |
|---|---|---|
| Windows(cmd) | dir | clip |
(cmd には無い。PowerShell を使う) |
| Windows(PowerShell) | Set-Clipboard -Value 'x' |
Get-Clipboard |
| Mac | pbcopy |
pbpaste |
| Linux(X11) | xclip -selection clipboard |
xclip -selection clipboard -o |
| Linux(X11) | xsel --clipboard --input |
xsel --clipboard --output |
| Linux(Wayland) | wl-copy |
wl-paste |
| WSL | clip.exe |
(PowerShell の Get-Clipboard を呼ぶ) |
Linux で、入っている形式の一覧を見るときは、X11 なら xclip -selection clipboard -o -t TARGETS、Wayland なら wl-paste --list-types です。画像を入れるときは形式を書きます。
xclip -selection clipboard -t image/png -i orange.png # X11
wl-copy < orange.png # Wayland(形式は自動で判定)
ターミナルの中でのコピーは、tmux なら「コピーモード」、Vim・Neovim なら「レジスタ」という別の置き場があります。OS のクリップボードとつなぐ設定は、関連記事「tmuxの使い方|キーバインド早見表とコピペ用.tmux.conf」と、関連記事「Neovimとは|インストール・init.lua設定・lazy.nvim・LSP入門」で扱っています。
Pythonでクリップボードを読み書きする
この節では、Python からクリップボードに文字を入れる・取り出す方法と、書式つきの形式を取り出す方法が分かります。
文字だけなら、pyperclip というライブラリで、Windows・Mac・Linux の同じコードが動きます。
pip install pyperclip
import pyperclip
pyperclip.copy("Pythonからコピー")
print(repr(pyperclip.paste()))
'Pythonからコピー'
X11(xclip)と Wayland(wl-copy)の両方で同じ結果になり、X11 では xclip からも Pythonからコピー が読めました。Linux では、pyperclip は裏で xclip・xsel・wl-clipboard のどれかを呼びます。どれも無い(または画面の無いサーバーの)ときは、次のエラーになりました。
pyperclip.PyperclipException: Pyperclip could not find a copy/paste mechanism for your system. For more information, please visit https://pyperclip.readthedocs.io/en/latest/index.html#not-implemented-error
On Linux, you can run `sudo apt-get install xclip`, `sudo apt-get install xselect` (on X11) or `sudo apt-get install wl-clipboard` (on Wayland) to install a copy/paste mechanism.
text/html などの形式を取り出す(Linux)
pyperclip は文字(text/plain)だけを扱います。HTML などほかの形式は、xclip を呼んで取り出せます。前の節の表のコピーは、このコードで取り出しました。
import subprocess
def clip(target):
return subprocess.run(
["xclip", "-selection", "clipboard", "-o", "-t", target],
capture_output=True, check=True).stdout
targets = clip("TARGETS").decode().split()
print("形式:", [t for t in targets if "/" in t])
print("text/plain:", repr(clip("text/plain").decode()))
html = clip("text/html").decode()
print("text/html の先頭:", html[:60])
rows = [line.split("\t") for line in clip("text/plain").decode().splitlines()]
print("表として読む:", rows)
形式: ['chromium/x-internal-source-rfh-token', 'chromium/x-source-url', 'text/html', 'text/plain', 'text/plain;charset=utf-8']
text/plain: '\n商品\t価格\nりんご\t120\nみかん\t80'
text/html の先頭: <table id="t" style="color: rgb(0, 0, 0); font-family: "
表として読む: [[''], ['商品', '価格'], ['りんご', '120'], ['みかん', '80']]
ファイル名を types.py にすると、Python の標準ライブラリの types と名前がぶつかり、AttributeError: partially initialized module 'subprocess' has no attribute 'run' (most likely due to a circular import) で止まりました。標準ライブラリと同じ名前のファイルは避けます。
JavaScriptのClipboard APIで読み書きする(Chromiumで実行)
この節では、Web ページの JavaScript からクリップボードを読み書きする方法と、権限・HTTPS で止まるときの実際のエラーが分かります。
Web ページでは navigator.clipboard の4つのメソッドを使います。 文字だけなら writeText()・readText()、HTML や画像を含めるなら write()・read() と ClipboardItem です(MDN)。
| メソッド | すること | Chromium での条件 |
|---|---|---|
writeText(文字) |
文字を入れる | ユーザーの操作か clipboard-write の許可 |
write([ClipboardItem]) |
文字・HTML・画像をまとめて入れる | 同上 |
readText() |
文字を取り出す | clipboard-read の許可 |
read() |
全部の形式を取り出す | clipboard-read の許可 |
どれも HTTPS などの安全なページ(secure context)でしか使えません。localhost・127.0.0.1 は安全なページとして扱われます。
ボタンでコピーする
<button id="copy">コピー</button>
<script>
document.getElementById('copy').addEventListener('click', async () => {
try {
await navigator.clipboard.writeText('ボタンでコピーした文字');
document.title = 'copied';
} catch (e) { document.title = 'error: ' + e.name + ': ' + e.message; }
});
</script>
http://127.0.0.1:37900/ で開いてボタンを押すと、Linux 側の xclip から ボタンでコピーした文字 が読めました。
文字・HTML・画像の3つを1回で入れる
const png = await (await fetch('/orange.png')).blob();
await navigator.clipboard.write([
new ClipboardItem({
'text/plain': new Blob(['1,200円'], { type: 'text/plain' }),
'text/html': new Blob(['<b>1,200円</b>'], { type: 'text/html' }),
'image/png': png,
}),
]);
xclip で見ると、image/png・text/html・text/plain が並びました。read() で読み戻した結果です。
text/plain 8B | text/html 15B | image/png 133B
入れた PNG は 93 バイトでしたが、読み戻すと 133 バイトでした。 text/html も、取り出すと <html><head></head><body><b>1,200円</b></body></html> の形に包まれていました。W3C の仕様(作業草案)は、書き込むデータを安全な形に作り直してよい(sanitize)としています。入れたバイト列がそのまま読み戻せるとは限らない、という前提で扱います。
動かないときのエラー(実際の出力)
1HTTP のページ
127.0.0.1 以外の IP の http:// で開くと isSecureContext は false、navigator.clipboard は undefined。ボタンを押すと TypeError: Cannot read properties of undefined (reading 'writeText')。
2許可の無い readText()
Chromium は許可を求める表示を出して待つ。3秒たっても返ってこなかった。許可したあとは、Linux 側で入れた文字がそのまま読めた。
3execCommand('copy')
HTTP のページでも、選んだ文字を document.execCommand('copy') でコピーでき true が返った。ただし MDN は非推奨としている。
MDN によると、Firefox と Safari は clipboard-read・clipboard-write の権限に対応しておらず、読み取りのときは「ペースト」だけのメニューを出して、ユーザーが選んだら読める、という動きです。ブラウザごとの違いと、画像のコピー・動かない原因の一覧は、関連記事「JavaScriptクリップボードコピー|画像対応・動かない原因一覧」で扱っています。
copy・paste のイベントで中身を変える・受け取る
ユーザーが Ctrl+C・Ctrl+V を押したときのイベントで、入れる中身を変えたり、貼られた画像を受け取ったりできます。
document.addEventListener('copy', (e) => {
const sel = String(getSelection());
e.clipboardData.setData('text/plain', sel + '\n出典: ' + location.href);
e.clipboardData.setData('text/html', '<p>' + sel + '</p>');
e.preventDefault(); // これが無いと、ブラウザの既定のコピーになる
});
document.getElementById('drop').addEventListener('paste', (e) => {
const d = e.clipboardData;
console.log([...d.types], [...d.files].map(f => f.name + ' ' + f.type + ' ' + f.size + 'B'));
e.preventDefault();
});
コピーした text/plain:
コピーされる文章
出典: http://127.0.0.1:37900/ev.html
画像を貼り付けたとき:{"types":["Files"],"files":["image.png image/png 93B"],"text":""}
文字を貼り付けたとき:{"types":["text/plain"],"files":[],"text":"ただの文字"}
貼られた画像は clipboardData.files に File として届き、名前は image.png でした。チャットの入力欄に画像を貼れる仕組みは、この paste イベントです。
クリップボードのよくあるトラブルと直し方
この節では、「貼り付けできない」「履歴が出ない」などのトラブルの原因と直し方を一覧で探せます。
| 症状 | よくある原因 | 直し方 |
|---|---|---|
| Ctrl+V で何も貼られない | 中身が空・コピーできていない | もう一度コピーし、メモ帳などに貼って確かめる |
| 画像が貼れない | 貼る先が画像の形式を受け取れない | 画像を扱えるアプリに貼る・ファイルとして保存して添付 |
| 書式(色・太字)が付いてくる | 貼る側が text/html を選んでいる | Ctrl+Shift+V(Mac は Option+Shift+Command+V) |
| 書式が落ちる | 貼る側が文字しか扱えない | 書式を扱えるアプリに貼る |
| Win+V で履歴が出ない | 履歴がオフ・再起動で消えた | Win+V で「有効にする」。残すものはピン留め |
| 履歴に入らない | 1項目が 4 MB を超えた・形式が対象外 | 小さくする。対象はテキスト・HTML・画像 |
| ほかの PC に同期されない | 同期がオフ・アカウントが違う | 「デバイス間のクリップボードの履歴」と同じアカウント |
| iPhone で毎回確認が出る | iOS 16 以降の、ほかのアプリの内容を読むときの確認 | 内容を見て許可するか、アプリのペーストボタンを使う |
| Linux でアプリを閉じたら消えた | X では元のアプリがデータを持つ | クリップボードマネージャーを使う・閉じる前に貼る |
Web で navigator.clipboard が undefined |
HTTPS でないページ | HTTPS(開発中は localhost)で開く |
Linux のコマンドで出たエラー原文
| エラー | 意味 | 直し方 |
|---|---|---|
Error: target STRING not available |
クリップボードが空か、所有者のアプリが終わった | もう一度コピーする |
Error: target TARGETS not available |
同上(形式の一覧も返らない) | 同上 |
The compositor does not seem to implement seat, which is required for wl-clipboard to work |
入力装置(seat)の無い Wayland で動かした | 画面のある Wayland のセッションで動かす |
The compositor does not seem to support primary selection |
その Wayland が PRIMARY に対応していない | --primary を外す |
Watch mode requires a compositor that supports the wlroots data-control protocol |
wl-paste --watch に必要な仕組みが無い |
対応するコンポジター(wlroots 系など)で使う |
上の3つの Wayland のエラーは、Weston 13.0.0 の画面なしの設定と、X11 の中で動かす設定で実際に出たものです。
履歴を残すソフト(クリップボードマネージャー)
OS の機能のほかに、履歴を残す専用のソフトもあります。どれも、コピーしたもの(パスワードを含む)を残す点は同じなので、次の節の注意も合わせて読みます。
| 名前 | 対応 OS | 公式の説明 |
|---|---|---|
| Windows のクリップボード履歴 | Windows 11・10 | 25件・1件 4 MB まで、再起動で消える |
| Spotlight のクリップボード | macOS Tahoe 26 | Command+4 で開く |
| Gboard のクリップボード | Android など | 固定しない項目は1時間で消える |
| Clibor | Windows 10・11(Mac 版もある) | 無料。文字の履歴を最大 10,000 件、定型文 |
| Clipy | macOS 13 以降 | MIT ライセンスのオープンソース |
パスワードをコピーするときの注意
この節では、パスワードやカード番号をコピーしたときに、どこに残り、だれが読めるのかと、残さない方法が分かります。
クリップボードの中身は、その端末で動いているアプリから読み取れます。 この記事の確かめでも、Chromium でコピーした文字を、まったく別のプログラム(xclip・Python)がそのまま読み出せました。さらに、履歴・同期の機能がオンだと、消したつもりの後も履歴やほかの端末に残ります。
- 1パスワードはパスワード管理ソフトの自動入力を使うコピーを通さなければ、クリップボードにも履歴にも残らない
- 2コピーしたら、貼り付けた後にほかの文字をコピーし直すクリップボードに入っているのは最後の1つだけ
- 3履歴に残っていたら消すWindows は Win+V の項目の「削除」、Mac は Spotlight の「履歴を消去」
- 4共有の PC では同期をオンにしないWindows の「デバイス間のクリップボードの履歴」
- 5貼り付ける先を確かめてから貼るチャットや検索欄に貼ると、そのまま送られることがある
アプリを作る側ができること
OS に「残さないで」と伝える
Windows:ExcludeClipboardContentFromMonitorProcessing 形式を一緒に置くと、履歴にも同期にも入らない
Windows:CanIncludeInClipboardHistory・CanUploadToCloudClipboard に 0 を置くと、履歴だけ・同期だけを止められる
Android 13 以降:ClipDescription に EXTRA_IS_SENSITIVE を付けると、コピーの確認表示に中身が出ない
時間がたったら消す
パスワード管理ソフトのように、一定時間後にクリップボードを空にする
ただし、ほかの物をコピーし直していたら消さない
履歴・同期に入った分は、この方法では消えない
Windows の3つの形式は Microsoft Learn、Android の印は Android Developers の説明です。Android Developers は、パスワードやクレジットカードの情報をコピーさせるアプリは、この印を付ける必要がある、としています。
一定時間後に消す処理を、pyperclip で書いて動かしました(待ち時間は確かめのため2秒)。
import sys
import time
import pyperclip
secret = "S3cret-Pa55" # 例のための文字列
pyperclip.copy(secret)
print("コピーした:", pyperclip.paste() == secret)
time.sleep(int(sys.argv[1])) # 本番では 30〜90 秒など
if pyperclip.paste() == secret: # ほかの物をコピーしていたら消さない
pyperclip.copy("")
print("待ったあと:", repr(pyperclip.paste()))
$ python3 clear_later.py 2
コピーした: True
待ったあと: ''
よくある質問
Q. クリップボードとは簡単に言うと何ですか? A. コピーや切り取りをしたデータを、貼り付けるまで一時的に置いておく場所です。新しくコピーすると、前の中身は上書きされます。
Q. クリップボードはどこにありますか? A. パソコンやスマホのメモリの中にあり、ファイルとしては保存されていません。中身を見るには、Windows は Win+V(履歴)、Mac は Finder の「編集」>「クリップボードを表示」、スマホはメモなどに貼り付けます。
Q. クリップボードの履歴はどうやって見ますか? A. Windows は Windows ロゴ キー+V、macOS Tahoe 26 は Spotlight で Command+4、Android は Gboard のクリップボードのアイコンです。iPhone には履歴の機能はありません。
Q. クリップボードの中身を消すには? A. Windows は Win+V の「すべてクリア」か、設定の「クリップボードのデータのクリア」。Mac の Spotlight の履歴は「もっと見る」>「履歴を消去」です。今の中身だけなら、短い別の文字をコピーし直すと上書きされます。
Q. クリップボードの履歴は何件まで、いつまで残りますか? A. Windows は最大25件で、再起動すると消えます(ピン留めは残る)。Gboard は、固定しない項目が1時間で消えます。
Q. Mac にクリップボードの履歴はありますか? A. macOS Tahoe 26 の Spotlight で、クリップボードの履歴を検索できます(Command+4)。Finder の「クリップボードを表示」で見られるのは今の1件だけです。
Q. iPhone とパソコンの間でコピー&ペーストできますか? A. Mac とならユニバーサルクリップボードで使えます。同じ Apple Account、Bluetooth と Wi-Fi、Handoff がオンで、端末が近くにあることが条件です。
Q. クリップボードに画像は入りますか? A. 入ります。Windows の履歴はビットマップ(画像)に対応し、PrtScn キーでも画面の画像が入ります。この記事の確かめでも、1回のコピーに文字・HTML・PNG 画像を同時に入れられました。
Q. コピーしたのに貼り付けできないのはなぜですか? A. 中身が空、貼る先がその形式(画像など)を受け取れない、Web ページで権限や HTTPS の条件を満たしていない、などが原因です。トラブルの表で症状から探せます。
Q. クリップボードにパスワードをコピーしても安全ですか? A. 端末で動くアプリから読み取れ、履歴や同期の機能で残ることもあります。パスワード管理ソフトの自動入力を使う、貼った後にコピーし直す、履歴から消す、のいずれかで残さないようにします。
まとめ
- クリップボードは、コピー・切り取りしたデータを貼り付けるまで置いておく OS の一時置き場。基本は1つで、次のコピーで上書きされる。
- 1回のコピーで、文字・HTML・画像などの形式が同時に入る。Chromium の Ctrl+C では13種類の名前が並び、貼る側が使う形式を選んでいた。
- Windows は Win+V で履歴(25件・1件 4 MB・再起動で消える)。Mac は Finder の「クリップボードを表示」と、macOS 26 の Spotlight(Command+4)。
- iPhone は履歴なし、Android は Gboard で履歴(1時間で消える・固定できる)。Apple の端末どうしはユニバーサルクリップボード。
- Linux の X では、コピーしたアプリがデータを持つので、閉じると消えることがある。PRIMARY(選ぶだけ)と CLIPBOARD(Ctrl+C)は別。
- プログラムからは、Python なら pyperclip、Web なら navigator.clipboard(HTTPS と許可が必要)。
- パスワードは、ほかのアプリから読めて、履歴・同期にも残る。自動入力を使うか、貼った後に消す。
参考・出典
確認日はいずれも 2026年10月23日です。
- Microsoft サポート「Windows のクリップボード」:https://support.microsoft.com/ja-jp/windows/windows-%E3%81%AE%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89-c436501e-985d-1c8d-97ea-fe46ddf338c6
- Microsoft Learn「Clipboard Formats」:https://learn.microsoft.com/en-us/windows/win32/dataxchg/clipboard-formats
- Microsoft Learn「clip」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/clip
- Microsoft Learn「Get-Clipboard」:https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-clipboard
- Microsoft サポート「Copy the window or screen contents」:https://support.microsoft.com/en-US/Office/copy-the-window-or-screen-contents
- Apple サポート「Macのキーボードショートカット」:https://support.apple.com/ja-jp/102650
- Apple サポート「Macでスクリーンショットを撮る」:https://support.apple.com/ja-jp/102646
- Apple サポート「ユニバーサルクリップボードを使ってAppleデバイス間でコピー&ペーストする」:https://support.apple.com/ja-jp/102430
- Apple Mac ユーザガイド「Spotlightでクリップボードの履歴を検索する」:https://support.apple.com/ja-jp/guide/mac-help/mchl40d5b86b/26/mac/26
- Apple Mac ユーザガイド「Macでコピー&ペーストする」:https://support.apple.com/ja-jp/guide/mac-help/mchl5252f3de/mac
- Apple iPhone ユーザガイド「iPhoneでテキストを選択する/カットする/コピーする/ペーストする」:https://support.apple.com/ja-jp/guide/iphone/iph1a9cae52c/26/ios/26
- Apple Developer「UIPasteControl」:https://developer.apple.com/documentation/uikit/uipastecontrol
- Apple Developer「NSPasteboard」:https://developer.apple.com/documentation/appkit/nspasteboard
- Apple Developer「NSPasteboard.PasteboardType」:https://developer.apple.com/documentation/appkit/nspasteboard/pasteboardtype
- Android「コピペを効率化する Android スマホのクリップボード機能を活用しよう」:https://www.android.com/intl/ja_jp/articles/215
- Android Developers「Copy and paste」:https://developer.android.com/develop/ui/views/touch-and-input/copy-paste
- MDN「Clipboard API」:https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API
- W3C「Clipboard API and events」:https://www.w3.org/TR/clipboard-apis/
- web.dev「Unblocking clipboard access」:https://web.dev/articles/async-clipboard
- freedesktop.org「Clipboard Spec」:https://specifications.freedesktop.org/clipboard-spec/latest/
- GitHub「bugaevc/wl-clipboard」:https://github.com/bugaevc/wl-clipboard
- Clibor 公式サイト:https://chigusa-web.com/clibor/
- GitHub「Clipy/Clipy」:https://github.com/Clipy/Clipy
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「クリップボードとは|履歴の見方・消し方と仕組みをOS別に実例で解説」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。