ここから本文です

VBAで、別のワークブックを「軽負荷で」開く方法について VBAで、データファ...

atc********さん

2016/9/416:50:21

VBAで、別のワークブックを「軽負荷で」開く方法について


VBAで、データファイルを開き、計算し、データファイルを閉じる
というマクロを組んでいます。

今回最も自動化したい「計算」自体は非常に軽いのですが、
データファイルが肥大化しているせいで
ファイルの開閉に非常に時間がかかっています。

1) Workbooks.Open Filename:=workbookA, UpdateLinks:=0
3) Workbooks("workbookA").Close saveChanges:=0

データファイル全体のうち、今回の処理に必要なデータはごく一部なので
どうにか無駄なファイル開く/閉じる時間を短縮できないかと考えています。


・データファイルをopenせずに、必要なセル情報を取ってくる方法
・データファイルをopenした際、無駄な処理を飛ばしてセル情報だけ取ってくる方法
など、良い知恵があれば教えて下さいませ。

※データファイルは全社で共有されているファイルのため、
「データファイル自体の軽量化」は今回ナシとしてください。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
135
回答数:
4

違反報告

ベストアンサーに選ばれた回答

kam********さん

2016/9/1022:17:21

>今回のマクロは、そのうち特定シートの1カラムだけを対象に計算しています

他の方に書かれていますが、そんな大きなファイルを読んで1カラムだけですか?

システムの運用形態がおかしいです。
他の方も言っていますが、必要なファイルは、もっと分割して
使いやすいファイルにして持つべきです。
システム管理者に言ってみたら。

所で、エクセルのファイルは、どのくらいの大きさですか?

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

tob********さん

2016/9/1021:39:11

先に
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = false
Application.EnableEvents = false
の三項目をおこなってからOpenしても重いですか?
(これを書いたマクロの最後にはそれぞれ元に戻す命令を書いてくださいね)

kak********さん

2016/9/501:40:32

1、読み取りだけで、データがテーブル構造ならADOで読み込む。ただし、名前範囲の設定が必要。
2、質問者さんが作業のためにデータファイルを開く回数がデータファイルの更新回数より少ない場合は、必要な情報だけを格納した作業用ファイルをローカルに作成して、必要なデータだけをそこへ格納して運用する。
データファイルが更新されていない場合は作業用ファイルからデータを取得して、データファイルが更新されている場合は作業用ファイルに元ファイルからデータをコピーした後に、作業用ファイルのデータを利用する。

hig********さん

2016/9/419:48:41

補足要望
データファイルはエクセルブックですか?CSV等ではなく。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる