ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

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起動して文字入力した
テキストファイルが作成したいのです。
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示