ExcelのVBA・マクロで文字列を操作する方法まとめ
ExcelのVBA・マクロで文字列を操作する方法をいくつか紹介します。
文字を入力しセルに値をセットする方法
ここでは、ExcelのVBA・マクロで文字を入力しセルに値をセットする方法を紹介します。
ExcelのVBA・マクロで文字を入力しセルに値をセットするには、inputboxを使います。
<サンプル>
Sub test30()
‘表の書式設定
Range(“A1:B1”).Interior.Color = rgbYellow
Range(“A1:B1”).Font.Color = rgbRed
Range(“A1:B1”).HorizontalAlignment = xlCenter
Range(“A1:B7”).Borders.Weight = xlThin
Range(“A1:B7”).Font.Name = “Meiryo UI”
Range(“A1:B7”).Font.Size = 12
‘表のデータ
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Dim ret As Variant
‘名前入力
Range(“A2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
ret = Application.InputBox(prompt:=”氏名を入力してください “, Type:=2)
If ret <> False Then
‘氏名をセット
ActiveCell.Offset(columnoffset:=1).Value = ret
End If
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、B列の値を1件ずつ入力していきいます。「ret = Application.InputBox(prompt:=”氏名を入力してください”, Type:=2)」で文字列型の値を1件ずつ入力していってます。
文字が入力されたかどうかを「If ret <> False Then」で判断し、retの値がfalse出ない場合に、「ActiveCell.Offset(columnoffset:=1).Value = ret」でセルに値をセットします。
ちなみにretは「Dim ret As Variant」でvariant型で宣言しています。
数値型を入力場合は、↓を参考にしてください。
>>ExcelのVBA・マクロで数値を入力しセルに値をセットする方法
文字を結合する方法
ここでは、ExcelのVBA・マクロで文字を結合する方法を紹介します。
ExcelのVBA・マクロで文字を結合するには、&使って結合します。
<サンプル>
Sub test21()
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “値”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Range(“B2”).Value = “高橋”
Range(“B3”).Value = “鈴木”
Range(“B4”).Value = “田中”
Range(“B5”).Value = “松井”
Range(“B6”).Value = “野村”
Range(“B7”).Value = “谷重”
Range(“C2:C7”).Value = 100
Range(“A1:C1”).Interior.Color = rgbYellow
Range(“A1:C1”).Font.Color = rgbRed
Range(“A1:C1”).HorizontalAlignment = xlCenter
Range(“A1:C7”).Borders.Weight = xlThin
Range(“A1:C7”).Font.Name = “Meiryo UI”
Range(“A1:C7”).Font.Size = 12
Range(“C2”).Value = “点数は” & Range(“C2”).Value & “です。”
End Sub
ここでは、「Range(“C2”).Value = “点数は” & Range(“C2”).Value & “です。”」で、C2セルの値と文字列を結合して、C2セルに代入しています。このように&を使って、セルとセルの文字やプログラム内で生成した文字列と結合することが出来ます。
小文字を大文字に変換・変更する方法
ここでは、ExcelのVBA・マクロで小文字を大文字に変換・変更する方法を紹介します。
ExcelのVBA・マクロで小文字を大文字に変換・変更するには、StrConv使います。
<サンプル>
Sub test22()
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “値”
Range(“A2”).Value = “a”
Range(“A3”).Value = “b”
Range(“A4”).Value = “c”
Range(“A5”).Value = “a”
Range(“A6”).Value = “b”
Range(“A7”).Value = “c”
Range(“B2”).Value = “高橋”
Range(“B3”).Value = “鈴木”
Range(“B4”).Value = “田中”
Range(“B5”).Value = “松井”
Range(“B6”).Value = “野村”
Range(“B7”).Value = “谷重”
Range(“C2:C7”).Value = 100
Range(“A1:C1”).Interior.Color = rgbYellow
Range(“A1:C1”).Font.Color = rgbRed
Range(“A1:C1”).HorizontalAlignment = xlCenter
Range(“A1:C7”).Borders.Weight = xlThin
Range(“A1:C7”).Font.Name = “Meiryo UI”
Range(“A1:C7”).Font.Size = 12
Range(“A2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
ActiveCell.Value = StrConv(ActiveCell.Value, vbUpperCase)
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、A列の値をA2セルからA7セルまで、空白のセルまで順に文字列を小文字から大文字に変換しています。
変換は、「StrConv(ActiveCell.Value, vbUpperCase)」で行っています。
例えば、セルA2の値だけ単体で変換したいのであれば、「Range(“A2”) = StrConv(Range(“A2”).Value, vbUpperCase)」で変換できます。
大文字を小文字に変換・変更する方法
ここでは、ExcelのVBA・マクロで大文字を小文字に変換・変更する方法を紹介します。
ExcelのVBA・マクロで大文字を小文字に変換・変更するには、StrConv使います。
<サンプル>
Sub test23()
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “値”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Range(“B2”).Value = “高橋”
Range(“B3”).Value = “鈴木”
Range(“B4”).Value = “田中”
Range(“B5”).Value = “松井”
Range(“B6”).Value = “野村”
Range(“B7”).Value = “谷重”
Range(“C2:C7”).Value = 100
Range(“A1:C1”).Interior.Color = rgbYellow
Range(“A1:C1”).Font.Color = rgbRed
Range(“A1:C1”).HorizontalAlignment = xlCenter
Range(“A1:C7”).Borders.Weight = xlThin
Range(“A1:C7”).Font.Name = “Meiryo UI”
Range(“A1:C7”).Font.Size = 12
Range(“A2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase)
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、A列の値をA2セルからA7セルまで、空白のセルまで順に文字列を大文字から小文字に変換しています。
変換は、「StrConv(ActiveCell.Value, vbLowerCase)」で行っています。
例えば、セルA2の値だけ単体で変換したいのであれば、「Range(“A2”) = StrConv(Range(“A2”).Value, vbLowerCase)」で変換できます。
ひらがなをカタカナに変換・変更する方法
ここでは、ExcelのVBA・マクロでひらがなをカタカナに変換・変更する方法を紹介します。
ExcelのVBA・マクロでひらがなをカタカナに変換・変更するには、StrConv使います。
<サンプル>
Sub test26()
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “値”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Range(“B2”).Value = “たかはし”
Range(“B3”).Value = “すずき”
Range(“B4”).Value = “たなか”
Range(“B5”).Value = “まつい”
Range(“B6”).Value = “のむら”
Range(“B7”).Value = “たにしげ”
Range(“C2:C7”).Value = “100です”
Range(“A1:C1”).Interior.Color = rgbYellow
Range(“A1:C1”).Font.Color = rgbRed
Range(“A1:C1”).HorizontalAlignment = xlCenter
Range(“A1:C7”).Borders.Weight = xlThin
Range(“A1:C7”).Font.Name = “Meiryo UI”
Range(“A1:C7”).Font.Size = 12
Range(“B2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
ActiveCell.Value = StrConv(ActiveCell.Value, vbKatakana)
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、B列の値をB2セルからB7セルまで、空白のセルまで順にひらがなからカタカナに変換しています。
変換は、「StrConv(ActiveCell.Value, vbKatakana)」で行っています。
例えば、セルB2の値だけ単体で変換したいのであれば、「Range(“B2”) = StrConv(Range(“B2”).Value, vbKatakana)」で変換できます。
カタカナをひらがなに変換・変更する方法
ここでは、ExcelのVBA・マクロでカタカナをひらがなに変換・変更する方法を紹介します。
ExcelのVBA・マクロでカタカナをひらがなに変換・変更するには、StrConv使います。
<サンプル>
Sub test25()
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “値”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Range(“B2”).Value = “タカハシ”
Range(“B3”).Value = “スズキ”
Range(“B4”).Value = “タナカ”
Range(“B5”).Value = “マツイ”
Range(“B6”).Value = “ノムラ”
Range(“B7”).Value = “タニシゲ”
Range(“C2:C7”).Value = “100です”
Range(“A1:C1”).Interior.Color = rgbYellow
Range(“A1:C1”).Font.Color = rgbRed
Range(“A1:C1”).HorizontalAlignment = xlCenter
Range(“A1:C7”).Borders.Weight = xlThin
Range(“A1:C7”).Font.Name = “Meiryo UI”
Range(“A1:C7”).Font.Size = 12
Range(“B2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
ActiveCell.Value = StrConv(ActiveCell.Value, vbHiragana)
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、B列の値をB2セルからB7セルまで、空白のセルまで順にカタカナらひらがなに変換しています。
変換は、「StrConv(ActiveCell.Value, vbHiragana)」で行っています。
例えば、セルB2の値だけ単体で変換したいのであれば、「Range(“B2”) = StrConv(Range(“B2”).Value, vbHiragana)」で変換できます。
半角文字を全角文字に変換・変更する方法
ここでは、マクロで半角文字を全角文字に変換・変更する方法を紹介します。
マクロで半角文字を全角文字に変換・変更するには、StrConv使います。
<サンプル>
Sub test24()
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “値”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Range(“B2”).Value = “高橋”
Range(“B3”).Value = “鈴木”
Range(“B4”).Value = “田中”
Range(“B5”).Value = “松井”
Range(“B6”).Value = “野村”
Range(“B7”).Value = “谷重”
Range(“C2:C7”).Value = “100です”
Range(“A1:C1”).Interior.Color = rgbYellow
Range(“A1:C1”).Font.Color = rgbRed
Range(“A1:C1”).HorizontalAlignment = xlCenter
Range(“A1:C7”).Borders.Weight = xlThin
Range(“A1:C7”).Font.Name = “Meiryo UI”
Range(“A1:C7”).Font.Size = 12
Range(“C2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
ActiveCell.Value = StrConv(ActiveCell.Value, vbWide)
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、C列の値をC2セルからC7セルまで、空白のセルまで順に半角文字から全角文字に変換しています。
変換は、「StrConv(ActiveCell.Value, vbWide)」で行っています。
例えば、セルC2の値だけ単体で変換したいのであれば、「Range(“C2”) = StrConv(Range(“C2”).Value, vbWide)」で変換できます。