テキストファイルをエクスポートしますが、xlsxファイルの編集は続行します

テキストファイルをエクスポートしますが、xlsxファイルの編集は続行します

私は Excel を使用してテキスト ファイルを生成し、それをデータベースへの入力として解析します。Excel でテキスト ファイルを編集しているため、xlsx ファイルをテキスト ファイルとして保存して Excel を閉じなければならないときはいつもイライラします。テキスト ファイルを生成せずに、xlsx ファイルを Excel で開いたままにする方法はありますか?

答え1

そのためには、次のような VBA マクロが必要になります。

Sub WriteTextFile()
  Dim FilePath As String
  Dim CellData As String
  Dim LastCol As Long
  Dim LastRow As Long

  LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
  LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
  CellData = ""

  FilePath = Application.DefaultFilePath & "\euth.csv"

  Open FilePath For Output As #2

  For i = 1 To LastRow
    For j = 1 To LastCol

      If j = LastCol Then
        CellData = CellData + TrimtActiveCell(i, j).Value)
      Else
        CellData = CellData + TrimtActiveCell(i, j).Value) + ","
      End If

      Next j

      Write #2, CellData
      CellData = ""
    Next i

    Close #2

    MsgBox ("Done")
End Sub

必要に応じてサブルーチンを変更し、パラメータとして「euth.csv」を追加したり、プロンプトを表示したりできます。スプレッドシートに列が 1 つしかない場合は、このコードを大幅に簡素化できます。

上記のコマンドの説明については、記事を参照してください。 Excel VBA でテキストファイルに書き込む/

関連情報