インデックスが有効範囲にありません。の原因と解決方法【VBScriptエラー】 [VBScript]
スポンサーリンク
外部ファイルでのDim宣言の忘れ
【原因】
関数を格納した外部ファイル内に、Dimで最初に宣言していない配列があったため、wsfファイルでDim宣言していてもエラーが発生した
【解決方法】
もし同じようなエラーが発生したら、外部ファイル内で同じ配列名が使われていないかを調べ、あったら外部ファイル内の配列もDim宣言してプラベート変数とする
スポンサーリンク
関連記事
インデックスが有効範囲にありません。の原因と解決方法【VBScriptエラー】
’Function’がありません。の原因と解決方法【VBScriptエラー】 [VBScript]
スポンサーリンク
End句の誤り
【原因】
Function-End Functionで囲むところ、End Subで終わっている
【解決方法】
End SubをEnd Functionに正しく書き直す
スポンサーリンク
Exit句の誤り
【原因】
Functionの中で、Exit命令の先がSubになっている
【解決方法】
Exit命令を削除するか、正しくExit Functionに書き直す
スポンサーリンク
関連記事
エンティティの参照に問題があります ? 対応する~が見つかりません。の原因と解決方法【VBScript エラー】
’Function’がありません。の原因と解決方法【VBScriptエラー】
エンティティの参照に問題があります ? 対応する~が見つかりません。の原因と解決方法【VBScript エラー】 [VBScript]
スポンサーリンク
文中に””を記述してしまった
【原因】
WSFファイル形式でVBScriptを記述する場合、で挟むが、その中に””が記述されてしまうと、そこをスクリプトの最後と認識してしまうから
例)次のような正規表現か何かでが記述してあると
elmS = repStr(emS(2),””,””)
【解決方法】
たとえダブルクォーテーションで囲んだ文字列であっても、コメントであっても、そこをスクリプトの最後と認識してしまう。そこで下記のように”script”の前にある”/”の前に”\”を追加記述する。
elmS = repStr(emS(2),”
>]+?>.+?<\/script>”,””)
スポンサーリンク
関連記事
’Case’がありません。の原因と解決方法【VBScript エラー】
エンティティの参照に問題があります ? 対応する~が見つかりません。の原因と解決方法【VBScript エラー】
’Function’がありません。の原因と解決方法【VBScriptエラー】
’Case’がありません。の原因と解決方法【VBScript エラー】 [VBScript]
スポンサーリンク
Select文でCaseの記述がない
Select文では、Select Case 条件文 と記述する必要があるが、Caseの記述を忘れ、Select 条件文と記述してしまった。
例)
Select Sgn(Num)
Case -1
MsgBox("マイナスです。")
・・
End Select
【解決方法】
Selectの後ろに、Caseを記述し正しい表記にする。
例)
Select Case Sgn(Num)
Case -1
MsgBox("マイナスです。")
・・
スポンサーリンク
関連記事
’Case’がありません。の原因と解決方法【VBScript エラー】
エンティティの参照に問題があります ? 対応する~が見つかりません。の原因と解決方法【VBScript エラー】
Subプロシージャを呼び出すときに、かっこを使うことはできません。の原因と解決方法 【VBScriptエラー】 [VBScript]
スポンサーリンク
MsgBoxで戻り値の出力設定の忘れ
【原因】
MsgBoxでボタンオプションを指定したのに、戻り値の出力を設定していなかった
例)MsgBox(msg & vbCr & msg2,0)
【解決方法】
ボタンオプションを設定した場合は、出力を設定する
Dim out
out = MsgBox(msg & vbCr & msg2,0,flName)
スポンサーリンク
Subルーチンの呼び出しでCallの記述がない
【原因】
Subルーチンを呼び出すときに、ルーチン名の前にCallをつけるのを忘れていた。
JavaScriptとの記述に慣れてしまうと、Callを付け忘れてしまうパターン
例) sortQuickASC(qNo,0,UBound(qNo))
【解決方法】
サブルーチンの前にCallをつける。
○ Call sortQuickASC(qNo,0,UBound(qNo))
スポンサーリンク
関連記事
Subプロシージャを呼び出すときに、かっこを使うことはできません。の原因と解決方法 【VBScriptエラー】
オーバーフローしました。の原因と解決方法 【VBScriptエラー】 [VBScript]
スポンサーリンク
0で除算した
【原因】
0(ゼロ)で除算した
0(ゼロ)で除算すると答えが無限大になるため
【解決方法】
If文で、割る数が0ゼロのときは、Elseで0の答えを出力するようにする
例)
If b <> 0 Then
y = a / b
Else
y = 0
End If
スポンサーリンク
関連記事
オブジェクトでサポートされていないプロパティまたはメソッドです。の原因と解決方法 【VBScriptエラー】
オーバーフローしました。の原因と解決方法 【VBScriptエラー】
オブジェクトでサポートされていないプロパティまたはメソッドです。の原因と解決方法 【VBScriptエラー】 [VBScript]
スポンサーリンク
オブジェクト名の記述誤り
【状況】
Dictionaryオブジェクトの使用でエラーが発生
【原因】
keysメソッドおよびItemsメソッドの使用で、下記の設定後に再度objDC.を付けて記述していた
例)Set objDC = CreateObject("Scripting.Dictionary")
myItem = objDC.Items
objLOG.WriteLine("ItemS:"& objDC.myItem(i))
【解決方法】
次のように正しく記述し直す
objLOG.WriteLine("ItemS:"& myItem(i))
スポンサーリンク
オブジェクト自体にItemsメソッドを使ってしまった
【原因】
SchDicObjectは内部で、ディクショナリーを使っているが、作られたobjDC自体はディクショナリーでないため、そのオブジェクトにItemsを使ってもディクショナリーのメソッドは使えない
Dim objDC
Set objDC = New SchDicObject
myItem = objDC.Items
【解決方法】
SchDicObject内で、Items用の関数を新しく書く
Property Get GetITEMS
GetITEMS = objDC.Items
End Property
【状況】
Function関数内でテキストファイルの新規作成を行い、戻り値としてそのオブジェクトを設定したところ、エラーが発生。ただし、テキストファイルは正しく作成されている。
【原因】
関数内でオブジェクトをSetで変数にセットしたが、返す値と関数の外の戻り値でもSetでオブジェクトを設定していなかった
※なおCreateFolderでは、返す値と戻り値でSetを使わなくてもエラーは発生していない
【解決方法】
関数で返す値と関数の外の戻り値で、Setでオブジェクトを設定する
<関数の外の戻り値>
Set objFL = exsFile(objFS,flPath)
Function exsFile(objFS,fl)
Set objFL = objFS.CreateTextFile(fl)
・・
Set exsFile = objFL
End Function
スポンサーリンク
関連記事
オブジェクトがありません。の原因と解決方法 【VBScriptエラー】
オブジェクトでサポートされていないプロパティまたはメソッドです。の原因と解決方法 【VBScriptエラー】
オーバーフローしました。の原因と解決方法 【VBScriptエラー】
オブジェクトがありません。の原因と解決方法 【VBScriptエラー】 [VBScript]
スポンサーリンク
Setの書き忘れ
【症状】
GetFolderメソッドで新しいフォルダを作成する際に、『オブジェクトがありません』のエラーメッセージが表示されて、フォルダが作成できない
【原因】
式を記述する際、頭の’Set’を書き忘れてしまった。
例)× objFold = objFS.GetFolder(FP)
【解決方法】
オブジェクト名の前に、’Set’を書き加える
○ Set objFold = objFS.GetFolder(FP)
スポンサーリンク
関連記事
オブジェクトがありません。の原因と解決方法 【VBScriptエラー】
オブジェクトでサポートされていないプロパティまたはメソッドです。の原因と解決方法 【VBScriptエラー】
’Next’が不正です。の原因と対応【VBScriptエラー】 [VBScript]
スポンサーリンク
Next句の書き忘れ
【原因】
For-Nextで一組のネストであるところ、For句に対してNext句がない
【解決方法】
間違えて書き加えたNext句を削除するか、For句を追加しFor-Next文を完成させる
スポンサーリンク
関連記事
’Next’が不正です。の原因と対応【VBScriptエラー】
型が一致しません。の原因と解決方法【VBScriptエラー】 [VBScript]
スポンサーリンク
外部ファイルの指定忘れ
【原因】
関数を格納している外部ファイルを読み込んでいなかった
【解決方法】
下記の行を追加し、外部ファイルを読み込む
プラベート変数の宣言忘れ
【原因】 関数内で使用するプライベート変数(配列)を、関数内で宣言するのを忘れたため、グローバル変数で宣言した変数とぶつかってしまった 【解決方法】 関数内でし忘れた変数の宣言を正しく記述するスポンサーリンク
【原因】
Dimで変数宣言して、いきなり動的に配列を変更(Preserve)しようとした
Dim dspS
ReDim Preserve dspS(UBound(priS(d)))
【解決方法】
Dimで変数宣言したあと、ReDimではPreserveせずに、配列に変更するだけとする
Dim dspS
ReDim dspS(UBound(priS(d)))
型が一致しません。の原因と解決方法【VBScriptエラー】
’(’がありません。の原因と解決方法【VBScriptエラー】
ReDimで変数をPreserveした
【原因】
Dimで変数宣言して、いきなり動的に配列を変更(Preserve)しようとした
Dim dspS
ReDim Preserve dspS(UBound(priS(d)))
【解決方法】
Dimで変数宣言したあと、ReDimではPreserveせずに、配列に変更するだけとする
Dim dspS
ReDim dspS(UBound(priS(d)))
スポンサーリンク
関連記事
型が一致しません。の原因と解決方法【VBScriptエラー】
’(’がありません。の原因と解決方法【VBScriptエラー】