- ベストアンサー
テキストボックスに書いた複数行のテキストデ-タをコマンドボタンクリック
テキストボックスに作成したデ-タをコピ-ボタンでコピ-して、OutlookExpress などのメ-ラ-に貼り付けるようなコ-ドを書いていますが、コピ-が上手くいかない ことが多いので、下のような方法に変えようと思います。 (1)テキストデ-タを作成(記入)する (2)コマンドボタンをクリックする (3)自動でメモ帳が起動する (4)メモ帳の内容に先ほどのテキストデ-タが貼り付く (テキストボックスの内容をメモ帳で開く) このようにする方法はあるのでしょうか? shellでメモ帳を開くというのは分かるのですが、対象のファイルを どのように指定すれば良いのかが分かりません。 よろしくお願いいたします!!!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 違う方法を。 いったん一時ファイルとして保存し、Shellでメモ帳で呼び出します。 memoPath = (メモ帳の起動ファイルのフルパス) FilePath = (一時ファイルのフルパス) fileNum = FreeFile Open FilePath For Output As #fileNum Print #fileNum, Text1.Text Close #fileNum Shell memoPath & " " & FilePath では。
その他の回答 (2)
- itohh
- ベストアンサー率45% (210/459)
こんにちは。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とは、テキストボックスの名前です。 インデントのために行の先頭に全角スペースを入れています。
お礼
ご回答ありがとうございました。 試みてはみたのですが、SendKeys の使い方がいまいち 分からなかったので、maruru01さんに教えていただいた 方法にしました。 初心者なもので、すみません。 また何かありましたら、ぜひ教えてください!
- bin-chan
- ベストアンサー率33% (1403/4213)
クリップボードを使用すれば良いのでは? ボタン_Clickイベントに Clipboard.clear Clipboard.SetText テキストボックス名.Text, vbCFText と記述しておいて、目的のところで「貼り付け」。
お礼
ご回答いただき、ありがとうございました。 クリップボードへのコピーは分かったのですが、 それを新規のメモ帳に貼り付ける方法が分からず 断念しました。 VBはまだまだ分からないことだらけで、日々悩んでます。 また質問しましたら、ぜひ教えてください。 ではでは。
お礼
ご回答ありがとうございました。 一時ファイルを作り、それをshellで起動して 最後にkillで一時ファイルを削除するという方法にしました。 Shell memoPath & " " & FilePath のところで ちょっと悩みましたが、なんとか完成できました。 また何かありましたら、ご助言をお願いします!