[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/06/24(Sun) 11:28
投稿者名:べた
Eメール:
URL :
タイトル:
インデックスが有効範囲にありません。(Error 9)について
「インデックスが有効範囲にありません。」の場合の中身をチェックしたい
のですが、どのようにすればよいのでしょうか。

DBから取得した値を動的配列に格納したものと、配列のテキストボックス
に入力された値とを比較しています。
配列のテキストボックスは10個用意します。

比較する回数はテキストボックスの要素数分繰り返します。
動的配列に10個格納されていれば、問題はないのですが、例えば、5個しか
なかった場合、動的配列が5の要素のとき「インデックスが有効範囲にありません」
となり止ってしまいます。
5以上の場合もチェックしたいのですが、メッセージを出さずに継続するには、
動的配列の中身をどうチェックすればよいのですか。

分りづらい、あいまいな説明ですみません。

---
    For I = 0 To Text1.Count - 1
        If TextData1(I) <> Text1(I).Text Then
                msgbox "テキストボックス " &I+1 & "が違います。"
        End If
    Next
---

ループ中で、
TextData(5)とかTextData(9)の中身をチェックしたいのです。
例えば
  if isNULL(TextData(5)) then
  とか
  if TextData(5) = "" then
としてみたのですがダメでした。

投稿時間:2007/06/24(Sun) 11:47
投稿者名:NEU(ノイ)
Eメール:
URL :
タイトル:
Re: インデックスが有効範囲にありません。(Error 9)について
Ctrl+F5で実行するとどうなりますか。

投稿時間:2007/06/24(Sun) 12:09
投稿者名:NEU(ノイ)
Eメール:
URL :
タイトル:
Re: インデックスが有効範囲にありません。(Error 9)について
TextData1のループの中でText1のループをまわせばいいのでは

投稿時間:2007/06/24(Sun) 14:40
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: インデックスが有効範囲にありません。(Error 9)について
> 「インデックスが有効範囲にありません。」の場合の中身をチェックしたい
> のですが、どのようにすればよいのでしょうか。

配列の添え字の数は UBound で分かります。
下記では如何でしょうか

fp = UBound(TextData)

for i  0 to fp - 1  

'fp が5の場合には TextData(0) から TextData(4) で5ケだから

投稿時間:2007/06/25(Mon) 10:17
投稿者名:べた
Eメール:
URL :
タイトル:
Re^2: インデックスが有効範囲にありません。(Error 9)について
NEU(ノイ)さん、nobuさん
ありがとうございます。

直接、インデックス範囲外のところを参照し、
値があるかどうかは見れないのですね。

教えて頂いたことでやってみます。