動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2207 ビルド15427.20210 Microsoft Store)
「MMULT関数をVBAで使用する」
といった検索キーワードで、時折アクセスがあることに気がつきました。
行列の積を計算する、ExcelのMMULT関数(Matrix MULTiplication)を、Excel VBAで使うにはどのようなコードを書けばいいのかを調べていた方による検索です。
[スポンサードリンク]
MMULT関数を使ったサンプルマクロ
下図のようなデータの存在するワークシートがアクティブな状態で、
以下のExcelマクロを実行してください。
Sub MMULT関数を使う()
Dim rng1 As Range, rng2 As Range
Set rng1 = Range("A1:B2")
Set rng2 = Range("D1:E2")
Dim arr As Variant
arr = WorksheetFunction.MMult(rng1, rng2)
Range("A4:B5").Value = arr
End Sub
Dim rng1 As Range, rng2 As Range
Set rng1 = Range("A1:B2")
Set rng2 = Range("D1:E2")
Dim arr As Variant
arr = WorksheetFunction.MMult(rng1, rng2)
Range("A4:B5").Value = arr
End Sub
下図のように、A4:B5セルに行列の積が計算されます。
上記の行列は、『数学ガールの秘密ノート/ゼロがゼロである理由(後編)』を参考にさせていただきました。
ローカルウィンドウで配列の中身を確認しましょう
行列の積をワークシートに出力するのではなく、何らかの計算で使用するのであれば、WorksheetFunction.MMultメソッドの戻り値を代入した変数arrを使うといいのではないでしょうか。
その場合、変数arrの中身を確認しておくことをおすすめします。
拙著『いちばんやさしいExcelVBAの教本』等でも繰り返し行っているように、ステップ実行を行い、
arr = WorksheetFunction.MMult(rng1, rng2)
の実行後に、
上図のように、ローカルウィンドウで変数arrの中身をご確認ください。
最終更新日時:2022-10-20 09:52
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » 行列の積を求めるMMULT関数をVBAで