
VBAを使っていて、
配列数を変数で定義したいのですが、
ネットで検索すると
Dim aaaa() as integer
Redim aaa(xxx, yyy)
あるいは
Dim aaaa()
Redim aaa(xxx, yyy) as integer
のようにdimで変数を定義した後にredimで定義しなおす方法が書かれてあります。
一方で、
Redim aaa(xxx, yyy) as integer
のように、dimの定義を省略して、いきなりredimで配列を定義しても
問題なくプログラムは実行できることに気がついたのですが
これら二つの方法に違いはあるのでしょうか?
後者を使っても問題ないでしょうか?
No.1ベストアンサー
- 回答日時:
ReDimのヘルプより
メモ 宣言した変数がモジュール レベルまたはプロシージャ レベルにない場合、
ReDim ステートメントは宣言ステートメントと同様の働きをします。同じ名前を
持つほかの変数が後で作成されると、その変数の適用範囲 (スコープ) が広く、
Option Explicit ステートメントが指定されている場合でも、
ReDim ステートメントは後で作成された変数を参照し、コンパイル エラーは発生しません。
このような名前の競合を避けるには、ReDim ステートメントは宣言ステートメント
として使わず、配列を再定義するためだけに使用します。
と、ありますので宣言なしでRedimはしない方がいいでしょうね。
バグの温床になりそうな気配です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
OutOfMemoryExceptionの回避策...
-
複数のtextboxの処理を一括で行...
-
Dir関数で読み取り順を操作でき...
-
VBScriptでCSVファイルを読み出...
-
Excelのメモリ(配列)の上限は2G...
-
エクセルでXY座標に並べられた...
-
コンボボックスのインデックス...
-
レコードセットの中身を配列に...
-
VB.NETの配列の限界を教えてく...
-
グラフの「項目軸ラベルに使用...
-
配列のペースト出力結果の書式...
-
配列の中の最大値とそのインデ...
-
VBA フォルダ内のファイルを、...
-
VB.NETの配列にExcelから読み込...
-
VBで配列に格納されているデー...
-
配列の要素がすべてカラかどう...
-
定数配列の書き方
-
クイズゲームのフォームについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
Dir関数で読み取り順を操作でき...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
複数のtextboxの処理を一括で行...
-
Excelのメモリ(配列)の上限は2G...
-
配列の中の最大値とそのインデ...
-
大量の変数を定義するにはどう...
-
Excel2010のinputboxで複数デー...
-
COBOLの基本的な事なので...
-
構造体配列内の文字列検索のよ...
-
VBAでMODE関数をつくる
-
Redim とEraseの違いは?
-
VBScriptでCSVファイルを読み出...
-
VB6のメモリ解放に関して
-
VB.NETの配列にExcelから読み込...
-
Segmentation Fault (メモリ制限?)
-
ActiveReports(アクティブレポ...
おすすめ情報