Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


42726 / 76735 ←次へ | 前へ→

【39071】Re:保存状況をメーター?で表示するには
発言  ichinose  - 06/6/17(土) 9:31 -

引用なし
パスワード
   ▼てつじ さん:
おはようございます。

>参考にさせてもらいましたがいまいち書き方がわかりません・・・。

>>>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を実行して見てください

ユーザーフォームが表示されたら、ボタンをクリックしてみてください。
アシスタントがメッセージを表示します。

上記は、一例です。


もっとも私は、殆どの場合、ラベルに表示させています。

0 hits

【39050】保存状況をメーター?で表示するには てつじ 06/6/16(金) 16:31 質問
【39058】Re:保存状況をメーター?で表示するには neptune 06/6/16(金) 17:11 回答
【39060】Re:保存状況をメーター?で表示するには ichinose 06/6/16(金) 17:17 発言
【39062】Re:保存状況をメーター?で表示するには てつじ 06/6/16(金) 17:26 お礼
【39066】Re:保存状況をメーター?で表示するには てつじ 06/6/16(金) 22:50 質問
【39071】Re:保存状況をメーター?で表示するには ichinose 06/6/17(土) 9:31 発言

42726 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free