dポイントプレゼントキャンペーン実施中!

以下のページを参考に試してみたのですが、マクロ実行でコピーができません。
http://qiita.com/tukiyo3/items/0d50f2834fb5098b4 …

「Mirosoft Forms 2.0 Object Library」にチェックが付いていることを確認しております。

ちなみにセルE6には、改行された文章が入っています。

やりたいことは、セルの値だけコピーして、別のアプリケーションに貼付けをしたいと考えています。

改行された文章を普通にコピーをするとダブルクォーテーションが付くのでコピーした際にダブルクォーテーションを取りたいです。

それとエクセルは2010を使用しています。

質問者からの補足コメント

  • 回答ありがとうございます。
    ActiveCell.Textの部分の編集ですがやり方がわかりません。
    申し訳ありませんが、 セルE6のみをコピーするにはどうすればいいか教えていただけないでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/06/02 10:44

A 回答 (2件)

#1の回答者です。



前: If ActiveCell.Text <> "" Then
  TxtData = Replace(Trim(ActiveCell.Text), """", "")
  ↓
後: If Range("E6").Text <> "" Then
  TxtData = Replace(Trim(Range("E6").Text), """", "")
 

.Text プロパティと、.Value プロパティの違いは、ほとんどないはずですが、書式で変更されたものを優先させる場合などは、.Text プロパティになります。親オブジェクトのWorksheets(~).Range(~)がないというのは、ActiveSheet という意味です。

また、Trim関数自体は文字の前後の空白を取るためのものですから、不要とあれば、そのままなくても良いと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
試してみたのですが、なぜかコピーできませんでした。
もう少し、試してみたいと思います。

お礼日時:2015/06/02 21:24

こんにちは。



ふだん、私は、IEオブジェクトを使った方法で、クリップボードに入れていますが、ご質問のままの状態からですと、このようになりますね。「セルE6」は、"ActiveCell.Text"の部分を必要に応じて、直してください。
参照設定は不要です。

'//
Sub CopyText()
 On Error GoTo ErrHandle
 Dim objCb As Object
 Dim TxtData As String
 Const CLSID = "1C3B4210-F441-11CE-B9EA-00AA006B1A69"
 Set objCb = CreateObject("new:" & CLSID)
 If ActiveCell.Text <> "" Then
  TxtData = Replace(Trim(ActiveCell.Text), """", "")
  Call objCb.SetText(TxtData)
  Call objCb.PutInClipboard
 End If
ErrHandle:
 Set objCb = Nothing
End Sub
'///

後は、工夫してみてください。
この回答への補足あり
    • good
    • 0

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