- ベストアンサー
VBAでメモ帳にコピペをしたいのですが…
おせわになります。 excelで、たとえば、A1~A3のセルをコピーして、メモ帳に貼り付けるというVBAを作りたいのですが、うまくいかないので、教えていただけないでしょうか。 Range("A1:A3").Select Selection.Copy a& = Shell("notepad.exe", vbNormalFocus) AppActivate ("無題 - メモ帳") …ここまでは書けてるんですが…が…
- みんなの回答 (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)
その方法でやるなら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はマシンの環境によってはタイミングが合わないことが多々あるからお勧めできる方法ではありません。他にそれしか方法がないという時のみ非常手段的に使う方法です。