顧客コードが『ABC』だったり『abc』だったり……。表記がバラバラでVLOOKUP関数がエラーになり、困ったことはありませんか?
データの表記揺れは、実務において避けては通れない課題ですね。私もかつて、膨大なデータを前に手作業で修正しようとして、途方に暮れた経験があります。
今回は、そんな悩みをわずか数行のコードで解決できる、便利なVBAテクニックをご紹介します。
基本の「大文字・小文字」変換
まずは、最も活用シーンの多い基本の変換から見ていきましょう。アルファベットの小文字を大文字に、あるいは大文字を小文字に統一する方法です。
- LCase関数:文字列をすべて「小文字」に変換します。
- UCase関数:文字列をすべて「大文字」に変換します。
例えば、入力されたIDをすべて「大文字」に統一して管理したい場合は、次のように記述します。
Sub MakeUpperCase()
Dim sampleText As String
sampleText = "Hello World"
' 大文字に変換してメッセージボックスに表示
MsgBox UCase(sampleText) ' 結果: HELLO WORLD
End Sub
これだけで、入力時にミスがあっても自動的に大文字へ揃えることができます。非常にシンプルで使い勝手の良い手法です。
実務の強力な味方「StrConv関数」
さらに現場で重宝するのが、このStrConv関数です。これを利用すれば、大文字・小文字の調整に加え、全角・半角の変換まで一括で行うことが可能になります。
「全角で入力された英数字を、一括で半角に直したい」といったケースで非常に役立ちます。
| 定数 | 値 | 意味 |
| vbUpperCase | 1 | 大文字にする |
| vbLowerCase | 2 | 小文字にする |
| vbWide | 4 | 全角にする |
| vbNarrow | 8 | 半角にする |
これらの設定を使って、選択範囲内の「全角文字」をすべて「半角」に変換するコードを作成してみましょう。
Sub ConvertToNarrow()
Dim targetCell As Range
' 選択している範囲のセルを全部「半角」にする
For Each targetCell In Selection
targetCell.Value = StrConv(targetCell.Value, vbNarrow)
Next targetCell
MsgBox "変換完了!"
End Sub
【使い方の手順】
- Excel上で、変換したいセル範囲をマウスで選択します。
- このマクロを実行します。
これだけで、選択範囲内のデータが一瞬で半角に統一されます。手作業での修正とはおさらばして、スマートに業務を効率化していきましょう!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント