プログレスバーコントロールが動作しないが?

Question 47k 拙著「組み方講座」 Previous Next
325ページ [4-3-5図] ◆ 環境・・ Excel 2003 & Windows XP
詳細は こちら
プログレスバーコントロールで進捗状況を表示したいのですが、ユーザーフォームの表示で止まり、バーそのものが動かないのです。
コントロールの追加→Microsoft ProgressBar Control 6.0(SP4) を追加しました。 本に載って
いるコントロール名は、Microsoft ProgressBar Control, version 6.0なので、コントロールが違うのでしょうか。
ワークシートに作成しても同じ状態です。 ちなみに、マクロコードは学習用ブックのコードをコピーしています。
もしコントロールがちがうなら、その取得方法をご教授ください。よろしくお願いします。
Answer   Copyright (C) 2005.1.8 永井善王
拙著「ExcelVBAマクロ組み方講座」をご購読、ありがとうございます。

「ユーザーフォームの表示で止まり、バーそのものが動かないが、原因はプログレスバーコントロールのバージョンが違うからでしょうか」ということですが、まずは、もう少し詳しい状況を教えていただけますか。

Q1. ユーザーフォームは表示されたのですね? もし表示されなかったならばエラーメッセージは何と出ま
  したか?
Q2. 表示されたユーザーフォームにプログレスバーが表示されましたか?
Q3. Q1.とQ2.がイエスの場合、バーが右方向へ順に伸びていかないという意味ですか?
Q4. 324ページの「学習用ブックを準備する」にも説明があります
  が、付属CD-ROMの 「Excelマクロ組み方講座メニュー」で
  「プログレスバー_ユーザーフォーム」 をクリックするとサ
  ンプルブックが開きます。
  そこに表示されている [実行]ボタンをクリックすると右図の
  ようにユーザーフォームが表示されて、バーが右方向へ順に伸び
  ていきますか?

ご返事お待ちしています。 なお、万一、よく分からない場合は、あなたが作成されたブックをEメールに添付して送信してください。拝見しますので。
Qのご返事
お世話様です。早速のご回答ありがとうございます。Qのご返事をいたします。
Q1.Q2.
エラーメッセージはでておりません。ユーザーフォームの表示にとどまりバーそのものが表示されません。 また、ワークシートのプログレスバーは、とりあえず表示され、動いているようですが、バーの形と動作がおかしいのです。
Q3.
ユーザーフォームのプログレスバーは右方向に伸びていません。また、ワークシートのプログレスバーは、とても変な形で表示され、ほんの少し伸びるだけです。
Q4.
CD-ROMのサンプルは正常に動作します。また、ハードに落とし込んでみましたが全く問題なく動作します。
以上です。自作のブックを添付します。よろしくお願いします。
Answer   Copyright (C) 2005.1.13 永井善王
バージョンの括弧書きは無関係
プログレスバーコントロールのバージョンは、VBE画面でユーザーフォームを表示してプログレスバーコントロールをクリックし、[プロパティ]ウィンドウの[(バージョン情報)]の行にある[...]ボタンをクリックすると、右図のように表示されます。 (Excel2003の場合)
一方、[コントロールの追加]ダイアログでは本の325ペ ージ【4-3-5図】のように、「Micro… version 6.0」とだけ表示されます。 よって、こうした括弧書きの有無は、本件不具合には関係ありません。
ユーザーフォームのプログレスバーの不具合原因
あなたが作成されたブックを丹念に拝見しましたところ、意外なところが違っています。
上記と同様にしてユーザーフォームの[ShowMoal]プロパティを表示し、左図のように「True」となっているところを 「False」に変更してから上書き保存してください。
その後でマクロを実行すれば、正常に動作するはずです。

ワークシートのプログレスバーの不具合原因
あなたが作成されたブックを開きますと、プログレスバーが下図のように歪な形で
表示されてします。
図が不鮮明ですがよく見ると、ワークシートウィンドウの左上角に A3セルが位置づけられています。

代わりに A1セルを位置づけるとプログレスバーが正常化するはずですから、上書き保存して、実行してみてください。

なぜこうなるのか私にも、はっきり分かりませんが、もしかすると Excelの仕様(不具合?)かも知れません。

では、学習を再開し、楽しくお進みください。
うまくいきましたら、ご一報いただけると嬉しいです。
ありがとうございました
再度のご回答ありがとうございました。
御指摘のとおり、ユーザーフォームの 「ShowModal」 プロパティを 「False」 にしたところ、流れるようにバーが表示されました。 実は、一月以上もこのことに悩んでいて、誰に相談したらいいのかわからずにいました。 思い余って、ご著者に質問した次第です。 もっと早くしていればよかったと思います。 早速、仕事に使うマクロに組み込んでみようと思っています。本当にありがとうございました。

ところで、ワークシートのプログレスバーですが、ご指摘のとおり A1セルに位置づけると正常に表示されます。しかし、保存して再度開くと (A1セルは画面に表示される) 以前の歪な状態になりますが、スクロールバーで画面を少しスクロールすると正常に表示されます。開くたびにこのような手間をかけなければならないのが、現在の状態です。
ひょっとしてMYパソコンやMYアプリケーションに問題があるのかも・・・と思って、友人のパソコンで同じものを作ってみましたが、結果は同じでした。

しかし、私が必用なのはユーザーフォームのプログレスバーでしたので、満足 (少しだけ不満) しています。 本当にありがとうございました。

Excel VBA Macro