VBATips

改行を含んだ文字列コピー時、ダブルクォーテーションで囲まれないようにする【ExcelVBA】

エクセルのダブルクォーテーションには悩まされる場合があります。
文字列内に追加したり、両端を囲ったり。

逆に不要で削除したい場合もあります。こんな経験はないでしょうか。
セルをコピーしてテキストエディタ(メモ帳等)に貼付した際に、
値が””(ダブルクォーテーション)で囲まれたことを。

原因はセル内改行vbLFが存在した場合、セルをダブルクォーテーションで囲んでしまいます。

改行を含んだ文字列コピー時、ダブルクォーテーションで囲まれないようにするコード

単純にエクセル経由でクリップボードに格納するのではなく、マクロから直接クリップボードに格納します。

'■改行があってもダブルクォーテーションで囲まず文字列をコピーする
Public Function sample()
    With CreateObject("Forms.TextBox.1")
        .MultiLine = True
        .Text = ActiveCell
        .SelStart = 0
        .SelLength = .TextLength
        .Copy
    End With
End Function

注意点

  • 上記コードはキーボードに割り当てる事が多いかと思います。(ショートカットキー)
  • ショートカットの概念はこちらの記事を参考にしてください。
  • 動かない場合は参照設定がされていない為、こちらの記事を参考にしてください。

関連記事

コメント

タイトルとURLをコピーしました