こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBSで変数の宣言はできないのですか?

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で変数の宣言はできないのでしょうか?

投稿日時 - 2012-09-28 20:27:04

QNo.7721905

困ってます

質問者が選んだベストアンサー

こっちの方がより面白いか。
自動型変換の便利さと危うさですね。

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

投稿日時 - 2012-09-28 22:07:33

お礼

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

投稿日時 - 2012-10-20 21:21:37

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

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

投稿日時 - 2012-09-28 22:07:01

お礼

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

投稿日時 - 2012-10-20 21:21:35

ANo.3

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

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

投稿日時 - 2012-09-28 21:19:30

お礼

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

投稿日時 - 2012-10-20 21:21:33

ANo.2

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

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

投稿日時 - 2012-09-28 21:19:13

お礼

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

投稿日時 - 2012-09-29 08:12:03

ANo.1

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

Dim a
と、変数は宣言できます。
Option Explicit
をつければ、Dim無しの変数は使えません

投稿日時 - 2012-09-28 20:41:51

お礼

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

投稿日時 - 2012-09-28 21:03:15

あなたにオススメの質問