EXCEL 時刻起動で複数ブックを1つにまとめる

最近の書き込み件数: 今日 0件、昨日 0件
未読分:5件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

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

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com