【VBA道場】#31 半角と全角を置換する

ExcelVBA

【VBA道場】#31 半角と全角を置換する



問題

A列の文字をB列で全角表示し、それをC列で半角表示してください。

 

完成見本

 

解答

Sub vba_doujyou_31()

Dim i As Long

'1行目から7行目まで繰り返す
For i = 1 To 7 

    'A列の文字を全角に変換してB列に転記
    Cells(i, 2) = StrConv(Cells(i, 1), vbWide)

    'B列の文字を半角に変換してC列に転記
    Cells(i, 3) = StrConv(Cells(i, 1), vbNarrow)

Next i

End Sub

サンプルファイル(マクロ無)

 

サンプルファイル(マクロ有)

 

解説

StrConv(変換する文字列,何に変換するか):指定した文字に変換する

 

今回は、半角と全角に変換する「StrConv」関数を使用しました。
StrConv関数には下記の引数を指定します。

StrConv(変換する文字列,何に変換するか)

 

今回は、変換する文字列がA列の「Windows」や「TOYOTA」で、それを全角や半角に変換しました。

何に変換するかというところは、半角や全角に変換する引数を指定してあげます。
引数は下記の通りです。

vbWide 全角に変換する
vbNarrow 半角に変換する

 

ではコードを見ていきましょう。

   ’A列の文字を全角に変換してB列に転記
    Cells(i, 2) = StrConv(Cells(i, 1), vbWide)

    

    ’B列の文字を半角に変換してC列に転記
    Cells(i, 3) = StrConv(Cells(i, 1), vbNarrow)

今回はA列の文字を全角に変換してB列へ→それを半角に変換してC列へという処理をしています。

 

まずはStrConv関数の第一引数として、A列を指定してあげます。
そして、第二引数としてB列には「vbWide」を指定し、C列には「vbNarrow」を指定しています。

 

最後に繰り返しを付け、

'1行目から7行目まで繰り返す
For i = 1 To 7

    'A列の文字を全角に変換してB列に転記
    Cells(i, 2) = StrConv(Cells(i, 1), vbWide)

    'B列の文字を半角に変換してC列に転記
    Cells(i, 3) = StrConv(Cells(i, 1), vbNarrow)

Next i

1行目から7行目まで繰り返しています。

 

おわりに

今回は文字列を全角に変換したり、半角に変換したりするStrConv関数を学習しました!
これが使えるようになると、書体をそろえたり、エラー処理に使うことができます!

しっかりマスターしましょう。

今日はここまで!

 

おすすめ参考書

Amazon

たった1秒で仕事が片付くExcel自動化の教科書

いちばんやさしいExcelVBAの教本

ExcelVBA逆引き辞典 パーフェクト

楽天

いちばんやさしいExcelVBA

 

 

すらすら読めるExcelVBA

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました