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エラー】
’(’がありません。の原因と解決方法【VBScriptエラー】 [VBScript]
スポンサーリンク
外部ファイルの指定忘れ
【原因】
配列の大きさを変更するPreserveステートメントのスペルに誤りがあった
×ReDim Perserve ARY(nCNT)
○ReDim Preserve ARY(nCNT)
【解決方法】
正しいスペルに書き直す
スポンサーリンク
関連記事
型が一致しません。の原因と解決方法【VBScriptエラー】
’(’がありません。の原因と解決方法【VBScriptエラー】