- ベストアンサー
エクセルVBAでテキストを出力したい
エクセルVBAでテキストを出力したいのですが、 やり方がわからないので教えてください。 仮にSheet2のA列に文章があるとして、 シート全体を1つのテキストファイルとして出力し、 ファイル名をSheet1のA1セルにしたいです。 同じような質問もあるのですが、ファイル名に関しては、 ちょっと見当たらなかったので質問しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>保存先のパスですが、エクセルブックがあるフォルダと同じ場所にしたいのですが、どうすればいいでしょうか? myPath = "G:\" '保存先パス ↓ myPath = ThisWorkbook.Path & "\"
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
>保存先をエクセルブックがある同じフォルダにしたい ファイルの保存先を明示的に指示するだけですが。 変更前: myfile = worksheets("Sheet1").range("A1").value & ".txt" 変更後の一例: dim myPath as string mypath = activeworkbook.path mypath = iif(mypath = "", "", mypath & "\") myfile = mypath & worksheets("Sheet1").range("A1").value & ".txt"
お礼
回答ありがとうございます。 上手くできました。
- keithin
- ベストアンサー率66% (5278/7941)
sub macro1() dim myFile as string myfile = worksheets("Sheet1").range("A1").value & ".txt" worksheets("Sheet2").copy activesheet.saveas filename:=myfile, fileformat:=xlunicodetext activeworkbook.close false end sub みたいな。
補足
回答ありがとうございます。 テキストファイルがマイドキュメントに保存されたのですが、 保存先をエクセルブックがある同じフォルダにしたい場合はどうすればいいのでしょか? ちなみに、今は、ディスクトップにフォルダを作り、エクセルブックを入れてテストしているのですが、フォルダ名は、毎回違い、また、いつもディスクトップにフォルダがあるとは限りません。
- watabe007
- ベストアンサー率62% (476/760)
こんにちは、参考に Sub Sample01() Dim myPath As String, fn As String Dim c As Range myPath = "G:\" '保存先パス fn = Worksheets("Sheet1").Range("A1").Value '保存ファイル名 Open myPath & fn & ".txt" For Output As #1 With Worksheets("Sheet2") For Each c In .Range("A1", .Cells(Rows.Count, "A").End(xlUp)) Print #1, c.Value Next End With Close #1 MsgBox "...Done" End Sub
補足
回答ありがとうございます。 保存先のパスですが、エクセルブックがあるフォルダと同じ場所にしたいのですが、どうすればいいでしょうか? ちなみに、今は、ディスクトップにフォルダを作り、エクセルブックを入れてテストしているのですが、フォルダ名は、毎回違い、また、いつもディスクトップにフォルダがあるとは限りません。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
これは超古典的なQ~~ エクセル セルA1に入力したデータをファイル名にする方法 2011/12/02 16:29 http://setsunanohana.blog105.fc2.com/blog-entry-300.html <<以下、引用>> Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 1 And Target.Column = 1 Then ActiveSheet.Name = Target.Value ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Target.Value End If End Sub
お礼
回答ありがとうございます。 上手くできました。