質問 |
||
| QNo.4021626 | VBSでファイルの自動保存 | |
|---|---|---|
| 質問者:tara22 |
vbs初心者です。自分なりに調べたのですが、うまくいかず、アドバスを願い致します。目的は、ファイルを自動保存したいのです。 以下のように記載して、最後にカレントデレクトリイに「test.txt」と名前をつけて保存させたいのです。よろしくお願い致します。 Set objShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 objShell.Run "notepad.exe" objShell.SendKeys "hello " objShell.SendKeys "%{F4}" objShell.SendKeys "%y" |
|
困り度:
|
||
| 質問投稿日時: 08/05/14 14:28 |
||
回答 |
|
| ANo.4 | こんにちは。 目的が『ファイルを自動保存したい』とのこと。今後複雑な操作の自動化に取り組まれた時に選択肢の一つに含めてもらえればと思い、同様の問題領域に適用可能な Windows 自動化ソフト UWSC をご紹介します。 UWSC による自動保存を指示するスクリプト dim wid1, wid2 dim waits = 0.5 wid1 = EXEC("notepad.exe") SENDSTR(wid1, "hello") SLEEP(waits) CLKITEM(wid1, "上書き保存", CLK_MENU) SLEEP(waits) wid2 = GETID("名前を付けて保存", "#32770") SENDSTR(wid2, "test.txt") SLEEP(waits) CLKITEM(wid2, "保存", CLK_BTN) SLEEP(waits) CLKITEM(GETID("名前を付けて保存", "#32770"), "はい", CLK_BTN) SLEEP(waits) SCKEY(wid1, VK_ALT, VK_F4) SLEEP(waits) |
|---|---|
| 回答者:iriyak | |
| 種類:アドバイス どんな人:経験者 自信:自信あり |
|
| 回答日時: 08/05/15 00:51 |
|
| |
| 参考URL: | http://www.uwsc.info/ |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | UWSCを早速インターネットで調べました。こんのようなツールもあるのですね。勉強してみます。ありがとうございました。 |
回答 |
|
| ANo.3 | ポイントは、 ・notepad起動時にファイル名を指定 ・appactivate(snedkeysのサンプルに書いてあるはずですが) ・作成しますか?のダイアログに、ALT-Y を回答 Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe test.txt" WScript.Sleep 1000 objShell.AppActivate "test.txt" WScript.Sleep 1000 objShell.SendKeys "%y" objShell.SendKeys "hello " objShell.SendKeys "%{F4}" objShell.SendKeys "%y" |
|---|---|
| 回答者:notnot | |
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| 回答日時: 08/05/14 15:34 |
|
| |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | ポイントに感激致しました。notepad起動時にファイル名を指定する方法は、私に取って盲点でした。利用させて頂きます。 ありがとうございました。 |
回答 |
|
| ANo.2 | それなら、VBSでのテキストファイルの扱い方を覚える方が、ずっと重要です。 SendKeysはフォーカスのあるウィンドウに行くので、狙った通りに行かないし、 多用すべきではありません。 以下、サンプル Dim FSO 'ファイルシステムオブジェクト Dim STM 'テキストストリーム '== オブジェクトをインスタンス化する Set FSO = CretaeObject("Scripting.FileSystemObject") '== ファイルを作成する Set STM = FSO.CreateTextFile("C:\〜\hoge.txt", True) '== テキストを書き込む STM.Write "Hel" '改行されない STM.WriteLine "lo" '改行される '== ファイルを閉じる STM.Close ファイルシステムオブジェクトはファイルやフォルダの削除、コピー、移動などで 使用するとても重要なオブジェクトです。 |
|---|---|
| 回答者:nda23 | |
| 種類:回答 どんな人:専門家 自信:参考意見 |
|
| 回答日時: 08/05/14 15:15 |
|
| |
| 参考URL: | http://msdn.microsoft.com/ja-jp/library/cc428022.aspx |
| この回答への補足 | この回答に補足をつける(質問者のみ) |
| この回答へのお礼 | ご回答ありがとうございました。 注釈が付きで解りやすく勉強になりました。 ファイルの操作勉強してみます。 |
回答 |
|
| ANo.1 | "hello"と書いたテキストファイルを作りたいと言うことですか? |
|---|---|
| 回答者:nda23 | |
| 種類:補足要求 どんな人:専門家 自信:参考意見 |
|
| 回答日時: 08/05/14 14:40 |
|
| |
| この回答への補足 | はい、そうなんです。 "Hello"→文字はなんでもOKなのですが Notepad起動して文字入力した テキストファイルが作成したいのです。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |