VBAの勉強を始めてみた

タイトルの通りVBAの勉強を始めました。効率化と暇つぶしを兼ねています。ブログの書き方なんて知りません分かりません。

選択範囲の金額を千円単位に変換する

というわけで、今日もVBAの勉強がてらマクロを作ってみます。
タイトルのとおり選択範囲の金額を千円単位に変換します。”金額”と表現しましたが単純に選択範囲の数値を1,000で割って小数点以下を切り上げるだけです。
「形式を選択して貼り付け→除算」でもできますが・・・VBAの勉強のために、あえてやります!(´ 3`)
さすがにこれだけでは面白くないので「セルの値が0,空白,文字列,日付のいずれかの場合は処理をしない」という条件判断を追加しました。
選択範囲に文字列などが含まれているとエラーになってしまうからです。
ちなみに1,000で割った後の小数点以下は切り上げします。

 

***************************************
Sub 選択範囲の金額を千円単位にする()
   
    Dim i As Long
    Dim j As Long

    For i = Selection.Row To Selection.Rows(Selection.Rows.Count).Row
        For j = Selection.Column To Selection.Columns(Selection.Columns.Count).Column
            If Cells(i, j).Value <> 0 And Cells(i, j).Value <> "" And _
            TypeName(Cells(i, j).Value) <> "String" And TypeName(Cells(i, j).Value) <> "Date" Then
            'セルの値が0,空白,文字列,日付のいづれかの場合は処理をしない
                Cells(i, j).Value = Application.RoundUp(Cells(i, j).Value / 1000, 0)    '小数点以下は切り上げ
            End If
        Next j
    Next i
   
End Sub

***************************************

 ※SubからEnd Subまでをコピペしてマクロを使用できます。使用の際は自己責任でお願いいたします。


( ̄q ̄;)