重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初心者です。シートAのセルB1からC5までを指定し、A1とA2のセルの値をファイル名にしてテキストファイルにしてデスクトップに保存したいですが、シートは指定できてもセルの指定の仕方が上手くいかずわかりません。
良い方法ありませんでしょうか?
宜しくお願い致します。

Private Sub CommandButton1_Click()

Sheets(Array("シートA")).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "C:\*******\Desktop\" & Range("A1") & Range("A2") & ".txt"

End Sub

A 回答 (3件)

下記URLを参考にして作りました。


https://www.lisz-works.com/entry/excel-vba-outpu …

標準モジュールに登録してください
folderはあなたの環境にあわせて適切に設定してください
あなたが保存形式を提示されていないので、CSV形式とテキスト形式の2種類で保存するようにしました。
どちらかが不要であればそれを削除してください。
---------------------------------------
Option Explicit
Public Sub シート保存()
Dim sname As String
Dim name1 As String
Dim name2 As String
Dim folder As String
folder = "C:\Users\xxxxx\Desktop\"
'シート名
sname = "シートA"
'ファイル名
name1 = Worksheets(sname).Range("A1").Value
name2 = Worksheets(sname).Range("A2").Value
'新しいシートを追加し、選択範囲をコピー
Worksheets(sname).Range("B1:C5").Copy Destination:=Worksheets.Add.Range("A1")
'新しいブックを作成し、そこにシートを移動する
ActiveSheet.Move
'上書きのメッセージを表示させない
Application.DisplayAlerts = False
'CSV形式でファイル保存
ActiveWorkbook.SaveAs Filename:=folder & name1 & name2 & ".csv", FileFormat:=xlCSV
'テキスト形式でファイル保存
ActiveWorkbook.SaveAs Filename:=folder & name1 & name2 & ".txt", FileFormat:=xlCurrentPlatformText
'保存せずに閉じる
ActiveWorkbook.Close savechanges:=False
'メッセージ表示を戻す
Application.DisplayAlerts = True
MsgBox ("完了")
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました!思っていたものが出来てとても満足です。
また機会がありましたら宜しくお願いいたします。

お礼日時:2018/08/08 05:28

No2です。


テキストファイルと指定されていましたね。
失礼しました。
CSVファイルの記述は削除してください。
ActiveWorkbook.SaveAs Filename:=folder & name1 & name2 & ".csv", FileFormat:=xlCSV
の行です。
    • good
    • 0

これってbookを別名で保存するだけのものです



『VBA テキストファイル 書き込み』等で検索してみる

ただ先の質問もですが、
・セルの値をどのように書き込むのか
・セルの値をどのように名前としてつかうのか
そう言った点がないとダメかな?って思いますよ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!