連載

プロフェッショナルVB.NETプログラミング

第2回 データ型の処理

(株)ピーデー
川俣 晶
2002/04/11

Page1 Page2 Page3 Page4 Page5 Page6

配列のサイズ変更

 VB 6には、配列の大きさを変更するReDimステートメントが存在する。しかし、このステートメントは、あらかじめサイズの決まっていない配列を宣言してから、そのサイズを変更するという手順を踏まねば使用できない。以下は、配列のサイズを変えながら値を格納するサンプル・ソースである。

 1: Private Sub Form_Load()
 2:   Dim a() As Integer
 3:   ReDim a(1)
 4:   a(0) = 0
 5:   a(1) = 1
 6:   ReDim Preserve a(2)
 7:   a(2) = 2
 8:   For i = 0 To 2
 9:     Debug.Print a(i)
10:   Next
11: End Sub
ReDimステートメントを使用したVB 6のサンプル・プログラム15

 これを実行すると以下のようになる。

0
1
2
サンプル・プログラム15の実行結果

 ここではReDimを使用する準備として、2行目でサイズのない配列を用意している。このサイズのない配列aに対して、3行目や、6行目ではReDimを適用している。だが、VB.NETではこのあたりの挙動がやや異なる。以下は同じ機能を持つコードをVB.NETで記述してみた例である。

 1: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 2:   Dim i As Integer
 3:   Dim a(1)
 4:   a(0) = 0
 5:   a(1) = 1
 6:   ReDim Preserve a(2)
 7:   a(2) = 2
 8:   For i = 0 To 2
 9:     Trace.WriteLine(a(i))
10:   Next
11: End Sub
サンプル・プログラム15をVB.NETで書き換えたサンプル・プログラム16

 これを実行すると以下のようになる。

0
1
2
サンプル・プログラム16の実行結果

 ここで注目すべきは3行目と6行目である。サイズのある配列に対してReDimステートメントを適用しているが、VB 6と異なり、VB.NETではこのコードは正常に機能するVB.NETでは、すべての配列が、サイズ変更可能扱いとなっている。これは、.NET Frameworkで扱われる配列の仕様と一致させるための仕様変更と思われる。

配列の初期化

 配列を作成した時点で、特定のデータを配列内に設定したい場合がある。VB 6には、そのための構文は特に用意されておらず、普通の配列への代入手順で内容をセットする。例えば、以下のサンプル・ソースのように記述する。

1:  Private Sub Form_Load()
2:   Dim a(2) As String
3:   a(0) = "One"
4:   a(1) = "Two"
5:   a(2) = "Three"
6:   For i = 0 To 2
7:     Debug.Print a(i)
8:   Next
9: End Sub
配列に初期値を設定するVB 6のサンプル・プログラム17

 これを実行すると以下のようになる。

One
Two
Three
サンプル・プログラム17の実行結果

 VB.NETには、配列の初期化構文が用意されているので、これを用いることで、より簡潔にあらかじめ指定された値を持った配列を作成できる。以下は、上記のVB 6サンプルと同じ機能をVB.NETで記述したサンプル・ソースである。

1: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
2:   Dim a() As String = {"One", "Two", "Three"}
3:   Dim i As Integer
4:   For i = 0 To 2
5:     Trace.WriteLine(a(i))
6:   Next
7: End Sub
配列の初期化構文を使用したVB.NETのサンプル・プログラム18

 これを実行すると以下のようになる。

One
Two
Three
サンプル・プログラム18の実行結果

 ここでポイントになるのは、2行目の配列の宣言である。まず、配列のサイズを数値で指定せず空のままにしておく。配列のサイズは初期化する項目の数から明確に決まるので、数値で指定する必要はない。そして、配列の宣言に続いてイコール記号を置き、中括弧内にカンマで区切って値を並べる。ここでは、3つの文字列を記述しているが、これにより、配列の要素数は3個であると確定する。この宣言により、One、Two、Threeという3つの文字列を含む要素数3の配列が作成される。


 INDEX
  連載 プロフェッショナルVB.NETプログラミング
  第2回 データ型の処理
    1.まずは小さなプログラムから
    2.整数型の表現力
    3.そのほかのデータ型の互換性
    4.同じデータ型の変数の宣言
  5.配列のサイズ変更
    6.配列の次元数の変更
 
「プロフェッショナルVB.NETプログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間