例文を使って繰り返し業務を時短

【マクロ・VBA】全角を半角にするなど文字列を変換する

エクセル、マクロ、VBAでStrConv関数を使って文字列を変換する方法 VBA

StrConv関数を使用して文字列を変換する方法

VBAのStrConv関数は、文字列の変換に使用されます。この関数は、指定された変換タイプに基づいて、文字列の大文字や小文字、半角と全角の変換、およびカタカナとひらがなの変換を行うことができます。

StrConv関数:文字列の変換(構文 StrConv(string,conversion))
⇒string:変換する文字列/conversion:変換の種類を指定

Cell(2,1) = StrConv(Cells(2, 1), vbUpperCase)

<変換の種類>

  • vbUpperCase:文字列を大文字に変換
    *UCase(文字列):アルファベットの小文字を大文字に変換⇒例)UCase(Cell(2,1))
  • vbProperCase:文字列の各単語の先頭の文字を大文字に変換
  • vbLowerCase:文字列を小文字に変換
    *LCase(string):アルファベットの大文字を小文字に変換
  • vbWide:文字列内の半角文字を全角文字に変換
  • vbNarrow:文字列内の全角文字を半角文字に変換
  • vbKatakana:文字列内のひらがなをカタカナに変換
  • vbHiragana:文字列内のカタカナをひらがなに変換
  • vbUnicode:ANSI文字列をUnicode文字列に変換
  • vbFromUnicode:Unicode文字列をANSI文字列に変換

注意点として、StrConv関数は元の文字列を変更するのではなく、変換後の新しい文字列を返すことに注意してください。また、StrConv関数で変換される文字は、英数字、および一部の記号に限定されます。それ以外の文字は変換されず、そのままの状態で返されます。

全角・半角の変換

Sub 半角、全角変換()

Dim LastRow1 As Long
LastRow1 = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To LastRow1
Cells(i, 1) = StrConv(Cells(i, 1), vbWide)   '全角へ変換
'Cells(i, 1) = StrConv(Cells(i, 1), vbNarrow) '半角へ変換

Next i

MsgBox "完了"
End Sub

英数字は半角へ

Sub 英数字は半角へ()

Dim rng As Range
For Each rng In Range("A1", Range("A" & Rows.Count).End(xlUp))
    rng.Value = StrConv(rng.Value, vbNarrow + vbUpperCase)
Next

MsgBox "完了"
End Sub

コメント

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