フォルダー内の複数ブックから、同じシート名の同じセルを別ブックのシートに一覧にしたいです。
ネットで調べて作成してみました。フォルダ内にあるブックから転記されるものの、
希望するシートから、転記されるものとされないものがあり困っております。
【質問】
①別ブックで転記したいセルの指定をするSheetが、作成される転記一覧と同じシートです。
転記一覧のSheetと分けることは可能でしょうか。
(↑無理な気がしますので質問を取り消します。)
②フォルダ内のブックのすべてのシートから、指定したセルの転記がされます。
「集計」シートのみの、セルを転記することはできるでしょうか。
➂マクロ実行した際に出る、「勤務表(社員名).xlsxの変更を保存しますか」を出ないようにする方法はありますか?
(↑PCをWindows7変えたところ、保存しますかが表示されなくなり、原因はわかりませんが一覧表の作成ができました。)
PC環境
Windows7、
Windows10 Excel2010
・共有フォルダー内に、20個の勤務表のブックがあります。
個人で勤務時間を、日々更新していきます。
【個人のブック・1年分の勤務表】シートのタブはこんな感じで、13シートあります。↓
|集計|4月|5月|6月|7月|8月|9月|10月|11月|12月|1月|2月|3月
|:--|:--:|--:||:--|:--:|--:|
4月から3月の12シートの内容は勤務表です。不要かと思いますので詳細は省きました。
~~~~~~~
【個人のブックの13シート目・「集計」シート】↓
「予定累計時間」と「実績累計時間」の2つのセルを、 12か月分参照しています。
||A|B|C|D|E|F|G|H|I|
|:--|:--:|--:||:--|:--:|--:|
|1||4月 |4月|5月|5月|6月|6月|7月|7月...|
|2||予定累計|実績累計|予定累計|実績累計|予定累計|実績累計|予定累計|実績累計...|
|3|中田|160:00|180:00|200:00|160:00|180:00|175:00|175:00|190:00...|
今までこの一つ一つのファイルを開き、「集計」シートでの累計確認をしていました。
人数が多くなってきたので、別ブックのファイルに転記をして、
一つのファイルを開くだけで、全員の合計累計時間を確認できるようにしたいと思っています。
【別ブック】今回作成したVBAのファイル。(マクロ実行前)
「Sheet1」
1行目は項目名のようなものなので固定です。
2行目は、項目名にあたる参照させたいセルを、手入力でセルを指定するようになっています。
(個人のブックの13枚目、B3~Z3までを指定しました)
できれば、マクロ実行後、行や列の削除をせず表をそのまま使用したいです。
この状態だと、A列ファイル名と2行目のセル指定の入力行を削除することになるからです。
別シートにセル指定のための、入力するシートを作りたかったですが
やり方がわからずSheet1の上部に入力するようになっています。
||A |B|C|D|E|F|G|H|I|
|:--|:--:|--:||:--|:--:|--:|
|1|ファイル名 |名前|4月予定|4月実績|5月予定|5月実績|6月予定|6月実績|7月予定|←固定
|2| |A3|B3|C3|D3|E3|F3|G3|H3|←取得したいセル番号を手入力しています
|3|実行すると取得したファイル名が入る|
|4| ||||||||||||
【Sheet1】
【別ブック】今回作成したVBAのファイル。(マクロ実行後)
・フォルダ選択画面面が出てきます。
・フォルダ参照元(共有フォルダー)を選択します。
この時点で、参照元の個人ブックが開き、
「勤務表(社員名).xlsxの変更を保存しますか?」全員分聞いてきます。
「保存しない」を選択すると、無事転記されます。(別シートが転記されるものもあります。)
何度も押さないといけません。これを出ないようにできるでしょうか。
【別ブック】1年分、全員の月累計(予定と実績)を一覧表にしていきたい。
||A |B|C|D|E|F|G|H|I|
|:--|:--:|--:||:--|:--:|--:|
|1| |4月|4月|5月|5月|6月|6月|7月|7月|
|2| |予定累計|実績累計|予定累計|実績累計|予定累計|実績累計|予定累計|実績累計|予定累計|実績累計|
|3| 中田 |160:00|180:00|200:00|160:00|180:00|175:00|175:00|190:00|160:00|180:00|
|4| 安藤|165:00|0:00|18:00|175:00|175:00|180:00|175:00|180:00|160:00|180:00|
|5| 吉田|250:00|125:00|256:00|165:00|170:00|300:00|160:00|180:00|200:00|165:00|
|6| 鈴木|165:00|170:00|300:00|160:00|180:00|200:00|160:00|180:00|175:00|165:00|
【Sheet1】
発生している問題・エラーメッセージ
エラーメッセージ 「勤務表(社員名).xlsxの変更を保存しますか?」(Win10でのみ) ### 該当のソースコード ``` Option Explicit Sub MakeDataList() Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Dim srcWS As Worksheet Set srcWS = ActiveSheet Dim folderPath With Application.FileDialog(msoFileDialogFolderPicker) If .Show <> True Then Exit Sub folderPath = .SelectedItems(1) End With Dim row As Long Dim col As Long Dim lastCol As Long row = 3 lastCol = srcWS.Range("B2").End(xlToRight).Column If lastCol = Columns.Count Then MsgBox "取得位置が範囲が未定義です " Exit Sub End If Dim file For Each file In fso.GetFolder(folderPath).Files With Workbooks.Open(folderPath & "\" & file.Name) srcWS.Cells(row, "A").Value = file.Name For col = 2 To lastCol srcWS.Cells(row, col).Value = .Worksheets(1).Range(srcWS.Cells(2, col).Value).Value Next .Close row = row + 1 End With Next End Sub
試したこと
異なるPCでのマクロの実行
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー