vbsでできない

タグの編集
投稿者 vbのほうが  (学生) 投稿日時 2009/3/21 02:21:30
こんにちは
Vistaでメモ帳を使ってvbsを作っているのですが
次のコードがうまくいきません

randomize
Dim as
as = int(rnd*100) + 1
MsgBox "1~100までの数を入力してね"
Dim in
in = inputBox "予想は?"
if in = as then
   MsgBox "正解!"
else
   MsgBox "不正解"
end if


要するに1から100までの数を入力してあっていれば
正解と表示したいだけです。
よろしくお願いします!
投稿者 (削除されました)  () 投稿日時 2009/3/21 03:12:35
(削除されました)
投稿者 (削除されました)  () 投稿日時 2009/3/21 03:25:15
(削除されました)
投稿者 neptune  (社会人) 投稿日時 2009/3/21 03:25:23
こんにちは

どううまくいかない書きましょうね。

まずい所は2種類あるようです。
・変数に予約語を使っている。 as ,in
・in = inputBox "予想は?"
 は文法間違い。"予想は?"を()でくくらなければならない。(戻り値を返すので)

>要するに1から100までの数を入力してあっていれば
>正解と表示したいだけです。
同じ数字なんか正解するんですかね???特に1回目なんかは。
投稿者 (削除されました)  () 投稿日時 2009/3/21 03:57:44
(削除されました)
投稿者 (削除されました)  () 投稿日時 2009/3/21 04:11:46
(削除されました)
投稿者 neptune  (社会人) 投稿日時 2009/3/21 06:14:22
こんにちは

デフォルトさん>
質問者さんはVB(S)の基本文法がまだ身に付いてないようですから
どうせ書くならVBSで書いてあげた方が良いのでは?
自分は書かないのにすみません。

それと
>MsgBox("正解!")
MsgBox "正解!"
で妙に悩むかも知れません。

それと、コードをUPする時は、投稿フォームの上の方に
「投稿で使用できる特殊コードの説明。(別ウィンドウで開きます。) 」
ってのがありますから、そこを読んでタグを付けたら見易いし楽チンです。

質問者さん>
これを読んどいた方が良いです。
「VBScript のプロシージャ」
http://msdn.microsoft.com/ja-jp/library/cc392207.aspx

それと予約語ですが、どうもVBSの予約語の一覧ってのがなさそうなので、
VBで使う演算子、関数、プロパティ、メソッドなど沢山・・
その他単語は予約語と思った方が妙なバグを抱え込まずにすむと思いますよ。
投稿者 葉月  (社会人) 投稿日時 2009/3/21 14:04:06
実行時の問題も含めて、2点のエラーがあります。

①エラーの原因ですが、inputboxの入力は括弧を使って閉じなければいけません。
inputbox("予想は?")

②inputboxからの戻り値は文字列のため数値の比較はできません。
CIntを使って文字列を数値に変換する必要があります。

②に関しては、言ってる意味がわからないかも知れません。
一見、エラーが出ずに動いてしまうため性質が悪いです。
正常動作を確認したら、CIntを使わず動きを確認してください。

それから、If文で比較するときは値がわかるように記述した方が問題点を見つけやすいです。
正解!や不正解!の文章に加えて、Randomizeで取得した値も表示するといいです。

最後にサンプルコードを掲載します。
疑問点がありましたらレスをください。


'サンプルコード 
Option Explicit

Randomize

' 乱数を比較 
Dim rand
rand = int(rnd*2) + 1

MsgBox "1~2までの数を入力してね"

' チェックボックスの入力 
Dim strInput
strInput = inputbox("予想は?")

' randの値を比較 
Dim iCheck
iCheck = CInt(strInput)

If rand = iCheck Then
   MsgBox "乱数:" & rand & " " & "正解!:" & iCheck
Else
   MsgBox "乱数:" & rand & " " & "不正解!:" & iCheck
End If

投稿者 デフォルト  (社会人) 投稿日時 2009/3/21 18:29:03
neptune さんへ
>質問者さんはVB(S)の基本文法がまだ身に付いてないようですから
>どうせ書くならVBSで書いてあげた方が良いのでは?
>自分は書かないのにすみません。

VBスクリプトとは知らずに回答してしまいました。
いろいろとご指摘いただき有り難うございます。

投稿者 vbのほうが  (学生) 投稿日時 2009/3/22 17:10:24
何から何まですみません。
おかげでいろいろなことがわかりました。
普段はVBを使っているのですが、
VBSはどこのパソコンでもできるので、
少し勉強をしてみたのです。
VBSのサイトはなかなか見つからず、
勉強するのは大変そうですね。
ありがとうございました。