- ベストアンサー
エクセル マクロ
エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (3)
- Kyuun
- ベストアンサー率77% (14/18)
違うかもしれませんが・・・ 数式が指定してあるセルの値のみ、 クリップボードへ出力ということでしょうか? であれば Dim cb As DataObject Dim atai As String atai = Me.Cells(2, "b").Value ←コピーしたいセル Set cb = New DataObject cb.SetText (atai) ←出力したい内容 cb.PutInClipboard ←クリップボードへ出力
お礼
参考にします、ありがとう御座いました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 #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
お礼
出来ました!ありがとう御座いました。
- papiyonys
- ベストアンサー率30% (53/174)
文字列のみのコピーという意味がよくわかりませんが、たぶん、セルの書式はコピーしないで数式のみをコピーしたいということだと解釈します。 エクセルには形式を選択して貼り付ける機能があり、数式のみを貼り付けることができます。しかし、形式を選択してコピーする機能はありません。 貼り付けは任意でするとのことですので、貼り付けするときに「形式を選択して貼り付け」を右クリックで選択して、数式にチェックして実行すればできるのではないかと思います。 老婆心かもしれませんが、コピーするだけであればマクロを使うほどのどことではないと思います。何をやりたいか分かりませんが、マクロなしでもできるような気がします。
お礼
はい、ありがとう御座いました
お礼
簡単に出来ました、ありがとう御座いましたm(_ _)m