【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
サンプルファイル(マクロ無)
VBA道場31 サンプルファイル(マクロ無)
1 ファイル 8.15 KB
サンプルファイル(マクロ有)
VBA道場31 サンプルファイル(マクロ有)
1 ファイル 13.11 KB
解説
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
|
VBA逆引き大辞典
|