Digital_Neko

フリーランスプログラマー

文字列を数値に変換する Excel-VBA

今回は、文字列を数値に変換する方法です。皆さんは渡されたExcelシートで、数値で入力して欲しい箇所なのに、文字列になってる!!なんて事はなかったでしょうか?
こんな時にVBAで解決する場合のサンプルプログラムは下記になります。
1列目に文字列「0012345」が入っていると仮定します。

Dim num As Long, i as Long

For i = 1 To 100
num = Cells(i, 1).Value
Cells(i, 1).ClearContents
Cells(i, 1).ClearFormats
Cells(i, 1).Value = num
Next i

まず初めに、セルの値をLong型変数に格納します。そして、セルの内容と書式をクリアした後、同じセルに上書きします。こうすると、書式が文字列、セル内容「0012345」だったのが、書式が「標準」で、セルの内容が「12345」に変わります。
今回の例では、1行から100行まで一気に変換しています。
Cells(i , 1).NumberFormat を利用して、他の書式を代入前に設定する事も可能です。シートの書式に困った時の参考になればと思います。