教えて!gooにおける不適切な投稿への対応について

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

gooドクター

A 回答 (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ではしません。間違いではありませんが。
    • good
    • 3

その方法でやるならsendkeyでCTRL+vを送るしかないですが、


http://msdn.microsoft.com/library/ja/default.asp …

通常はINPUT、OUTPUTで書き出す方法を行います。
http://officetanaka.net/excel/vba/file/file08.htm

sendkeyはマシンの環境によってはタイミングが合わないことが多々あるからお勧めできる方法ではありません。他にそれしか方法がないという時のみ非常手段的に使う方法です。
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング