なぜそれが起こっているのか混乱しているので、誰かが以下のコードをデバッグするのを手伝ってくれることを願っています.
ユーザーがサーバー/PC にログオンしたときに実行されるかなり単純な VBScript があり、Active Directory の詳細に基づいていくつかの署名を作成します。新しい署名を作成するときに物事を少し簡単にするために、署名作成の各セクションを関数に移動することにしました。
私が問題を抱えている機能は次のとおりです。
'Function to add job title and company
Function AddTitle
objSelection.Font.Name = "Calibri"
objSelection.Font.Bold = False
objSelection.Font.Italic = False
objSelection.Font.Size = "11"
objSelection.Font.Color = RGB(0,0,0)
If(strTitle) Then
objSelection.TypeText strTitle & Chr(11)
End If
objSelection.TypeText strCompany & Chr (11)
End Function
さて、後で使用して関数を呼び出すとき:
'Add job title and company
AddTitle
If ステートメント内のセクションは無視されます。一部の変数は、関数内で機能するようにグローバルに定義する必要があることを知っています。strTitle は、スクリプトの先頭で確実に定義されています。
if ステートメントから取り出された場合、if ステートメント内のセクションが正しく機能するため、完全に明らかな何かが欠けていますか。同様に、if ステートメントをスクリプト インラインに追加して関数から取り出すと、正しく動作します。
関数から実行する場合のみです。