Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7011 / 13646 ツリー ←次へ | 前へ→

【41776】sheet名でブックを保存 困った初心者です 06/8/22(火) 16:14 質問[未読]
【41777】Re:sheet名でブックを保存 Blue 06/8/22(火) 16:21 回答[未読]
【41780】Re:sheet名でブックを保存 困った初心者です 06/8/22(火) 16:34 発言[未読]
【41782】Re:sheet名でブックを保存 Blue 06/8/22(火) 16:43 質問[未読]
【41801】Re:sheet名でブックを保存 困った初心者です 06/8/23(水) 10:06 お礼[未読]
【41779】Re:sheet名でブックを保存 Kein 06/8/22(火) 16:30 回答[未読]
【41781】Re:sheet名でブックを保存 困った初心者です 06/8/22(火) 16:38 発言[未読]
【41784】Re:sheet名でブックを保存 Kein 06/8/22(火) 17:01 発言[未読]
【41798】Re:sheet名でブックを保存 困った初心者です 06/8/23(水) 10:03 お礼[未読]

【41776】sheet名でブックを保存
質問  困った初心者です  - 06/8/22(火) 16:14 -

引用なし
パスワード
   4枚のSheetからなるBookの操作に関してです。
4枚のSheetを4つのBookとして保存するというマクロです。
下記の様に記述した場合にはアクティブシートのみが保存されます。
Sheet1,Sheet2,Sheet3,Sheet4をSheet1.xls,Sheet2.xls,Sheet3.xls,Sheet4.xls
で保存する記述を教えてください。

Sub NameSheetCopy()
  Dim strName As String
  Dim Wst As Worksheet
  On Error Resume Next
  Application.ScreenUpdating = False
  For Each Wst In ActiveWindow.SelectedSheets
    strName = Wst.Name
    Wst.Copy
    With ActiveWorkbook
      .SaveAs "C:\担当\" & strName & ".xls"
      .Close SaveChanges:=True
    End With
  Next Wst
  Application.ScreenUpdating = True
End Sub

【41777】Re:sheet名でブックを保存
回答  Blue  - 06/8/22(火) 16:21 -

引用なし
パスワード
   名前だけが違って、中身が同じファイルを作りたいのでしょうか?
ならばコピーをせずに、自分自身を名前を変えて保存すればよいのでは。

Dim sht As Object

For Each sht In thisWorkbook.Sheets
  thisWorkbook.SaveAs thisWorkbook.Path & "\" & sht.Name & ".xls"
Next

【41779】Re:sheet名でブックを保存
回答  Kein  - 06/8/22(火) 16:30 -

引用なし
パスワード
   Sub NameSheetCopy()
  Dim strName As String
  Dim Wst As Worksheet

  'On Error Resume Next
  Application.ScreenUpdating = False
  For Each Wst In Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4"))
    strName = "C:\担当\" & Wst.Name & ".xls"
    Wst.Copy
    ActiveWorkbook.Close True, strName
  Next Wst
  Application.ScreenUpdating = True
End Sub

・・ぐらいで出来ませんか ?

【41780】Re:sheet名でブックを保存
発言  困った初心者です  - 06/8/22(火) 16:34 -

引用なし
パスワード
   ▼Blue さん:
>名前だけが違って、中身が同じファイルを作りたいのでしょうか?
>ならばコピーをせずに、自分自身を名前を変えて保存すればよいのでは。
>
>Dim sht As Object
>
>For Each sht In thisWorkbook.Sheets
>  thisWorkbook.SaveAs thisWorkbook.Path & "\" & sht.Name & ".xls"
>Next

ありがとうございます。
私の説明不足で申し訳ありません。
”シートの名前別にブックで保存する”というマクロを作りたいのです。
具体的にいうと
ひとつのBookにりんご・オレンジ・みかん・メロンというシートがあります。
それぞれのシートには全国の売上高のDBが作られています。
ここからりんご.xlsとオレンジ.xlsとみかん.xlsとメロン.xlsと
いうbookが作りたいのです。尚且つそれぞれのブックには1枚のシートしか
存在しません。
例えばりんご.xlsにはりんごシートしか存在しない。という感じです。

上手く伝わっていますでしょうか?
すみません<m(__)m>

【41781】Re:sheet名でブックを保存
発言  困った初心者です  - 06/8/22(火) 16:38 -

引用なし
パスワード
   ▼Kein さん:

>For Each Wst In Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4"))


ありがとうございます。
Sheet名を記述すると出来るのですが
他のbookで利用する場合には記述を変更する必要が出てきます。
このbookの各Sheet名で保存するという方法はないのでしょうか?

【41782】Re:sheet名でブックを保存
質問  Blue  - 06/8/22(火) 16:43 -

引用なし
パスワード
   マクロのあるBookと、Sheet名にしたいファイルは別なんでしょうか?
それと、どのようにそれらのファイルを指定するのでしょうか?
すでに開いているとか、あるフォルダにあるすべてのBookという風に限定できなければ
難しいと思いますが。

【41784】Re:sheet名でブックを保存
発言  Kein  - 06/8/22(火) 17:01 -

引用なし
パスワード
   それなら、シート名が何であれブック内の全シートを処理する
ということで・・

For Each Wst In ThisWorkbook.Worksheets

というように変更するぐらいです。

【41798】Re:sheet名でブックを保存
お礼  困った初心者です  - 06/8/23(水) 10:03 -

引用なし
パスワード
   ▼Kein さん:
>それなら、シート名が何であれブック内の全シートを処理する
>ということで・・
>
>For Each Wst In ThisWorkbook.Worksheets
>
>というように変更するぐらいです。

ありがとうございます。
早速やってみると、問題なく上手くいきました。
感謝します。

【41801】Re:sheet名でブックを保存
お礼  困った初心者です  - 06/8/23(水) 10:06 -

引用なし
パスワード
   ▼Blue さん:
>マクロのあるBookと、Sheet名にしたいファイルは別なんでしょうか?
>それと、どのようにそれらのファイルを指定するのでしょうか?
>すでに開いているとか、あるフォルダにあるすべてのBookという風に限定できなければ
>難しいと思いますが。

ありがとうございました。
説明不足ですみませんm(__)m
教えを請い、↓このように記述し上手くいきました。
Sub NameSheetCopy()
  Dim strName As String
  Dim Wst As Worksheet

  'On Error Resume Next
  Application.ScreenUpdating = False
  For Each Wst In ThisWorkbook.Worksheets
    strName = "C:\Documents and Settings\My Documents\tarou\" & Wst.Name & ".xls"
    Wst.Copy
    ActiveWorkbook.Close True, strName
  Next Wst
  Application.ScreenUpdating = True
End Sub

7011 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free