【EXCEL VBA | Val関数】は?なんで自分で単位入力しちゃってんの?を解決する

スポンサーリンク

は?なんで自分で単位入力しちゃってんの?

次の画像を見て下さい。

データ自体に意味はありませんが、ある人が月ごとに本を借りた冊数の一覧です。

これ、B列の冊数の○冊の”冊”を、ご丁寧に入力してあります。。。

ですので、例えば8行目に合計を計算しようと思っても、計算出来ません。

単位も表示して、計算もしたい場合は、表示形式を使って単位を表示させるんですが、実際問題やってくれない人がたくさんいますよね(;_;)

ここで紹介する、”Val関数”を使うことで、このような”ご丁寧な入力”を計算することが出来るようになりますw

Val関数

構文

Val(文字列)

構文自体は単純です。

引数に文字列を指定するだけ。

Val関数は、元々は文字列を数値に変換する関数ですが、文字列の先頭(左端)から見て”数値に変換出来るところまで”変換してくれます。

この特徴を使うことで、セルに”直接入力した単位”の前までを数値に変換して取り出して扱います。

実際に挙動を確認しましょう。

サンプル

先程のサンプルで、借りた本の冊数を、Val関数を利用して合計し、B8セルに出力してみましょう。

コードはこちらです。

Sub sample()

    Dim i As Long, ans As Long
    For i = 2 To 7
        
        'B列の文字列を、単位を省いた数値に変換して足し上げる。
        ans = ans + Val(Cells(i, 2))
    
    Next
    
  'B8セルに入力する
    Cells(8, 2) = ans
    
End Sub

簡単ですね。

合計したいセルを、ループで回して足し上げているだけです。

足し上げる際に、指定したセルをVal関数を通して数値に変換しています。

実行してみましょう!

上手く計算することが出来ましたね(^o^)