Excel

【Excel】VBAマクロで掛け算(繰り返し:変数:列や行方向全部:セル範囲など)する方法

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

この記事では【Excel】VBAマクロで掛け算(繰り返し:変数:列や行方向全部:セル範囲など)する方法について解説していきます。

ポイントとしてはFor Next文、Cells、Split関数、Addressを使用することです。

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

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

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

 

 

VBAマクロで掛け算する方法【2行目以降に対して、最初の列から最終列までを掛け算結果を最終列の次のセルに記載する。最終行まで繰り返し実行する】【For Next文、Cells】

それではまず、VBAマクロで2行目以降に対して、最初の列から最終列までを掛け算し、結果を最終列の次のセルに記載する方法について解説していきます。

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


Sub kakezan1()
    ' 変数を宣言
    Dim saishuuretsu As Long  ' 最終列番号
    Dim saishuuretsu_moji As String ' 最終列のアルファベット
    Dim gyou As Long  ' 行番号
    Dim retu As Long  ' 列番号
    Dim kekkachi As Double  ' 掛け算結果
    
    ' 最終列番号を取得
    saishuuretsu = Cells(1, Columns.Count).End(xlToLeft).Column

    ' 最終列番号をアルファベットに変換
    saishuuretsu_moji = Split(Cells(1, saishuuretsu).Address(True, False), "$")(0)
    
    ' 2行目から最終行まで繰り返し
    For gyou = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        kekkachi = 1  ' 初期値を1にセット
        ' 1列目から最終列まで繰り返し掛け算
        For retu = 1 To saishuuretsu  
            kekkachi = kekkachi * Cells(gyou, retu).Value
        Next retu
        
        ' 掛け算結果を最終列の次のセルに記載
        Cells(gyou, saishuuretsu + 1).Value = kekkachi  
    Next gyou
    
    MsgBox "計算が完了しました!"
End Sub

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

このコードの処理内容を説明すると、

1. 最終列の列番号とアルファベットを取得
2. 2行目から最終行まで順に、以下を繰り返す
2-1. 1列目から最終列まで掛け算し、結果を変数kekkachi に格納
2-2. 掛け算結果を最終列の次のセルに記載
2-3. 全行の処理が終わったら完了メッセージを表示

という流れになります(^^)/

 

VBAマクロで掛け算する方法【2行目から最終行までの掛け算結果を最終行の次の行のセルに記載する。1列目から最終列まで実行する】【Split関数、Address】

続いては、VBAマクロで2行目から最終行までの掛け算結果を最終行の次の行のセルに記載する方法について解説していきます。

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


Sub kakezan2()
    ' 変数宣言
    Dim saishuuretsu As Long  ' 最終列番号
    Dim saishuuretsu_moji As String ' 最終列アルファベット
    Dim saishuugyou As Long  ' 最終行番号
    Dim retu As Long  ' 列番号
    Dim gyoukekka As Double  ' 行の計算結果
    
    ' 最終列番号取得
    saishuuretsu = Cells(1, Columns.Count).End(xlToLeft).Column 

    ' 最終列アルファベット取得
    saishuuretsu_moji = Split(Cells(1, saishuuretsu).Address(True, False), "$")(0)
    
    ' 最終行番号取得 
    saishuugyou = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 1列目から最終列まで繰り返し
    For retu = 1 To saishuuretsu
        gyoukekka = 1  ' 初期値1にセット
        ' 2行目から最終行まで掛け算
        For gyou = 2 To saishuugyou  
            gyoukekka = gyoukekka * Cells(gyou, retu).Value
        Next gyou
        
        ' 掛け算結果を最終行の次の行に記載
        Cells(saishuugyou + 1, retu).Value = gyoukekka
    Next retu
    
    MsgBox "計算完了しました!"
End Sub

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

このコードの処理内容は

1. 最終列番号、最終列アルファベット、最終行番号を取得
2. 1列目から最終列まで順に、以下を繰り返す
2-1. 2行目から最終行まで掛け算し、結果をgyoukekkaに格納
2-2. 掛け算結果を、最終行の次の行の現在の列のセルに記載
2-3. 全列の処理が終わったら完了メッセージを表示

となります!!

 

まとめ VBAマクロで掛け算(変数:列や行方向全部:セル範囲など)する方法

この記事では【Excel】VBAマクロで掛け算(繰り返し:変数:列や行方向全部:セル範囲など)する方法について解説しました。

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