2017-08-24 17 views
0

私はWord文書内のブックマークにアクセスするVBScript作成: (C:\Users\1241\Downloads\HotelDel__advance.docm) 私はこの外にアクセス可変とする:私は、コードのこの部分が欲しい別のスクリプトからVBScript以外の変数にアクセスするにはどうすればよいですか?

`Set oShell = CreateObject("WScript.Shell")` 

CreateObject("WScript.Shell").Run("""C:\Users\1241\Downloads\HotelDel__advance.docm""") WScript.Sleep (1000) WScript.CreateObject("WScript.Shell").SendKeys("%m") WScript.CreateObject("WScript.Shell").SendKeys("Beachservices") WScript.CreateObject("WScript.Shell").SendKeys("~")

をスクリプトのようになります。

`Set oShell = CreateObject("WScript.Shell") 
CreateObject("WScript.Shell").Run(""Hotel"") 
WScript.Sleep (1000) 
WScript.CreateObject("WScript.Shell").SendKeys("%m") 
WScript.CreateObject("WScript.Shell").SendKeys("Beachservices") 
WScript.CreateObject("WScript.Shell").SendKeys("~")` 

ここで、変数は変数です。

私は、この変数は、以下に等しくなるようにしたい:

`Hotel = C:\Users\1241\Downloads\HotelDel__advance.docm` 

私はこのスクリプトの外でこの変数を設定して、このスクリプト内からこの変数にアクセスできるようにすることができるようにする必要があります。言い換えれば

、私は、バットやJSやVBAまたはこの

`Hotel = C:\Users\1241\Downloads\HotelDel__advance.docm` 

変数を設定し、VBSスクリプトを作成したいので、私は私の他のスクリプトからアクセスすることができます。

この変数を他のスクリプトで使用できるようにするにはどうすればよいのですか。スクリプト内からこの変数にアクセスするにはどうすればよいですか?

私は約3ヶ月間この問題を自分で解決しており、私はそれを理解することができませんでした。何か案は?ありがとう

+0

ドキュメント変数、またはおそらくカスタムドキュメントプロパティの使用を検討しましたか? – Variatus

+0

さて、ここで私は何をしているのですか?私は顧客と電話で話しているので、スクリプトをアクティブにするプログラム可能な音声コマンドを使用しています。たとえば、私がコロナドと言うと、このスクリプトでは文書という言葉が開きます。次に、ブックマークの名前を言うと、問題のブックマークに移動するスクリプトをアクティブにします。この方法では、情報を見つけるためにマウスやスクロールを使わなくても、私が顧客の質問に答えるために探している情報を見ることができます。 –

+0

手元にある問題は、このような約100のドキュメントがあり、ブックマークにはすべて同じ名前が付いていることです。したがって、必要なドキュメントを最初に開いたときにドキュメント変数を設定できれば、ブックマークスクリプトの変数が設定されます。この方法で、何千ものブックマークスクリプトを作成するのではなく、現在のドキュメントの変数loactionにアクセスするのと同じスクリプトを使用できます。さらに、音声でプログラム可能なソフトウェアは、私は300のカスタム音声コマンドを作成することができます。 –

答えて

0

Windows変数に変数を定義することができます。たとえば、HKEY_LOCAL_MACHINE \ SOFTWARE \スコット\ホテル

あなたはホテルの変数に値を設定する処理が必要になります。

Const HKEY_LOCAL_MACHINE = &H80000002 

Dim oReg 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") 

strKeyPath = "SOFTWARE\Scott\" 
KeyPath = "SOFTWARE\Scott" 
strValueName = "Hotel" 
' strValue = "C:\Users\1241\Downloads\HotelDel__advance.docm" 
strValue =Inputbox("Hotel variable value","Scott program") 

' Create key to use 
objReg.CreateKey(HKEY_LOCAL_MACHINE, KeyPath) 
objReg.SetStringValue(HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue) 

あなたはレジストリからホテルの変数を読み取るために、あなたのコードを適応させる必要があります。

Const HKEY_LOCAL_MACHINE = &H80000002 

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") 
strKeyPath = "SOFTWARE\Scott" 
strValueName = "Hotel" 
strHotel = "" 
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strHotel 

... 

CreateObject("WScript.Shell").Run(strHotel) 
WScript.Sleep (1000) 
WScript.CreateObject("WScript.Shell").SendKeys("%m") 
WScript.CreateObject("WScript.Shell").SendKeys("Beachservices") 
WScript.CreateObject("WScript.Shell").SendKeys("~")` 
+0

Ok変数をレジストリに配置すると動作しますが、スクリプトを実行して変数を設定すると、const HKEY_LOCAL_MACHINE =&H80000002 Dim oReg oReg = GetObject( "winmgmts:{impersonationLevel = impersonate}! 。\ルート\デフォルト:StdRegProv ") strKeyPath = "SOFTWARE \スコット\" キーパス= "SOFTWARE \スコット" strValueName = "ホテル" strValueに= "C:\ユーザー1241 \ \ダウンロード\ HotelDel__advance.docm" '使用するキーを作成する objReg.CreateKey HKEY_LOCAL_MACHINE、KeyPath –

+0

objReg.SetStringValue HKEY_LOCAL_MACHINE、strKeyPath、strValueName、strValue Windowsスクリプトホストエラーが発生します。 Line 12 Char 1エラーオブジェクトが必要です: 'objReq'コード800A01A8ソース:Microsoft VBScriptランタイムエラー –

+0

ありがとう、私はレジストリに入り、 scottレジストリ..本当にありがとうございます。最後に3ヶ月後、私の頭を壁に打つと、​​私はあなたの助けを借りてそれをやりました。どうもありがとうございます。それは本当に感謝しています。 –

関連する問題