• ベストアンサー

VBAでブック内のワークシートを名前をつけて保存

エクセルVBAで作業中のブックの一部のワークシート(2枚)を名前をつけて保存する方法を教えてください。 (例)  《ブックA》  sheet1 sheet2     sheet3 10/5     10個 10,000円    4個 25,000円 東京     25個 18,500円    6個 42,000円 というブックから『10/5 東京』というブックでsheet2,sheet3の内容を 保存したいのですが・・・ VBAは勉強し始めでほとんどわからないので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

No1です。 追加質問について、回答します。 A1セルが空白の時はC1セルとH1セルの値をくっつけて名前とします。 もし、C1,D1,E1,~H1セル全部くっつけたいということでしたら fn2 = .Range("C1").Value & .Range("H1").Valueの部分に&で書き足してください。 なお、さきほどの回答にあやまり(& "\" が抜けていた)がありましたので修正します。 Sub TEST02() Dim pt As String, fn As String, fn2 As String pt = ActiveWorkbook.Path With Sheets("Sheet1") fn = .Range("A1").Value fn2 = .Range("C1").Value & .Range("H1").Value End With Sheets(Array("Sheet2", "Sheet3")).Copy ActiveWorkbook.SaveAs Filename:=pt & "\" & IIf(fn = "", fn2, fn) ActiveWorkbook.Close End Sub

Mont-Vento
質問者

お礼

ありがとうございます。 次々と質問してスミマセン。

Mont-Vento
質問者

補足

補足の質問にも丁寧に答えていただきありがとうございます。 思っていたとおりのができました。 あと、もう1つ質問です。 保存先を指定するダイアログボックスを表示させたいのですが、 (保存先を指定したい)どうすればよいですか?

その他の回答 (2)

  • moooon
  • ベストアンサー率26% (26/98)
回答No.3

こう次々と初期の質問から飛躍するのはどんなもんでしょうねえ。本来は、別の質問としてアップするべきと思いますが・・・。 横からですが、一応おこたえします。 No1-2さんのをほとんど丸写しになってしまいますが、そのほうがわかりやすいでしょう。merlionXXさん、すみません。 Sub HOZONN() Dim pt As String, fn As String, fn2 As String Dim Rtn pt = ActiveWorkbook.Path With Sheets("Sheet1") fn = .Range("A1").Value fn2 = .Range("C1").Value & .Range("H1").Value End With Sheets(Array("Sheet2", "Sheet3")).Copy Rtn = Application.Dialogs(xlDialogSaveAs) _ .Show(ARG1:=IIf(fn = "", fn2, fn) & ".xls", ARG2:=1) If Rtn = False Then Exit Sub ActiveWorkbook.Close End Sub

Mont-Vento
質問者

お礼

スミマセン。 次回からはそうさせていただきます。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

10/5 東京ですが、/ はブックやシートの名前に使えないので 10.5 東京 としました。 Sub TEST01() Dim pt As String pt = ActiveWorkbook.Path Sheets(Array("Sheet2", "Sheet3")).Copy ActiveWorkbook.SaveAs Filename:=pt & "10.5 東京.xls" ActiveWorkbook.Close End Sub

Mont-Vento
質問者

補足

早速ありがとうございます。 質問の仕方が悪かったので申し訳ありませんが、あと少し。 シート名はsheet1のA1のセルの値をつけたい場合と、 A1のセルが空欄でC1からH1のセルの値を結合してつけたい場合は どのようにすればよろしいですか? 1から10まで聞いてしまいスミマセン。

関連するQ&A

専門家に質問してみよう