ExcelでCONCAT関数とCHAR(10)などの改行コードを使って文字列を結合すると、コピーしてメモ帳などの外部アプリに貼り付けた際に、文字列全体がダブルクォーテーションで囲まれてしまうことがあります。この現象は、Excelが改行を含む文字列をCSVやテキスト形式に変換する際の仕様によるものです。
原因の理解
Excelは改行を含むセルの内容をコピーすると、セル内の改行を保持するために文字列全体を””で囲む仕様になっています。これにより、メモ帳に貼り付けた際に余計なダブルクォーテーションが表示されます。
回避方法1:コピー先の形式を工夫
コピーする際に、直接メモ帳に貼り付けるのではなく、まずExcelでセルを選択し、値のみとしてコピーする方法を試してください。たとえば、別セルに=CONCAT(…)の結果をコピーし、右クリック→『値として貼り付け』を選択すると、ダブルクォーテーションがつかずに貼り付けられます。
回避方法2:SUBSTITUTE関数を使用して改行を一時置換
CHAR(10)で改行している場合、コピー用に一時的に他の文字(例:|)に置き換え、貼り付け後にメモ帳で置換する方法も有効です。例:=SUBSTITUTE(CONCAT(A1,CHAR(10),B1),CHAR(10),”|”)
回避方法3:VBAでクリップボードにコピー
VBAを使用して、改行を含む文字列を直接クリップボードに書き込み、ダブルクォーテーションなしで貼り付けることも可能です。簡単なマクロを作成すれば、手動で置換せずにコピーできます。
まとめ
ExcelのCONCAT関数とCHAR関数で改行を含む文字列をコピーすると、ダブルクォーテーションが付くのは仕様によるものです。回避するには、値のみコピー、SUBSTITUTE関数で改行置換、またはVBAを使用する方法があります。使用シーンに合わせてこれらの方法を選択すると、余計なダブルクォーテーションを避けることができます。


コメント