Excel

【Excel】VBAマクロで割り算で切り捨て(あまり:整数部で商:切り上げ:小数点まで表示など)する方法【Int, Fix, Round, Mod】

当サイトでは記事内に広告を含みます。

この記事ではVBAマクロで割り算で切り捨て(あまり:整数部で商:切り上げ:小数点まで表示など)する方法について解説していきます。

ポイントとしてはInt, Fix, Round, Mod関数を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

 

VBAマクロで割り算で切り捨てし整数部のみを表示する方法【Int, Fix関数】

それではまず、VBAマクロで割り算で切り捨てし整数部のみを表示する方法について解説していきます。

B列のC列のセルの割り算とその切り捨てを行い、D列にその商、E列にあまりを記載し、2行目から最終行まで繰り返す方法を解説します(^^)/

 

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub aaaaakirisuteaaaaa()
    Dim aaaaakaishigyouaaaaa As Long
    Dim aaaaasaishuugyouaaaaa As Long
    Dim aaaaawarusuuaaaaa As Long
    Dim aaaaawararerususuuaaaaa As Long
    Dim aaaaaamariaaaaa As Long
    Dim aaaaagyouaaaaa As Long
    
    'スタート行の指定
    aaaaakaishigyouaaaaa = 2
    
    '最終行の取得
    aaaaasaishuugyouaaaaa = Cells(Rows.Count, 2).End(xlUp).Row
    
    'ループ開始
    For aaaaagyouaaaaa = aaaaakaishigyouaaaaa To aaaaasaishuugyouaaaaa
        '割る数の取得
        aaaaawarusuuaaaaa = Cells(aaaaagyouaaaaa, 2).Value
        
        '割られる数の取得
        aaaaawararerususuuaaaaa = Cells(aaaaagyouaaaaa, 3).Value
        
        '割り算(切り捨て)
        Cells(aaaaagyouaaaaa, 4).Value = aaaaawarusuuaaaaa \ aaaaawararerususuuaaaaa '商
        
        'あまり
        aaaaaamariaaaaa = aaaaawarusuuaaaaa Mod aaaaawararerususuuaaaaa
        Cells(aaaaagyouaaaaa, 5).Value = aaaaaamariaaaaa 'あまり
    Next aaaaagyouaaaaa
End Sub

コードのAlt+F8を押し、マクロ選択画面でaaaaakirisuteaaaaa関数を実行します。

 

コードの意味詳細

このコードでは、次のような処理を行なっています。

1. 変数の定義

– aaaaakaishigyouaaaaa:開始行を指定
– aaaaasaishuugyouaaaaa:最終行を取得
– aaaaawarusuuaaaaa:割る数を格納
– aaaaawararerususuuaaaaa:割られる数を格納
– aaaaaamariaaaaa:あまりを格納
– aaaaagyouaaaaa:行番号用のカウンタ変数

 

2. 最終行の取得

– Cells(Rows.Count, 2).End(xlUp).Rowで最終行を取得し、aaaaasaishuugyouaaaaaに格納していますね。

 

3. 開始行から最終行までのループ処理

– For aaaaagyouaaaaa = aaaaakaishigyouaaaaa To aaaaasaishuugyouaaaaa でループ
– 割る数と割られる数を取得し、割り算(切り捨て)と、あまりを計算
– 計算結果をD列とE列にそれぞれ出力

です。

1行ずつ意味を追っていけばマクロも難しくないかと思います!

 

VBAマクロで割り算で切り上げ表示する方法【Round関数】

続いては、VBAマクロで割り算で切り上げ表示する方法について解説していきます。

B列とC列のセルの割り算とその切り上げを行い、D列にその切り上げ値を記載し、2行目から最終行まで繰り返す方法について見ていきましょう。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub aaaaakiriageaaaaa()
    Dim aaaaakaishigyouaaaaa As Long
    Dim aaaaasaishuugyouaaaaa As Long
    Dim aaaaawarusuuaaaaa As Double
    Dim aaaaawararerususuuaaaaa As Double
    Dim aaaaaroundkekkaaaaaa As Long
    Dim aaaaagyouaaaaa As Long
    
    'スタート行の指定
    aaaaakaishigyouaaaaa = 2
    
    '最終行の取得
    aaaaasaishuugyouaaaaa = Cells(Rows.Count, 2).End(xlUp).Row
    
    'ループ開始
    For aaaaagyouaaaaa = aaaaakaishigyouaaaaa To aaaaasaishuugyouaaaaa
        '割る数の取得
        aaaaawarusuuaaaaa = Cells(aaaaagyouaaaaa, 2).Value
        
        '割られる数の取得
        aaaaawararerususuuaaaaa = Cells(aaaaagyouaaaaa, 3).Value
        
        '切り上げ
        aaaaaroundkekkaaaaaa = WorksheetFunction.Round(aaaaawarusuuaaaaa / aaaaawararerususuuaaaaa, 0)
        Cells(aaaaagyouaaaaa, 4).Value = aaaaaroundkekkaaaaaa 
        
    Next aaaaagyouaaaaa
End Sub

 

コードのAlt+F8を押し、マクロ選択画面でaaaaakiriageaaaaa関数を実行します。

 

コードの意味詳細

このコードでは、次のような処理を行なっています。

1. 変数の定義
– aaaaakaishigyouaaaaa:開始行を指定
– aaaaasaishuugyouaaaaa:最終行を取得
– aaaaawarusuuaaaaa:割る数を格納(Double型)
– aaaaawararerususuuaaaaa:割られる数を格納(Double型)
– aaaaaroundkekkaaaaaa:切り上げ結果を格納
– aaaaagyouaaaaa:行番号用のカウンタ変数

2. 最終行の取得
– Cells(Rows.Count, 2).End(xlUp).Rowで最終行を取得し、aaaaasaishuugyouaaaaaに格納

3. 開始行から最終行までのループ処理
– For aaaaagyouaaaaa = aaaaakaishigyouaaaaa To aaaaasaishuugyouaaaaa でループ
– 割る数と割られる数を取得し、割り算の結果をRound関数で切り上げ
– WorksheetFunction.Round(aaaaawarusuuaaaaa / aaaaawararerususuuaaaaa, 0)で小数点以下を四捨五入
– 計算結果をD列に出力

以上の処理により、B列とC列の割り算を切り上げた結果をD列に出力します。

 

VBAマクロで割り算をし小数点第1位まで表示する方法【Format関数】

最後に、VBAマクロで割り算をし小数点第1位まで表示する方法について解説していきます。

B列のC列のセルの割り算をし、小数点第一位まで表示した値をD列に記載し、2行目から最終行まで繰り返す方法について見ていきましょう。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub aaaaasyosuutenhyouziaaaaa()
    Dim aaaaakaishigyouaaaaa As Long
    Dim aaaaasaishuugyouaaaaa As Long
    Dim aaaaawarusuuaaaaa As Double
    Dim aaaaawararerususuuaaaaa As Double
    Dim aaaaasyosuutenaaaaa As Double
    Dim aaaaagyouaaaaa As Long
    
    'スタート行の指定
    aaaaakaishigyouaaaaa = 2
    
    '最終行の取得
    aaaaasaishuugyouaaaaa = Cells(Rows.Count, 2).End(xlUp).Row
    
    'ループ開始
    For aaaaagyouaaaaa = aaaaakaishigyouaaaaa To aaaaasaishuugyouaaaaa
        '割る数の取得
        aaaaawarusuuaaaaa = Cells(aaaaagyouaaaaa, 2).Value
        
        '割られる数の取得
        aaaaawararerususuuaaaaa = Cells(aaaaagyouaaaaa, 3).Value
        
        '小数点第一位までの計算
        aaaaasyosuutenaaaaa = aaaaawarusuuaaaaa / aaaaawararerususuuaaaaa
        
        '小数点第一位までの表示
        Cells(aaaaagyouaaaaa, 4).Value = Format(aaaaasyosuutenaaaaa, "0.0")
    Next aaaaagyouaaaaa
End Sub

コードのAlt+F8を押し、マクロ選択画面でaaaaasyosuutenhyouziaaaaa関数を実行します。

 

コードの意味詳細

このコードでは、次のような処理を行なっています。

1. 変数の定義
– aaaaakaishigyouaaaaa:開始行を指定
– aaaaasaishuugyouaaaaa:最終行を取得
– aaaaawarusuuaaaaa:割る数を格納(Double型)
– aaaaawararerususuuaaaaa:割られる数を格納(Double型)
– aaaaasyosuutenaaaaa:小数点第一位までの計算結果を格納
– aaaaagyouaaaaa:行番号用のカウンタ変数

2. 最終行の取得
– Cells(Rows.Count, 2).End(xlUp).Rowで最終行を取得し、aaaaasaishuugyouaaaaaに格納

3. 開始行から最終行までのループ処理
– For aaaaagyouaaaaa = aaaaakaishigyouaaaaa To aaaaasaishuugyouaaaaa でループ
– 割る数と割られる数を取得し、割り算を実行
– Format(aaaaasyosuutenaaaaa, “0.0”)で小数点第一位までの表示形式を指定
– 計算結果をD列に出力

 

 

まとめ VBAマクロで割り算(あまり:整数部で商:切り上げ:小数点まで表示など)する方法【Int, Fix, Round, Mod】

この記事では、VBAマクロで割り算で切り捨て(あまり:整数部で商:切り上げ:小数点まで表示など)する方法【Int, Fix, Round, Mod】について解説しました。

マクロの扱いになれ、さらに快適な生活を送っていきましょう!