
CSVファイルには必ず【AAA、BBB、CCC】というデータを書き込みます。
テキストファイルであれば、他のデータ(例:DDD)も書き込みたいです。
配列:
arr = 配列("AAA", "BBB", "CCC")
テキストファイル(読み取り):
AAA
BBB
CCC
DDD
BBB
CCC
AAA
DDD
AAA
コード:
Open InputFile For Input As #1
Open OutputFile For Output As #2
Do Until EOF(1)
Line Input #1, strData
'Read data from text file
'Check text file data exists or not in arr
'If not exist, add items(DDD) to arr
Print #2, strData
Loop
Close #1
Close #2
CSVファイル(書き込み):
AAA, BBB, CCC, DDD
これを行う最善の方法は何ですか?
答え1
フィルター関数 (Visual Basic)
指定されたフィルター条件に基づいて、文字列配列のサブセットを含むゼロベースの配列を返します。
- 関数を使用し
filter
、Ubound() で結果の配列のサイズを確認します。 Redim preserve
配列を1つ拡張し、最近チェックしたテキスト値を追加します。
ここに小さな一般的な例を挙げます
Sub IsInArray()
Dim arrCheck()
arrInput = Array("AAA","BBB","CCC","DDD","BBB","CCC","AAA","DDD","AAA")
arrCheck = Array("AAA","BBB","CCC")
For Each Item In arrInput
If UBound(Filter(arrCheck, Item)) = -1 Then
ReDim Preserve arrCheck(UBound(arrCheck) + 1)
arrCheck(UBound(arrCheck)) = Item
End If
Next
End Sub