VBA関数について

VBAで使う関数って何?よくわかんない!



関数は実務でもたくさん使うんだ!一つずつ覚えていこうね!
関数は決まった計算や処理を行う命令になります。実務を行う上でも関数はよく使います。
マクロ記録機能では関数は記録されないため、一つずつ覚えていきましょう。
今日も文字列を操作する関数の動きを勉強しましょう。



今日使う実例はこちらになります
Sub MOJIRETSU2()
Dim Moji As String
Dim KoMoji As String
Moji = "ABCDEFGHIJ"
KoMoji = "abcdefghij"
MsgBox Len(Moji)
MsgBox LCase(Moji)
MsgBox UCase(KoMoji)
End Sub
Len関数
Len関数は引数に指定した文字列の長さ(文字数)を返します。半角文字と全角文字は区別しません。
Len関数の書式は下記になります。
Len(文字列)
実例は変数Moji “ABCDEFGHIJ”を引数に指定することで、文字数10が返ってきます。
MsgBox Len(Moji)


Len関数の引数に直接数値を指定するとエラーになるため注意しましょう。


LCase関数
LCase関数は引数に指定したアルファベットを小文字にします。
LCase関数の書式は下記になります。
LCase(文字列)
実例は変数Moji “ABCDEFGHIJ”を引数に指定することで、小文字となった”abcdefghij”を返しています。
MsgBox LCase(Moji)


UCase関数
UCase関数は引数に指定したアルファベットを大文字にします。
UCase関数の書式は下記になります。
UCase(文字列)
実例は変数KoMoji “abcdefghij”を引数に指定することで、大文字となった”ABCDEFGHIJ”を返しています。
MsgBox UCase(KoMoji)


おまけ
UCase関数を使った具体的な例を一つ示したいと思います。
例えば、下記A1セルとA2セルにそれぞれ値があるとします。
大文字と小文字を区別したくないときでもそのままIf文で比較すると同じ値とみなされません。


If Cells(1,1) = Cells(2,1) then
MsgBox "A1セルとA2セルは同じです"
End If
上記If文はTrueと判定されずMsgBoxは処理されず、空振りに終わります。
そこで下記のようにUCase関数を使い大文字に変換した上で比較することで無事に大文字と小文字を区別せずに判定することができます。
If Ucase(Cells(1,1)) = UCase(Cells(2,1)) then
MsgBox "A1セルとA2セルは同じです"
End If


まとめ
今日は文字列操作関数の基本となるLen,LCase,UCase関数の用法を勉強しました。
次回は他の文字列操作関数も学んでいきましょう。
コメント