アプリ版:「スタンプのみでお礼する」機能のリリースについて

選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピーされて、メモ帳等のテキストエディタで貼りつけるとその値が出るようにしたいと思っています。
ほとんどイメージ通りにできたのですが、テキストエディタで貼りつけた値に加えて改行が入ってしまいます。

どのようにすると改行コードを消せますか?できないのなら、どのようにすればエクセルで任意のセルをダブルクリックをしたときに改行コードのないようにコピーできますか?

参考に現在のVBEで記述したコードを示します。

-----------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
Target.Interior.ColorIndex = 37
Cancel = True
Target.Copy

End Sub

A 回答 (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
    • good
    • 0
この回答へのお礼

ありがとうございました。
最初、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」を選択します。

お礼日時:2010/04/23 00:49

 参考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
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/04/23 00:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています