• 締切済み

VB6で、長い時間かかる処理実行中の表示の工夫について

VB6で、数分ダンマリになる処理があります。 処理の改善を図っていますが、とりあえずの手段として、フォームを出力して、 メモリとか→等が動いている画面を表示させたいのですが。 何か手軽に表示できるこのようなフォームの作り方を教えて下さい。 コーディングサンプルがありますと、大変助かります。 宜しくお願い致します。

みんなの回答

  • haporun
  • ベストアンサー率40% (230/562)
回答No.3

拡張コンポーネントを使うのが面倒なら、ラベルで "n% / 100%" とか表示させる手もありますね。 ループしてるんだったら、ラベルを置いておいて For N = 0 To 10000 'なんかしょり~ If N \ 100 = N / 100 Then Label1.Caption = (N \ 100) & "% / 100%" DoEvents End If Next N プログレスバーにせよなんにせよ、表示する値を変更したあと、DoEventsって書かないと、実際には表示はされませんよ。

noname#1504
noname#1504
回答No.2

No1さんの具体化です。ホームのどこかにプログレスバーを貼り付けます。 (ツールBoxにProgressBarのアイコンがなければ、 プロジェクト->コンポーネントで、Microsoft Windowss Common Controls 6.0 にチェックを入れる。 Dim i as Integer ProgressBar1.Max = 10000 '最大処理回数を設定 ProgressBar1.Value = 0 '初期値をゼロに ProgressBar1.Visible = True 'バーの表示 '処理の一例 For i = 1 To 10000 ProgressBar1.Value = i '進行値設定 Next ProgressBar1.Visible = False

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

普通はプログレスバーを使います。

関連するQ&A

  • VBの実行時の処理の流れ(仕組み)について教えて下さい

    WindowsXp-Pro上でVB.NET2003を使用しています。VB.NET初心者です。 VB.NETはコーディング後デバッグを行いエラーがなければ実行される訳ですが、実行時の処理の流れと言うか、仕組みについてご伝授頂きたいと思います。 VB.NETにおいてはオブジェクト指向が進んでおりコーディング作業時は全体の流れを考えなくても、クラス内でのインスタンスやサブルーチン・関数ルーチン、フォームロード時の処理、モジュール内での処理等のコーディングのみを考えていれば実行できるようになっています(少なくとも今まで私が作成したプログラムはそうでした)。しかし、色々なサンプルプログラムを作っているとこれはクラスで指定した方が良い処理とかモジュールで指定した方が良いのではと思うことが多々あります。 プロジェクトやフォーム、クラス、モジュール、コンポーネントクラス、ユーザーコントロール、データフォームウィザード、継承コントロール (これらはVisualStudioの「プロジェクト」メニューをクリックした時の項目です) 等の処理の順序が判っていればもっと効率的な処理を適材適所に配置できるのではないかと思います。 これらをコーディングレベルで結構ですので機械内での処理の順序をご説明頂ければ幸いに思います。現在のところコンピュータは並列処理はできないので必ず優先順位がつくと思うのですが、未熟な為VBの全体像がつかめず処理の流れも判らずにいます。 よろしくお願い致します。

  • VBで内部処理のみ行って終了するプログラムを作るには?

    VB6.0でコマンドラインからの引数をテキストファイルに出力して終了させるプログラムを作りたいのですが、フォームなど特に画面に表示することなく内部で処理をしたら勝手に終了させるにはどうしたらよいのでしょうか? 初心者の間の抜けた質問で申し訳ありませんが、どなたかアドバイスをお願いします。

  • vb2010でフォーム非表示で処理をする

    VB2010で起動から終了までフォームを一度も表示しないで処理をする方法についてご教示ください。 実際はフォームにPictureBoxがあって図形を描画し、保存後終了する処理を行います。 図形の内容が変更される可能性があり、調整段階ではフォームがあった方が便利なので 表示状態で作業し、最終的にフォームが非表示のアプリにしたいのです。 以前、プロジェクト内の何かのファイルに手作業でロジック(1~2行ほどで何かのプロパティをfalseに設定する)を追加したら非表示となると言うのを見つけて(WEB?)試したところうまくいったのですがその方法が思い出せず困っています。 曖昧で申し訳ありませんが上記の方法をご存知の方がおられましたらご教示ください。

  • テキストファイルクリア .net2005 VB

    VB初心者です。よろしくお願いたします。 現在 .net2005 VBでPL/SQLの処理結果を「log.txt」に出力しておりますが、処理をするたびに、テキストファイルの下へどんどん追加されます。 そこで、画面上からログクリアボタンを押下すると、「log.txt」の中身が初期化されるようにしたいと考えて降ります。 どうすればよいか、サンプルのロジックを教えて頂けませんでしょうか?

  • .net VB2003のデザイナ表示の遅さについて(開発時)

    .net VB2003のデザイナ表示の遅さについて(開発時) 現在仕事で.net VB2003を使用してシステム開発(改修)を行っております。 画面レイアウトのサンプル作成などを行っているのですが、 開発の際にフォームのデザイナを開こうとしても、表示までとても時間がかかります。 開発作業に支障をきたしています。 表示時間を短くする良い方法が有れば教えて頂けないでしょうか?

  • VB2008でコマンド実行

    VB2008のフォームからボタンをクリックして、DOSコマンドを実行したいのですが うまくいきません。 http://dobon.net/vb/dotnet/process/standardoutput.html にあるサンプルをそのまま貼り付けて実行したら Console.WriteLine(results)の実行結果が空白になります。 Debugで見ると BasePriority = {"プロセスは終了しているため、要求された情報は利用できません。"} という表示があるのですが、このサイトのコメントでは、出来ると書いてあるので何が 悪いのか分かりません。 分かる方がいらっしゃったら教えてください。お願いします。

  • Vb2010

    vb2010です。 ログインフォーム(Form1)のログインボタン(button1)を押すとログインフォームは消え、メインフォーム(Form2)を表示するという事をしたいです。サンプルコードを教えて下さい。

  • VB2010 の Run画面の処理 に ついて

    VB2010 の Run画面の処理 に ついて お教え下さい  VB2010.Express版を使って ソフトを作って居る者ですが、 [スタート・アップ・プロジェクト]からスタートをしてForm1()を表示させたいのです しかし、その場合には必ず、目下入力中のVB用[コード・エディター]画面と、もう一つ背景が黒一色の[コマンド入力]用の画面と が、一緒に現れて来ます  ソフトをRunさせるとデスクトップ画面の上には、このForm1()だけを表示させたいのですが、目下必ず現れるこれら2画面を表示させない様にするには、どの様なコマンドを入力しておけばよいのか、或いは何か別の回避方法でもあるのか、を 是非 お教え下さい  宜しく お願い致します akqsp より

  • 実行させた処理の終了を待ちたいのに・・・

    VB.NETで、とても困っています。 現在実行中のアプリから別のアプリをCreateObjectで起動して、その起動したアプリに対してイベントを行うというプログラムを作っています。 処理手順としては、 (1)アプリを実行 (2)実行したアプリ内のあるプロパティをちょっと変更  (表示名称を変えるとか、そのくらいの処理です) これだけのことなのですが、(2)の実行がうまく出来ません。 ところが、(1)と(2)の間に、(1)のアプリのプロパティを取得してメッセージボックスを表示、などといった、処理を中断させる処理を挿入すると、思ったとおりのことが出来るようになります。 つまり、(1)の処理が完全に終わっていないうちに(2)のイベントを発生させようとしているようです。 こういう場合、VB6.0のときはDoEventsで解決したのですが、VB.NETではなぜか解決できません。 何か他に方法はないものでしょうか? メッセージボックスを挿入する手段は使えませんので、何とかしなくてはいけないのですが。 よろしくお願いします。

  • 【VB6】デバイスマネージャを表示させたい

    VB6(SP6)を使用しております。 タイトルの通り、フォームに貼り付けたボタンをクリックしたときデバイスマネージャを表示させたいのですが、そのサンプル等をご存じの方いらっしゃいませんでしょうか? 以上、宜しくお願いいたしますm(__)m