VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/09/13(Sat) 12:42
投稿者kuro
Eメール
URL
タイトルRe^2: 変数について

> 変数を固定配列の要素指定にすることは出来ません。
> 固定長の配列宣言の要素指定にはリテラル(定数)を指定しなければなりません。
>
> エラーダイアログのヘルプボタンで表示されるヘルプを参照してください。
> ヘルプにはこのように書いてあります。
>
> >配列の宣言で、要素数を変数で指定しようとしています。
> >プロシージャ内で動的配列を宣言するには、ReDim で配列を宣言してから、変数で要素数を指定します。
>
> 正し次のようなケースではコンパイルは成功します。
> Const BB As Long = 5
> Type aaa
>   E As Long
>   F(0 To BB - 1) As Long
> End Type
> これは冒頭にも書きましたが、定数を指定しているからです。
>
> 動的に配列を確保する場合は関数内で行う必要があります。
> なぜなら、ReDimステートメントを使用できるのはプロシージャ レベルだけだからです。
> 詳しくはヘルプ参照して下さい。
>
> 動的に配列要素を指定する場合は以下のようにします。
> Type aaa
>   E As Long
>   F() As Long
> End Type
> Dim a As aaa
>
> Sub XXX()
>   Dim BB
>   BB = 1
>   Redim a.F(0 To BB - 1)
> End Sub
>
> また、このコードで注意しなければならないのは、変数 BB が 0 以下の場合エラーとなるので注意してください。

********************************************
有難う御座いました。
説明不足だったかも知れません。
BBには他の関数から得た値を入れたかったのです。
結局、For・・・Nextを使ってコードを変更しました。
 Type aaa
  E As Long
  F As Long
 End Type
 Dim a As aaa

 Sub XXX()
  BB = ff    'ff関数からの値
  For i = 0 To BB - 1
      CopyMemory  a ,gg ,a
      Debug.Print F
    Next i
 End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -