[リストへもどる]
一括表示

投稿時間:2003/07/13(Sun) 17:29
投稿者名:夢さん
URL :
タイトル:
TextBox(n)の使い方について教えてください
お久しぶりです。 夢さんです。

諸々の事情でVBAを中断していました。
再起したのですが早速下記のことが分からなくなりました。
教えてください。

Private Sub OptionButton2_Click()
Dim TextBox(78) As String←この行が無いとこの下のTextBox(i)がコンパイルエラーとなります。
   Sheets("xxx").Select
   dsuu2 = Cells(1, 2) + 5 '最終データの行数  
   For i = 2 To 16    'UserFormに登録されているコードの照合  
        If TextBox(i) = "" Then←2行目があるためTextBox(i)は全てブランクになります。
            GoTo owari
        End If
        
        For j = 4 To 5 '15 'コードの照合
        If Cells(2, j) = "" Then
            GoTo owari
        End If
            'UserFormに登録されているコードとxxxのコードが合った時の処理        
             If TextBox(i) = Cells(2, j) Then
                TextBox(i + 45) = Cells(dsuu2, j)
以下省略
            
2行目と6行目の矢印の問題はどうしたらいいのでしょうか?
教えてください。      

投稿時間:2003/07/13(Sun) 20:51
投稿者名:Say
Eメール:
URL :
タイトル:
Re: TextBox(n)の使い方について教えてください
>この行が無いとこの下のTextBox(i)がコンパイルエラーとなります。
配列の使用には宣言/定義が必要です。

>2行目があるためTextBox(i)は全てブランクになります。
String型変数は宣言/定義時に空文字列に初期化されます。

> 2行目と6行目の矢印の問題はどうしたらいいのでしょうか?

どちらもVB/VBAの言語仕様の通りです。
で、何が問題なのでしょう?

あえて問題を指摘するなら、
●コードの最上行にOption Explicitを宣言し、
  変数の宣言/定義を強制したほうがよい。
●「TextBox」は本来VBA(Forms2.0)のクラス名であるから、
  変数名に使用すべきでない。
●Goto文は可能な限り使わないほうがよい。
●インデントは揃えたほうがよい。

投稿時間:2003/07/13(Sun) 22:47
投稿者名:夢さん
URL :
タイトル:
Re^2: TextBox(n)の使い方について教えてください
Sayさん こんばんは 夢さんです。

早速のご指導有難うございます。
アドバイスのようにやってみます。
ご質問の部分は以下の文章の中に入れましたのでよろしく。

> >この行が無いとこの下のTextBox(i)がコンパイルエラーとなります。
> 配列の使用には宣言/定義が必要です。
>
> >2行目があるためTextBox(i)は全てブランクになります。
> String型変数は宣言/定義時に空文字列に初期化されます。
>
> > 2行目と6行目の矢印の問題はどうしたらいいのでしょうか?
>
> どちらもVB/VBAの言語仕様の通りです。
> で、何が問題なのでしょう?
説明不足でした。
TextBox(n)には元々ダーターが入っており、これを利用し照合処理をしたいのですが2行目により
データーがなくなってしまいます。
nを一個一個照合すれば済むことですがこれでは文が長くなりすぎます。

>  
> あえて問題を指摘するなら、
> ●コードの最上行にOption Explicitを宣言し、
>   変数の宣言/定義を強制したほうがよい。
> ●「TextBox」は本来VBA(Forms2.0)のクラス名であるから、
>   変数名に使用すべきでない。
> ●Goto文は可能な限り使わないほうがよい。
> ●インデントは揃えたほうがよい。

投稿時間:2003/07/14(Mon) 10:23
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^3: TextBox(n)の使い方について教えてください
> 説明不足でした。
> TextBox(n)には元々ダーターが入っており、これを利用し照合処理をしたいのですが2行目により
> データーがなくなってしまいます。
> nを一個一個照合すれば済むことですがこれでは文が長くなりすぎます。

ここでのTextBox(n)は、OptionButton2_Click()のイベント時に宣言されたローカル変数なので
初めからデータは何も入っていません。
このことはSayさんもおっしゃっていますが。

投稿時間:2003/07/14(Mon) 10:43
投稿者名:夢さん
URL :
タイトル:
Re^4: TextBox(n)の使い方について教えてください
nanashiさん こんにちは 夢さんです。

コメントありがとうございます。
いろいろやっているうちに理解できました。で、今はnを一個一個照合し、文は長くなりましたが処理できました。

解決です。
nanashiさん、Sayさん 有難うございました。 

> > 説明不足でした。
> > TextBox(n)には元々ダーターが入っており、これを利用し照合処理をしたいのですが2行目により
> > データーがなくなってしまいます。
> > nを一個一個照合すれば済むことですがこれでは文が長くなりすぎます。
>
> ここでのTextBox(n)は、OptionButton2_Click()のイベント時に宣言されたローカル変数なので
> 初めからデータは何も入っていません。
> このことはSayさんもおっしゃっていますが。