VBA100本ノック 24本目:全角英数のみ半角

こちらで公開されている、100本ノックに挑戦。
www.excel-ubara.com
素晴らしい教材を公開いただき、ありがとうございます。

上記リンク先から、問題文を転載。
f:id:Infoment:20220227150506p:plain

文字列を一文字ずつ判定して、半角や大文字に直していく。
参照設定を使わないで済むよう、今回はLike演算子でやってみよう。

Function VBA_100Knock_024(source As Variant) As String
    Dim i As Long
    ' 文字を一文字ずつ格納するための配列。
    Dim arr() As Variant
    ReDim arr(1 To Len(CStr(source)))
    Dim temp As String
        For i = 1 To UBound(arr)
            arr(i) = Mid(source, i, 1)
            ' 半角大文字に変換できたものは、変換すべきものと判定する。
            temp = StrConv(arr(i), vbNarrow + vbUpperCase)
            If temp Like "[A-Z0-9]" Then
                arr(i) = temp
            End If
        Next
        
        VBA_100Knock_024 = Join(arr, vbNullString)
End Function

f:id:Infoment:20220227151704p:plain

※冒頭リンク先の解答例および解説も、ぜひご一読ください。

参考まで。