あなたはデータの集計の際、全角と半角が混じっていて、重複データの削除や突合がうまくできずに困ったことはありませんか?
データの集計の際、例えば全角の「A」と半角の「A」だと同じ内容なのに、違うものとして取り扱われてしまうので、データの抜け漏れが出て間違いにつながると困りますよね。
エクセルVBAを使えば、選択した範囲を一気に半角に変換してくれます。
今回は「エクセルで選択した範囲のセルの文字を半角にそろえるマクロを作る方法」を紹介します。
エクセルで選択した範囲のセルの文字を半角にそろえるマクロを作る方法
エクセルで選択した範囲のセルの文字を半角にそろえるマクロを作る方法です。
下の画像のように、全角と半角が混じっていると、集計がうまくできません。
これを半角にそろえてみます。
マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.「新規作成」をクリック
3.コード入力画面が開く
4.コードを入力
コードを入力します。
選択した範囲を半角に変換する、という意味です。
赤枠部のコードです。
Dim selectedRange As Range
Dim cell As Range
Dim convertedText As String
Dim i As Integer
Dim charCode As Integer
‘ 選択した範囲を取得
Set selectedRange = Selection
‘ 選択した各セルに対して処理を行う
For Each cell In selectedRange
If cell.HasFormula = False Then ‘ 数式を持っていない場合に処理を実行
convertedText = “”
For i = 1 To Len(cell.Value)
charCode = AscW(Mid(cell.Value, i, 1))
If charCode >= &HFF01 And charCode <= &HFF5E Then
‘ 全角文字の場合、半角に変換
convertedText = convertedText & ChrW(charCode – &HFF00 + &H20)
Else
‘ 全角でない場合、そのまま追加
convertedText = convertedText & Mid(cell.Value, i, 1)
End If
Next i
cell.Value = convertedText ‘ 変換したテキストをセルに設定
End If
Next cell
コードを入力したら、コードの入力画面を閉じて下さい。
5.ボタンができた →範囲を選択 →ボタンをクリック
ボタンができました。
半角にしたい範囲を選択して、ボタンをクリックします。
6.半角になった
選択した範囲内の文字が半角になりました。
日付まで半角にできます。
実際の使用例
半角に統一したことで、フィルターをかけるときにも、複数選択する必要がなくなりました。
商品Bと商品Cが1つにまとまりました。
(株)と(株)など、複数表記になりがちなものも、1つにまとめられます。
これで集計が間違えにくくなりましたよね!
ちなみに、他の例では、入力文字数の削減にも使えます。
普段あまり気にしないかもしれませんが、全角は半角の2文字分のデータ量を使ってしまうことがあります。
全角で20文字まで、という上限があった場合、半角だと40文字入力できる、などです。
特定のシステムなどを使っているときに、制限ありの場合があります。
例えば、エクセルで一度作った資料を、別のシステムに入力・コピペが必要な場合で、入力文字数の制限があって、全角→半角にして文字数を節約したいときなどに、一気に半角にできると、変換の手間が大幅に減らせます。
全角→半角変換は、こうした入力文字数の削減にも一役買えますので、利用してみて下さい。
まとめ
エクセルで選択した範囲のセルの文字を半角にそろえるマクロを作る方法です。
1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック
2.新規作成をクリック
3.コードを入れる画面が出る
4.コードを入力
5.ボタンができた →範囲を選択 →ボタンをクリック
6.半角になった
これで、データをそろえるデータクレンジングができて、集計も正確にできますね!
マクロを使うのが難しい方は、マクロを使わない方法で全角にする方法を使ったらいいです。
マクロを使わないで全角に一括変換したい方は下のリンク先へどうぞ。
コメント