エクセルVBAで文字列を数値に変換する方法(3つの方法)

  • これを共有
Hugh West

今回は、Excel VBAで文字列を数値に変換するいくつかの方法について、VBAのコード例を交えながら、組み込み関数の使い方やそれらを使ったカスタム関数の作り方を見ていきましょう。

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

この練習用ワークブックをダウンロードして、この記事を読みながらエクササイズしてください。

文字列を数値に変換する.xlsm

Excel VBAで文字列を数値に変換する3つの方法

1. 型変換関数を使って文字列を数値に変換する

Excel には、いくつかの組み込み機能があります。 かたへんかんきのう VBAのコードで使用すると、文字列データ型から異なるデータ型に簡単に変換することができます。

1.1 文字列から整数へ

変換する場合 まで 整数 を使用することができます。 CInt関数 を使用します。 CInt関数 ばかりを取る 一論 となるはずです。 数値 Visual Code Editorで、次のようなコードを書いてみましょう。

 Sub StringToNumber() MsgBox CInt(12.3) End Sub 

プレス F5 まで 走る その コード に出力されます。 MsgBox .

CInt関数 やくしん その 数値列 価値 ("12.3" ) に変換します。 整数 12.

をより深く理解するために CInt関数 を選択し、コードエディターで次のコードを実行し 見る その 成果 .

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub 

があります。 アウトプット は、以下の通りです。 スクリーンショット .

コード説明

このコードでは For...次のループ を適用してください。 CInt関数 セル上 B3:B7です。 があります。 生産高 がセルに印刷されます。 C3:C7です。 を使用しました。 細胞の機能 で、入力値や出力値の出力先を指定します。

結果

CInt関数 25.5%に変換 になります。 次の整数値 26 その一方で 10.3を変換した まで 10、11ではない 10進数の数値が0.5より小さいときは,同じ数値に切り捨てます。 しかし,この関数は 10進数 数値文字列の値が 次の整数 であれば、その数は 同様 または は0.5より大きい。

備考

整数値は、以下の範囲とする。 -32,768 まで 32,767 という数値を入れると この範囲外 が表示されます。 失態 .

1.2 文字列から長さへ

があります。 CLng機能 は,数値文字列の値を ロングタイプ CInt関数と似たような働きをしますが、その主な違いは レンジ の間にある。 -2,147,483,648 2,147,483,647.

 実行するコードは以下の通りです。  Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub 

ここでは、細胞 B3:B9 含む 文字列数値 そして やくしん l オンナノコ は細胞内 C3:C9. があります。 CLng機能 やくしん -32800 32800 宜しく ちょうすう というのは CInt関数 しかし、その一方で、この製品は、「ヴェンディ」のような、「ヴェンディ」のような 失態 が入力された場合 数値 でございます を範囲外にする。

1.3 文字列から10進数へ

を使用しています。 CDec機能 よろしい 転向者 a 文字列数値 を、その 10進データ型 Run には、次のようなコードがあります。 転向者 その 数値 細胞内 B3:B7 になります。 decimal データ型とする。

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub 

1.4 ストリングからシングルへ

この例では、入力された文字列を シングルデータ型 (単精度浮動小数点) 数を使用する必要があります。 そのためには CSng機能 .

単一のデータ型の範囲 (i) -3.402823E38 まで -1.401298E-45 にとって ネガティヴ の数値が表示されます。

1.401298E-45 まで 3.402823E38 にとって 積極的 の数字が表示されます。

次のコードをビジュアルベーシックエディターで実行します。

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub 

出力では、セル B3:B9 含む 数値文字列の値。 変換済みシングルデータ型数値 は細胞内 C3:C9. しかし、それは、また、取得します。 失態 が入力された場合 数値 でございます を範囲外にする。

1.5 String to Double

この例では、入力された文字列を ダブル型 (倍精度浮動小数点数)である。 このために、? CDbl機能 .

doubleデータ型の範囲 (i) -1.79769313486231E308 まで -4.94065645841247E-324 にとって ネガティヴ の数字が表示されます。

4.94065645841247E-324 まで 1.79769313486232E308 にとって 積極的 の数字が表示されます。

次のコードをビジュアルベーシックエディターで実行します。

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub 

出力では、セル B3:B9 含む 文字列数値 変換済みダブルデータ型数値 は細胞内 C3:C9. しかし、それは、また、取得します。 失態 が入力された場合 数値 でございます を範囲外にする。

1.6 文字列から通貨へ

があります。 通貨データ型 に関連する計算をするときに便利です。 さらに、より高い精度を求めるのであれば 一定 - ポイント 算出 を使用すると、通貨データ型を使用することは良い選択となります。 また、このデータ型を使用するためには CCur機能 に変換して、文字列を 通貨データ型 データ型 レンジ から -922,337,203,685,477.5808 まで 922,337,203,685,477.5808.

コードから 転向者 数値列値 細胞の B3:B7 まで 通貨データ型 細胞内 C3:C7 は以下の通りです。

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub 

1.7 文字列からバイトへ

があります。 CByte機能 は、数値文字列の値を バイトデータ型 に及ぶ。 0から255まで。

コード は以下の通りです。 :

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub 

出力では、セル B3:B9 含む 数値文字列の値。 変換済みバイトデータ型番号 は細胞内 C3:C9. しかし、それは、また、取得します。 失態 が入力された場合 数値 でございます を範囲外にする。

続きを読む ExcelのVBAを使用して文字列を長さに変換する方法

類似の読み物

  • Excel VBAで文字列を2倍に変換する(5つのメソッド)
  • エクセルVBAでテキストを数値に変換する方法(マクロを使った3つの例)
  • エクセルで数値に変換するエラーを修正する(6つの方法)
  • エクセルで科学記法を数値に変換する方法(7つの方法)

2. Excelで文字列を調べて数値に変換するカスタムVBA関数の使い方

このイラストでは カスタム機能 で文字列を数値に変換することができます。 使い道 こん カスタム機能 私たちの中で ワークシート のように 組み込み機能 この例では CInt関数 まで 転向者 文字列 整数 を作成しながら カスタム関数です。 また、すべての その他の機能 に書かれている。 メソッド1 変換する ストリングス まで 異なるデータ型 さて、そのためには以下の手順で行います。

ステップス

  • ここで、細胞内 B3:B7です。 には、いくつかの数値文字列の値があります。

  • さて、ビジュアル・ベーシック・エディターで コピー 貼り付ける を入力してください。 Ctrl + S まで 救う
 Function StringToNumber(inputStr) Dim convertedNum As Variant If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then convertedNum = "-" Else convertedNum = CInt(inputStr) End If Else convertedNum = "-" End If StringToNumber = convertedNum End Function 
  • インセル C3 , 打ち始める その 関数名 ( 文字列から数値へ ). エクセルは オートサジェスチョン その 機能 を使用します。 プレス その タブキー をクリックして機能を入力します。

  • を置く。 セルリファレンスB3 を唯一の引数として使用します。

  • を押してください。 入力 を閉じた後

  • を探します。 フィルハンドル にて。 右下隅 細胞の C3 まで 反映させる 細胞への働き C4:C7です。

  • 最終的には、文字列値から切望された整数値を出力します。

3. Excelで選択されたセル範囲を数値に変換するVBAコード

この図解では、「1. レンジ せんたくさいぼう を含むセルがある場合、そのセルは整数に変換される。 ニューメリック の値があれば、出力は 短絡線 その代わり .フォローする 段階 :

  • セレクトセル B3:B6 頂戴 数字列 価値観と B7 を含むものである。 ニューメリック

  • での Visual Basic エディター コピー 貼り付ける 以下 コード .
 Sub StringToNumber() Dim convertedNum As Variant For Each cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertedNum = "-" Else convertedNum = CInt(cell) End If Else convertedNum = "-" End If With cell .Value = convertedNum.HorizontalAlignment = xlCenter End With Next cell End Sub 
  • を押してください。 F5 まで 走る その アウトプット のように スクリーンショット .

備考

  • を使用しました。 isNumeric関数 において 第2、第3 方便 は、式が数値に変換できるかどうかをチェックするVBAのコードに含まれています。
  • メソッド1 ということで、組み込み関数(CInt, CDbl, CSng......)を利用して 数値文字列値の変換 まで 計数 .しかし、もし 非数値 が表示されます。 不一致エラー .

結論

これで、Excelで文字列の値を数値に変換する方法がわかりました。 この機能をもっと自信を持って使えるようになるといいですね。 何か質問や提案があれば、下のコメント欄に書き込むのを忘れないでください。

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