
変数を作成する際には必要な分だけ一つずつ宣言する必要があるのでしょうか?
例えば、連番を格納する文字列型変数を一時的に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
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
変数名の取得
Visual Basic(VBA)
-
8
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
9
Excel-vba 文字列と変数を連結して更に変数として扱いたい
その他(プログラミング・Web制作)
-
10
配列をループでたくさん宣言したいのですが、配列名や変数名を変数で宣言することはできませんか?
Visual Basic(VBA)
-
11
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
文字列を変数名として扱う方法
Visual Basic(VBA)
-
14
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
15
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
16
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
17
エクセルVBAのEntireRow.Hiddenをスピードアップしたいのですが・・・。
Excel(エクセル)
-
18
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
EXCEL VBA で、0から?1から?
-
VB.net 引数で配列変数を渡す際...
-
遅延バインディングを使用でき...
-
IF関数でEmpty値を設定する方法。
-
変数を動的に作るには?
-
C#の質問
-
PowerShell にて、配列の計算を...
-
配列にある重複要素を削除した...
-
エクセル 配列の論理演算?
-
多次元配列
-
Excel VBAで配列の途中から(X)M...
-
格闘ゲームのコマンド判定について
-
コントロールが配列かどうかを...
-
グループ分け
-
マップチップの当たり判定の出し方
-
[EXCEL VBA] 配列メモリの動的...
-
空き番号探し
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
VBAで配列の計算
-
C言語 重複しない4ケタの乱数...
-
VB.net 引数で配列変数を渡す際...
-
変数を動的に作るには?
-
C#の質問
-
VBでbyte配列型のインスタンス...
-
VBで作った乱数を一度も重複さ...
-
javaプログラムについて
-
配列の要素数を超えた参照のコ...
-
For文と配列
-
複数のテキストボックスに同じ...
-
Excel VBAで配列の途中から(X)M...
-
ラジオボタンのチェックをEnter...
-
遅延バインディングを使用でき...
-
ジャグ配列とは
-
int型配列の一括初期化
おすすめ情報