• ベストアンサー

エクセル マクロ

エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

Sub test1()   Dim TempObject As MSForms.DataObject   Set TempObject = New MSForms.DataObject   With TempObject     .SetText Sheets("シート1").Range("A1").Formula     .PutInClipboard   End With   Set TempObject = Nothing End Sub

tee2437
質問者

お礼

簡単に出来ました、ありがとう御座いましたm(_ _)m

その他の回答 (3)

  • Kyuun
  • ベストアンサー率77% (14/18)
回答No.4

違うかもしれませんが・・・ 数式が指定してあるセルの値のみ、 クリップボードへ出力ということでしょうか? であれば Dim cb As DataObject Dim atai As String atai = Me.Cells(2, "b").Value ←コピーしたいセル Set cb = New DataObject cb.SetText (atai) ←出力したい内容 cb.PutInClipboard ←クリップボードへ出力

tee2437
質問者

お礼

参考にします、ありがとう御座いました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 #1の人も書いているから、なるべく重複は避けますが、コピーしたものを、貼り付け時に、「形式を選択して貼り付け」の「数式」の貼り付けのショートカットを作ればよいのではありませんか?私は、テキストの貼り付けのショートカットを Shift + V にしています。 コピー時に、DataObject に入れる方法がないとは言いませんが、初心者の方には分かりにくいし、この手のマクロは、おそらくは、個人用マクロブックなどに入れることになるのだろうと思います。 標準モジュール Sub Auto_Open()  Application.OnKey "+v", "PasteMacro" 'shift + V End Sub Sub PasteMacro() On Error Resume Next   If TypeName(Selection) = "Range" Then     Selection.PasteSpecial _      Paste:=xlPasteFormulas   End If End Sub

tee2437
質問者

お礼

出来ました!ありがとう御座いました。

  • papiyonys
  • ベストアンサー率30% (53/174)
回答No.1

文字列のみのコピーという意味がよくわかりませんが、たぶん、セルの書式はコピーしないで数式のみをコピーしたいということだと解釈します。 エクセルには形式を選択して貼り付ける機能があり、数式のみを貼り付けることができます。しかし、形式を選択してコピーする機能はありません。 貼り付けは任意でするとのことですので、貼り付けするときに「形式を選択して貼り付け」を右クリックで選択して、数式にチェックして実行すればできるのではないかと思います。 老婆心かもしれませんが、コピーするだけであればマクロを使うほどのどことではないと思います。何をやりたいか分かりませんが、マクロなしでもできるような気がします。

tee2437
質問者

お礼

はい、ありがとう御座いました

関連するQ&A