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

投稿日: 2003/09/13(Sat) 07:47
投稿者J
Eメール
URL
タイトルRe: 変数について

変数を固定配列の要素指定にすることは出来ません。
固定長の配列宣言の要素指定にはリテラル(定数)を指定しなければなりません。

エラーダイアログのヘルプボタンで表示されるヘルプを参照してください。
ヘルプにはこのように書いてあります。

>配列の宣言で、要素数を変数で指定しようとしています。
>プロシージャ内で動的配列を宣言するには、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 以下の場合エラーとなるので注意してください。


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

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

- Web Forum -