![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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
![「VBAで配列の計算」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/2095557_5497e7122fdc6/M.jpg)
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で保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBA 配列に格納した値の平均のやり方についてお教え願います
Visual Basic(VBA)
-
-
4
配列の値を置換するにはどうすればいいでしょう?
Excel(エクセル)
-
5
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
6
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
7
UserForm1.Showでエラーになります。
工学
-
8
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
9
エクセルでエラーが出て困っています。
Excel(エクセル)
-
10
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
11
VBAの配列サイズとメモリに関して
Visual Basic(VBA)
-
12
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
15
VBA 1次元配列を2次元に追加する
Visual Basic(VBA)
-
16
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
17
VBAのWorksheetFunctionの引数に配列を使いたい
PowerPoint(パワーポイント)
-
18
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
19
エクセルへのデータの貼付時に書式が反映されない!
Visual Basic(VBA)
-
20
配列同士の足し算のループ処理
PHP
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンキーボードで時分秒を...
-
エクセルの配列定数について教...
-
C#でのコントロール配列について
-
EXCEL VBA で、0から?1から?
-
IF関数でEmpty値を設定する方法。
-
【MFC】GetCount()とGetSize()...
-
VBAで配列の計算
-
排列と配列の漢字の使い分けは
-
VBAで生成した配列の受渡
-
VBでbyte配列型のインスタンス...
-
配列通しのOR演算
-
VBで作った乱数を一度も重複さ...
-
eclipseに記述したjavaファイル...
-
C# 半角カナの文字化けについて
-
【JAVAエラー】互換性のない型...
-
Javaで文字と数字が混ざったも...
-
ハートマークを表示するには?
-
0~9まで入力させ、前に入力さ...
-
System.out.printlnの出力先
-
配列への文字列の格納について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで配列の計算
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
C言語 重複しない4ケタの乱数...
-
変数を動的に作るには?
-
VB.net 引数で配列変数を渡す際...
-
応用情報技術者試験の令和元年...
-
動的配列が存在(要素が有る)か...
-
VBで作った乱数を一度も重複さ...
-
VBでbyte配列型のインスタンス...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
遅延バインディングを使用でき...
-
Visual C++ でコントロールを...
-
Excel VBAで配列の途中から(X)M...
-
C++、クラスメンバの構造体配列...
-
C言語で3次元配列の課題をして...
-
For文と配列
-
重複なしでランダムに画像を表...
おすすめ情報