GetFileVersionで環境変数を宣言するには?


つつき  2004-03-17 19:53:51  No: 112422  IP: [192.*.*.*]

以下のvbsを実行すると、「この変数は宣言されていません。:objFSO」
とエラーがでています。
この変数は二行目で宣言しているつもりですが、初心者でどこが悪いか判断できず、お手上げ状態です。
よろしくご指導ください。

---------------------------------------------------------
Option Explicit
set objFSO = CreateObject("Scripting.FileSystemObject")

fv1 = objFSO.GetFileVersion("C:\Program Files\Microsoft Office\Office10\OUTLOOK.EXE")
if fv1 = "10.0.5709.0" then
msgbox "プログラム実行済みです"
else
oshell.run ("プログラムのパス")
end if
---------------------------------------------------------

編集 削除
いな  2004-03-17 20:39:30  No: 112423  IP: [192.*.*.*]

2行目はsetしているだけで宣言はしていません。

ということで、

Dim objFSO AS Objectというような宣言が必要です。

編集 削除
魔界の仮面弁士  2004-03-17 21:45:13  No: 112424  IP: [192.*.*.*]

>> 「この変数は宣言されていません。:objFSO」
先頭に『Option Explicit』と書いた場合は、変数を使用する前に、
Dim/Private/Publicステートメントのいずれかを使って、
その変数を宣言しておく必要があります。

>> この変数は二行目で宣言しているつもりですが
Setステートメントは、オブジェクトの代入時に使用する
ステートメントです。変数宣言を行うための物ではありません。

> Dim objFSO AS Objectというような宣言が必要です。

正しくは、
  Dim objFSO
ですね。

編集 削除
つつき  2004-03-18 10:47:46  No: 112425  IP: [192.*.*.*]

いなさん、魔界の仮面弁士さんありがとうございます。

バージョンを比較して実行できるようになりましたが、実行されたプログラムをキャンセルした場合、次から実行できなくなります。
一行目にtempを初期化(temp = "")を入れたりもしましたが、駄目でした。
現在の状態は以下のとおりです。
よろしくお願いします。
-----------------------------------------------
Dim fso, temp, oShell
Set fso = CreateObject("Scripting.FileSystemObject")
temp = fso.GetFileVersion("c:\\Program Files\Microsoft Office\Office10\OUTLOOK.EXE")
If temp = "10.0.5709.01" Then
Else
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run("プログラムのパス")
End If
-----------------------------------------------

編集 削除
いな  2004-03-18 12:00:00  No: 112426  IP: [192.*.*.*]

んと、次から実行されないのは、

バージョンを比較して実行したプログラム?
それとも、
上記のソースコード?

Set fso =Nothing
Set oShell =Nothing
してみるといいとかなのかなぁ〜

編集 削除