質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

7207閲覧

フォルダー内の複数ブックから、同じシート名の同じセルを別ブックのシートに一覧にしたいです。

fuchi

総合スコア21

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/10/08 00:06

編集2018/10/08 10:01

フォルダー内の複数ブックから、同じシート名の同じセルを別ブックのシートに一覧にしたいです。

ネットで調べて作成してみました。フォルダ内にあるブックから転記されるものの、
希望するシートから、転記されるものとされないものがあり困っております。

【質問】
①別ブックで転記したいセルの指定をする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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wwbQzhMkhhgEmhU

2018/10/08 00:32

ちゃんと読んでないし、当てずっぽうですが、自身も開こうとして、保存するか聞かれてるとか...
fuchi

2018/10/08 00:44

とても長い文章になってしまいましてすみません。 私自身が転記元のファイルを開く操作をしているのではないかということでしょうか。もしそうであれば、そういったことはしておらず、フォルダも閉じている状態です。なぜかファイルが勝手に開き表示されてしまう状態です。
wwbQzhMkhhgEmhU

2018/10/08 07:30

転記先のファイルが転記元のファイルと同じフォルダにあって、二重に開こうとしていないか聞いてみました
fuchi

2018/10/08 09:17

コメントくださりありがとうございました。試しに転記先と転記元ファイルを同じフォルダに入れて実行してみました。「実行時エラー1004Excelファイルで○○.xlsmを開く事ができません。ファイル形式またはファイル拡張子が正しくありません。」と表示され同じフォルダでは使用できないようでした。
guest

回答2

0

ベストアンサー

②フォルダ内のブックのすべてのシートから、指定したセルの転記がされます。 「集計」シートのみの、セルを転記することはできるでしょうか。

srcWS.Cells(row, col).Value = .Worksheets("集計").Range(srcWS.Cells(2, col).Value).Value

といった感じでシート名を指定してあげればいいかと思います。

投稿2018/10/08 10:01

wwbQzhMkhhgEmhU

総合スコア343

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuchi

2018/10/08 14:08

どうもありがとうございます! 無事希望していた事ができました。本当にたすかりました!
guest

0

➂のみ回答します。保存せずに終了を指定できます。

.Close Savechanges:=False

投稿2018/10/08 00:54

TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuchi

2018/10/08 09:47 編集

ありがとうございます。回答いただいた直後に場所を移動することになり、 移動先の別のPC(同じWin7)で、再度マクロを実行したところ③でご相談していた「○○.xlsxの変更を保存しますか」が表示されずスムーズに一覧の作成が出来ました。 ですので、いただいたマクロはまだ追加していませんが、いつまた出てくるかわかりませんのでそのときに使わせて頂きます。ありがとうございます! 【訂正】 間違えました。同じOSではありませんでした。 最初はWindows10でうまくいかず、Windows7ではメッセージが出ず成功しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問