
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>C=A+Bみたいな記述はできるのでしょうか?
実際、どのような計算がなさりたいかわかりませんが、配列=Rangeオブジェクト と考えれば、「C=A+B」のような記述ができます。
「C=A+B」が成立するためには基本的な演算では各要素数が一致する必要があります。そうすると、行列機能が利用できます。
添付図では、
B2:C3 に範囲名「matA」を
E2:F3 に範囲名「matB」を付けています。
(質問のように「A」とか「B」でもいいですが、短い名前は怖いのでこんな名前にしました)
添付図の一番下はシート上で配列数式を使い「3×3」のセル範囲の加算をしています。Sumproduct関数も同じような性質の関数になります。配列数式はシート上では結構使いにくいんですが、VBAでは配列という感覚で逆に使いやすくなります。(私見です)
ワークシート関数にMMult、Transpose、MDeterm、MInverse関数などがあるのでこれをVBA側で使えます。また、「FormulaArrayプロパティ」も使えます。
シートのコードウィンドウで実行しました。出力範囲を選択して実行します。
「Range("matA")」などを変数に代入すればそれらしく(質問のC=A+B)見えますが、そのままにしています。
ご参考に。当方Excel2010です。
'和
Sub matPlus()
Selection.FormulaArray = "=matA+matB"
End Sub
'積
Sub matMult()
Selection = Application.MMult(Range("matA"), Range("matB"))
End Sub
'転置行列
Sub Trns()
Selection = Application.Transpose(Range("matA"))
End Sub
'行列式
Sub matVal()
Selection = Application.MDeterm(Range("matA"))
End Sub
'逆行列
Sub matInv()
Selection = Application.MInverse(Range("matA"))
End Sub

No.2
- 回答日時:
あまりにも素っ気なかったので参考サイト。
Excel(エクセル) VBA入門:配列の利用
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
でお勉強を。
No.1
- 回答日時:
a = array(1,2,3)
b = array(10,20,30)
c = a(0) + b(0)
debug.print c
で 10 が返り
c= c * b(2)
debug.Print c
で 300 が返ります。
というようなこと?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excel vbaの配列なんですが・・・ 1 2022/12/26 18:50
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- Excel(エクセル) VBA SUM関数を入力したい 6 2022/08/20 20:10
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- Visual Basic(VBA) VBAで列の再表示設定 1 2023/04/25 10:19
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) Vba 配列の中の特定文字列の位置の調べ方 9 2022/05/23 17:46
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAのワークシート関数で配列の合計を求めたい
Visual Basic(VBA)
-
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
-
4
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
5
VBA:日付を配列に入れ別セルに転記するとデータ型が変わる
Visual Basic(VBA)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
VBA 配列に格納した値の平均のやり方についてお教え願います
Visual Basic(VBA)
-
9
配列同士の足し算のループ処理
PHP
-
10
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
VBAのWorksheetFunctionの引数に配列を使いたい
PowerPoint(パワーポイント)
-
13
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
14
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
-
15
Msgboxの×が押されたとき
Excel(エクセル)
-
16
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
17
空白への0入力 二次元配列(VBA)
Excel(エクセル)
-
18
ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします
Visual Basic(VBA)
-
19
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
20
2つ以上の変数を比較して最大数を求めたい
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
VBAで配列の計算
-
VB.net 引数で配列変数を渡す際...
-
EXCEL VBA で、0から?1から?
-
配列の要素数を超えた参照のコ...
-
Excel VBAで配列の途中から(X)M...
-
C言語 重複しない4ケタの乱数...
-
マップチップの当たり判定の出し方
-
VB2005 ラベル(ボタン)をコント...
-
ジャグ配列とは
-
VBでbyte配列型のインスタンス...
-
変数を動的に作るには?
-
10進数を4桁のバイト配列に格納...
-
int型配列の一括初期化
-
VBで作った乱数を一度も重複さ...
-
エクセル:バグという名の仕様?
-
C言語のread関数に関するファイ...
-
C# 配列のスタックは可能でしょ...
-
遅延バインディングを使用でき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
VBAで配列の計算
-
C言語 重複しない4ケタの乱数...
-
VB.net 引数で配列変数を渡す際...
-
変数を動的に作るには?
-
C#の質問
-
VBでbyte配列型のインスタンス...
-
VBで作った乱数を一度も重複さ...
-
javaプログラムについて
-
配列の要素数を超えた参照のコ...
-
For文と配列
-
複数のテキストボックスに同じ...
-
Excel VBAで配列の途中から(X)M...
-
ラジオボタンのチェックをEnter...
-
遅延バインディングを使用でき...
-
ジャグ配列とは
-
int型配列の一括初期化
おすすめ情報