以下は、私たちはCSV(カンマ区切り)テキストファイルにExcelの範囲を書き込みエクセルVBAでプログラムを見ていきます。

状況:

Write Data to Text File in Excel VBA

ワークシート上のコマンドボタンを配置し、次のコード行を追加します。

1.まず、我々は、String型の変数のmyFileと呼ばれる、タイプレンジのRNGと呼ばれるオブジェクト、Variant型のcellValueという変数を宣言し、変数はInteger型のI、およびInteger型のJと呼ばれる変数と呼ばれます。 Variant型の変数が値の任意の型を保持することができるので、ここではVariant型の変数を使用します。

Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer

2.私たちは、完全なパスとファイルのファイル名を指定する必要があります。

myFile = Application.DefaultFilePath & "\sales.csv"

注:DefaultFilePathプロパティは、デフォルトのファイルパスを返します。デフォルトのファイルの場所を変更するには、[ファイル]タブで、[オプション]、[保存]をクリックします。

3.私たちは、選択した範囲と範囲オブジェクトのRNGを初期化します。

Set rng = Selection

4.次のコード行を追加します。

Open myFile For Output As #1

注意:このステートメントは、ファイルへの書き込みができるようになります。私たちは、コードの残りの部分の間に第1位としてファイルを参照することができます。ファイルがすでに存在する場合、それが削除され、同じ名前の新しいファイルが作成されます。

  1. [スタート]ダブルループ。

For i = 1 To rng.Rows.Count

For j = 1 To rng.Columns.Count

注:rng.Rows.Count行(この例では17)の数を返し、rng.Columns.Countは列(この例では4)の数を返します。

6.エクセルVBA変数cellValueにセルの値を書き込みます。

cellValue = rng.Cells(i, j).Value

テキストファイルにcellValueの値を書き込むために、次のコード行を追加します7。

If j = rng.Columns.Count Then

Write #1, cellValue

Else

Write #1, cellValue,

End If

説明:jは列数(行の最後の値)に等しいとき場合、Elseステートメントのために、ExcelのVBAは(、cellValueに#1を書く)新しい行を開始します。コンマ、(カンマで)使用書き込み#1、cellValue、との値を分離します。

8.両方のループを閉じることを忘れないでください。

Next j

Next i

9.閉じるファイル。

Close #1

10.データを選択し、シート上のコマンドボタンをクリックしてください。

結果:

Write Data to Text File Result