質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

830閲覧

VBAの二次元配列のコード ワークシートの内容を二次元配列に格納

nekura.3k

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/06/10 14:30

二次元配列にワークシートの内容を格納する方法

ここに質問の内容を詳しく書いてください。
まずDim 変数名(最大インデックス番号) As 型となるところで、変数が(2,2)から始まるため、()内がわかりません。

発生している問題・エラーメッセージ

エラーメッセージ ```インデックスが有効な範囲にありません ### 該当のソースコード![イメージ説明](856264f35e6b9effaca5d2b72fd8c9de.png) ```ここに言語名を入力VBA ソースコード

試したこと

ここに問題に対して試したことを記載してください。> 引用テキスト
()内を1 To 5としてみたが上記のエラーメッセージが表示された

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。これが課題の全容です。イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2021/06/10 23:33

ソースコードは画像ではなく、コピーして貼り付けてください。 また、貼り付けたコードは選択してからメニューの <code> ボタンを押してコードブロックに入れてください。
guest

回答1

0

VBA

1Sub sample() 2 3 Dim score(1 To 5, 1 To 3) 4 Dim avgAry(1 To 5) 5 Dim sdAry(1 To 5) 6 Dim minAry(1 To 5) 7 Dim maxAry(1 To 5) 8 9 Dim i, j 10 For i = 1 To 5 11 For j = 1 To 3 12 score(i, j) = Cells(i + 1, j + 1).Value 13 Next j, i 14 15 For i = 1 To 5 16 Dim sm, mn, mx, sd 17 sm = 0 18 mn = 100 19 mx = 0 20 sd = 0 21 22 For j = 1 To 3 23 sm = sm + score(i, j) 24 If score(i, j) < mn Then mn = score(i, j) 25 If score(i, j) > mx Then mx = score(i, j) 26 Next 27 28 avgAry(i) = sm / 3 29 minAry(i) = mn 30 maxAry(i) = mx 31 32 For j = 1 To 3 33 sd = sd + (score(i, j) - avgAry(i)) ^ 2 34 Next 35 sdAry(i) = Sqr(sd / 3) 36 Next 37End Sub 38

VBA

1Sub sample2() 2 Dim arr As Variant 3 arr = Range("B2:D6").Value 4 5 Dim avgAry(1 To 5) 6 Dim sdAry(1 To 5) 7 Dim minAry(1 To 5) 8 Dim maxAry(1 To 5) 9 10 With WorksheetFunction 11 Dim i 12 For i = 1 To 5 13 avgAry(i) = .Average(.Index(arr, i, 0)) 14 sdAry(i) = .StDev_P(.Index(arr, i, 0)) 15 minAry(i) = .Min(.Index(arr, i, 0)) 16 maxAry(i) = .Max(.Index(arr, i, 0)) 17 Next 18 End With 19End Sub

投稿2021/06/11 23:59

編集2021/06/12 07:36
jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問