最終更新日 2024-09-25

DeeplのWindowsアプリでCTRL+C+Cでコピーできない問題

根本的にCTRL+C+C を使うより、CTRL+WIN+C

を使ったほうが「大きな窓も開かないし」よいのではないか? ということを検討した方がよいです。

その上で、CTRL+C+C の方が 押しやすいという場合、

秀丸エディタでCTRL+C+Cを押してもDeepLのWindowsアプリが反応しない

原因は、秀丸のコピーが「選択範囲を解除する」という挙動であるため

DeeplのCTRL+C+Cが機能するアプリは、
CTRL+Cを押した際、選択範囲が維持される」というソフトウェアに限定されているためです。

秀丸はCTRL+Cで押した際選択範囲が維持されないため、DeepLで機能しないのです。

解決する方法は、CTRL+Cを押した際に選択範囲を維持する方法が中心で、3通りあります。

手段その①:秀丸の「『コピー』の後選択範囲を解除する」に「☑が入っているのを外す」

(コピー系の挙動を全部変えてしまう。他の多くのエディタの挙動と同じになるため、汎用性は高い)

この方法のメリットは設定が簡単という点ですが、
デメリットは、これまでと挙動が全て変わってしまうため、
秀丸の使用歴が長いほど挙動の変更に戸惑う
かもしれません。
しかし実は他のエディタと同じとなり、この挙動になれたほうが良いという側面もあります。

手段その②:CTRL+Cに割り当てられるコピーの機能だけマクロへとすり替える手段

(比較的良好であるが、「アウトプット枠でのCTRL+Cが効かなくなる」。又「DeepLの判定方法への依存が大きい」)

DeepLのCTRL+C+Cは、最初のCTRL+Cによってクリップボードにコピーされた内容と、
Ctrl+Cを押したときにクリップボードの内容が前回と同じ内容でコピーされるかどうかで判断しているため、
(要するに2回連続同じ内容がクリップボードに入っていれば、DeepLはウィンドウが出る) クリップボードに空文字を最後に挿入することで、何も選択していない状態でのCopy、即ち空文字と強引に合致させる、
という手段があります。

copy2.mac
setcompatiblemode 0x00100000;
if (getfocus() == 1) {
    if(!selecting){
        if( getclipboardinfo(0) != 0 && getclipboardinfo(1) == 0 ) {
            addclipboard "";
        }
        endmacro;
    }
    copy;
} else {
    seteventnotify 1;
}

このような copy2.mac を「マクロ登録」し、そのマクロを「CTRL+C」へとキー登録すれば、
デフォルトのCTRL+Cのコピーコマンドの挙動を維持しつつ、DeepLのCTRL+C+Cに対応できます。

この方法のメリットはCTRL+Cすらほぼ挙動が変化していないという点です。
デメリットは、DeepLの判定の実装に極端に依存しており、
少しでもDeepLの実装(コピーするべきかいなか)が変わると、使えなくなる可能性があります。

手段その③:CTRL+Cに割り当てられるコピーの機能だけマクロへとすり替える手段

(比較的良好であるが、「CTRL+Cの挙動が変化してしまう」。又、「アウトプット枠でのCTRL+Cが効かなくなる」。他の多くのエディタの挙動と同じになるため、汎用性は高い)

copy2.mac
setcompatiblemode 0x00100000; // 複数選択を有効にする
if (getfocus() == 1) {
    copy2; // 選択範囲を維持したコピー
} else {
    seteventnotify 1;
}

このような copy2.mac を「マクロ登録」し、そのマクロを「CTRL+C」へとキー登録すれば、
デフォルトのCTRL+Cのコピーコマンドの挙動が、「選択範囲を維持する」コピーコマンドへと切り替わります。

この方法のメリットはCTRL+Cの挙動だけが変化しているという点です、
デメリットはコピーの度にマクロが走ってしまうという点でしょう。