トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第29話「岬さん、ピンチ!」3/4 :Functionプロシージャのテスト

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第29話 「岬さん、ピンチ!」

Functionプロシージャのテスト

Function CnvNumeric(ByVal arg As String) As Long
    Dim i As Long
    Dim ret As String
    
    For i = 1 To Len(arg)
        If Mid(arg, i, 1) Like "[0-9]" Then
           ret = ret & Mid(arg, i, 1)
        End If
    Next i
    
    CnvNumeric = CLng(ret)
End Function

「このCnvNumericプロシージャは、引数の文字列から数値だけを抜き出して、戻り値として返す。
星、このFunctionプロシージャをテストしたいとき、どうすればいい?」
「…テストかい?
テスト用に呼び出し元のSubプロシージャを………、あ!そうか!
イミディエイトウィンドウを使って、テストすればいいんだ!!」
「ピンポーン、その通りだよ」 八木くんはカタカタ…と、イミディエイトウィンドウを次のように操作しました。

?CnvNumeric("a1s2ddd3f4g5h6j7k8l9;0")
 1234567890 
?CnvNumeric("###12***34@@@56\\78$90")
 1234567890 
?CnvNumeric(" 1  23 4 5---6 7..8+90")
 1234567890

「Functionプロシージャのテストにも使えるのか…、これはいい!
呼び出し元のプロシージャが、ブックやシートの更新をしてるとき、
わざわざテスト用の環境を用意するのは骨が折れるんだ…。
イミディエイトウィンドウなら、気が済むまでテストできるじゃないか!」
星くんの顔は、興奮で紅潮しています。
泉先輩も、興味深そうに八木くんのPCをのぞきこんでいました。

一覧にもどる