• ベストアンサー

エクセルマクロで進捗状況を表示させたい

いつもお世話になります。こんなことできますか? プログラムの進捗状況を表示させたいのですが、 ステータスバーの表示だと隅っこの方ですし、表示も小さいので、画面の真ん中にメッセージウィンドウを出せないかななんて考えてます。 進捗状況は刻々と変わるので、Msgboxだといちいち「OK」を押さないといけなくなり実用的ではありません。 画面真ん中に表示する方法、何かいい方法ありませんか。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

ステータスバーに表示させるにが一番簡単な方法なのですが、お気に召さないのであればその次に簡単な方法を。 1.現在のシートとは別に表示用のシートを作成します。 2.表示用のシートのまんなかあたりのセルに、ステータスバーに表示させる進捗状況をセットします。 3.マクロ作動中は常に表示用シートをアクティブにして見せておくようにします。 これでOKですね。

tarobei
質問者

お礼

ありがとうございました。 なるほどですね。簡単にできました。しかもこれだと 表示する内容も絵(図)が自由に使えて自分的にはGoodでした。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

http://www.geocities.co.jp/SiliconValley-SanJose/9236/subdoc2/0154.htm を参考に時間の経過とともにバーが大きくなるテストをやってみました。 For i = 1 To 20 Application.Wait Now + TimeValue("00:00:3") ProgressBar1.Value = i * 10 ぐらいで3秒おき20マス=1分間待ち、でまあまあの感じでした。 ただ実装するとなると、ここに記述あること以外に色々なことを判ってないとダメなように思うので、私は十分なことがいえませんが。 何かご参考になればと。

tarobei
質問者

お礼

ありがとうございました。 これもすごくいいですね。でも、すみません・・・今回は#1さんのご提案を使わせて頂くことにします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

これなんか、どうでしょうか?

参考URL:
http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv9g1810.html
tarobei
質問者

お礼

ありがとうございました。 カッコいいですね。でも、すみません・・・#1さんの ご提案を使わせて頂くことにします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロで教えていただきたいです。

    ある処理プログラムをつくりました。 同じ処理を数千行にわたって繰り返すのですが、一瞬では到底終わらないため「進捗状況」を表示させたいと思うのですが、何かよい方法はございませんでしょうか。 「現在○○行を処理しています」なんていうメッセージが出せればいいかななんて考えてます。 Msgboxを使用することも思いついたのですが、これだと何かしらボタンを押さないと次へ進まない(と思っていますが違います?)ので自分の意図することと違うなぁという感じです。 よい方法教えてください。よろしくお願いします。 Windows98SE、EXCEL2000を使用しています。

  • 「受信進捗状況」を表示する方法を教えてください

    OSはWindows7 メールソフトThunderbirdを使用しております。つい先日、Thunderbirdが24.5.0にバージョンアップされ、自動更新をしたのですが、それ以降、いままでメールが受信されている際ステータスバーに〇件中〇件受信等の「受信進捗状況」が表示されなくなってしまいました。受信自体は正常に出来ますが、「受信進捗状況」が表示されないと、今現在、どの程度受信されているか?わからず、少々不便です。また、以前は、フォルダの最適化を実行する際、同様に最適化の進捗状況が表示されていましたが、これも表示されなくなってしまいました。この現象は、24.5.0版での特有の現象なのでしょうか?それとも、どこか設定を調整すれば「再表示」できるものでしょうか?実は、同内容をThunderbirdのユーザーフォーラム「もじら組」にて質問をしたところ、ヘビーユーザーの方から、質問自体に答えもせず、揚げ足をとった様な実に高飛車な態度の突っ込みをうけて、そうとうへこんでしまいました。そして、OKWaveの質問コーナーにたどり着きユーザー登録したうえで質問させていただいた次第です。説明不足な点があるとは思いますが、どうかよろしくお願いいたします。

  • Excelで工程の進捗状況を表示したい

    いつもお世話になります。 今日の日付(A2セル)の列の「計画と実績」の工程を比較し、 A6セルに「現在の進捗状況(計画との差)」を表示したいのですが、 どのような式を入れればできるでしょうか。 ※例えば、4/4を見ると ・現在の進捗状況(=実績)…「製造」 ・計画との差…「製造」の計画は4/5なので「1日早い」 ⇒【製造(1日早い)】としたい 補足1、差の計算は「営業日でカウント」したいです。 (休日表シートは作成済、休日をグレーにするため条件付き書式を使用しています) 補足2、工程の流れはF2:I2セルに入力しています。 実際はもっと工程が多いため画像のフォーマットですが、式が複雑になるなら1列目から列追加して各工程分の日付を入れる方がシンプルにできるのでしょうか? EXCELに詳しい方、ご教授いただきたく宜しくお願いいたします。

  • エクセルStatusBar表示が変化しない

    エクセル・マクロで次のように、For Next ループの進行状況をStatusBarに表示しています。 ’MsgBox "ループ数=" & m Application.StatusBar = "ループ数=" & m Msgboxをコメントで使用しない状態にすると、mの値が表示されますが、途中で数字が変化しなくなってしまいます。計算が実行していることは確かなのですが、例えば、2とか3とかで表示がストップしてしまい、変化しなくなってしまいます。 ところが、コメントをはずしてMsgBox表示するようにしますと、MsgBoxで「OK」とすると正常なmの値がステータスバーに表示されます。 どうすればステータスバーに正確に表示できるのでしょうか? よろしくご教授ください。 ちなみに、OSはWindows7、エクセルOffice2010、バージョン14.0.5128.5000(32ビット)です。

  • フォルダコピーする際に「全体」の進捗状況を知る方法

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Vista Home 32bit SP2 でございます。  定期的にHDのバックアップを取っておりますが、不便な点がございます。 複数のフォルダをコピペする際に、その全体の進捗状況を知れる方法はございませんでしょうか?  例えば「C」の中身を全選択し外付けHDにドラッグいたしました際ですが、 表示される進捗状況を示す青いバーが、それ「全体」の進捗でなく、 個々のフォルダ(?)のコピー進捗状況を表示しているようで、 右端まで進んでは(=残り時間0)また左端から始まる、という挙動を何度も繰り返します。 (途中のProgram Files移動中だけでも、数十回ほど繰り返しております) 最終的にいつ頃に終わるのか、が分からず、作業の配分が掴めず困っております。  もしお詳しい方がいらっしゃいましたら,何か良い方法を是非アドバイスいただけないでしょうか。 どうぞよろしくお願いいたします

  • エクセル2000マクロ操作

    下記のマクロを記述していますが Dim msg msg = MsgBox("データ入力は正しいですか。?", 1, "データ入力確認") メッセージボックスの表示位置を真ん中でなくて、決めた位置に表示を変えることは できるのでしょうか?操作方法があれば教えてください。 出来たらマクロ操作でお願いします。

  • チェックディスクで進捗状況が出力されない

    チェックディスクをしようとすると通常、 「再起動後にチェックしますか?」といったメッセージが出て、 再起動後にブルースクリーンにて進捗状況(Stage1~5)が、 通常は表示されながらスキャンがされるはずなのですが、 再起動後画面出力無くHDががりがりなりっぱなしになります。 半ば強引に電源を切り、イベントログを見たところ正常に終了はしていたようですが、 このままではいつ終わったのか判断もつかず怖くてチェックできません。 何か解決策をご存知の方はご教示ください。 ちなみにビデオボードはGeForce7300LEで、ビデオボード・マザーボードどちらのコネクタからも画面出力はありませんでした。

  • エクセル上でVB6を使っています。

    エクセル上でVB6を使っています。 時間のかかる計算をしている最中は、 小さいウィンドウを画面中央に出して、処理中であることを知らせたいです。 MsgBox ("計算中です。")と入れるとOKボタンが表示されます。 これだとOKを押されて、メッセージが消えるので、良くありません。 OKボタンを非表示にして、計算が終わったらメッセージを消すことは出来ませんでしょうか?

  • Accessフォームのボタンの二度押し禁止

    Access2000において、長い処理をさせる時、 ボタンを押した後に再びボタンを押してしまい処理が走ってしまうのを防ぐため、 以下のようなコードを考えましたが、エラーが発生します。 (以下のコードは簡略化しています) Private Sub cmd売上伝票変更_Click()   strMsg = MsgBox("更新します。よろしいですか?", vbYesNo)   If strMsg = vbNo Then     MsgBox "中止しました。", vbOKOnly     Exit Sub   End If   'ボタンを無効にしようとしましたがここでエラー   Me.cmd売上伝票変更.Enabled = False   Do Until 条件     ~ここに処理が入る~     'ステータスバーに進捗状況表示     Application.SysCmd acSysCmdSetStatus, lngCount & "件 / " & lngTotal & "件 完了"     DoEvents   Loop End Sub 進捗状況をステータスバーに表示させるために、DoEventsを入れていますが、 これがモトで再びボタンが押せてしまいます。 入れない場合、どこかクリックするだけで画面がフリーズしたようになってしまいます。 ボタンを押せなくする方法、またはボタンを押した後、画面だけ更新できる方法で、 何かよい方法は無いでしょうか?

  • エクセルVBAでメッセージを表示する

    エクセルVBAでメッセージを表示する時は、 Msgbox "表示する内容" と記述しますが、これだと[OK]をクリックするまで エクセル本体が全く操作できなくなってしまいます。 メッセージボックスを表示させた状態で、エクセルを操作できるようにすることは 出来ますでしょうか?

専門家に質問してみよう