配列にそれぞれ値を入れると「宣言が必要」とエラーが出る への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 名無し  (社会人) 投稿日時 2010/1/18 06:16:16
>宣次郎
場違いはあんた。というか冷たいぜ。
こんな事書く暇があったらVisualBasic中学生のトップページアクセスカウンタの下の文章から見直せ。
ここのサイトはどう言う調べ方をすればいいかも分からない人が質問したりする掲示板でしょ。
コンボボックスに小学生を選択できるぐらいなのですから。
掲示板に書くネチケット入門ぐらい守ろうぜ。

投稿者 在浩  (社会人) 投稿日時 2010/1/17 08:09:47
' txtview Textbox = Muliline Is True

Option Explicit
Option Base 1
Dim strCnt(245) As String

Private Sub Form_Load()
    Dim strArray As Variant
    Dim intK As Integer
    intK = 1
    For Each strArray In strCnt
        strArray = intK & ". " + "Init"
        strCnt(intK) = strArray
        txtView = txtView + strCnt(intK) + vbCrLf
        intK = intK + 1
    Next strArray
End Sub

Private Sub cmdOk_Click()
'        cnt(1) = "ああ"
'        cnt(2) = "いい"
'        cnt(3) = "うう"
':
':
'        cnt(101) = "ええ"
'        cnt(102) = "おお"
'
':
':
'        cnt(243) = "かか"
'        cnt(244) = "きき"
'        cnt(245) = "くく"
'        cnt(10) = "ここ"
End Sub
投稿者 見習レベル  (社会人) 投稿日時 2010/1/17 07:03:05
無事解決いたしました。

解説してくださった方に感謝します。
投稿者 はなちゃん  (社会人) 投稿日時 2010/1/17 06:41:25
あら、ほんとね。
やだぁ。
投稿者 在浩  (社会人) 投稿日時 2010/1/17 06:41:16
option baseステートメントがない限り、配列の添え字のエラーもあるようです。
cnt(0)?cnt(244)まで使用できるだろうと考えています..
投稿者 宣次郎  (社会人) 投稿日時 2010/1/17 06:40:02
入門の本でも読んどけ。
場違いだぞ。おまえ。
投稿者 しげ  (社会人) 投稿日時 2010/1/17 06:35:27
実際のプログラムは
○○ Sub
   ここに書く
End Sub
に書きます

るしぇさんの書かれている内容だと
フォーム全体でcnt変数が使えます。

引用します。
Private Sub Test       ' 関数はここから 
        Dim cnt(245) As String
        cnt(1) = "ああ"    ' 代入式 
        cnt(2) = "いい"    ' 代入式 
        cnt(3) = "うう"    ' 代入式 
End Sub                ' 関数はここまで 

これだと、Testサブ内でしかcnt変数を使用することができません。

Public cnt(245) As String ' 宣言 
Private Sub Test       ' 関数はここから 
        cnt(1) = "ああ"    ' 代入式 
        cnt(2) = "いい"    ' 代入式 
        cnt(3) = "うう"    ' 代入式 
End Sub                ' 関数はここまで

Publicで宣言すると別フォームでもcnt変数を使うことができます。
投稿者 見習レベル  (社会人) 投稿日時 2010/1/17 06:34:33
参考にします。
ありがとうございました
投稿者 neptune  (社会人) 投稿日時 2010/1/17 05:09:07
このサイト内で解説してくれてますから勉強しましょう。
特に初級講座は絶対必要な知識でこれらの知識なしではプログラムは書けません。

初級講座 
第8回 もっと変数
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard8.htm
投稿者 見習レベル  (社会人) 投稿日時 2010/1/17 04:45:33
なるほどそうだったんですか。
プロジャー内で代入していますが、これって他のプロジャーに影響というか、利用することはできるのでしょうか?
投稿者 るしぇ  (社会人) 投稿日時 2010/1/17 03:55:02
エラーメッセージ通りでは?プロシージャ(関数)の外側に代入ステートメント
(値を代入する式)は書けません。

    Dim cnt(245) As String ' 宣言 
    Private Sub Test       ' 関数はここから 
        cnt(1) = "ああ"    ' 代入式 
        cnt(2) = "いい"    ' 代入式 
        cnt(3) = "うう"    ' 代入式 
    End Sub                ' 関数はここまで 

投稿者 見習レベル  (社会人) 投稿日時 2010/1/17 02:31:13
VBを使ってアプリケーションを作っているのですが、配列を宣言して各々に文字を入れているのですが、
いざビルドしてみようとすると、cnt(1)~cnt(101)までだけなぜがエラーが出ます。
どこが間違っているのでしょうか。
ソース
  Dim cnt(245) As String
    cnt(1) = "ああ"
    cnt(2) = "いい"
    cnt(3) = "うう"
        :
        :
    cnt(101) = "ええ"
    cnt(102) = "おお"

        :
        :
    cnt(243) = "かか"
    cnt(244) = "きき"
    cnt(245) = "くく"
    cnt(10) = "ここ"
エラー内容
代入ステートメントやループ ステートメントなどの非宣言ステートメントが、プロシージャの外側にあります。プロシージャの外側に記述できるのは宣言だけです。

または、プログラミング要素が、Dim や Const などの宣言キーワードを使用せずに宣言されています。