こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA プログレスバー表示について

いつもお世話になります。

ワークシート関数の計算中に、プログレスバーの目盛りを進めることは出来るでしょうか。

というのは、マクロで約1200行×50列=60000個のセルにワークシート関数(SUMPRODUCT関数などの、かなり時間のかかる関数が多く含まれています)を書き込んでいるのですが、中々計算が終わらないので、固まっているように見えるのです。

以上宜しくお願い致します。

投稿日時 - 2005-07-14 15:35:11

QNo.1513175

暇なときに回答ください

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

こんにちは。

>まだまだ道のりは長いですね。そこまで極める必要もないかもですけど。

私もそれでよいのだと思います。覚えたころには、また、本体そのものが、まったく別のものになっている可能性があります。今の形態で、10年続きましたから、そろそろ寿命かもしれないなって思っています。VBAは、Visual Basic 6 の弟っていうところで、 本家は、.Netという、もう別のところに行ってしまいましたからね。

様相が変わるときって、いっぺんに変わります。Microsoft 社には、そういう前科が、何度もあります。例えば、Excel Ver 4 とVer 5 ぐらい変わってしまったら、とても、すぐに覚えられるものではありません。Excelのプロの方たちは、もう先の勉強をされていると思います。大混乱させられますから。

Office側は、Visual Studio Tool に移行しつつあるような噂も聞きます。そういう様子を見ながらがよいのではないでしょうか?

>近い将来に買い替えると思うので、出来れば2003年版を買いたいのですがいかがでしょう?

2003版 のほうがよいと思います。私は、結局は、買い換えることになりましたが、内容的にはほとんど変わっていませんでした。大部分の主要なところは、ほとんど変わっていません。私自身のVBAの、経歴は短いけれども、その移り変わりだは、人の話も含めて、なんとなく見てきました。

投稿日時 - 2005-07-15 10:38:20

お礼

大変参考になりました。
私もうすうすは、現在のEXCELの環境が様変わりするのではないかと感じていましたが、大変なことですね。日本だけでも何千万人という人がEXCELを使っているでしょうし。
ご丁寧にありがとうございました。

投稿日時 - 2005-07-15 11:07:57

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんばんは。

最初に、

>エクセルがフリーズしていないことと、マクロが終了したことが分かれば良いのです。(何らかの図柄が動いているとか)

それで、「わたし流」なのですが、まず、マクロの終了については、私は、Msgbox ではなくて、最後に全てが終わったら、「Beep」を入れています。

それで、だいたい、終了が何分も掛かるようですと、全体的な問題があると私は考えるですが、ループなどに、1000回に1度ぐらいに、やはり、「Beep」 を入れて、ハングしていない合図にしています。(例:If i mod 1000 =0 Then Beep)トラブルが起こっている時は、絶対に、「Beep」は鳴らないからです。もちろん、視覚的に Cell上にカウンタを出してもよいかと思います。

>ご回答の中で紹介していただいた書籍は、Wendy02様もお持ちのものですか?

Mougの大村さんの著書ので、これは、定番ということだと思います。いろいろ本をあたって、この本でVBAを覚えました。全部で、3部になりますが、これを全部読み終わって、初級終了というところだと思います。

3部の中で、「Excel2003 VBA コントロール・関数編」が、一番、とっつきにくいですね。(Excel 2002版もまだ手に入るはずです。)

この上の段階になると、急に難しくなって、Excelだけで収まらなくなってしまいますし、本にはないことが多いので、どうしても、マイクロソフトサイトのMSDN が必要になります。

Amozon:

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4774120286/qid=1121345871/sr=1-2/ref=sr_1_10_2/249-1462390-5530743

投稿日時 - 2005-07-14 22:16:34

補足

ご回答ありがとうございます。早速試してみます。

質問ですが、私は現在エクセル2000を使っているのですが、2002や2003版を購入しても全然使えないですか?それともたまに問題がある程度ですか?近い将来に買い替えると思うので、出来れば2003年版を買いたいのですがいかがでしょう?

>これを全部読み終わって、初級終了というところだと思います。

それで初級終了ですか・・・。
まだまだ道のりは長いですね。そこまで極める必要もないかもですけど。

投稿日時 - 2005-07-15 08:55:17

ANo.1

こんにちは。

検索しても出てきたはずですが、

http://oshiete1.goo.ne.jp/kotaeru.php3?q=405615

ここの#3 の方は、以下から写したものです。
『かんたんプログラミング Excel VBA コントロール・関数編』大村あつし著 (技術評論社)
第二章の中の、「ラベルをプログレスバーとして利用する」

ですが、Excelでは、プログレスバーを出したところで、負荷がかかるだけで、計算スピードを落とすようなものです。

>マクロで約1200行×50列=60000個のセルにワークシート関数(SUMPRODUCT関数などの、かなり時間のかかる関数が多く含まれています)

コードを見なければなんとも言えませんが、処理スピードを上げることを優先したほうがよいのではないでしょうか?

投稿日時 - 2005-07-14 15:50:40

補足

早速のご回答ありがとうございます。

プログレスバーでなくても、エクセルがフリーズしていないことと、マクロが終了したことが分かれば良いのです。(何らかの図柄が動いているとか)
処理を遅くしてしまうのは避けたいので、プログレスバー以外で、方法はありませんでしょうか?


P.S
ご回答の中で紹介していただいた書籍は、Wendy02様もお持ちのものですか?
でしたら、ぜひ購入させていただきたいと思います。

私は、最初にマクロの入門書を購入した後、良い書籍が分からず、中級・上級用の書籍を持っていない状況で、新しい問題が出た度に、手探りで捜したり、このサイトで皆様からご回答をいただいているのですが、いつもご迷惑をおかけして申し訳ないと思っているのです。このような私に、良い書籍がありましたら、お手数ですが紹介していただけませんでしょうか。


本当は処理スピードを上げる方法をご相談したいのですが、マクロが長すぎるので、お見せすることは出来ないですね。

投稿日時 - 2005-07-14 16:46:54

あなたにオススメの質問