• ベストアンサー

エクセルの立ち上げ時とマクロ実行時の再計算について

なぜ同じ形式のファイルで同じようなことをマクロで実行させているだけなのに 一つだけ立ち上げ時と再計算時に時間がかかるか教えてください。 各フォルダ(東京・神奈川・千葉・埼玉)にアクセスからエクスポートしたExcelファイル(A・B・C・D)と、それを集計する合計.xlsがあります。 合計.xlsのマクロボタンを押下することによって A・B・C・Dが立ち上がり、それぞれが合計.xlsのsheet2~5に貼りつき、A・B・C・Dを閉じます。 合計.xlsのSheet1にはマクロボタンとSheet2~5を集計するための表があり、Sheet2~5からvlookupで数値を引っ張ってきています。 ●各フォルダに入ってるファイルは同じ形です。 ●フォルダ(東京・神奈川・千葉)は立ち上げもマクロ実行時も数秒で計算が完了します。 フォルダ(埼玉)だけは立ち上げ時に3分以上かかり、どこかクリックする度に再計算(これも3分以上)されてしまいます。 3分位待ってればいいのですが、なぜ(埼玉)の合計.xlsだけがそうなってしまうのか、わかる方がいらっしゃれば教えてください。 マクロ作成時、確認をしたときは他と同じでした。 今日他の人が合計.xlsを何度か強制終了したとのことですが、これが原因になったりしますか? ちなみに他フォルダ(東京)からファイルをコピーしマクロ&関数を修正してみましたがダメでした。 フォルダ(埼玉)に問題があったりするのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.5

#4です。 川越市だけでやってみたらどうなるんでしょうかね? それで遅くなるならデータがおかしいと思います。 遅くならないなら・・・Excelの盲点を突いてしまったのでしょうかね?(笑) マイクロソフトさんが調査しないとわからないレベルの話じゃないかと。 関数で回避できるなら、運用でカバーという形で回避するべきかなと思います。

macha-ema
質問者

お礼

再度お返事ありがとうございます。 川越市だけで試しましたが問題はありませんでした。 また川越市、さいたま市、所沢市 と順番を変更してみましたが、所沢市のB表でNGでした。 解決した旨ご報告させていただきましたが、それでまたアドバイスをいただければと質問欄を閉じずにいました。 盲点をついてしまったのであれば仕方ない(笑) いろいろとアドバイスありがとうございました。また助けてください♪

その他の回答 (4)

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.4

フォルダ(埼玉)はサーバ上のフォルダですか?アクセスするのに時間がかかりますか? サーバ上のフォルダであれば、Cドライブなどローカルにおいて時間がかかるか試してみてはいかがでしょうか。 ローカルにおいても起動に時間がかかるのであれば、エクセルファイルがおかしいでしょう。 >ちなみに他フォルダ(東京)からファイルをコピーしマクロ&関数を修正してみましたがダメでした とあるので、ファイルは正常な気もしますが。 書式や数式が非常に多数のセルに設定してあったりします? これに当てはまるなら、マクロで必要なセルにだけ書式設定or数式入力することで軽くなるかもしれません。

macha-ema
質問者

お礼

回答ありがとうございました。 サーバ上からデスクトップにコピーしてみましたがダメでした。 書式については多くの罫線、セルに色づけがされています。また合計.xlsのSheet1の表には全てVLOOKUPがはいっています。 ただそれは他のフォルダ(東京・神奈川・千葉)の合計.xlsも同じことなので、なぜフォルダ埼玉の合計.xlsだけがダメなのか不思議なんですが・・・

macha-ema
質問者

補足

お礼が遅くなり申し訳ありませんでした。解決したので補足欄にてご報告させていただきます。 再度一からやってみようと思い、合計.xlsを作り直しました。 たとえば東京の合計.xlsは上から 中央区のA表、B表、C表  世田谷区のA表、B表、C表 江東区のA表、B表、C表 となっています。 埼玉の合計.xlsをさいたま市のA表、B表、C表をつくり保存し再起動。 そこに所沢市のA表、B表、C表を追加し保存し再起動。 という感じでだんだん増やしていったところ、川越市のA表までは良かったんですが、B表を追加したところで立ち上げ時に何分もかかるようになりました。 ファイルの大きさで見れば東京の合計.xlsの方が全然大きいのに(市名or区名が多いので表の数も多い)なぜ埼玉の合計.xlsは途中でダメになるのか結局はわかりませんでしたが、 川越市のB表以降はVLOOKUPではなく、SUMPRODUCTを使ったところ大丈夫でした。使う関数によっても違うのかな? 結局フォルダが壊れたとか、ファイルが壊れたということはなかったようで・・・色々アドバイスありがとうございました。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.3

実際のファイルが分からないので、あくまでも推測の域を出ませんが・・・・ >ちなみに他フォルダ(東京)からファイルをコピーしマクロ&関数・・・・ これがどうやったのかよく判りませんが、フォルダ(埼玉)・・・ファイル埼玉?・・・をいったん別名で保存しておいて、正常に処理されるファイルをフォルダ(埼玉)・・・ファイル埼玉?・・・と名づけて同じ処理をしたらどうなりますか? それと、四つのフォルダ(ファイル?)を同じ処理しているマクロは、Do....Loop や For....Next などで、まったく同じVBAの構文で処理しているのか?それとも別々に表記されているマクロなのか? 後者だとしたら、本当に同じ構文になっているのか?思い込みを捨てて再確認しましたか。 フォルダ(埼玉)・・・ファイル埼玉?・・・と他のフォルダ(ファイル?)ではファイルの大きさに違いはありますか? 入力sれているデータの件数をみてもそれほど差がないのに、ファイルの大きさ(プロパティで○KBとか△MBとか)に差が出ていたりしませんか? もしそうなら、マクロ実行中に中断したり強制終了するなどした関係で不要なデータが紛れ込んでいるのかも知れません。 フォルダ(埼玉)・・・ファイル埼玉?・・を開いて、ワークシート上で CTRL + ENDキー をおしてシートの最終入力データを探してください。 それが、表示されているデータと違う(スペースか何か見えない状態かもしれません)なら、目に見えている(必要な)データ以降のセル(行・列)をいったん削除して上書き保存後に再確認してみてください。

macha-ema
質問者

お礼

回答ありがとうございました。 フォルダ埼玉の合計.xlsをいったん別名で保存し、フォルダ東京の合計.xlsをコピーしてきてマクロと関数を埼玉用に直してみましたがダメでした。 またマクロですが、記憶のマクロのためDo....Loop や For....Next などのVBA構文ではないのです。ですがどれも同じ内容になっています(マクロ実行時に開かれるファイルのフォルダなどは異なりますが) 最終入力データも確認してあり、空白のセル(行・列)は削除してあります。

回答No.2

埼玉関連エクセルファイルの計算方法が手動になっていませんか? ツール-->オプション-->計算方法で確認できます。 その他の原因としては外部リンク等の計算式が多ないですか? ファイルの大きさは他のと同等ですか?

macha-ema
質問者

お礼

回答ありがとうございました。 計算方法は自動です。また計算式はVLOOKUPのみで、同ファイル内だけです。 ファイルの大きさは違うフォルダ(東京)の合計.xlsより小さいです。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

問題となっているファイル(埼玉関連のファイル)をそれぞれ、直接立ち上げて見てください。(マクロからではなく) その時は、他と同じように数秒で立ち上がるなら、マクロ処理が原因という可能性もありますが、もしかすると同じように時間がかかったりしませんか?

macha-ema
質問者

お礼

回答ありがとうございました。 各ファイルを開いてみましたが、それぞれ他のフォルダにあるファイル同様にサクッと立ち上がりました。

関連するQ&A