Excel VBA で全角英数を半角英数に変換する
こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。
この記事の目次
目的
Excel でデータベースの様な資料を作成していた時、急いで作っていた事もあって、英数文字が全角と半角の混合状態になってしまいました。
かっこ悪いし、何より私自身が気持ち悪くて仕方ない。
そこで、 VBA でサクッと最後に修正してやろうと思って全角英数文字を半角英数文字に変換する VBA を作成します。
関数
ソースコード
全角英数文字を半角英数文字に変換したいシートを表示させている状態でマクロを起動すると、全角英数文字を半角英数文字に変換されます。
Sub 全角英数2半角英数()
' 使用済みレンジの取得
Set rng使用済 = ThisWorkbook.ActiveSheet.UsedRange
' 全角英数を半角英数に変換する
For Each セル In rng使用済
' 文字列取得
調査対象 = セル.Value
' セルが空では無いなら
If Len(調査対象) > 0 Then
' 調査対象を1文字ずつ調べていく
返却文字列 = ""
For i = 1 To Len(調査対象)
' 文字の抽出
文字 = Mid(調査対象, i, 1)
' 全角英数なら
If ("0" <= 文字 And 文字 <= "9") Or ("A" <= 文字 And 文字 <= "Z") Or ("a" <= 文字 And 文字 <= "z") Then
If 返却文字列 = "" Then
返却文字列 = StrConv(文字, vbNarrow)
Else
返却文字列 = 返却文字列 & StrConv(文字, vbNarrow)
End If
' 全角英数以外なら
Else
返却文字列 = 返却文字列 & 文字
End If
Next i
セル.Value = 返却文字列
End If
Next
' サブルーチン完了
MsgBox "全角英数2半角英数が完了しました。"
End Sub
使い方
全角英数文字を入力した Excel を図1に示します。また、マクロを選択・実行する状態の Excel を図2に示します。
最後にマクロを実行して全角英数文字が半角英数文字に変換された状態の Excel を図3に示します。
コメント
このマクロがあれば Excel で全角英数と半角英数を気にする必要がなくなります。
よりスピード重視の資料作成が出来そうです。
以上