
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのComboboxでマウスのスク...
-
ACCESS フォームのサイズ調整
-
スクロールバーをVBAで操作したい
-
マクロで半角英数になってしまう
-
エクセル上に画像を貼り付けて...
-
ワークシート上に検索用のボッ...
-
マクロボタンが勝手に飛び回る
-
ACCESSアクションマクロでイン...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
前のレコードの値を自動で入れたい
-
access サブフォームにリストを...
-
X-Ripperというフリーウェアに...
-
ACCSESS2013VBA フォームのレコ...
-
エクセルで色の付いたセルを抽...
-
コンボボックスで選択実行後、...
-
(ACCESS)条件に応じて、テキ...
-
access別のテーブルを参照して...
-
AccessのWHERE句において、変数...
-
「パラメータが少なすぎます。3...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのComboboxでマウスのスク...
-
スクロールバーをVBAで操作したい
-
実行エラー'424' ????
-
ACCESS フォームのサイズ調整
-
Access2000 フォーム表示位置が...
-
Accessで任意のフォーム以外直...
-
エクセル上に画像を貼り付けて...
-
マクロボタンが勝手に飛び回る
-
エクセルのVBAでマクロ実行...
-
access 最大化した時の画面の...
-
access起動時に表示するフォーム
-
Exitイベントから自分自身のコ...
-
access 終了時に「test」とい...
-
Accessで起動時にフォームが開...
-
ワークシート上に検索用のボッ...
-
Accessのメニューバーを消したい!
-
Accessボタンで並び替え
-
Access2000形式からAccess2007...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
おすすめ情報