別のフォルダ(DドライブのフォルダAとフォルダB)にそれぞれ同じ名前のファイルが500ずつあります。フォルダAのファイルにはそれぞれの名前のシート1、フォルダBのファイルにはそれぞれの名前のシート2があります。
マクロでフォルダCにシート1とシート2のあるブックを作ることはできませんか?
フォルダA ブック1(シート1)、ブック2(シート1)‥
フォルダB ブック1(シート2)、ブック2(シート2)‥
↓
フォルダC ブック1(シート1.シート2)、ブック2(シート1、シート2)‥
としたいのです。申し訳ありません!助けて下さい!
No.5ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Const FolderA As String = "d:\goo\excel\goo360A"・・・フォルダA
Const FolderB As String = "d:\goo\excel\goo360B"・・・フォルダB
Const FolderC As String = "d:\goo\excel\goo360C"・・・フォルダC
については、あなたの環境に適切に合わせてください。
---------------------------------------------------
Option Explicit
Const FolderA As String = "d:\goo\excel\goo360A"
Const FolderB As String = "d:\goo\excel\goo360B"
Const FolderC As String = "d:\goo\excel\goo360C"
Const Bs1 As String = "説明"
Const Bs2 As String = "添付"
Const Sh1 As String = "シート1"
Const Sh2 As String = "シート2"
Public Sub シート統合()
Dim flist() As String
Dim fname As String
Dim bname As String
Dim count As Long
Dim i As Long
fname = Dir(FolderA & "\*.xlsx")
'フォルダAの全ファイルを取得
count = 0
Do While fname <> ""
ReDim Preserve flist(count)
flist(count) = fname
count = count + 1
fname = Dir()
Loop
If count = 0 Then
MsgBox (FolderA & "内に該当ブックがありません")
Exit Sub
End If
'取得したファイルを1件ずつ処理
count = 0
For i = 0 To UBound(flist)
bname = flist(i)
If Dir(FolderB & "\" & bname) <> "" Then
Call MakeBook(bname)
count = count + 1
End If
Next
MsgBox (count & "件のブックの作成完了")
End Sub
Private Sub MakeBook(ByVal targetName As String)
Dim bname As String
'FolderAのブックをオープン
Workbooks.Open Filename:=FolderA & "\" & targetName
'新規ブック追加
Workbooks.Add (xlWBATWorksheet)
'新規ブック名を取得
bname = Workbooks(Workbooks.count).Name
'説明をコピー
ThisWorkbook.Worksheets(Bs1).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
'シート1をコピーしてクローズ
Workbooks(targetName).Worksheets(Sh1).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
Workbooks(targetName).Close savechanges:=False
'FolderBのブックをオープン
Workbooks.Open Filename:=FolderB & "\" & targetName
'シート2をコピーしてクローズ
Workbooks(targetName).Worksheets(Sh2).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
Workbooks(targetName).Close savechanges:=False
'添付をコピー
ThisWorkbook.Worksheets(Bs2).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
'余分なSheet1を削除
Application.DisplayAlerts = False
Workbooks(bname).Sheets("Sheet1").Delete
Application.DisplayAlerts = True
'フォルダーCへそのファイル名で保存
Workbooks(bname).Close savechanges:=True, Filename:=FolderC & "\" & targetName
End Sub
ありがとうございます。
Optionscriptとか、private subなんてどうやって使うのか? お仕事でこのようなことをされているのでしょうか?どうやって勉強していけばいいのでしょうか?
読んでいると意味がわかるのですが、自分ではかけません。
本当にできるようになりたいです。
本当にありがとう子ぞいます!
No.4
- 回答日時:
>シートの並びかえを相談したのは、シート1、2を合体し、「説明」「添付」を合体したら、「説明」「シート1」「シート2」「添付」と並び替えなければならないのかなと思いききました。
それでしたら、フォルダCにブックを作成するときに、最初から
「説明」「シート1」「シート2」「添付」の順に作成すればよいです。
この「説明」と「添付」はブック共通なので、これを予めどこに格納しておくかということになりますが、これらは
マクロのあるブック内に格納しておくという前提で良いでしょうか。
要件を整理すると以下のようになります。
1.フォルダAにある全てのブック(拡張子.xlsx)には、”シート1”が存在する。
2.フォルダBにある全てのブック(拡張子.xlsx)には、”シート2”が存在する。
3.マクロ(これから作成予定のマクロ)をもつブックには、”説明”、”添付”のシートが存在する。
4.フォルダAおよびフォルダB内に共に存在するブックを元に新規ブックを作成し、同じブック名でフォルダCに格納する。
そのブックには、”説明”、”シート1”、”シート2”、”添付”の順にシートを格納する。
5.マクロ実行時、フォルダC内には、一切ブックが存在しないことが前提。
6.マクロ実行時、オープン済みのブックは、そのマクロをもつブックのみであることが前提。
上記の要件で問題なければ、マクロの提供は可能です。
No.3
- 回答日時:
No2です。
補足ありがとうございました。
1.フォルダAの全てのファイルには必ず”シート1”が存在する。
2.フォルダBの全てのファイルには必ず”シート2”が存在する。
3.フォルダAとフォルダBの両方に存在する同じファイル名のもののみが処理対象となる。
上記で、間違いないでしょうか。
追加の件ですが、
>そんなんでつくったフォルダC内のファイル全てのシートの並び順番をかえるマクロはありますか?
フォルダCのブック内のシート1、シート2をシート2、シート1にしたいということでしょうか?
それなら、最初から、シート2、シート1の順で作成してはいかがでしょうか?
>上司の命令で、同様のフォルダC、フォルダDをつくらなければならなそうで、またシートの並びも変更ありそうなのです。
よく、意味が分かりません。
もっと、具体的に説明していただけませんでしょうか?
No.2
- 回答日時:
補足要求です。
1)ブックの拡張子はxlsxで良いですか。
2)シート1の実際のシート名は”シート1”で良いですか。(全て全角文字、"1"も全角)
もし、異なるなら、正確なシート名を提示ください。(全角半角も含めて正確に提示してください)
3)シート2の実際のシート名は”シート2”で良いですか。(全て全角文字、"2"も全角)
もし、異なるなら、正確なシート名を提示ください。(全角半角も含めて正確に提示してください)
4)フォルダA内の全てのブック(拡張子がxlsx)を処理しますが宜しいですか。
5)フォルダBは、フォルダAから取得したファイル名に合致するものを全て処理します。
6)マクロ実行時、フォルダC内には、一切ブックが存在しないという前提で良いですか。
No.1
- 回答日時:
VBAを使用しても、同じ名前のファイルを同時に開くことはできませんので、下記の流れでやってみてはいかがですか?
①新規のブックを開く
②フォルダAのブック1を開いて、①のブックにシート1をコピーし、ブック1を閉じる
③フォルダBのブック1を開いて、①のブックにシート2をコピーし、ブック1を閉じる
④①のブックを名前を付けて保存。
考えかたを具体的に整理してくださりありかとうございます!
実際にマクロをくむとましたらどのようになるのでしょう。
本当に初心者でまったくわからなくて。
どうかどうかよろしくおねかいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
- Excel(エクセル) フォルダ内の複数ブックを同シート名毎に連結させたい 1 2022/04/07 21:24
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) フォルダ内のファイル全てに対して、シート名・ファイル名を変更する方法(マクロ VBA) 2 2022/04/02 10:56
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
複数のExcelファイルにある同名シートを1つのシートに一括でまとめるには?
Excel(エクセル)
-
フォルダ内の全ブックのシート名を変更したいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
Excelで複数ブックの同一セルに...
-
エクセルにおける,「ブック」...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
複数ファイルから特定シートの...
-
同じフォルダへのハイパーリン...
-
VBA バックグラウンドで別ブッ...
-
指定ファィルの指定シートをシ...
-
エクセルで「ディスクがいっぱ...
-
印刷しようとすると強制終了に...
-
エクセルファイルをオープンし...
-
Excel(2010)のフィルターが保...
-
エクセルで別ブックをバックグ...
-
ブックの保護ができないんです...
-
vbaでpdfを開いて1ページ目のみ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
Excel(2010)のフィルターが保...
-
エクセルで参照しているデータ...
-
印刷しようとすると強制終了に...
-
WorkBooksをオープンさせずにシ...
-
エクセルにおける,「ブック」...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
エクセルファイルを開かずにpdf...
-
ブックのピボットを別ブックに...
-
Excel起動時に特定のワークシー...
-
エクセルで「ディスクがいっぱ...
-
同じフォルダへのハイパーリン...
-
VBA バックグラウンドで別ブッ...
-
フォルダ内の複数ファイルから...
-
エクセルシートの一部を送りたい
-
Excelで複数ブックの同一セルに...
おすすめ情報
1)拡張子はxlsxです。
2.3ファイル名は全角文字です
[フォルダAには全てのファイルのかあり、Bのフォルダは一部たりないものもあります、その場合には1に在るシートだけてCにいれたいです)
456はその通りです。簡単にできるのでしようか?
追加 そんなんでつくったフォルダC内のファイル全てのシートの並び順番をかえるマクロはありますか?
上司の命令で、同様のフォルダC、フォルダDをつくらなければならなそうで、またシートの並びも変更ありそうなのです。
見捨てずに聞いて頂けてとてもありがたいです。
最初はフォルダAとBを合体して、シート1と2のあるブックをつくるだけですんだのですが、その合体ブックの最初に「説明」シート、シート1.2の後ろに「添付」シートをつけるように言われてしまいました。この説明と添付はすべてのブックに共通の内容になっています。
シートの並びかえを相談したのは、シート1、2を合体し、「説明」「添付」を合体したら、「説明」「シート1」「シート2」「添付」と並び替えなければならないのかなと思いききました。
説明と添付はすべてのブックに共通なんです。うまいやり方はありますか?
心配です。意味わかっていただけたでしょうか?
作業の内容をわかりやすくまとめていただきありがとうございました。
その通りです!理解いただけて感動です。
今日も1日中ネットで調べながら格闘していましたが、どうにもうまくいかずぐったりでした。
頭の中ではいろいろ考えてみているのですが、ネットで例を調べながら進めていますが、エラーの言葉の意味からわからないので、時間ばかりすぎてしまいます。
助けていただけると本当にありがたいです。