プロが教えるわが家の防犯対策術!

VBSで、

Dim a As String
a = InputBox("MsgBoxに表示する値を入れてください。", , "test")
MsgBox a

と文章を作って、test.vbsで保存しました。
するとエラーになります。

Dim a As Stringの部分を消すと、問題なく作動します。

もしくは、

Dim a
a = InputBox("MsgBoxに表示する値を入れてください。", , "test")
MsgBox a

でも正常に動きます。
VBSで変数の宣言はできないのでしょうか?

A 回答 (5件)

こっちの方がより面白いか。


自動型変換の便利さと危うさですね。

dim a
msgbox typename(a)
a=1
msgbox "a= " & a & " typename= " & typename(a)

a=a*100000
msgbox "a= " & a & " typename= " & typename(a)

a=a*0.1
msgbox "a= " & a & " typename= " & typename(a)

a= a & "b"
msgbox "a= " & a & " typename= " & typename(a)

a=a*1
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/20 21:21

VBSやJavaScriptはデータ型を宣言できません。


しかし、実際は数値、文字、オブジェクトの
型があります。よく痛い目に遭うのが+です。
A = X + Y
ここでXとYが数値なら期待通りなんですが、
文字だとおかしくなる。Xが"1"、Yが"2"だと
Aは"12"になります。InputBoxで数字を入力
させる場合は要注意です。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/20 21:21

無いわけでもないのですが←どっちだよ!


VBS君が「私が適宜、データ型を設定します」
だから、型宣言は止めて・・てな感じです
なので、うっかりすると・・以下のVBSをお試しを

dim a
msgbox typename(a)
a="A"
msgbox "A= " & typename(a)
msgbox a & 1
msgbox a * 1
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2012/10/20 21:21

>するとエラーになります。



今回はすぐ解決したようですが、次からは
「どんな」エラーが出るかを詳しく書いてくださると、
より早く解決するような気がします。
    • good
    • 0
この回答へのお礼

そうします。失礼しました。

お礼日時:2012/09/29 08:12

変数の宣言ができないわけではなく、型の宣言ができない、というか「型」という概念が無い



Dim a
と、変数は宣言できます。
Option Explicit
をつければ、Dim無しの変数は使えません
    • good
    • 0
この回答へのお礼

「できない」のではなく「ない」のですね。
ありがとうございました。

お礼日時:2012/09/28 21:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A