OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセル97のユーザーフォームコントロールについて

  • 困ってます
  • 質問No.226612
  • 閲覧数215
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 86% (38/44)

 いつもお世話になっております。
表題の件で2つほど質問があります。

 1.実行した時、ブック自体を最小化して、初期値入力用のユーザーフォームだけを画面に表示しようとした所、どうしても、一番前に表示されません。
 何かウィンドウ等が開いていると、ステータスバーのエクセルの表示が点滅するだけで、なんらかのアクションを起こさないと、ユーザーフォームが見えるようになりません。

 2.97ではプログレスバーが使用できないので、ユーザーフォーム上に文字で、
(例えば「処理中です・・・・X/5600」のように表示し、Xをカウントアップする)
経過を知らせたいのですが、いろいろ試行錯誤しましたが、出来ませんでした。

 不特定多数の部署で、不特定の人が使用する可能性があるので、ブックをダブルクリックすると全自動で動作するように運用します。そのような事情なので、上記2つの機能を是非とも組み込みたいのですが、お知恵を拝借出来ませんでしょうか?
 よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル9

ベストアンサー率 69% (51/73)

プログレスバーは
別にUserFormを作って
UserForm1からボタンで
UserForm2.Show
するなどしてください。


UserFormに、ラベル「Label1」を作って下さい。



Private Sub UserForm_Activate()

With Label1
.SpecialEffect = 2
.BackColor = vbBlue
www = .Width
.Width = 0
End With

For i = 1 To 1000
Me.Caption = i
Label1.Width = i / 1000 * www
Me.Repaint
Next

End Sub


説明が不足の場合は質問ください。
Excel97で確認しました。
ちなみに両方とも本の丸写しなので出典を

(株)秀和システム
Excel2000 VBA 実践プログラミング

いろいろ勉強になります。
良かったら一度目を通してみてください。
補足コメント
psss

お礼率 86% (38/44)

 同じ方に両方のポイントは割り振れないんですね。(苦笑)
残念です。
 また、よろしくお願いします。
投稿日時 - 2002-02-28 15:38:17
お礼コメント
psss

お礼率 86% (38/44)

 ありがとうございます!!
実際にプログレスバーを表現できるようにしていただけたとは、オドロキました。
 どうも、BVAは機能が充実し過ぎていて、まだ全体を把握出来ていないようです。まだまだ精進が足りないということですか・・・

Private Sub UserForm_Activate()の使い方を教わったので、理解できているか、応用で、始めに自分で言っていた、X/Y表示を書いて見たところ、上手くいきました。

 実際の処理は、このFor~Nextの間で実行すればいいわけですね。
もしもそれで上手く行かなかった場合、改めて質問させていただくとして、今回はこれで一旦、締め切ります。
 教えていただいた書籍も、是非入手して勉強したいと思います。

 何からなにまで、本当にありがとうございました。
投稿日時 - 2002-02-28 15:36:24
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 69% (51/73)

新規ブックでテストしてください。 Thisworkbookと UserFormに以下のものを 貼り付けてください。 Thisworkbookに Private Sub Workbook_Open() UserForm1.Show End Sub UserFormに Private Sub UserForm_Initialize() Application ...続きを読む
新規ブックでテストしてください。
Thisworkbookと
UserFormに以下のものを
貼り付けてください。


Thisworkbookに

Private Sub Workbook_Open()
UserForm1.Show
End Sub




UserFormに

Private Sub UserForm_Initialize()
Application.WindowState = xlMinimized
AppActivate "Microsoft Excel"
End Sub


プログレスバーは作成中です。
お礼コメント
psss

お礼率 86% (38/44)

 早速の回答、ありがとうございます。

私の試みは、ほとんど正解だったようですが、

>AppActivate "Microsoft Excel"

 というコマンド(?)を知らなかったので、上手く行かなかったようです。
後は、まんま私の書いた記述通りでした。
 大変勉強になりました、ありがとうございます。


>プログレスバーは作成中です。

 次も考えていただいてるんですか。本当に申し訳ありません。
引き続き、よろしくお願いします。
投稿日時 - 2002-02-28 15:07:52

このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ