エクセルのダブルクォーテーション問題

セルをコピーしてメモ帳などのテキストエディタに貼り付けした際に、その値が””(ダブルクォーテーション)で囲まれる場合があります。

この問題に対して原因と対策を書いていきます。

原因と挙動

原因はセル内で改行をしている為です。このセル内改行はASCIIコードの10番かな?Lfになっています。
これが存在するとエクセル(というかWindowsのクリップボード?)は、セルの値をダブルクォーテーションで囲んでしまうのです。

セル内改行の方法は編集モードの時に Alt + Enter です。

20160906-01
これをコピーしてテキストエディタに貼り付けると、

20160906-02
メモ帳の場合

 

20160906-03
秀丸エディタの場合

エディタによって挙動は違いますが、ダブルクォーテーションで囲まれるのは一緒です。
ちなみに当サイトはWordpressで作成していますが、そのエディタでも秀丸と同じような結果になりました。

対策

では対策ですが、いくつか方法があります。シーンに合わせて使いたい方法で対策してください。

  • MicrosoftWordに貼り付ける
  • エクセルの置換を使ってセル内改行を削除する(バージョンによって出来ない)
  • CLEAN関数でセル内改行を削除する
  • エディタに貼り付けた後に秀丸エディタのマクロや置換でダブルクォーテーションを消す
  • エクセルのコピー時にダイレクトにクリップボード操作するマクロ

MicrosoftWordに貼り付ける

Wordに貼り付けるとダブルクォーテーションが付きません。理由は正確には分からないのですが同Officeなので何らかの仕組みがあるのでしょう。ExcelとWordの連携機能もあるのでその関係でしょうか。

20160906-04

エクセルの置換を使ってセル内改行を削除する

※これはバージョンによって使用出来ない可能性があります。自分の環境では出来ませんでした(Excel2010)

置換の検索する文字列欄に Ctrl + J を押して(表示には何も表示されない)、置換後の文字列に任意の文字を入れる、もしくは何も入れません。

http://www.0yen-coding.com/2009/06/excel.html

ただこの方法は改行を消してしまうので、改行の見栄えをそのまま貼り付けたい場合には使えません。

CLEAN関数でセル内改行を削除する

Excelの関数にCLEAN関数というのがあります。これは印刷できない文字列を削除する関数で、ASCIIコードの0~31の32文字を消します。ここに改行コードが含まれていますので、CLEAN関数を使えばセル内改行を削除する事ができます。

https://dekiru.net/article/4497/

この方法も上記と同じく改行を消してしまうので、改行のまま貼り付けたい場合は使えません。

エディタに貼り付けた後に秀丸エディタのマクロや置換でダブルクォーテーションを消す

テキストエディタ側の機能を使う方法です。

http://www.shuiren.org/chuden/teach/hidemaru/04.htm

そのエディタを持っていないといけないので多少ハードルは上がりますかね。

エクセルのコピー時にダイレクトにクリップボード操作するマクロ

コピー時に Ctrl + C や右クリックによるコピーをしないで、マクロを使ってWindowsのクリップボード(コピーの内容を一時的に保存する機能)にダイレクトに操作する方法です。

この方法はまずVBEditorを開いて、ツールの参照設定にある Microsoft Forms 2.0 Object Library を使えるようにする必要があります。

20160906-05

そして以下のコードを使います。

これをボタン設定しても良いですし、ショートカットキーに設定しても良いでしょう。

セルを選択してこのマクロを走らせるとコピーできています。(メッセージなどは出ないですし、コピー中罫線みたいなのも出ません。)

そしてテキストエディタに貼り付けます。

20160906-06

うん、ダブルクォーテーション無いね!

これも欠点があって、アクティブセルのみコピーで、複数セルに対応してないという点ですね。
コードを改良すれば出来そうな気はします。選択セル内をクリップボードに持っていけばいいだけなので。

 

コメントをどうぞ

メールアドレスが公開されることはありません。

バーコード 無料 コピペ グラフ 標準報酬月額 目標 作業効率UP COLUMN NA() 偏差値 VLOOKUP テンプレート 検索 SUM 封筒 フロー図 XLSTART COUNTIF 履歴書 印刷 SUMIF STDEV 配列数式 図形 条件付き書式 TODAY クイズ ネットプリント ユーザー定義関数 ワイルドカード
  • 関西在住の30代サラリーマン。事務職で毎日Excelと戯れています。
    システム導入なんて資金が無い!Excelでなんとかやりたい零細中小の社長さん・事務員さんの力になればと思います。
    詳しいプロフィール


PAGE TOP ↑