![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VB6でExcelのMMULTのような関数が欲しかったので作って見ました。
関数内で配列をRedimで確保して戻り値として返すのですが、このような方法でメモリーリークなど発生する心配はないでしょうか?
'行列の掛け算
Public Function mtxMult(ByRef mx1() As Double, ByRef mx2() As Double) As Double()
Dim r, c, i, r1, c1, r2, c2
Dim res() As Double
'行と列の最大値を得る
r1 = UBound(mx1, 1)
c1 = UBound(mx1, 2)
r2 = UBound(mx2, 1)
c2 = UBound(mx2, 2)
If c1 <> r2 Then Exit Function
ReDim res(0 To r1, 0 To c2) '答えの配列を確保
'各要素を掛ける
For r = 0 To r1
For c = 0 To c2
res(r, c) = 0
For i = 0 To c1
res(r, c) = res(r, c) + mx1(r, i) * mx2(i, c)
Next i
Next c
Next r
mtxMult = res
End Function
'動作確認
Private Sub Command1_Click()
Dim mx1(0 To 1, 0 To 1) As Double
Dim mx2(0 To 1, 0 To 1) As Double
Dim res() As Double
Dim r As Integer
List1.Clear
mx1(0, 0) = 1
mx1(0, 1) = 2
mx1(1, 0) = 3
mx1(1, 1) = 4
mx2(0, 0) = 5
mx2(0, 1) = 6
mx2(1, 0) = 7
mx2(1, 1) = 8
res = mmult(mx1, mx2)
For r = 0 To 1
List1.AddItem res(r, 0) & " , " & res(r, 1)
Next r
End Sub
ところで、質問のソースコードのインデントを保持する方法はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
二点の座標から距離や角度を求...
-
C#のループでtextboxに値を入れ...
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
texで図と表を並べたい
-
vb.net 文字コードから漢字へ変換
-
【VB6.0】 あるフォームから他...
-
GetNextWindowがDLLファイルUse...
-
【VB.NET】テキストボックスに...
-
ExcelのVBAで文章にある複数の...
-
Verilog-HDLのFF記述について
-
VBAでcallで呼び出したsubを終...
-
変数の宣言はすべきでしょうか...
-
リストビューの列ヘッダーの幅...
-
C言語のサフィックスについて
-
タイムアウトする仕組みを作りたい
-
【VBS】クリップボード操作につ...
-
アクセスできない保護レベルエ...
-
String型の値にスラッシュをつ...
-
テキストボックスに大文字を
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET)コンボボックスの連動に...
-
二点の座標から距離や角度を求...
-
ドラゴン曲線を再帰で書く
-
検索結果の指定列をリストボッ...
-
エクセル・VBAでテキストボック...
-
複数条件のオートフィルタ(VBA)
-
一行飛ばしで合計
-
エクセル ユーザーフォーム ...
-
エクセルのVBAでの7×7の魔方陣...
-
4変数の非線形方程式のときかた
-
VC++ (byte)(col & 0xFF) の意味
-
2次元配列を返す関数について
-
二分法のC++プログラム
-
不等間隔での数値積分
-
こうもりの撃退法
-
VBA for next
-
C#を勉強していて、指定したフ...
-
codbo2を買うか迷ってますbo2が...
-
カラーの16進表記の足し算
-
C言語で非線形方程式を解くプロ...
おすすめ情報