
皆様、いつもお世話になっております。
下記記述の構文追加し、下記①の処理を行いたいのですが、ご教示頂けませんでしょうか。
未熟者ですので、問い合わせ等にお時間をいただくかもしれませんが、よろしくお願いいたします。
可能でしたら前回ご協力いただきましたQchan1962様に続きをお願いします、他の方もよろしくお願いします。
追加(記述を追加)したい処理内容。
下記マクロで出来た全部のファイルを①のフォルダに保存する処理。
① 「C:\Users\suzuko_atsushi\Desktop\Private\納期回答\納期回答保管」というフォルダに指定して保存。
-------------------------------------------------------------------------------------------------------
Sub Sample()
Dim MacroB As Worksheet 'このブックのシート
Dim Wb_Data As Workbook '1. 分割元ブック
Dim Wb_new As Workbook '分割データ保存ブック
Dim Ws As String '2. 分割元シート名
Dim Path As String '3. 分割データ保存先
Dim C_Group As String '4. グループ対象列
Dim GroupName As String 'グループ名(ブック名)
Dim C_Copy As String '5. コピーデータ右端列
Dim YMD As String '6. 保存ブック日付の表示形式
Dim PSW As String '7. 読み取りパスワード
Dim R_Data As Integer 'データの行番号
Dim Ko As Integer 'グループの件数
Set MacroB = ThisWorkbook.Worksheets(1) 'このブックのシート
Set Wb_Data = Workbooks(MacroB.Range("C11").Value) '分割元のブック名
Ws = MacroB.Range("C12")
Path = MacroB.Range("C13") & "\"
C_Group = MacroB.Range("C14")
C_Copy = MacroB.Range("C15")
YMD = MacroB.Range("C16")
PSW = MacroB.Range("C17")
If YMD = "" Then
YMD = ""
Else
YMD = Format(Date, YMD)
End If
R_Data = 2 'データの開始行
Application.ScreenUpdating = False
Do
Wb_Data.Activate
Worksheets(Ws).Range(Cells(1, 1), Cells(1, C_Copy)).Copy '1行目の項目名コピー
Workbooks.Add
ActiveSheet.Paste Range("A1") '新規ブックに貼り付け
Set Wb_new = ActiveWorkbook
Wb_Data.Activate
GroupName = Cells(R_Data, C_Group)
Ko = WorksheetFunction.CountIf(Columns(C_Group), GroupName) 'グループの件数を算出
Range(Cells(R_Data, "A"), Cells(R_Data + Ko - 1, C_Copy)).Copy 'グループ件数分コピー
Wb_new.Activate
ActiveSheet.Paste Range("A2") '新規ブック項目の下に貼り付け
ActiveSheet.Columns.AutoFit
ActiveSheet.UsedRange.Borders.LineStyle = True
Range("D2").Select
ActiveWindow.FreezePanes = True
Dim myname As String '条件不明
If ActiveSheet.Range("A2") <> "" Then
myname = ActiveSheet.Range("A2")
End If
Wb_new.SaveAs Filename:=Path & " ■" & GroupName & " 注残納期回答依頼リスト" & YMD & ".xlsx", _
Password:=PSW '指定したフォルダーに保存
Wb_new.Close
R_Data = R_Data + Ko
Loop While Cells(R_Data, C_Group) <> ""
MsgBox "完了!"
Application.ScreenUpdating = True
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは
>可能でしたら前回ご協力いただきましたQchan1962様に続きをお願いします、他の方もよろしくお願いします
良く読むと特定の人への指名ではないのは分かりますし、お気持ちも理解する所ですが、回答者を指名しているように受け取れる書き方は良い書き方ではありません
本題
使用されているコードを実行した結果はC13セルに書かれているパス
(フォルダー)に保存されているのではないでしょうか?
安直に保存先を複数にするのであれば Wb_new.SaveAs を 対象ブックを閉じる前に 保存先パスを変えてもう一度実行すれば良い事になります
Wb_new.SaveAs Filename:=Path & " ■" & GroupName & " 注残納期回答依頼リスト" & YMD & ".xlsx", _
Password:=PSW '指定したフォルダーに保存(既存)
Wb_new.SaveAs Filename:=C:\Users\suzuko_atsushi\Desktop\Private\納期回答\納期回答保管\ & " ■" & GroupName & " 注残納期回答依頼リスト" & YMD & ".xlsx", _
Password:=PSW '指定したフォルダーに保存
Wb_new.Close '閉じる
フォルダパスは既存と同じように変数に代入して使う事も出来ます
Dim archivePath As String '記録用フォルダ
archivePath = "C:\Users\suzuko_atsushi\Desktop\Private\納期回答\納期回答保管\"
Wb_new.SaveAs FileName:=archivePath _
& " ■" & GroupName & " 注残納期回答依頼リスト" & YMD & ".xlsx", _
Password:=PSW '記録用フォルダに保存
気になるところ
ご質問部分のみを回答したコードを整理せずに繋ぎ合わせて行くと不要な部分が残ったりしますね
Dim myname As String '条件不明
If ActiveSheet.Range("A2") <> "" Then
myname = ActiveSheet.Range("A2")
End If
の部分は、掲示コードを省略していないのであれば、現行では不要な部分ですね。一度、整理をされる方が良いと思います
変数への代入にセルの値を活用するのは良いと思いますが、
課題としてエラーや誤作動を防ぐ為、誤入力などを防止する必要があると思います(すでにされているかも知れませんが)
注釈を入れたり、セル入力を入力規則リストなどで制限しないのであれば、
マクロ実行時にチェックする必要があると思います
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
-
VBA コードを実行すると画面が...
-
VBA 別ブックからコピペしたい...
-
Excel にて、 リストボックスの...
-
vbaで他のブックに転記したい。...
-
Excel-VBAでのファイルの開き方
-
[Excel]ADODBでNull変換されて...
-
【ExcelVBA】zip圧縮されたCSV...
-
エクセルVBAが途中で止まります
-
エクセルのマクロについて教え...
-
ワイルドカード「*」を使うとう...
-
ADOで複数のBookから抽出
-
VBA同じシートの別ブックに転記...
-
マクロVBA別Excelブックにデー...
-
EXCEL VBA 単語置き換え につい...
-
VBA アプリケーション定義また...
-
VBA 実行時エラー 2147024893
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
[Excel]ADODBでNull変換されて...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】インデックスが有...
-
VBAで複数のブックを開かずに処...
-
【ExcelVBA】zip圧縮されたCSV...
-
【VBA】全シートの計算式を全て...
-
エクセルのマクロを使ってメー...
-
VBS Bookを閉じるコード
-
ユーザーフォームの切り替えに...
-
Excelのマクロコードについて教...
-
Excel2007VBAファイルの表示に...
おすすめ情報