6/30/2024

Excel。VBA。きちんと大文字の半角で入力されているかチェックしたい【uppercase letter】

Excel。VBA。きちんと大文字の半角で入力されているかチェックしたい

<Excel VBA:UCase関数・StrConv関数>

入力されているデータが、すべて大文字で、しかも半角で入力されているのかを手早くチェックしたいので、Excel VBAでプログラム文をつくってみることにしました。

大文字の半角

A2:A6にサンプルのデータを入力してあります。

正解は、A4だけが、大文字の半角で入力された「A123」です。

B4に○が表示されるようにしたプログラムです。


Sub 半角チェック()

    Dim i As Long

    Dim lastrow As Long

    Dim ck As String

    Dim mt As String

    

    lastrow = Cells(Rows.Count, "a").End(xlUp).Row


    For i = 2 To lastrow

        ck = UCase(StrConv(Cells(i, "a"), vbNarrow))

        mt = Cells(i, "a")

        

        If mt = ck Then

            Cells(i, "b") = "○"

        End If

    Next

End Sub


では、実行してみましょう。


B4だけに〇が表示されています。


では、プログラム文を確認しておきましょう。


最初は、変数宣言。

Dim i As Long For文の繰り返しでつかいます。

Dim lastrow As Long データの最大行番号を取得してFor文の繰り返しでつかいます

Dim ck As String 大文字の半角にしたデータを格納します。

Dim mt As String A列のデータを格納します。


lastrow = Cells(Rows.Count, "a").End(xlUp).Row

A列の一番下のデータの行番号を取得します。


For i = 2 To lastrow

    ck = UCase(StrConv(Cells(i, "a"), vbNarrow))

    mt = Cells(i, "a")


    If mt = ck Then

        Cells(i, "b") = "○"

    End If

Next


For文は繰り返しです。

ckには、UCase関数をつかって大文字に変換します。

StrConv関数の2番目の引数のvbNarrowで半角に変換します。


要するに、UCase+StrConvのvbNarrowで「大文字の半角」に変換することができます。

このあたいをckに代入します。

元のA列のデータをmtに代入させます。


If文をつかって、

mtとckが同じ、つまり大文字の半角ということで合致したら、○を表示させる


ということを処理しています。