螺旋を描いて…

螺旋 のごとく続く毎日を綴ります

押してもダメなら…

仕事ではExcelVBAを用いて、営業部向け、支店向けの多数のファイルをボタン1つで、自動処理しております。

 

指定のExcelファイルを自動で開け、データを取ったり処理を施したりして、自動で上書き保存するのが、主な流れですが、実はある問題がありまして。

「保存の時、保存中のウィンドウが出っぱなしになって、手で消さないと先に進まない」

順調に処理を続けていたのに、保存になると、止まってしまう。

ウインドウを消せば再開はするものの、これでは長時間かかっても、放置できない。

 

これまで作ったツール共通の、悩みだったんです。

 

それが今日、あるひらめきが、ありまして。

 

ある命令を保存の前にはさむと、表示されたウィンドウが自動で消え、先に進むようになったんです。

 

実は、他人に実行させるときに、やっぱり途中で処理が止まってしまうのは問題で、困っていたんです。

たった一行ながら、大きな発見!だったんですよ♪

 

ちなみに、その命令とは…

「DoEvents」と書きます。

 

意味ですか?平たく言えば…

「てめぇの仕事をせい!」ってもの。

 

ハッとしました。

負荷のかけ過ぎ、だったんですね。

 

コンピューターはプログラムの実行以外にも、いろんな仕事があります。

入力を受け付けたり、画面表示したり。

でも、ExcelVBAはプログラムですから、そりゃあもう、押しが強い強い。

時にはコンピューター本来の仕事をする余裕まで、奪ってしまうんです。

 

なので、時にはコンピューターをVBAから解放して、自分の仕事をする時間を与える必要も、あるわけです。

 

押してもダメなら引いてみな。

人生、ですなぁ…。。