Excel

【Excel】VBAマクロで文字列を数値に変換(一括、列方向、範囲指定、三桁ごとにカンマ入りの金額に【Val関数、Replace関数】

当サイトでは記事内に広告を含みます

この記事ではExcelのVBAマクロを使って、文字列を数値に変換する方法について解説していきます。

ポイントとしてはVal関数、Replace関数を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロで文字列を数値に列方向に一括変換する方法【A列、セルに上書き【Val関数】

それではまず、VBAマクロで文字列を数値に列方向に一括変換する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub Henkan_A_Retsu()
    Dim LastRow As Long
    Dim i As Long
    Dim mojiretu As String
    Dim suuchi As Double

    With ThisWorkbook.Sheets("Sheet1")
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 1 To LastRow
            mojiretu = .Cells(i, 1).Value
            suuchi = Val(mojiretu)
            .Cells(i, 1).Value = suuchi
        Next i
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面でHenkan_A_Retsu関数を実行します。

このコードでは、Sheet1のA列にある文字列を数値に変換して上書きしています。Val関数を使用して、文字列を数値に変換しています。

VBAマクロで文字列を数値に列方向に一括変換する方法【B列に変換したものを表示させる、三桁ごとのカンマ入りにする【Replace関数】

続いては、VBAマクロで文字列を数値に列方向に一括変換し、B列に変換したものを表示させる方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub Henkan_B_Retsu_Kanma()
    Dim LastRow As Long
    Dim i As Long
    Dim mojiretu As String
    Dim suuchi As Double
    Dim kanmaSuuchi As String

    With ThisWorkbook.Sheets("Sheet1")
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 1 To LastRow
            mojiretu = .Cells(i, 1).Value
            suuchi = Val(Replace(mojiretu, ",", ""))
            kanmaSuuchi = Format(suuchi, "#,##0")
            .Cells(i, 2).Value = kanmaSuuchi
        Next i
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面でHenkan_B_Retsu_Kanma関数を実行します。

このコードでは、Sheet1のA列にある文字列を数値に変換し、その数値を三桁ごとにカンマで区切った形でB列に表示しています。

VBAマクロで文字列を数値に範囲指定で一括変換する方法【Val関数】

続いては、VBAマクロで文字列を数値に範囲指定で一括変換する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub Henkan_Hani()
    Dim RangeStart As Long
    Dim RangeEnd As Long
    Dim i As Long
    Dim mojiretu As String
    Dim suuchi As Double

    RangeStart = 2 '開始行
    RangeEnd = 10 '終了行

    With ThisWorkbook.Sheets("Sheet1")
        For i = RangeStart To RangeEnd
            mojiretu = .Cells(i, 1).Value
            suuchi = Val(mojiretu)
            .Cells(i, 1).Value = suuchi
        Next i
    End With
End Sub

コードのAlt+F8を押し、マクロ選択画面でHenkan_Hani関数を実行します。

このコードでは、Sheet1のA列の指定した範囲内の文字列を数値に変換して上書きしています。範囲はRangeStartとRangeEndで指定します。

以上、VBAマクロを使用して文字列を数値に変換する方法を解説しました。

各方法に応じて適切なコードを使用して、文字列の数値変換を行うことができます。

最後まで読んでいただき、ありがとうございました!