ExcelやGoogle スプレッドシートでセル内改行を使用しているとき、コピーすると付加される「"」を削除するKeyboard Maestroマクロ
ExcelやGoogle スプレッドシートでセル内改行を使用しているとき、コピーするとセルの先頭と末尾に「"」が付加されます。
全世界レベルで毎日、この「"」を消す作業で時間が浪費されています。そろそろ環境設定にオフる機能がついてもよいと思うのですが、そのような動きはありません。
「Excel 改行 コピー 引用符」で検索すると、たくさんの記事が出てきますが、解決策としては次のやり方が挙げられています。
VBAで対応(ただし、複数セルには非対応)
編集状態にしてからコピー
ペースト後にがんばる
これについて長年検討してきましたが、Keyboard Maestroを使って解決できそうです。
Excel、またはGoogle スプレッドシート上で、異なるキーボードショートカット(option + Cキー)でコピーしたタイミングで引用符をクリーンアップします。
そもそも引用符はどの条件で付くのか
次の3つのケースが想定されます。
[A]セル内に改行があるとき
先頭と末尾に「"」が付く
"本日は晴天なり。
山路を登りながら。"
[B]セル内に改行があり、文中に「"」があるとき
先頭と末尾に「"」が付く
文中の「"」は「""」に
"コピーするとセルの先頭と末尾に「""」が付加されます。
山路を登りながら。"
[C]セル内に改行があり、セルの先頭に「"」があるとき
先頭と末尾に「"」が付く
文中の「"」は「""」に
セルの先頭の「"」は「"""」に
"""Excel""や""Google スプレッドシート""が対象です。
山路を登りながら。"
Keyboard Maestroを使った解決方法(1)Excelの場合
Excelの場合には[Filter System Clipboard with Remove Styles]アクションを通すと、上記のABCともに期待どおりに整形されます。
整形結果はクリップボードに入っていますので、そのまま、⌘ + Vでペーストできます。
Keyboard Maestroを使った解決方法(2)Excelの場合 その2
「This application Deactivates」をトリガーにすることで、Excelから別のアプリに移るタイミングで発動できます。
これだとキーボードショートカットいらずです。
Keyboard Maestroを使った解決方法(3)Google スプレッドシートの場合
Excelと異なり、Google スプレッドシートには手間がかかります。
正規表現で検索置換
「Search and Replace Using Regular Expression」アクションを用いて、次のように設定します。
検索条件:^"
置換条件:(空白)
「^」は先頭という意味ですので、先頭の"を対象にします。
同様に次のように検索置換で末尾の"を削除します。
検索条件:"$
置換条件:(空白)
複数セルへの対応
複数セルをコピーしたときに対応できるように、(?m)を付けます。
(?m)^"
複数の「"」をひとつに
「^"」を削除したので「"""」も「""」になっています。
念のため、「"+」("が1つか、それ以上)のように検索条件を設定し、「"」で置換します。
対応するアプリケーション
新規グループを作成し、次のアプリケーションが対象になるように設定します。
Excel
Google スプレッドシートを使うブラウザー
ここまでのまとめ
Excel/Google スプレッドシートの場合を次のように分岐させます。
キーボードショートカット:⌘ + option + Cキー(変更可能)
例外
Excelでは、"simple"や"to go"ような場合でも引用符は残ります。
一方、Google スプレッドシートの場合には削除されてしまいます。また、時間を作って考えたいと思います。
Clipboard Changed Triggerは使えないの??
クリップボードの内容が変わることをトリガー(発火条件)にする「Clipboard Changed Trigger」を使えばよさそうです。
実は「Clipboard Changed Trigger」でトライしていて、半日ほどハマりました… 「Search and Replace Using Regular Expression」を使って検索置換すると、その度にクリップボードの内容が変わりますので、マクロがループします。
いったん変数に入れて、別のマクロでその変数をInsert Text by Pastingするという方法もありますが、マクロが2つ必要になるので却下しました。
修正版(2024年7月3日)
ExcelでURLが入っているセルを(⌘ + option + Cキーで)コピーすると、次のように冒頭に「‑____ 」が入ってしまいます。
‑____ https://dtptransit.doorkeeper.jp/events/174948
次のようにSearch and Replaceアクションを入れて削除(空白で置換)します。
ダウンロード
Keyboard Maestroマクロを1つ共有します。
ここから先は
DTP Transit 定期購読マガジン
マガジン限定記事やサンプルファイルをダウンロードできます。
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5