dポイントプレゼントキャンペーン実施中!

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

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

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

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

A 回答 (3件)

こんにちは。



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

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

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

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

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

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

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

お礼日時:2005/07/15 11:07

こんばんは。



最初に、

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

それで、「わたし流」なのですが、まず、マクロの終了については、私は、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/4774120 …

この回答への補足

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

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

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

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

補足日時:2005/07/15 08:55
    • good
    • 0

こんにちは。



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

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

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

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

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

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

この回答への補足

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

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


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

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


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

補足日時:2005/07/14 16:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!