![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
こんばんわ。
別のマクロを考えて見ました。次のように操作してみて下さい。ユーザーフォームを1個挿入しフォーム上にラベルを4個・コマンドボタンを1個配置する。
ラベル1(作業状態を表示するラベル。)
オブジェクト名:Label1
Caption:ボタンを押して処理を開始して下さい。
ラベル2(プログレスバーの枠の部分となるラベル)
オブジェクト名:Label2
Caption:空白
SpecialEffect:2
ラベル3(プログレスバーのバーの部分となるラベル)
オブジェクト名:Label3
Caption:空白
Label2よりも少し小さめにつくり、Label2の上に重ねる。
ラベル4(進行状況を%で表示させるラベル)
オブジェクト名:Label4
Caption:0%
標準モジュールを挿入し、下記のコードを記述する。
Sub Macro1
Userform.Show
End Sub
ユーザーフォム1のモジュールシートに下記のコードを記述する。
Private Sub CommandButton1_Click()またはPrivate Sub UserForm_Activate()
Dim myStep As Single
Dim i As Long, j As Long
フォームを表示中に実行したいマクロを記述
With Me.Label3
myStep = .Width / 100
.Width = 0
.BackColor = &HFF0000
Me.Label1.Caption = "実行中です・・・"
For i = 1 To 100
.Width = .Width + myStep
Me.Label4.Caption = i & "%"
DoEvents
Next i
Me.Label1.Caption = "処理が終了しました。"
End With
Unload Userform1
End Sub
ご不明な点・不具合等がございましたらお気軽にお知らせ下さい。
No.7
- 回答日時:
#4です。
他のサンプルマクロを組んでみました。お試しになってみて下さい。Private Sub CommandButton1_Click()
Dim myStep As Single
Dim i As Long, j As Long
With Me.Label3
myStep = .Width / 100
.Width = 0
.BackColor = &HFF0000
Me.Label1.Caption = "実行中です・・・"
Randomize
For i = 1 To 100
For j = 1 To 10
With ActiveSheet.Cells(i, j)
.Interior.ColorIndex = Int(56 * Rnd + 1)
.Value = .Interior.ColorIndex
End With
Next j
.Width = .Width + myStep
Me.Label4.Caption = i & "%"
DoEvents
Next i
Me.Label1.Caption = "処理が終了しました。"
End With
Unload Userform1
End Sub
ユーザーフォームを1個挿入しフォーム上にラベルを4個・コマンドボタンを1個配置する。
ラベル1(作業状態を表示するラベル。)
オブジェクト名:Label1
Caption:ボタンを押して処理を開始して下さい。
ラベル2(プログレスバーの枠の部分となるラベル)
オブジェクト名:Label2
Caption:空白
SpecialEffect:2
ラベル3(プログレスバーのバーの部分となるラベル)
オブジェクト名:Label3
Caption:空白
Label2よりも少し小さめにつくり、Label2の上に重ねる。
ラベル4(進行状況を%で表示させるラベル)
オブジェクト名:Label4
Caption:0%
コマンドボタンを押して動作させてみて下さい。
ユーザーフォームが貴方様の思い通りの動作をしていると思います。
ご不明な点・不具合等がございましたらご遠慮なくお知らせ下さい。
有難うございます。
これはプログレスバーを既存のものではなく自分で作っているわけですね?
やってみました。セルにランダムに色と番号をつけるマクロを実行中、プログレスバーが作動し、%まで表示されました。マクロが終了すれば消えました。
ただユーザーフォームのコマンドボタンでマクロが動きましたが、そうではなくて別のマクロを実行すると、このユーザーフォームがあらわれ、ユーザーフォームのコマンドボタンを押さなくとも作動するようにしたいのです。勝手を言いますがよろしくお願いします。
No.6
- 回答日時:
#3のものです。
ProgressBar1が認識されていないと言う事でしょうね。シート上のForm上にプログレスバーが貼りついているでしょうか。(1)ツール-マクロ-VB
(2)VBE画面で
挿入-ユーザーフォームでUserForm1が
出る。
ツールボクッスが同時に出たなら、プログレスバー があるか、確認し、あればフォーム上に貼り付け る。
フォーム上でダブルクリックし
Private Sub UserForm_Click()を出し、End Sub
の間に#3のコードの中身を貼り付ける。
後は実行。
何度もエクセル2000では、やって出来ましたが。
プログレスバーは基本的なコントロールで、97でも同じく使えると思ったのですが。(エクセル5.0-->97は変更点が多いようですが。)
有難うございました。今度はうまく行きました。
これでユーザーフォームをクリックするとプログレスバーが働くことはわかりましたが、他のマクロを実行させると、このユーザーフォームが出てきてフォームをクリックしなくともプログレスバーが機能するようにするのはどこにどう記述すればいいのでしょうか?
No.5
- 回答日時:
#4です。
マクロの記述ミスがありましたので、下記のマクロを参考にしてみて下さい。ユーザーフォーム1のモジュールシートに
Private Sub UserForm_Activate()
Dim Tmr as Variant
tmr = Timer
Do While Timer < tmr + 1 'Tmr+1の1は秒数です。10にすれば10秒です。
DoEvents
Loop
Unload Me
End Sub
Sub/ユーザーフォームの実行ボタンをクリックするとマクロが走り、動作が確認できます。
ご不明な点・不具合等がありましたら、ご遠慮なくお知らせ下さい。
No.4
- 回答日時:
初めまして。
サンプルマクロを組んでみました。参考にしてみて下さい。ユーザーフォーム1のモジュールシートに
Private Sub UserForm_Activate()
Dim Tmr as Variant
Do While Timer < tmr + 1 '1は秒数です。10にすれば10秒です。
DoEvents
Loop
Unload Me
End Sub
ThisWorkbookのコードエディターに
Sub Macro1()
UserForm1.Show
End Sub
ご不明な点・不具合等がありましたら、ご遠慮なくお知らせ下さい。
有難うございます。
ただ、これではマクロ実行中の表示ではなく、指定した秒数の間だけの表示ではないでしょうか?
違ったらすみません。
No.3
- 回答日時:
エクセル2000です。
下記も出来ます。VBAで、ユーザーフォームを貼り付け、
(1)ツールボックスの余白を右クリックし
(2)「その他のコントロール」をクリック
(3)MicrosoftProgressBarControl6.0(sp4)をクリック
(4)OKをクリック
(5)フォームのイベントプロシージュアのコードを
Private Sub UserForm_Click()
Dim i As Long
Dim tmsv As Double
ProgressBar1.Min = 0
ProgressBar1.Max = 100
For i = ProgressBar1.Min To ProgressBar1.Max
ProgressBar1.Value = i
Do Until Timer > tmsv
DoEvents
Loop
tmsv = Timer
Next
End Sub(一部WEBより引用)
フォームをクリックするとバーが動く。時間を適当に設定
し、次の処理に引き継ぐ。
上例はフォームのイベントにしましたが、テストをやってもらうためで、保存のコードの下に挟むことになるでしょう。
有難うございました。
「実行時エラー'424'
オブジェクトが必要です。」となってしまいます。
デバックすると
ProgressBar1.Min = 0
が黄色くなっていました。
どうすればいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
長い時間かかるマクロが実行中かどうかを表示したい
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルで行の一番上にセルに移動させるVBA
Excel(エクセル)
-
6
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行エラー'424' ????
-
Access サブフォームでの選択行...
-
PDFファイルから特定の文字を検...
-
X-Ripperというフリーウェアに...
-
ACCESSでVBAから選択クエリの抽...
-
前のレコードの値を自動で入れたい
-
Triton X-100 bufferの作り方に...
-
(ACCESS)条件に応じて、テキ...
-
パラメータの抽出条件「○○以外...
-
AccessでIDを入力したら他の項...
-
フォームでの検索
-
サブフォームでフィルタしたデ...
-
Accessでフィルタの実行アクシ...
-
ソフトの製品コードを知りたい
-
エクセルで、抽出したデータだ...
-
リストボックスの時はリンク先...
-
禁止文字をエクセルかアクセス...
-
Accessで○ヶ月前以前を抽出する...
-
Access チェックボックスを利用...
-
Access 抽出したフォームをフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのComboboxでマウスのスク...
-
スクロールバーをVBAで操作したい
-
Access2000 フォーム表示位置が...
-
実行エラー'424' ????
-
access 最大化した時の画面の...
-
Accessで任意のフォーム以外直...
-
ACCESS フォームのサイズ調整
-
エクセル上に画像を貼り付けて...
-
マクロボタンが勝手に飛び回る
-
ACCESSアクションマクロでイン...
-
エクセルのVBAでマクロ実行...
-
VB(ビジュアルベーシック)...
-
Exitイベントから自分自身のコ...
-
ACCESS VBEが勝手に起動します
-
EXCEL VBA フォームクローズと...
-
accessにexcelのセルの情報を自...
-
ACCESS(アクセス) マクロを使...
-
accessのメニュー画面について...
-
Access起動時の設定について
-
マクロを含んだexcelブックの保...
おすすめ情報