|
▼てつじ さん:
おはようございます。
>参考にさせてもらいましたがいまいち書き方がわかりません・・・。
>>>workbooks("bk.xls").save
>>>
>>>や
>>>workbooks("bk.xls").saveAs xxxxx
>>>
>>>というメソッドで使おうというなら、これは難しいですね!!
ですから、↑こういう場合にはプログレスバーを使うことは難しいのです。
この難しいというのは出来ないということです。
その理由が
>>>角田さんのサイトに詳しく出ていますから参考にしてください。
>>>
>>>http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTopic.htm
↑ここに詳しく説明されていると思います。
上記のような保存が長い場合、
何かメッセージが必要なら、ラベル等に「処理中」等と表示させるという
方法もあります。この方法でいかがでしょうか?
他には、アシスタントを使う方法もありますね?
例えば、ユーザーフォーム(Userform1)に
コマンドボタン(Commandbutton1)をひとつ貼り付けたユーザーフォームを
例に上げます。
標準モジュール(Module1)に
'===========================================================
Sub test()
UserForm1.Show
End Sub
別の標準モジュール(Module2)に
'===========================================================
Private bln1 As Balloon
'===========================================================
Sub reset_baloon()
Set bln1 = Nothing
End Sub
'===========================================================
Sub cls_baloon()
On Error Resume Next
bln1.Close
Set bln1 = Nothing
hide_baloon
On Error GoTo 0
End Sub
'===========================================================
Sub set_baloon(Optional mes As String = "処 理 中", Optional submes As String = "")
On Error Resume Next
Dim idx As Long
If bln1 Is Nothing Then
cls_baloon
DoEvents
Set bln1 = Assistant.NewBalloon
With bln1
.BalloonType = msoBalloonTypeBullets
.Icon = msoIconTip
.Button = msoButtonSetNone
.Heading = mes
.Text = submes
.Mode = msoModeModeless
.Show
End With
End If
With Assistant
.Visible = True
.Sounds = True
.Animation = msoAnimationWorkingAtSomething
End With
For idx = 1 To 10
DoEvents
Next
On Error GoTo 0
End Sub
'===========================================================
Sub hide_baloon()
On Error Resume Next
Assistant.Visible = False
On Error GoTo 0
End Sub
Userform1のモジュールに
'================================================================
Private Sub CommandButton1_Click()
Cells(1, 1).Value = ""
Call set_baloon(, "待っててね!!")
Do Until Cells(1, 1).Value = 1000
Cells(1, 1).Value = Cells(1, 1).Value + 1
Loop
cls_baloon
End Sub
として、testを実行して見てください
ユーザーフォームが表示されたら、ボタンをクリックしてみてください。
アシスタントがメッセージを表示します。
上記は、一例です。
もっとも私は、殆どの場合、ラベルに表示させています。
|
|