朝会発表テーマ

VBAにあってVBScriptに無い機能

1.Like演算子

VBAで、文字列を比較する際に使用する。

VBScriptで代わりになるもの
・RegExp(正規表現ライブラリ)

※正規表現ライブラリはVBAでも使用することはできますが、外部DLLを参照するかCreateObjectする必要があります

2.Option Baseステートメント

VBAで、配列の添え字の数値の最小値(0または1)を決める構文。

VBScriptで代わりになるもの
・なし(VBScriptでは配列の添え字は必ず0から始る)

3.行ラベル、GoTo文

VBAで、例外的な制御フローを行なう際に使用する構文。

VBScriptで代わりになるもの
・なし(ForやDo Loopなど通常のループ文とIf文、Exit文などを用いて同等の処理となるように開発する)

※通常、困ることは無いが、エラー処理の記述が比較的煩雑になる
VBAでのエラー処理例

Sub funcSomething()
On Error GoTo ERROR_HANDLE ' エラー発生時に「ERROR_HANDLE」ラベルの場所までジャンプ
(何か処理を行う)
EXIT_HANDLE:
Exit Sub
ERROR_HANDLE:
(エラーがあった時の処理)
Resume EXIT_HANDLE
End Sub

VBScriptでのエラー処理例

Sub funcSomething()
On Error Resume Next ' エラー発生時に次の行に進む
(何か処理を行う)

If Err.Number <> 0 Then
    (エラーがあった時の処理)
End If

'エラーの状態を元に戻す
Err.Clear
On Error Goto 0
End Sub

参考「VBA の機能で VBScript に含まれていない機能」他構造体など
http://msdn.microsoft.com/ja-jp/library/cc392401.aspx

「VBScript でのエラー処理」
https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/handling-errors-in-vbscript

コメント