![見出し画像](https://assets.st-note.com/production/uploads/images/125424117/rectangle_large_type_2_34b7ef790815ff158705cc2ca8ca7689.png?width=1200)
ExcelやGoogle スプレッドシートでセル内改行を使用しているとき、コピーすると付加される「"」を削除するKeyboard Maestroマクロ
ExcelやGoogle スプレッドシートでセル内改行を使用しているとき、コピーするとセルの先頭と末尾に「"」が付加されます。
全世界レベルで毎日、この「"」を消す作業で時間が浪費されています。そろそろ環境設定にオフる機能がついてもよいと思うのですが、そのような動きはありません。
「Excel 改行 コピー 引用符」で検索すると、たくさんの記事が出てきますが、解決策としては次のやり方が挙げられています。
VBAで対応(ただし、複数セルには非対応)
編集状態にしてからコピー
ペースト後にがんばる
これについて長年検討してきましたが、Keyboard Maestroを使って解決できそうです。
Excel、またはGoogle スプレッドシート上で、異なるキーボードショートカット(option + Cキー)でコピーしたタイミングで引用符をクリーンアップします。
そもそも引用符はどの条件で付くのか
次の3つのケースが想定されます。
![](https://assets.st-note.com/img/1703364672790-d26P3ocRtf.png?width=1200)
[A]セル内に改行があるとき
先頭と末尾に「"」が付く
"本日は晴天なり。
山路を登りながら。"
[B]セル内に改行があり、文中に「"」があるとき
先頭と末尾に「"」が付く
文中の「"」は「""」に
"コピーするとセルの先頭と末尾に「""」が付加されます。
山路を登りながら。"
[C]セル内に改行があり、セルの先頭に「"」があるとき
先頭と末尾に「"」が付く
文中の「"」は「""」に
セルの先頭の「"」は「"""」に
"""Excel""や""Google スプレッドシート""が対象です。
山路を登りながら。"
Keyboard Maestroを使った解決方法(1)Excelの場合
Excelの場合には[Filter System Clipboard with Remove Styles]アクションを通すと、上記のABCともに期待どおりに整形されます。
![](https://assets.st-note.com/img/1703393548080-tWT0q2RwrM.png?width=1200)
整形結果はクリップボードに入っていますので、そのまま、⌘ + Vでペーストできます。
Keyboard Maestroを使った解決方法(2)Excelの場合 その2
「This application Deactivates」をトリガーにすることで、Excelから別のアプリに移るタイミングで発動できます。
これだとキーボードショートカットいらずです。
![](https://assets.st-note.com/img/1705225310906-XoiUIclGmN.png?width=1200)
【注意】Excel → Google スプレッドシート、Excel → InDesignにコピー&ペーストを行うとき、必要な情報が駆け落ちてしまうのでご注意ください。
Keyboard Maestroを使った解決方法(3)Google スプレッドシートの場合
Excelと異なり、Google スプレッドシートには手間がかかります。
正規表現で検索置換
「Search and Replace Using Regular Expression」アクションを用いて、次のように設定します。
検索条件:^"
置換条件:(空白)
「^」は先頭という意味ですので、先頭の"を対象にします。
同様に次のように検索置換で末尾の"を削除します。
検索条件:"$
置換条件:(空白)
複数セルへの対応
複数セルをコピーしたときに対応できるように、(?m)を付けます。
(?m)^"
![](https://assets.st-note.com/img/1703393814227-J8r8lwu9YD.png?width=1200)
複数の「"」をひとつに
「^"」を削除したので「"""」も「""」になっています。
念のため、「"+」("が1つか、それ以上)のように検索条件を設定し、「"」で置換します。
![](https://assets.st-note.com/img/1703393836507-qc7M8nDKuT.png?width=1200)
対応するアプリケーション
新規グループを作成し、次のアプリケーションが対象になるように設定します。
Excel
Google スプレッドシートを使うブラウザー
![](https://assets.st-note.com/img/1703393875626-sa8yfCPwep.png?width=1200)
ここまでのまとめ
Excelの場合、Google スプレッドシートの場合を次のように分岐させます。
キーボードショートカット:option + Cキー(変更可能)
念のため、[Copy]アクションを入れておく
![](https://assets.st-note.com/img/1703393888110-lNY2aubCpu.png?width=1200)
例外
Excelでは、"simple"や"to go"ような場合でも引用符は残ります。
![](https://assets.st-note.com/img/1703393932461-npmKPG5Xh8.png)
一方、Google スプレッドシートの場合には削除されてしまいます。また、時間を作って考えたいと思います。
Clipboard Changed Triggerは使えないの??
クリップボードの内容が変わることをトリガー(発火条件)にする「Clipboard Changed Trigger」を使えばよさそうです。
![](https://assets.st-note.com/img/1703484429069-ua2iyG5J8T.png?width=1200)
実は「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アクションを入れて削除(空白で置換)します。
![](https://assets.st-note.com/img/1719933734470-YPAyROldv3.png?width=1200)
ダウンロード
Keyboard Maestroマクロを1つ共有します。
ここから先は
![](https://assets.st-note.com/production/uploads/images/7425662/profile_a5ee2a599e9dc5d7e0de3dfdbdf04018.jpg?fit=bounds&format=jpeg&quality=85&width=330)
DTP Transit 定期購読マガジン
マガジン限定記事やサンプルファイルをダウンロードできます。
定期マガジンを購読されるとサンプルファイルをダウンロードいただけます。 https://note.com/dtp_tranist/m/mebd7eab21ea5