Word で Ctrl+V すると色とフォントサイズが消える?データが消えたのではなく、既定の設定が変わっていた
2026-10-27
数ヶ月前、私たちは RDP Clipboard Anchor をリリースしました。リモートデスクトップ用途に特化したクリップボード履歴ツールで、RDP セッション内でコピーした内容をローカル側にキャッシュしてアンカーし、接続が切れても失われず、いつでもドラッグして取り出せます。履歴リストはこのブリッジ用途を中心に設計されています。
今年 5 月、feedback リポジトリに「クリップボード履歴をカテゴリ分けして、よく使う項目をお気に入りにしたい」という要望が届きました。カテゴリ分けとお気に入りは汎用的なクリップボード管理の需要で、RDP ブリッジツールの範囲を超えており、実際には別の製品、ローカルでの日常利用に向けたクリップボードマネージャーを指していました。私たちはこの方向で ClipLab を立ち上げました。
そしてテスト中に、この記事の主題である問題にぶつかりました。
説明のつかない現象
Word で色、フォントサイズ、太字、斜体を含むテキストをコピーし、途中でクリップボードが別の内容で上書きされてから、ClipLab の履歴からその項目を取り出して Word に貼り戻す。色とフォントサイズは消え、太字と斜体は残る。
最初の容疑者は私たち自身でした。保存時にデータの一部が欠けたか、書き戻し時に欠けたか。クリップボードマネージャーの本業は、内容をそのまま保存し、そのまま返すことで、それができないならバグです。
そこでまず、パイプライン全体のデータを確認しました。
まずデータが残っているか確認する
Windows のクリップボードは、同じ内容を複数の形式で同時に保持できます。Word がテキストをコピーするとき、十数個の形式を同時に載せます。Rich Text Format、HTML Format、プレーンテキストに加え、Embed Source、Native などの OLE ネイティブ形式の山です。
私たちは生の Win32 API(OpenClipboard / GetClipboardData)で各形式の生バイトを 1 つずつ取り出し、ハッシュを計算してアーカイブするプローブスクリプトを書き、3 段階の照合を行いました。
第 1 段階:コピー後にツールのデータベースから保存バイトを取り出し、クリップボード上の元バイトと比較。HTML Format はバイト単位で一致。
第 2 段階:クリップボードを空にして、ツールにその項目を書き戻させ、もう一度プローブで取得。ハッシュは一致、やはりバイト単位で同一。
第 3 段階:ツールを経由せず、プローブで Word の元の生バイトを直接クリップボードに戻し、Word に貼り付け。
第 3 段階でも色は消えました。データは 1 バイトも欠けていないのに、Word の貼り方は変わりません。
Word の 4 つの貼り付けオプション
データに問題はないので、次は Word の挙動を見ます。右クリック貼り付けで Word の 4 つの貼り付けオプションが現れ、1 つずつ試すと法則がはっきりします。
| 貼り付けオプション | 色/サイズ | 太字/斜体 |
|---|---|---|
| 元の形式を保持 | ✅ | ✅ |
| 配置先のテーマを使用 | ✅ | ✅ |
| 書式を統一 | ❌ | ✅ |
| テキストのみ保持 | ❌ | ❌ |
データは完全で、Word にはそのまま貼る力があります。「元の形式を保持」を明示的に選べばいいだけです。しかし普通の Ctrl+V では Word が自分で判断し、「書式を統一」を選びます。太字と斜体は残し、フォント・色・サイズ・フォントファミリーを落とす。私たちの現象と一致します。
では Word は何を根拠に既定を選んでいるのか。何度かの除外試験をしました。まずデータの角度:Word がコピー時に載せる全 16 形式(Embed Source、Native などの OLE ネイティブ形式を含む)をバイト単位で取得し、そのまま再生しても色は消える。RTF のみ、HTML のみでも同じ。次に出所の角度:クリップボードには「所有者」が記録されますが、Windows は OpenClipboard に渡されたウィンドウハンドルが誰のものか検証しません。そこで Word のメインウィンドウのハンドルを渡して全形式を再生し、GetClipboardOwner で所有者が Word 自身のウィンドウになったことを確認。普通の Ctrl+V は、それでも書式を統一でした。
途中で回り道もありました。最初は RTF に慣例の NUL 終端が欠けているのではと疑い、補って貼っても消える。ワードパッドを対照にしようとしたら Win11 では削除されていて、代わりに RTF をファイルとして保存して Word で直接開くと、書式は完全でした。
ここまでで方向は明確です。データ・出所で試せることは試し尽くし、それでも Word は一律「書式を統一」。これはデータの問題ではなく、Word が「他のプログラムから来た内容」に対して最初から持っている処理方針です。自前と外部の内容を何で区別しているのかは深追いしませんでしたが、結論には影響しません。
本体のスイッチは設定だった
この方針は、ユーザーから見える設定に落ちています。ファイル → オプション → 詳細設定 → 切り取り、コピーと貼り付け →「他のプログラムから貼り付け」。
2024 年 5 月、Word チームは Microsoft 365 公式ブログで Word 2405 のこの既定値変更を発表しました。「他のプログラムから貼り付け」が**「元の形式を保持」から「書式を統一」に変わった**、と。つまり私たちは何も設定を間違えておらず、インストールした時点からこうでした。「他のプログラム」に分類される内容、つまりサードパーティーツールが書き戻したものはすべて、Ctrl+V で無条件にダウングレードされます。
どうするか
- Word の設定を変える(推奨):ファイル → オプション → 詳細設定 → 切り取り、コピーと貼り付けで、「他のプログラムから貼り付け」を「元の形式を保持」に戻す。一度変えれば恒久対応です。これはユーザー自身の好みであって、ツールが代わりに決めるべきものではありません。
- 右クリックで貼り付け:設定を変えないなら、右クリックメニューから明示的に「元の形式を保持」を選ぶ。毎回 1 クリック余計にかかります。
- ツール側では解けないし、解くべきでもない:どのクリップボードマネージャーも既定の構成では同じダウングレードを引き起こします。データはすでにバイト単位で忠実であり、その先にあるのは Word になりすますことしかありません。それは貼り付けの強化ではなく、なりすまし攻撃です。