
Excel VBAはまだ初心者なので、よくわかっていないのですが、複数シートを別ファイルにコピーして保存したいと思っております。
下記は、一番左のシートだけをB1に書かれ値で別ファイルとして保存できるようなものをつくってみました。ここから、左から1番目と2番目だけをコピーして、同じようにファイル名を指定して保存したいと考えていますが、全くうまくいかず・・・。
お手数ですが、どこを修正すべきなのかをおしえていただけますでしょうか。
よろしくお願いいたします。
Sub SheetSave()
Dim xSheet As Worksheet
Dim myFile As String
Dim myName As String
Set xSheet = ActiveSheet
'一番左のファイルのコピー
ThisWorkbook.Worksheets(1).Copy after:=ThisWorkbook.Worksheets(1)
myFile = ThisWorkbook.Path & "\" & xSheet.Range("B1").Value & ".xlsx"
Application.DisplayAlerts = False
ActiveSheet.SaveAs fileName:=myFile
Application.Dialogs(xlDialogSaveAs).Show
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
No.2ベストアンサー
- 回答日時:
シート2枚まとめて1つのブックにコピーということなら
Sub SheetSave2()
Const N As Long = 2
Dim myFile As String
Dim myName As String
Dim mySh(1 To N) As String
Dim i As Integer
myFile = ThisWorkbook.Path & "\" & ActiveSheet.Range("B1").Value & ".xlsx"
'左から N番目までのシートをコピー
For i = 1 To N
mySh(i) = Sheets(i).Name
Next
Sheets(mySh).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=myFile
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
ご連絡が遅くなりまして、申し訳ございませんでした。
まさにこれがやりたかった処理です。
本当にありがとうございました。
まだまだ初心者なのでわからないことばかりですが、今回の回答を参考に勉強させていただきます。
No.1
- 回答日時:
コードの内容と質問とは違うようですね。
>ThisWorkbook.Worksheets(1).Copy after:=ThisWorkbook.Worksheets(1)
これは、シートをCopyして付け足すという意味です。
>ここから、左から1番目と2番目だけをコピーして
ということはシートのことですね。
シートひとつずつを、単独のブックにするということならこうなるはずですが。
本当は、ActiveSheet の部分を決めたほうが良いと思います。
質問と文章から最大限に汲み取れる内容というと、以下のようなものになります。
'//
Sub mySheetSave()
Dim xSheet As Worksheet
Dim myFile As Variant
Dim fName As Variant
Dim i As Long
Dim newBook As Workbook
Set xSheet = ActiveSheet
fName = xSheet.Range("B1").Value
For i = 1 To 3
ThisWorkbook.Worksheets(i).Copy
Set newBook = ActiveWorkbook
myFile = Application.GetSaveAsFilename(fName, _
FileFilter:="Excel File (*.xlsx),*.xlsx,Excel File Macro(*.xlsm),*.xlsm")
If VarType(myFile) = vbBoolean Then Exit Sub
newBook.SaveAs myFile, xlWorkbookNormal
newBook.Close False
Next i
End Sub
ご連絡が遅くなってしまい申し訳ございませんでした。
>シートひとつずつを、単独のブックにするということならこうなるはずですが。
やろうとしていた処理は、1つのブックの2シートを1つのブックにコピーするといったものでした。
こちらの説明が曖昧ですみません。回答頂いたもう一人の方の回答で解決できました。
また、シート一つずつを単独ブックにするやり方については大変参考になりました。
このような処理が必要になったときに活用させていただきます。とても勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
このQ&Aを見た人はこんなQ&Aも見ています
-
「それ、メッセージ花火でわざわざ伝えること?」
「それ、メッセージ花火でわざわざ伝えること?」というメッセージを教えて下さい
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
人生で一番お金がなかったとき
人生で一番お金がなかったときって、どんなときでしたか?
-
複数シートを別ファイルで保存したい Excel vba マクロ エクセル
Excel(エクセル)
-
Excel VBAである特定文字列を含むシート名例えば「りんご(1)」
Excel(エクセル)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの行をコピーして貼り付け...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
エクセルの選択範囲以外を削除...
-
Excel シートのコピーの際、ペ...
-
Excel 数式の保護をしたセルを...
-
【VBA】コピー&複数個所のペー...
-
EXCELで別のブックから式をコピ...
-
エクセルVBA 1行飛ばしで転記す...
-
EXCEL VBA シートをコピーする...
-
エクセルのページをシートごと...
-
ページの設定を別シートにコピ...
-
【VBA】コピー&複数個所のペー...
-
【エクセル】プルダウン設定の...
-
VBA シートをコピー後、ボタン...
-
EXCEL2007でシートをコピーする...
-
エクセルでシートを「移動また...
-
エクセルVBAですが教えてくださ...
-
CSVファイルについて質問です。
-
エクセルの1シートの内容を複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
エクセルの選択範囲以外を削除...
-
Excelの行をコピーして貼り付け...
-
EXCELのVBAでシートコピーをし...
-
EXCELで別のブックから式をコピ...
-
Excel シートのコピーの際、ペ...
-
Excel 数式の保護をしたセルを...
-
エクセルでシートを「移動また...
-
PDFファイルをコピーしてエクセ...
-
エクセルの1シートの内容を複...
-
エクセルのページをシートごと...
-
エクセルシートを別のエクセル...
-
【VBA】コピー&複数個所のペー...
-
【エクセル】プルダウン設定の...
-
ページの設定を別シートにコピ...
-
【Excel VBA】シートコピー時、...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルのワークシートをUSBメ...
-
VBA シートをコピー後、ボタン...
-
シートが保護されていないのに...
おすすめ情報