lib_steak
@lib_steak

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【VBA】文字列を数値に変換

解決したいこと

売り上げデータのCSVをエクセルで開いたとき、C列2行目以降の数字がテキスト形式で入力されているので、数値に変換したい。Val関数では空白や¥、カンマ以降の数字は消えてしまうのでそれ以外の方法を教えてください。

image.png

自分で試したこと

Val関数で試してみたのですが、空白や¥やカンマ以降が消えてしまうなどうまくいかなかったです。
作りたい形としましては、359,818や324090のようにしたいです。

0

3Answer

を削除してからVal関数でできませんか?

追記
動作確認していないので動くかわかりませんが、イメージだけでも。
以下のような感じですかね。

Dim endRow As Integer
Dim replace As String
endRow = Cells(Rows.Count, 1).End(xlUp) ' 最終行番号取得
For i = 2 To endRow
    ' 2行目から1行ずつC列の内容を処理していく
    replace = Replace(Cells(i, 3), "¥", "")
    Debug.Print CInt(replace)
Next i
1Like

Comments

  1. @lib_steak

    Questioner

    コメントありがとうございます。自分でも触ったり、調べてみてReplace関数までたどり着けたのですが、恐らく任意の列全体を変数に格納するのがうまくできていないようです。
    変数a = Replace(任意の列全体を格納した変数i,"\","")
    のような感じなのかなと考えています。

CSVファイルはどうなっているのでしょうか。それを見たいですけど....

開いてしまった後で、ということなら、右隣の列に「=VALUE(RC[-1])」で数値にはなりました

image.png

0Like

Comments

  1. 下記のcsvを読んだ時は、3列目は文字になりませんでした

    製品名,カテゴリー名,価格
    製品1,cat1,"¥359,818"
    製品2,cat2,"¥324,090"

インポートの時点で、列のデータ形式を指定してみたらどうでしょう?
CSVを取り込んだ時点で、既に数値になっている筈です。

Excelのバージョンによってやり方が異なりますが、「データ」の所にそれっぽいのがあると思います。

0Like

Your answer might help someone💌