vbsでできない への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 vbのほうが  (学生) 投稿日時 2009/3/22 17:10:24
何から何まですみません。
おかげでいろいろなことがわかりました。
普段はVBを使っているのですが、
VBSはどこのパソコンでもできるので、
少し勉強をしてみたのです。
VBSのサイトはなかなか見つからず、
勉強するのは大変そうですね。
ありがとうございました。
投稿者 デフォルト  (社会人) 投稿日時 2009/3/21 18:29:03
neptune さんへ
>質問者さんはVB(S)の基本文法がまだ身に付いてないようですから
>どうせ書くなら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

投稿者 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 04:11:46
(削除されました)
投稿者 (削除されました)  () 投稿日時 2009/3/21 03:57:44
(削除されました)
投稿者 neptune  (社会人) 投稿日時 2009/3/21 03:25:23
こんにちは

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

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

>要するに1から100までの数を入力してあっていれば
>正解と表示したいだけです。
同じ数字なんか正解するんですかね???特に1回目なんかは。
投稿者 (削除されました)  () 投稿日時 2009/3/21 03:25:15
(削除されました)
投稿者 (削除されました)  () 投稿日時 2009/3/21 03:12:35
(削除されました)
投稿者 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までの数を入力してあっていれば
正解と表示したいだけです。
よろしくお願いします!