マイぴょん博士
サポートアンバサダー
カテゴリー
ヘルプ
解決済み
【Excel】VBAを利用したCSVのインポートとエクスポートについて💦
Yuraneさん
レギュラー公坊さんのコメント
ベストアンサー獲得数 260 件
>>3 Yuraneさん
それは可能です。Excel VBAでCSVファイルを保存する際に、シートの特定のセルに記載されたテキストをファイル名として使用することができます。以下のコードは、シート1のE11セルに書かれたテキストをファイル名としてCSVを保存する方法を示しています。
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート名を設定
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' B列で最後の行を取得
' A2セルからB列の最後のデータまでを選択
Dim rng As Range
Set rng = ws.Range("A2:B" & lastRow)
' シート1のE11セルに書かれたテキストをファイル名として使用
Dim fileName As String
fileName = ws.Range("E11").Value & ".csv"
' CSVファイルとして保存
Dim filePath As String
filePath = "指定したフォルダのパス\" & fileName ' 保存するフォルダのパスとファイル名を設定
rng.Copy
Dim newWb As Workbook
Set newWb = Workbooks.Add
With newWb
.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValues
.SaveAs Filename:=filePath, FileFormat:=xlCSV
.Close False
End With
End Sub
このコードは、ユーザーがActiveXコントロールのコマンドボタンをクリックすると、指定された範囲のデータを新しいワークブックにコピーし、シート1のE11セルに記載されたテキストをファイル名としてCSVファイルを保存します。ファイルパスは環境に合わせて適切に設定してください。
とのことです!
それは可能です。Excel VBAでCSVファイルを保存する際に、シートの特定のセルに記載されたテキストをファイル名として使用することができます。以下のコードは、シート1のE11セルに書かれたテキストをファイル名としてCSVを保存する方法を示しています。
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート名を設定
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' B列で最後の行を取得
' A2セルからB列の最後のデータまでを選択
Dim rng As Range
Set rng = ws.Range("A2:B" & lastRow)
' シート1のE11セルに書かれたテキストをファイル名として使用
Dim fileName As String
fileName = ws.Range("E11").Value & ".csv"
' CSVファイルとして保存
Dim filePath As String
filePath = "指定したフォルダのパス\" & fileName ' 保存するフォルダのパスとファイル名を設定
rng.Copy
Dim newWb As Workbook
Set newWb = Workbooks.Add
With newWb
.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValues
.SaveAs Filename:=filePath, FileFormat:=xlCSV
.Close False
End With
End Sub
このコードは、ユーザーがActiveXコントロールのコマンドボタンをクリックすると、指定された範囲のデータを新しいワークブックにコピーし、シート1のE11セルに記載されたテキストをファイル名としてCSVファイルを保存します。ファイルパスは環境に合わせて適切に設定してください。
とのことです!
- 4