Categories: VBA

VBA│半角と全角を変換する。最終行まで連続で変換する方法も紹介

この記事では、VBAを使ってアルファベットや数字の半角と全角を変換する方法を実際のVBAコードも含めて説明します。

例えば、文字列の比較処理をする場合や、何らかの入力元になるデータなど、半角・全角の統一性や入力規則が求められる場合があります。ひとつひとつのデータを目視して確認するのは、非現実的です。

半角と全角を変換する方法と、応用編として特定の列の最終行まで変換を繰り返すVBAコードを紹介しますので、早速、見ていきましょう。

VBA│半角から全角に変換する

この章では、ExcelのセルA1に入力されている半角の Programing という文字列を、全角の Programing という文字列に変換するVBAコードを紹介します。

変換後の文字列は、下記イメージのようにセルB1に表示することとします。

半角を全角に変換するVBAコード

Rangeプロパティ

Sub Sample()

Range(“B1”) = StrConv(Range(“A1”), vbWide)


End Sub

Cellsプロパティ

Sub Sample()

Cells(1, 2) = StrConv(Cells(1, 1), vbWide)


End Sub

VBA│全角から半角に変換する

この章では、ExcelのセルA1に入力されている全角の Programing という文字列を、半角の Programing という文字列に変換するVBAコードを紹介します。

変換後の文字列は、下記イメージのようにセルB1に表示することとします。

全角を半角に変換するVBAコード

Rangeプロパティ

Sub Sample()

Range(“B1”) = StrConv(Range(“A1”), vbNarrow)


End Sub

Cellsプロパティ

Sub Sample()

Cells(1, 2) = StrConv(Cells(1, 1), vbNarrow)


End Sub

半角・全角変換を最終行まで実行する

この章では、ExcelのA列の各セルに入力されている文字列を全角に変換し、変換後の文字列をB列に転記するVBAコードを紹介します。

なお、文字列は列の7行目まで入力されていますが、最終行はVBAで取得することとします。

半角・全角変換を最終行まで実行するVBAコード

Sub Sample()

Dim i As Long

Dim LastRow As Long
LastRow = Range(“A1”).End(xlDown).Row

For i = 1 To LastRow
Cells(i, 2) = StrConv(Cells(i, 1), vbWide)
Next i


End Sub

全角を半角に変換する場合には、上記コード内の「vbWide」「vbNarrow」に置き換えます。

このVBAコードでA列最終行までの半角の文字列がすべて全角に変換されて、B列に転記されます。なお、7行目の「C言語」のように全角の文字列(日本語)が含まれていても、特にエラーは発生しません。

半角が見つかった場合には全角に変換する」という風に理解すればよいでしょう。

Webs

元事務処理担当者として、プログラミングを活用した業務改善を推進している。プログラマ出身ではない事務職の現場目線で情報を発信。 その他、webs-studio.jpをメインに、複数のブログサイトを立ち上げており、合計で月間10万PVのメディア運営を行っている。 姉妹サイト一覧