EXCEL 時刻起動で複数ブックを1つにまとめる
未読分:5件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#5 2015年2月5日(木)11時50分 From: goco | 返事 削除 変更 |
早速のご連絡誠にありがとうございました! 当方からのご連絡が遅くなりまして誠に申し訳ございません。 ご丁寧なご説明いただきまして誠にありがとうございました! ご教授いただきました方法で集約できました! すごいです!! で、すいません、私の説明が抜けていたのですが、個別のブックを集約する際に1つのシートに集約したかったのです。。現状では個別にシートが出来ます。 つまり[東京支店集計.xls]の[東京支店]というシートに下記の3つのブックのデータが順に張り付かせたかったのです。(順番はどうでもいいですが) 東京支店_田中.xls 東京支店_鈴木.xls 東京支店_山本.xls 個別のデータのA1の見出しは無視して全てB2から貼り付けていくようにしたいのです、、ここまでご教授いただきました後に大変恐縮ですが、上記仕様になるようなロジックを再度ご教授いただけますでしょうか?本当に申し訳ございません。。 何卒よろしくお願い致します。 |
Message#4 2015年2月5日(木)11時49分 From: BP者 | 返事 削除 変更 |
東京支店集計.xlsに標準モジュールを作成し、以下のVBAコードを貼り付けて上書き保存してください。 No1のタスクスケジューラへの登録で該当ブックを指定時間に開くように設定してください。 (Excelのセキュリティ設定は「すべてのマクロを有効にする」にしてください) ↓ ▼「すべてのマクロを有効にする」を使用したくない場合▼▼▼ Excelのセキュリティレベルは以下選択してください。 ・「デジタル署名されたマクロを除き、すべてのマクロを無効にする」 そのあと、以下のサイトの各項目(2箇所)を参照して設定頂き、 ttp://office.microsoft.com/ja-jp/excel-help/HA001231781.aspx ・「独自のデジタル証明書を作成して、自己署名する」 ・「マクロ プロジェクトにデジタル署名を追加する」>「Excel の場合」 一度「東京支店集計.xls」を開いて添付画像のようにデジタル署名に対し許可を行ってください。 次回起動時から自動的にAuto_Openイベントが実行されます。 ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ コードの内容は以下のようにしています。 ・ブックが開かれたら対象フォルダ以下の「*.xls」ファイルを順次開きながら 1つ目のシートを集計ブックへシートコピーして閉じます。 ・各ブックをコピーし終われば、上書き保存してエクセルを終了させます。 補足: ・シート名が重複する場合はエクセルが勝手に(1)、(2)など添え字を付けてくれると思います。 ・フィルタは削除しています。すべて表示させているわけではありません。 ・東京支店集計.xlsをマクロを実行しないで開くにはエクセル起動したのち、 「開く」より東京支店集計.xlsを選択後、Shftキーを押しながら「開く」を押してください。 ■VBAコード Sub Auto_Open() '型宣言 Dim MyPath As String Dim MyFile As String Dim Wb As Workbook Dim Tb As Workbook Dim myRange As AutoFilter 'パスの設定 MyPath = "C:\デスクトップのフォルダパス\テスト\個人用\" '準備 MyFile = Dir(MyPath & "*.xls") Set Tb = ThisWorkbook 'ファイル別に処理 Do While MyFile <> "" 'ファイルを開く Set Wb = Workbooks.Open(MyPath & MyFile) 'シートのコピー Wb.Sheets(1).Copy After:=Tb.Worksheets(Tb.Worksheets.Count) 'フィルタの解除 Set myRange = Tb.Worksheets(Tb.Worksheets.Count).AutoFilter If Not myRange Is Nothing Then Tb.Worksheets(Tb.Worksheets.Count).Range("A1").AutoFilter Set myRange = Nothing End If 'ファイルを閉じる Application.DisplayAlerts = False Wb.Close (False) Application.DisplayAlerts = True MyFile = Dir() Loop '上書き保存してエクセル終了 Tb.Save Application.Quit End Sub |
Message#3 2015年2月5日(木)11時47分 From: goco | 返事 削除 変更 |
早速のご連絡ありがとうございます! そして当方からの連絡が遅くなりまして申し訳ございません! 私の投稿内容が抜けだらけで大変申し訳ございませんでした。。 分り易い細かなご説明を複数いただきまして誠にありがとうございます! まだ勉強中なので、ご教授いただきました情報を今後の参考にさせていただきます。 このたびはありがとうございました! |
Message#2 2015年2月5日(木)11時46分 From: BP者 | 返事 削除 変更 |
内容に不透明な部分があります。 以下を補足頂ければ具体的な回答が得られるかもしれません。 ・コピー貼付の内容はシートのコピーですか、特定範囲のセルコピーですか? (シートであればコピー対象のシートはどれなのか、全てなのか等も) (指定範囲であれば変動する可能性があるのか、毎回同じセルアドレスなのか等も) ・エクセルのセキュリティはオプションのセキュリティーセンターより 「すべてのマクロを有効にする」を利用できますか? 上記をふまえて、とりあえずリンクのみでの回答ですが。 以下のコードを組み合わせれば可能です。 ▼指定時間でブックを開く(Windowsのタスクスケジューラを使用) ttp://okwave.jp/qa/q5819352.html ▼ブックが開かれたら自動実行するマクロ(Workbook_OpenまたはAuto_Openイベント) ttp://www.happy2-island.com/excelsmile/smile03/capter00706.shtml ▼Excelセキュリティレベルの変更(自動実行マクロを動作させるため) ttp://excel-2013.blogspot.jp/2013/11/excel2013.html ▼ディレクトリ以下のブックを順次開いて処理 ttp://www.vbalab.net/vbaqa/data/excel/log/tree_613.htm ▼内容の転記 ・シートのコピー ttp://officetanaka.net/excel/vba/sheet/sheet05.htm ・セルのコピー ttp://officetanaka.net/excel/vba/cell/cell09.htm ▼Excelのブックを保存して終了 ttp://www.nurs.or.jp/~ppoy/access/excel/xlA022.html |
Message#1 2015年2月5日(木)11時00分 From: goco | 返事 削除 変更 |
お世話になります。 私のデスクトップの[テスト]というフォルダに[東京支店集計.xls]というブックがあります。 [テスト]フォルダの中にさらに[個人別]というフォルダがあり、この中に下記の3つのファイルが置いてあります。 東京支店_田中.xls 東京支店_鈴木.xls 東京支店_山本.xls [やりたいこと] 毎日15:00になったら自動で上記3つのファイルを[東京支店集計.xls]に全データコピー貼り付けして[東京支店集計.xls]にデータを集約したいのです。 [東京支店集計.xls]には毎回全データ上書きしたいのです。 このとき個別の"東京支店_田中.xls"ブックなどは担当者によってフィルターなどがかけられている可能性があるため、集約時にはフィルターを取り除いた形で全データを貼り付けしたいです。 [個人別]フォルダ配下のファイルを集約する時、3つにのファイル名を指定するやり方でもいいですが、ファイルの数が増える場合もありますため、できれば[個人別]フォルダ配下のファイル全てコピー貼り付けする、という動作だと助かります。 私が考えているのは[東京支店集計.xls]にVBAで上記のファイルを集約するコードを作成して、15:00に起動して動かす、という流れなのかと思っております。 初心者のためVBAコードと時刻自動のセットの方法をご教授いただけすと大変助かります。 ★東京支店集計.xlsのファイルパス C:\Users\ユーザー名\Desktop\テスト\東京支店集計.xls ★個人別ファイルのファイルパス C:\Users\ユーザー名\Desktop\テスト\個人別\東京支店_田中.xls C:\Users\ユーザー名\Desktop\テスト\個人別\東京支店_鈴木.xls C:\Users\ユーザー名\Desktop\テスト\個人別\東京支店_山本.xls お手数をおかけしますが、どなたかお知恵をお借りできますでしょうか。 よろしくお願い致します。 環境 Excel2013 Windows7 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降