配列から空文字を除外する
にメンテナンス済み
VBA を使ってプログラムを作成する際、配列内のデータを操作することがよくあります。配列から空文字のデータを除外する必要がある場合、どのように実現するかをこの記事では解説します。具体的なコード例を用いて、ステップバイステップで紹介していきます。
空文字とは
VBAにおいて空文字とは、文字列が何も含まれていない状態のことを指します。配列内の要素が""
であるかどうかを確認することで、その要素が空文字かどうかを判断できます。
空文字を除外するための基本的なアプローチ
配列から空文字を除外する方法として、以下のような手順を取ることが一般的です。
- 元の配列をループで巡回し、空文字でない要素をカウントします。
- 空文字でない要素の数に基づいて、新しい配列を作成します。
- 新しい配列に空文字でない要素をコピーします。
この手順を詳しく見ていきましょう。
コード例:配列から空文字を除外
以下に、VBA を使って上記のステップを実装したコード例を示します。
Public Sub RemoveEmptyStrings()
Dim originalArray As Variant
Dim cleanedArray As Variant
Dim i As Long
Dim count As Long
' 元の配列を定義する
originalArray = Array("Apple", "", "Banana", "", "Cherry", "Date", "")
' 空文字でない要素をカウントする
count = 0
For i = LBound(originalArray) To UBound(originalArray)
If originalArray(i) <> "" Then
count = count + 1
End If
Next i
' 空文字を除外した配列を再定義する
ReDim cleanedArray(0 To count - 1)
' 元の配列から空文字でない要素をコピーする
count = 0
For i = LBound(originalArray) To UBound(originalArray)
If originalArray(i) <> "" Then
cleanedArray(count) = originalArray(i)
count = count + 1
End If
Next i
' 結果を出力する
For i = LBound(cleanedArray) To UBound(cleanedArray)
Debug.Print cleanedArray(i)
Next i
End Sub
配列のサイズ変更に注意
VBAでは、配列のサイズを変更する際にReDim
を使用しますが、ReDim
は配列を再初期化するため、元の配列データが失われます。元のデータを保ったままサイズを変更したい場合はReDim Preserve
を使用しますが、この例では新しい配列を作成するためReDim
のみで問題ありません。
コードの説明
-
元の配列の定義:
originalArray
にサンプルのデータを格納しています。この配列には空文字が含まれています。
-
空文字でない要素のカウント:
- 最初の
For
ループで、空文字でない要素の数をカウントします。この数が新しい配列のサイズになります。
- 最初の
-
新しい配列の作成:
ReDim
ステートメントを使って、空文字を除外した新しい配列cleanedArray
を定義します。
-
空文字でない要素のコピー:
- 2 回目の
For
ループで、空文字でない要素をcleanedArray
にコピーします。
- 2 回目の
-
結果の出力:
- 最後に、
cleanedArray
の内容をDebug.Print
で出力しています。
- 最後に、
まとめ
VBA で配列から空文字を除外する方法を紹介しました。 基本的な手順としては、配列をループで巡回し、空文字でない要素を新しい配列にコピーします。 実際のプロジェクトでこの方法を活用して、配列データのクリーンアップを効率的に行いましょう。
#VBA
#配列
#空文字
#データ操作