• ベストアンサー

テキストボックスに書いた複数行のテキストデ-タをコマンドボタンクリック

テキストボックスに作成したデ-タをコピ-ボタンでコピ-して、OutlookExpress などのメ-ラ-に貼り付けるようなコ-ドを書いていますが、コピ-が上手くいかない ことが多いので、下のような方法に変えようと思います。  (1)テキストデ-タを作成(記入)する  (2)コマンドボタンをクリックする  (3)自動でメモ帳が起動する  (4)メモ帳の内容に先ほどのテキストデ-タが貼り付く     (テキストボックスの内容をメモ帳で開く) このようにする方法はあるのでしょうか? shellでメモ帳を開くというのは分かるのですが、対象のファイルを どのように指定すれば良いのかが分かりません。 よろしくお願いいたします!!!

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 違う方法を。 いったん一時ファイルとして保存し、Shellでメモ帳で呼び出します。 memoPath = (メモ帳の起動ファイルのフルパス) FilePath = (一時ファイルのフルパス) fileNum = FreeFile Open FilePath For Output As #fileNum   Print #fileNum, Text1.Text Close #fileNum Shell memoPath & " " & FilePath では。

fujiyama2002
質問者

お礼

ご回答ありがとうございました。 一時ファイルを作り、それをshellで起動して 最後にkillで一時ファイルを削除するという方法にしました。    Shell memoPath & " " & FilePath  のところで ちょっと悩みましたが、なんとか完成できました。 また何かありましたら、ご助言をお願いします!

その他の回答 (2)

  • itohh
  • ベストアンサー率45% (210/459)
回答No.2

こんにちは。itohhといいます。 先を越されてしまいましたが。 アドバイスを書いてしまったのでこのまま投稿します。 No.1のかたのアドバイスにもう少しひねりを入れてみました。 ClipboardとSendKeysを組み合わせてみてください。 例。 Private Sub cmdCut_Click()   Clipboard.Clear   Clipboard.SetText txtEdit   Call Shell("c:\\winnt\\notepad.exe", vbNormalFocus)   SendKeys "^V" End Sub txtEditとは、テキストボックスの名前です。 インデントのために行の先頭に全角スペースを入れています。

fujiyama2002
質問者

お礼

ご回答ありがとうございました。 試みてはみたのですが、SendKeys の使い方がいまいち 分からなかったので、maruru01さんに教えていただいた 方法にしました。 初心者なもので、すみません。 また何かありましたら、ぜひ教えてください!

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

クリップボードを使用すれば良いのでは? ボタン_Clickイベントに Clipboard.clear Clipboard.SetText テキストボックス名.Text, vbCFText と記述しておいて、目的のところで「貼り付け」。

fujiyama2002
質問者

お礼

ご回答いただき、ありがとうございました。 クリップボードへのコピーは分かったのですが、 それを新規のメモ帳に貼り付ける方法が分からず 断念しました。 VBはまだまだ分からないことだらけで、日々悩んでます。 また質問しましたら、ぜひ教えてください。 ではでは。

関連するQ&A