• ベストアンサー

VBAでメモ帳にコピペをしたいのですが…

おせわになります。 excelで、たとえば、A1~A3のセルをコピーして、メモ帳に貼り付けるというVBAを作りたいのですが、うまくいかないので、教えていただけないでしょうか。 Range("A1:A3").Select Selection.Copy a& = Shell("notepad.exe", vbNormalFocus) AppActivate ("無題 - メモ帳") …ここまでは書けてるんですが…が…

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

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

こんばんは。 本格的には、APIで書くところでしょうけれども、簡単な方法では、以下のようなものがあります。おそらく、#1 さんのご指摘のように、私も環境によってかなり違ったような記憶があります。Excelから、クリップボードに入ったものが、外に排出しないという問題だったか、前面に来ないのだっか、何かあったように思います。(APIでは可能ですが、これらをまともに書くと、ものすごいコードになってしまいます) 以下は、XP でしか試していません。 Sub TestSendText()   Dim ret As Long   ActiveSheet.Range("A1:A3").Copy   ret = Shell("Notepad.Exe", vbNormalFocus)   AppActivate ("無題 - メモ帳")   CreateObject("Wscript.Shell").SendKeys "^v" End Sub なお、リテラル値以外に「a&」という書き方は、あまりVBAではしません。間違いではありませんが。

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

その方法でやるならsendkeyでCTRL+vを送るしかないですが、 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/wsMthSendKeys.asp 通常はINPUT、OUTPUTで書き出す方法を行います。 http://officetanaka.net/excel/vba/file/file08.htm sendkeyはマシンの環境によってはタイミングが合わないことが多々あるからお勧めできる方法ではありません。他にそれしか方法がないという時のみ非常手段的に使う方法です。