• ベストアンサー

プログレスバーに似たコントロールについて。

プログラムの進歩状況をプログレスバーをつかっていますが、フロッピーにファイルを保存したり、ソフトウェアをインストールしたりするときに表示される、”プログレスバーもどき”のコントロールはどうしたら入手できますか? 素人には無理でもかまいません。 どなたか教えてくださいませんか?

  • 9766
  • お礼率52% (601/1143)

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

>インストールやハードウェアの確認時の画面で表示されるような、そんなのありませんかね。 うーん、進捗ですねー。。。追加のコンポーネントでは、見たことないですが・・・ たぶん、求めているタイプのダイアログがおそらくDLL内にあるのでしょうが、使用方法は公開されてないと思います。もし使用できても、ダイアログを別プロセスで表示するか、ダイアログのプロセス監視をして、現在の状況をダイアログに通知しなければならないと思います。 なので、自分で作成した方が、メンテしやすいと思います。 区切りのないメーターのサンプルです。 フォーム1[Form1] │ ├ コマンドボタン1[Command1] │ └ ピクチャボックス1[Picture1]   │   └ ピクチャボックス2[Picture2] ピクチャボックス2はピクチャボックス1の中に入れてください。 Option Explicit Private Sub Command1_Click()   Dim lngWork As Long   lngWork = 0   On Error Resume Next   lngWork = InputBox("パーセンテージを入力してください", "新着状況の値セット", "0")   On Error GoTo 0      '0~100の値とする   If lngWork < 0 Then     lngWork = 0   ElseIf lngWork > 100 Then     lngWork = 100   End If      Call setProgress(lngWork) End Sub Private Sub Form_Load()   With Me     .ScaleMode = vbPixels        .Command1.Caption = "値セット"          With .Picture1       .Enabled = False       .ScaleMode = vbPixels       .Appearance = 0       .BorderStyle = 1              .BackColor = Me.BackColor     End With          With .Picture2       .ScaleMode = vbPixels       .Appearance = 0       .BorderStyle = 0       .Left = 0       .Top = 0       .Height = Me.Picture1.ScaleHeight            .BackColor = &H800000     End With          Call setProgress(0)   End With End Sub Private Sub setProgress(inPer As Long)   With Me     If inPer = 0 Then       .Picture2.Visible = False     Else       .Picture2.Width = .Picture1.Width * (inPer / 100)       .Picture2.Visible = True     End If   End With End Sub

9766
質問者

お礼

わざわざサンプル作ってくださってどうもありがとうございます。 なるほど、自分で作っちゃうなんて発想はわたしにはありませんでした。 早速Tryしてみます。

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

>プログラムの進歩状況をプログレスバーをつかっていますが、フロッピーにファイルを保存したり、ソフトウェアをインストールしたりするときに とありますが、 1.ファイルのコピーを行うのですか? 2.ごみ箱を空にするのですか?フォーマットを行うのですか? 3.ただ単にオリジナルの進捗状況画面を作成したいだけなのでしょうか? もし1番か2番のような場合はWindowsDLL内にあります。 SHFileOperationという関数なのですが、 http://www.vbvbvb.com/jp/gtips/index.html でキーワード"SHFileOperation"を打ち込むと、関係したものが出てきます。 3番の場合はコンポーネントで 「Microsoft Wndows Common Controls 5.0(SP2)」 を追加してProgressBarを使用してるのですよね? それを使用して、アニメーションの追加をするとオリジナルの進捗状況ダイアログが作成できます。 再生するアニメーションはVBのインストール状況にもよりますがおそらく C:\Program Files\Microsoft Visual Studio\Common\Graphics\Videos に入っていると思います。 再生方法は http://www.vbvbvb.com/jp/gtips/index0001.html の中の1番~11番あたりが参考になると思います。 ちょっといまいち質問をしっかり把握できてません。 はずしてたらごめんなさい。

9766
質問者

お礼

返事がおくれましてすみません。 いろんなアニメーションがあるんですね。 参考になりました。 どうもありがとうございました。 「3.ただ単にオリジナルの進捗状況画面を作成したい 」のです。 プログレスバーの機能はそのままで、 縦の線のないようなビジュアルにしたいのです。 "Common Controls 6.0"のプログレスバーはちょっと古い感じで・・・。 (インストールやハードウェアの確認時の画面で表示されるような) そんなのありませんかね。

関連するQ&A

  • 探しています~プログレスバーのまき戻しについて

    何か処理中のものがあり、進捗状態がプログレスバーに表示されているのですが、キャンセルボタンを押すとその処理を中断できて、それまで進んでいたプログレスバーの進捗が徐々に減っていき、最終的にゼロに戻るという仕組みの画面というか、UIを探しています。 ソフトのインストールとかファイルのコピーとか色々探しているのですがなかなか見つかりません。 似たような動作をするプログラムを作りたいので参考にしたいのですが・・・。 どなたか知っている方がいれば教えてください!

  • MFCを使わないで、プログレスバーを表示したい。

    複数のファイルで構成されているフォルダがあって、そのフォルダのコピーを作成する処理を行うとします。 その処理の進行状況を、ダイアログボックス上に貼り付けたプログレスバーコントロールで表示したい と思っているのですが、MFCを使用しない例はネットなどで検索しても見つけることができません。 例えば、フォルダの容量の「現在○○%コピーしました。」とか、それが無理なら全体の何ファイル目を処理 しているかなどを、プログレスバーで表示することは可能ですか。 数値的な表示が無理なら、現在処理中かどうかを表示するだけでも構いません。 ご教授の程、よろしくお願いいたします。 環境:VC++6.0, WIN32 API

  • IEでダウンロードするときにプログレスバーが表示されなくなった

    Windows XP SP2を利用しております。 先日、IE7をインストールしたのですが、インストールしてから圧縮されたZIPファイルをダウンロードするときに開くとプログレスバーが表示されていたのですがされなくなってしまいました。 どなたか表示する方法をご存知の方がいたら教えていただきたいです。 よろしくお願いいたします。

  • プログレスバーでの経過状況表示

    vb.netでのtimerのようなものをやりたくてvbaでプログレスバーを使用して経過状況を表示するプログラムを作りました。プログレスバー自体での視覚的な経過状況表示はできたのですが、現在のパーセンテージをlabelに表示することができません。 Private Sub CommandButton4_Click() Dim i As Long Application.Visible = False i = 1 For i = i To 1000000 UserForm1.ProgressBar1.Value = i / 1000000*100 UserForm1.Label1.Caption =UserForm1.ProgressBar1.Value i = i + 1E-44 Next Application.Visible = True End Sub 上記のようにするとプログラム終了時にlabel1に現在のプログレスバーの値が表示されますが、進行中には表示されないのです。これを進行中も表示させるにはどうしたら良いのでしょうか?

  • Access プログレスバー 画面固まる

    Access 2007 VBA でファイル出力処理が長いため、以下を参考にしてプログレスバーを設置しました。 http://www.moug.net/tech/acvba/0060023.htm 1,000件程度だと進行状況がちゃんと表示されるのですが、10,000件単位になるとAccess自体が応答せず、プログレスバーも途中で止まったまま、だけど処理は裏で動いているようでファイル出力自体は時間はかかりますがちゃんと出力されます。 DBアクセスを含んだファイル出力処理なので、多少時間がかかっているのかと思います。 また、私の技術の低さから処理自体に時間がかかってしまっていることもあると思いますが、私の技術では処理自体を変えて早くするのは限界です。 Access画面が固まらず、リアルタイムでプログレスバーを進行させる手段等ございましたらご教授いただけるとありがたいです。

  • コントロールパネルが開けません…。

    コントロールパネルを押すと「指定されたファイルに対してこの操作を行うプログラムが関連付けされていません。 プログラムをインストールするか、既にプログラムがインストールされている場合は、コントロールパネルの規定のプログラムを関連付けてください。」と出て開けないのですが、どうすればコントロールパネルが開けるようになりますか? ただ、「規定のプログラム」を押しても無反応で何も起こらないんです。

  • activex コントロール

    色々と調べてるとをactivex コントロールインストールするのはセキュテイ上悪用される可能性もある とのことで安全性は低いようですが、以前色々いじった際今現在自分がactivex コントロールインストールしているか???です。 ファイルとファルダの中を【activex】で検索したところいくつかファイルはあるようですが すべてのプログラム、プログラムの追加と削除には【activex】との文字は見当たりません。 ってことはインストールされてないということですよね?

  • コントロールパネルからアンインストールができません。

    コントロールパネルからプログラムのアンインストールができません。 症状としましては 「コントロールパネル」の中の「プログラムのアンインストール」 をクリックしても何も反応がないという状況です。 この状況が続くとアンインストーラーが入っていないソフトウェアは どのソフトもアンインストールできないですよね。 どなたか原因と解決方法をお願いします。 osはvistaです。

  • vbsでファイルやフォルダのコピー中にプログレスバーを表示させるにはど

    vbsでファイルやフォルダのコピー中にプログレスバーを表示させるにはどうすればいいでしょうか。 無言でコピーするコードはいろいろと紹介されているのですが、何も表示されないので進行状況がわかるようにしたいのです。 残り時間表示やパーセント表示などどのような表示方法でもいいのでおおよその進行状況がわかる方法をご存知でしたら教えて頂けないでしょうか。 宜しくお願い致します。 <例> コピー元ファイル:"C:\test\*.*" コピー先フォルダ:"C:\backup\"

  • カレンダーコントロール 11.0 プログラム

    ・カレンダーから日付を入力するマクロを作成するときの、コントロール  プログラム(カレンダーコントロール 11.0 )が私のPCには入っていません  入手方法と、インストール方法を教えてください。    (PC歴3年の新人です)

専門家に質問してみよう