
No.3ベストアンサー
- 回答日時:
コントロールのIndexプロパティを利用する方法では二次元配列はできません。
しかし、変数としての二次元配列ならできます。
Dim TextBoxes(3, 10) As TextBox
などとすると、テキストボックスの多次元配列ができます。
ただし、この変数にはインスタンスがないので、インスタンスは別に作成してやる必要があります。
以下に例を示します。
名前がTexts、Indexが0のTextBoxを配置します。
フォームモジュールに以下を貼り付けます。
Option Explicit
Private TextBoxes(3, 10) As TextBox
Private Sub Form_Load()
On Error Resume Next
Dim N As Long, M As Long, T As Long
For N = 0 To 2
For M = 0 To 9
T = N * 10 + M
Load Texts(T) 'Load Texts(0)はエラーだが無視される
Set TextBoxes(N, M) = Texts(T)
TextBoxes(N, M).Left = N * 1320
TextBoxes(N, M).Top = M * 300
TextBoxes(N, M).Visible = True
Next M
Next N
End Sub
Private Sub Texts_Click(Index As Integer)
MsgBox "これは(" & (Index \ 10) & ", " & (Index Mod 10) & ")です"
End Sub
この方法を使う場合、TextBoxes(N, M)のIndexプロパティはN * 10 + Mを示すので、注意が必要です。
ありがとうございます。これが知りたかったのです。
Dimで宣言すれば二次元配列にできそうだ、ということには気づいていたのですが。
インスタンスの生成が足りなかったのですね。ありがとうございました。
No.2
- 回答日時:
Mizyuさん、こんにちは。
コントロールを二次元配列にする方法は知りません。
ただ、二次元配列を添え字につかったらにた処理が出来ると思います。
dim iArry(10,10) as integer
iArry(1,1)=1
iArry(2,1)=2
...
TEXT(iArry(1,1)).TEXT = "AAAAA"
TEXT(iArry(2,1)).TEXT = "BBBBB"
No.1
- 回答日時:
Mizyuさん、こんにちは。
コントロール配列を二次元にする方法はありません!かな?
調べ切っていないのかも知れませんが、僕は知りません。
仮想二次元にして、その都度計算されたらいかがでしょうか。
例えば 5×8 の二次元とします。
DIM TBL(40) as string
for i=1 to 5
for j=1 to 8
TBL((i-1)*8 + j)="テスト"
next j
next i
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- マウス・キーボード Google検索の英語キーボード 英語のキーボードの配列が元に戻らなくなりました まえの配列は左上に 1 2022/06/19 11:41
- Visual Basic(VBA) ExcelVBAで質問です。離れた二次元配列を一つにしたい 4 2022/07/26 19:06
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- JavaScript 二次元配列の全要素の全要素を区切り文字無しで連結する最も単純な書き方を教えてください 3 2023/06/09 12:51
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) 配列操作について 5 2023/04/18 07:27
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
配列変数の添字が範囲外ですと...
-
配列を任意の数値で埋める方法
-
2次元動的配列の第一引数のみを...
-
VBA 1次元配列を2次元に追加する
-
配列に同じ値を入れる方法
-
VBのコントロール配列を二次元...
-
for each の現在の配列ポインタ...
-
subの配列引数をoptionalで使う...
-
シェルスクリプト中で、ヒアド...
-
MATLABにて場合分け関数を定義...
-
動的配列に値を返す関数
-
[Excel2000_VBA] 型が一致しま...
-
リストボックスの値を拾うには
-
ヤマ括弧でくくられたテキスト...
-
特定のセル範囲で4文字以上入力...
-
エクセルマクロで配列の値から...
-
C言語を使用したプログラミング...
-
エクセルで特定の列が0表示の場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
ListViewで、非表示列って作れ...
-
配列変数の添字が範囲外ですと...
-
VB6 配列を初期化したい
-
subの配列引数をoptionalで使う...
-
《エクセル2000》A列・B列の商...
-
2次元動的配列の第一引数のみを...
-
ビンゴ
-
for each の現在の配列ポインタ...
-
配列に同じ値を入れる方法
-
配列を任意の数値で埋める方法
-
配列内の内容を全て表示する方法
-
Excel-VBAの配列「Public Const...
-
Array配列の末尾に追加したい。
-
エクセルVBAの配列二重ループ処...
-
エクセルで最小値から0を除く方法
-
Dim は何の略ですか?
おすすめ情報