ここから本文です

Excel VBAの静的配列の宣言について 静的配列の宣言の方法が下記2種類あると思...

stu********さん

2019/4/1609:59:05

Excel VBAの静的配列の宣言について

静的配列の宣言の方法が下記2種類あると思うのですが、
・Dim 配列名(最大インデックス番号) As 型名
・Dim A(最小インデックス番号 To 最大インデッ

クス番号 ) As 型名

後者の場合、Excel の行番号などの対応が直感的で分かりやすいかなと思うのですが、それぞれを使う時に考えられるメリットデメリット(=使い分け)を教えていただけませんか。

閲覧数:
50
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2019/4/1620:04:18

別に2種類あるわけではないです。
Dim ステートメントの構文は、

Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .

となっており、subscripts については、
[lower To] upper [, [lower To] upper] . . .

という書き方をする規則です。御質問の2つのうち前者は、[lower To]が省略されているというだけです。
lowerを指定しない場合は、配列のインデックス番号の最小値は Option Base ステートメントによって決まります。

つまり前者には、lowerを省略して簡潔に記述できるというメリットがあり、後者にはインデックス番号の最小値を自由に設定できるというメリットがあります。
逆に言えば、前者には、インデックス番号の最小値を自由に設定できないというデメリットがあり、後者は記述が簡潔にならないというデメリットがあります。

  • 質問者

    stu********さん

    2019/4/2016:04:00

    ご回答ありがとうございます。
    2種類あると思っていましたがただ省略されただけだったのですね。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/4/23 02:01:15

理解しました。ありがとうございます。

ベストアンサー以外の回答

1〜1件/1件中

kik********さん

2019/4/1613:15:41

静的配列だけを見ても、パッとしないかも

以下を標準モジュールに記述して、Samp1 を実行してみます
Stop 部分で止まるので、
ローカルウィンドウで各変数の状態を確認してみます

★ 行を有効/無効(コメントに)を切り替えながら

違いがわかったら、
人によっては、XXXXXX をメリットというかもしれない


Option Explicit
Option Base 1 ' ★

Public Sub Samp1()
   Dim sA(3) As String, sB(1 To 3) As String
   Dim sC() As String
   Dim vA As Variant

   vA = Array(1, 2, 3, 4)
   sC = Split("A,B,C,D", ",")
   Stop
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる