2017-03-06 9 views
0

Wordを開いてテキストを入力するVBScriptを作成しようとしています。Microsoft Wordを開き、SendKeysでテキストを入力します。

マイコード:あなたが実際に最初の場所でプログラムを開始していない限り

::Set wshshell = WScript.CreateObject("WScript.Shell") 
::Set objShell = CreateObject("WScript.Shell") 
::objShell.AppActivate "word" 
::userProfilePath = objShell.ExpandEnvironmentStrings("%UserProfile%") 
::WScript.Sleep 10000 
::wshshell.SendKeys "Hello World!" 
+0

問題点は何ですか?あなたの質問は、あなたが求めているものは不明です。 – canadiancreed

+0

@canadiancreed Microsoft Wordが開かれていません –

答えて

0

おそらく、驚くほど、あなたは、Wordと対話することはできません。 documentedとして、AppActivateメソッドは、アプリケーションウインドウをアクティブ化する、すなわち、既に実行中のアプリケーションのウインドウをフォアグラウンドにもたらす。あなたはopenこのような文書はでき

Set wd = CreateObject("Word.Application") 
wd.Visible = True 

Set doc = wd.Documents.Add 

Set doc = wd.Documents.Open("C:\path\to\your.docx") 

またはこのようなnewドキュメントを作成

は、Wordがプログラムによってこのようなものを使用開始するにはテキストは、例えばを介して入力することができます。方法:

doc.Selection.TypeText "some text" 

Saveこのような文書:

doc.Save 
doc.Close 

またはlikethis(それは新しいドキュメントだか別の名前/パスの下にそれを保存したい場合):

doc.SaveAs "C:\path\to\new.docx", 16 
doc.Close 

Exitこのようなアプリケーションから:

wd.Quit 

do SendKeysを使用してください。 EVER。あなたがガンポイントを余儀なくされている場合を除きます。

その他NOT同じファイルに異なる言語(バッチやVBScriptなど)を混在させたFrankenscriptを作成します。それはデバッグとメンテナンスのためのリアの痛みです。

+0

@アドバイスありがとう –

関連する問題