• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピ)

エクセルマクロによるセルのコピーと改行コードの削除方法

このQ&Aのポイント
  • エクセルマクロを使用して、選択したセルをコピーするときに改行コードを削除する方法を知りたいです。
  • VBEで記述したコードを使用して、テキストエディタにコピーした値に改行コードが入ってしまいます。
  • エクセルでダブルクリックをしたときに、改行コードのないようにセルをコピーする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

セル内改行を削除して貼り付けたいなら、こんなところでいかがでしょうか。使用上の注意は参考URLをご覧下さい。Microsoft Forms 2.0 Object Libraryに参照設定要です。簡便にはUserformを挿入後、解放してしまえば、参照設定は残ります。 'http://officetanaka.net/excel/vba/tips/tips20.htm Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim buf As String, CB As New DataObject buf = Target.Value buf = Replace(buf, vbLf, "") With CB .SetText buf .PutInClipboard End With End Sub

aakkiirraajp
質問者

お礼

ありがとうございました。 最初、DataObjectでエラーがでましたが、下記URLをみて「Microsoft Forms 2.0 Object Library」を導入して解決できました。 http://www.moug.net/tech/acvba/0020034.htm >isual Basic Editorのメニューから[ツール]→[参照設定]コマンドを選択し[参照設定]ダイアログボックスで「Microsoft Forms 2.0 Object Library」にチェックを入れて、[OK]ボタンをクリックし、参照設定を行います。「参照可能なライブラリ ファイル」のリストにない場合は、[参照設定]ダイアログボックスで[参照]ボタンをクリックして「C:\WINNT(または Windows)\system32\FM20.DLL」を選択します。

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 参考URL は「クリップボードとデータのやりとりをする」です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _  Cancel As Boolean)  Dim TempObject As MSForms.DataObject  Target.Interior.ColorIndex = 37  Cancel = True  Set TempObject = New MSForms.DataObject  With TempObject   .SetText Target.Value   .PutInClipboard  End With  Set TempObject = Nothing End Sub

参考URL:
http://www.moug.net/tech/exvba/0150091.htm
aakkiirraajp
質問者

お礼

ありがとうございました。 DataObjectは便利ですね。

関連するQ&A

専門家に質問してみよう