変数型vbscriptを宣言するにはどうすればよいですか?[複製]
以下は、Option Explicit
セットの有無にかかわらずエラーをスローします。
という名前のファイルを作成しますdim.vbs
。
Dim a as String
次に、コマンドプロンプトで実行します。
cscript dim.vbs
Microsoft VBScriptコンパイルエラー:予期されるステートメントの終わり
Option Explicit
セットありまたはセットなしで変数型を強制する方法はありますか?
回答
vbscriptで変数タイプを宣言するにはどうすればよいですか?
できません。
- VBScriptは、静的に型付けされた変数の概念をサポートしていません。
- VBScriptは、WindowsのActiveScripting環境用のフロントエンド言語です。
- この環境は、
cscript
(コマンドライン用)およびwscript
(CMDウィンドウを表示したくない場合)によってホストされます。 - この環境は、IIS for Classic ASP
.asp
/によってもホストされて.asa
おり、以前はInternet Explorer(Internet Explorer 9より前)であり、JavaScriptエンジンの基盤でした。- 「JScript」は、ActiveScriptingでもサポートされているJavaScriptのブランド(または方言)です。VBScriptとJScriptはどちらも、両方の機能に類似点があります。
- この環境は、
- ActiveScriptingは、COMオブジェクトの操作を目的としています。
VBScriptの構文はVBAのサブセットであり、ほとんど相互に理解できVariant
ます。これは、VBAがCOMオブジェクトとして静的な型定義なしで変数を暗黙的に型指定するためです。これは、VBScriptの変数によって使用される実際の基になる型とほぼ同等です(おそらく同一です。
(内部的にはVBScriptが入力されます。そうでない場合、VBScriptでCOMを使用することはできません。予想される値のタイプに基づいてキーワードSet
とLet
キーワードを使用する必要がある方法、またはConst
特定のリテラル値タイプなどを使用するVBScriptでのみ使用できます)。
類推:あなたは乗用車の運転免許証を持っていて(VBAの書き方を知っている)、フォークリフト(VBScript)を運転することにしました-乗用車の運転方法を知っていて、コントロール/インターフェースが見えるからです乗用車の運転手としてのスキルは、フォークリフトをすぐに問題なく運転できるはずだということと同じです(ハンドル、ハンドブレーキ、運転席、スピードメーターがあります)。できませんし、できません。フォークリフトの取り扱いは大きく異なります(たとえば、後輪ステアリング、電気駆動、および多くの地域では、この理由からフォークリフトの運転手に特別なライセンスが必要です)。
そのがないVBまたはVBAで、あなたと同じようにVBS内の特定のタイプを持つ変数を宣言することができ、そこにあるあなたの変数は、あなたが望むことを、データ型が含まれていることを保証するいくつかの変換関数は。
CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr
例えば
Option Explicit
Dim x
x = "1"
WScript.Echo TypeName(x)
x = CInt("1")
WScript.Echo TypeName(x)
x = CInt(1)
WScript.Echo TypeName(x)
を生成します
String
Integer
Integer
変換できない値を変換関数に渡すと、型の不一致エラーが発生する可能性があることに注意してください。たとえば、「x9x」のような文字列は数値に変換できないため、CInt( "x9x")は実行を停止するランタイムエラーを引き起こします。