
変数を作成する際には必要な分だけ一つずつ宣言する必要があるのでしょうか?
例えば、連番を格納する文字列型変数を一時的に100個必要だとすると
Dim textdat1 As String = "Number1"
Dim textdat2 as String = "Number2"
Dim textdat3 as String = "Number3"
・
・
・
と100個宣言しないといけないと思うのですがこれを
For i As Integer = 1 To 100
Dim textdat(i) As String = "Number" & i
Next i
という様な形で変数を作成することは出来ないのでしょうか。
初歩的な質問かもしれませんが、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こういうのは、
「配列」という仕組みの必要性を書いてある説明の、始めにかならず書いてあることでしょう。
その配列を使えばよいでしょう。
配列を使いますという宣言(次元と要素) Dim
配列をクリア Array.Clear
配列の次元と要素をプログラムの実行中に変える Redim
Array.Resize
配列を抹消
配列の値を初期化
配列のメソッド・プロパティ
ーーー
下記を参考に
http://homepage1.nifty.com/rucio/main/dotnet/sho …
http://smdn.invisiblefulmoon.net/programming/vb. …
ーー
質問にVB6かVB.NET系か書くようにしてください。
忘れていました、使用言語はVB.NETです。
求めていた事は配列で解決する事が出来ました。
他に回答していただいた方も他の用途で参考にさせて頂きます。
有難う御座いました。
No.2
- 回答日時:
Reflectionを使用すれば動的に変数を宣言できます。
とっても難しいですよ。
ArrayListのようなコレクションクラスを使って動的に配列を生成すれば目的は達成できるのでは?
参考になれば幸いです。
Dim nameLists As New List(Of String)
nameLists.Add("どら")
nameLists.Add("のび")
nameLists.Add("しず")
nameLists.Add("じゃい")
nameLists.Add("すね")
'じゃいを削除
nameLists.Remove("じゃい")
For Each Name As String In nameLists
Console.WriteLine(Name)
Next
nameLists = Nothing
'なんとしても変数名でがんばりたい場合
'StringDictionaryでもよいほかにも使えますが今回はHashTableで
'Dim s As Collections.Specialized.StringDictionary
Dim nameHashTable As New Hashtable
Dim counter As Integer = 0
nameHashTable.Add("Number" & counter, "どら")
counter += 1
nameHashTable.Add("Number" & counter, "のび")
counter += 1
nameHashTable.Add("Number" & counter, "しず")
counter += 1
nameHashTable.Add("Number" & counter, "じゃい")
counter += 1
nameHashTable.Add("Number" & counter, "すね")
'すねを削除
nameHashTable.Remove("Number" & counter)
For i As Integer = 1 To nameHashTable.Count - 1
Console.WriteLine(nameHashTable("Number" & i))
Next i
No.1
- 回答日時:
Option Explicit On
Option Strict On
Option Compare Binary
Option Infer Off
Class Q5348939
Shared Sub Main()
'普通に配列を作ってみる
Dim hoge(10) As String
For i As Integer = 0 to 10
hoge(i) = i.ToString()
Next i
System.Diagnostics.Debug.Print(hoge(3)) '"3"
'System.Diagnostics.Debug.Print(hoge3) hoge3という変数を作っているわけではないのでコンパイルエラー。以下同文
'ReDim Preserveはあまり好きじゃないのでArray.Resize
'どうしても動的でなきゃだめ?
Dim fuga As String()
For i As Integer = 0 to 10
Array.Resize(fuga,i + 1)
fuga(i) = i.ToString()
Next i
System.Diagnostics.Debug.Print(fuga(10))
'俺はリストのほうが好みかな
Dim guri As System.Collections.Generic.List(Of String)
guri = new System.Collections.Generic.List(Of String)()
For i As Integer = 0 to 10
guri.Add(i.ToString())
Next i
System.Diagnostics.Debug.Print(guri(4))
'自動でずれる
guri.RemoveAt(4)
System.Diagnostics.Debug.Print(guri(4))
End Sub
End Class
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
VBAで変数の数/変数名を動的に変化させる
その他(プログラミング・Web制作)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
-
8
変数名の取得
Visual Basic(VBA)
-
9
Excel-vba 文字列と変数を連結して更に変数として扱いたい
その他(プログラミング・Web制作)
-
10
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
11
配列をループでたくさん宣言したいのですが、配列名や変数名を変数で宣言することはできませんか?
Visual Basic(VBA)
-
12
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
15
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
16
全てのオブジェクトのプロパティーを一気に変更する方法
Visual Basic(VBA)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
19
VBで構造体を使うさ際の64k制限の回避方法教えてください。
Visual Basic(VBA)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
IF関数でEmpty値を設定する方法。
-
VB.net 引数で配列変数を渡す際...
-
動的配列が存在(要素が有る)か...
-
変数を動的に作るには?
-
C言語 重複しない4ケタの乱数...
-
VBAで配列の計算
-
C#での画像送信プログラム(ネ...
-
C# での文字列パディング
-
格闘ゲームのコマンド判定について
-
C#の質問
-
Excel VBAで配列の途中から(X)M...
-
(Swing)JTextFieldを半角のみ入...
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
JSPでImportエラーになります
-
ループ処理の際、最後だけ","を...
-
オブジェクトの中のプロパティ...
-
javaで文字数制限するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
VBAで配列の計算
-
VB.net 引数で配列変数を渡す際...
-
C言語 重複しない4ケタの乱数...
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
C#の質問
-
変数を動的に作るには?
-
配列の要素数を超えた参照のコ...
-
VBで作った乱数を一度も重複さ...
-
Excel VBAで配列の途中から(X)M...
-
Visual C++ でコントロールを...
-
VBでbyte配列型のインスタンス...
-
For文と配列
-
複数のテキストボックスに同じ...
-
五目並べのプログラムを配列と...
-
格闘ゲームのコマンド判定について
-
フォームコントロールのチェック
-
遅延バインディングを使用でき...
おすすめ情報