• ベストアンサー

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

  • エクセル ワークシート操作

    エクセル VBAにてブックを閉じるときに作業をして追加した ワークシートを昇順、もしくは降順(名前、日付など)に 並び替えてから閉じるように する方法がわからないのですが? どのようにやるのでしょうか?

  • 新たなワークシートへのコピペVBA

    (1)Excelの一つのBOOKの中に複数のワークシートがあります。 (2)これらワークシートの中から、任意でいくつかのみを選びます。 (3)新たなワークシートを一つ作り、ここに、(2)で選んだワークシートを順番に横並びでコペピする。 上記をVBAで自動化させるには、どうしたらよろしいのですか?

  • VBAワーク シート名前を付けて作成

    エクセルVBAにて 原紙とゆう名前のワークシートをコピー処理して 入力フォームにテキストボックス1と2があり コピーした原紙とゆうワークシート名から テキストボックス1と2に入力した項目が 合わさってワークシート名に変更する方法はあるのでしょうか? 例)テキストボックス1に 123   テキストボックス2に 456 コマンドボタン1をクリックすることによって ワークシート名が123456となるようにしたいのですが? 宜しくお願いいたします。

  • Excel VBAでシートを新規ブックとして、名前を付けさせて保存するには

    こんばんは。質問です。 シートを新規ブックにコピーしたいのですが、その際に 名前を付けて保存のダイアログを出して、名前のボックス に「シート名」だけを表示させておいて、後は操作者が任意に 名前を追加できるようにして保存するようにするにはどのように したらいいでしょうか? 例えば、別ブックに保存したいシートが「売上」というシート名 であればダイアログボックスに「売上」と表示させ、操作者は任意で 「売上4月」などとするようにして保存したいということです。 よろしくお願いします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCELの複数シートをそれぞれ別ブックへ保存したい

    EXCEL97を使用しています。 1つのブック内に複数のシート(10~20枚)があります。 これを全て1シートずつの別のブックに分けて保存をするマクロを作成したいのですが、できますでしょうか? できれば各シート内の(A4)に入力されている文字列を各ブックの名前として使用したいのですが・・・。 (各シートのセルA4の値に重複はありません) 現在は各シートを新しいブックにコピーして名前を付けて保存、の作業をシート数分繰り返しています。 すみませんがよろしくお願いいたします。

  • 別ブックの同一ワークシートの集計

    お世話になります。 早速ですが、Excelでブックが5つ、ワークシートがそれぞれ40あるとします。 これを、別ブックにまとめたいのです。 ワークシートの構成は全て、同じです。 同一ワークシート、同一セルの集計を別のブックにまとめたいです。 伝わりますでしょうか? よろしくお願いします。

  • エクセルの複数のワークシートを名前順で並べ替えたい

    エクセルのブックの中にワークシートがたくさんあります。ワークシートの名前順で並べ替えることはできますか?

  • Excel VBAでのブックの保存方法について教えてください。

    こんばんは。ExcelVBAのコードを教えてください。 マクロを含むブック(例:生産個数管理表)の3つのシートを、3シートとも新しいブックに移動し、「今日の日付」と「生産数」(例:20090818生産数)というブック名を付けて、元のマクロを含むブックと同じ場所に保存し、マクロを含んだブックは保存することなく閉じる。ようにしたいのですが、VBAではどのようにすればよいのでしょうか。 宜しくお願い致します。

専門家に質問してみよう