
お世話になります。
VB.net(visual studio 2005)の配列について教えて下さい。
以下の様に3次元の配列を宣言したとします(要素数は宣言せず)
Protected strArray(,,) As String
その後、プログラムのイニシャライズルーチン中で要素数を設定しています。
ReDim Preserve strArray(2,5,10)
プログラム中でこの配列の要素数が増える事があります。
一番右の配列 10 を 15 などに増やす事は redim で可能だとおもわれますが
真ん中の 5 を 8 などに増やしたいのです。
その際、配列に保存した情報は消えてしまってもかまわないので
要素数を一度リセットし、再度要素数を宣言したいのですがリセットの方法がわかりません。
ご教授お願い致します。

No.1ベストアンサー
- 回答日時:
>その際、配列に保存した情報は消えてしまってもかまわないので
>要素数を一度リセットし、再度要素数を宣言したいのですがリセットの方法がわかりません。
配列に保存した情報は消えてもよいなら、
RedimでOKです。(Preserve を付けない)
Preserve は中身を保証するときにつけます。
Dim strArray(,,) As String
Dim r1, r2, r3 As Long
ReDim strArray(2, 5, 10)
r1 = UBound(strArray, 1)
r2 = UBound(strArray, 2)
r3 = UBound(strArray, 3)
MsgBox(r1 & ":" & r2 & ":" & r3)
ReDim strArray(3, 8, 15)
r1 = UBound(strArray, 1)
r2 = UBound(strArray, 2)
r3 = UBound(strArray, 3)
MsgBox(r1 & ":" & r2 & ":" & r3)
上記を実行してください。
配列のサイズが変更されていることが確認できます。
回答ありがとうございます。
> 配列に保存した情報は消えてもよいなら、
> RedimでOKです。(Preserve を付けない)
> Preserve は中身を保証するときにつけます。
Preserve の意味は理解していたのですが
「一番右の要素数の変更しか許していない」という仕様が
(Redim Preserveではなく)Redimの時でも許可されていないとなぜか思い込んでいました。
少し試してみれば分かる事でしたがぽっかりと抜け落ちていたようです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript 配列の1要素を代入した変数を使って元の配列要素を削除できるか 1 2023/07/28 03:34
- Java Java・配列の問題です。 int 「」nums = new int「5」 ⤴︎ この5の事を言葉で 2 2023/06/21 22:30
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) ExcelVBAで質問です。離れた二次元配列を一つにしたい 4 2022/07/26 19:06
- JavaScript 二次元配列の全要素の全要素を区切り文字無しで連結する最も単純な書き方を教えてください 3 2023/06/09 12:51
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Visual Basic(VBA) Vba 配列の中の特定文字列の位置の調べ方 9 2022/05/23 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
(漢和辞典)部首の配列法は?
-
IF関数でEmpty値を設定する方法。
-
C#の質問
-
シート上のオプションボタン、...
-
複数のテキストボックスに同じ...
-
VB.net(2005)での配列の要素数...
-
ランダムに並んでるキーボード...
-
VBAで配列の計算
-
EXCEL VBA で、0から?1から?
-
ラジオボタンのチェックをEnter...
-
【MFC】GetCount()とGetSize()...
-
C言語 重複しない4ケタの乱数...
-
パソコンキーボードで時分秒を...
-
配列のメリットは?
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
javaの掲示板について
-
偶数ビットだけと奇数ビットだ...
-
オブジェクトの中のプロパティ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
EXCEL VBA で、0から?1から?
-
VBAで配列の計算
-
VB.net 引数で配列変数を渡す際...
-
パソコンキーボードで時分秒を...
-
変数を動的に作るには?
-
VBでbyte配列型のインスタンス...
-
VBで作った乱数を一度も重複さ...
-
Excel VBAで配列の途中から(X)M...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
ラジオボタンのチェックをEnter...
-
C言語 重複しない4ケタの乱数...
-
排列と配列の漢字の使い分けは
-
For文と配列
-
Visual C++ でコントロールを...
-
C++、クラスメンバの構造体配列...
-
遅延バインディングを使用でき...
-
int型配列の一括初期化
おすすめ情報