エクセルVBAでテキストを数値に変換する方法(マクロを使った3つの例)

  • これを共有
Hugh West

Microsoft Excelでは、数字を扱うことが一般的です。 時には、大量の数字を含むデータセットを処理しなければなりません。 しかし、数字がテキストのように見える状況に陥ることがあります。 このため、加算、減算、除算、乗算、その他の演算ができません。 これを実行しようとすると、常にエラーが表示されます。 このチュートリアルでは、次のように変換する方法を説明します。を使用して、Excelでテキストを数値に変換します。 ブイビーエー のコードを、適切な例と適切な図解で説明します。

練習用ワークブックをダウンロードする

この練習用ワークブックをダウンロードする

VBAでテキストを数値に変換する.xlsm

テキストとしてフォーマットされた数字を識別する方法

Microsoft Excelは、テキストと数値の違いを理解し、それぞれの形式に自動的に変換します。 しかし、データセットの誤用や誤った解釈により、変換できない場合があります。 そのため、ワークブックでは、数値がテキストのまま保持されています。

このデータセットを見てみよう。 ここでは、列にいくつかの数値が入っている。

列の中に数字がありますが、すべてテキストと同じように左揃えになります。 任意のセルをクリックすると、セルの横にこのようなボックスが表示されます。

マウスカーソルをボックスに合わせると、このように表示されます。

このようにして、セルがテキストとしてフォーマットされているかどうかを確認することができます。

Excelでテキストを数値に変換する3つのVBAコード

このチュートリアルでは、VBAのコードを使ってテキストを数値に変換する方法について説明します。 これらの方法を学んで、あなたのデータセットに適用することをお勧めします。 きっと、多くの場面で便利に使えるでしょう。

1.Excelでテキストを数値に変換するRange.NumberFormatメソッドを使ったVBAコード

この方法は非常にシンプルで、どんなデータセットにも簡単に使えます。 やることは、セルの範囲を選択して、それを VBAコード .

📌 ステップス

1.まず、ボタンを押します。 ALT+F11 をキーボードで入力すると VBAエディタ .

2.クリックする 挿入モジュール .

3.次に、次のコードを入力します。

 Sub ConvertTextToNumber() With Range("B5:B14") .NumberFormat = "General" .Value = .Value End With End Sub 

4.ファイルを保存します。

5.次に、 を押します。 ALT+F8 を開くことができます。 マクロ のダイアログボックスが表示されます。

6.選択する テキストから数値への変換 をクリックします。 走る。

最終的には、このコードでテキストを数値に変換します。

続きを読む Excel VBAで文字列を数値に変換する方法

2.ループとCSngでテキストを数値に変換するVBAコード

この方式では ループ CSng の機能です。 CSng は、基本的に任意のテキストを引数として受け取り、それを1つの数値に変換します。 このループは、選択した列のすべてのセルを通過させます。 その後、各セルの値を CSng 関数を使ってテキストから数値に変換します。

📌 ステップス

1.まず、ボタンを押します。 ALT+F11 をキーボードで入力すると VBAエディタ .

2.クリックする 挿入モジュール .

3.次に、次のコードを入力します。

 Sub ConvertUsingLoop() For Each r In Sheets("Loop&CSng").UsedRange.SpecialCells(xlCellTypeConstants) If IsNumeric(r) Then r.Value = CSng(r.Value) r.NumberFormat = "General" End If Next End Sub 

4.ファイルを保存します。

5.次に、 を押します。 ALT+F8 を開くことができます。 マクロ のダイアログボックスが表示されます。

6.選択する ConvertUsingLoop をクリックします。 走る。

このように、このVBAコードを使って、テキストを数字に変換しています。

類似の読み物

  • Excelでテキストを数値に一括変換する(6つの方法)
  • ExcelのVBAを使用して文字列を長さに変換する方法(3つの方法)
  • Excel VBAで文字列を2倍に変換する(5つのメソッド)
  • Excelの「数値に変換」エラーを修正する方法(6つの方法)

3.Excelで動的な範囲をテキストから数値に変換する

今までの方法は、選択した範囲を対象とするものでした。 つまり、手動でセル範囲を入力する必要があります。 しかし、データセットが大きい場合もあります。 そのような場合は、セル範囲を覚えておく必要があります。 この方法はその問題を解決します。 データセットの始まりは、次のとおりです。 セルB5 でも、どこで終わるかわからない。

そこで、最後に使用されたExcelの行を動的に識別し、その行にデータがある場合は、次のようにします。 Cells(Rows.Count, "B").End(xlUp).Row と連結している、空でない最後の行番号を返します。 B5:B ".

📌 ステップス

1.まず、 を押します。 ALT+F11 をキーボードで入力すると VBAエディタ .

2.クリックする インサート > モジュール .

3.次に、次のコードを入力します。

 Sub ConvertDynamicRanges() With Range("B5:B" & Cells(Rows.Count, "B").End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With End Sub 

4.ファイルを保存します。

5.次に、 を押します。 ALT+F8 を開くことができます。 マクロ のダイアログボックスが表示されます。

6.次に、以下を選択します。 ConvertDynamicRanges をクリックします。 走る。

このように、VBAのコードを使って、テキストを数字に変換することに成功しています。

💬覚えておくべきこと

ここでは、データセットにB列を使用しています。 データが別の列にある場合は、VBAコードのセル範囲を適宜変更してください。

✎ VBAコードはアクティブなシートのみで機能します。

結論

最後に、このチュートリアルが、VBAコードを使用してExcelでテキストを数値に変換することについての有用な知識の一部を提供できたことを願っています。 これらの手順をすべて学び、あなたのデータセットに適用することをお勧めします。 練習用ワークブックをダウンロードし、これらを自分で試してください。 また、コメント欄で自由にフィードバックしてください。 あなたの貴重なフィードバックが、この種のチュートリアルを作るモチベーションになるのです。ホームページのチェックをお忘れなく Exceldemy.com Excelにまつわる様々なトラブルや解決策をご紹介しています。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。