Excel VBA質問箱 IV

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

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


7455 / 13645 ツリー ←次へ | 前へ→

【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 発言[未読]

【39050】保存状況をメーター?で表示するには
質問  てつじ  - 06/6/16(金) 16:31 -

引用なし
パスワード
   以前どこかで見たことがあるのですが
ボタン(保存)を作成し、クリックをし、保存が完了するまでuserform上?でメーターが動く動作が可能ですか?

よく上書き保存などした際に、画面の下の方へ出てくるようなものです。
可能であれば教えていただきたいのですが。

【39058】Re:保存状況をメーター?で表示するには
回答  neptune  - 06/6/16(金) 17:11 -

引用なし
パスワード
   inoueさんのサイトに、サンプルがおかれてます。

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_090_040.html

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

引用なし
パスワード
   ▼てつじ さん:
こんにちは。

>以前どこかで見たことがあるのですが
>ボタン(保存)を作成し、クリックをし、保存が完了するまでuserform上?でメーターが動く動作が可能ですか?
プログレスバーのことですか?(なあんて、私も名称を思い出すのに2分かかった)

原則としては、保存のコードを見ないとなんともいえませんが、

workbooks("bk.xls").save


workbooks("bk.xls").saveAs xxxxx

というメソッドで使おうというなら、これは難しいですね!!

角田さんのサイトに詳しく出ていますから参考にしてください。

http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTopic.htm

【39062】Re:保存状況をメーター?で表示するには
お礼  てつじ  - 06/6/16(金) 17:26 -

引用なし
パスワード
   ▼ichinose さん:
>▼てつじ さん:
>こんにちは。
>
>>以前どこかで見たことがあるのですが
>>ボタン(保存)を作成し、クリックをし、保存が完了するまでuserform上?でメーターが動く動作が可能ですか?
>プログレスバーのことですか?(なあんて、私も名称を思い出すのに2分かかった)
>
>原則としては、保存のコードを見ないとなんともいえませんが、
>
>workbooks("bk.xls").save
>
>や
>workbooks("bk.xls").saveAs xxxxx
>
>というメソッドで使おうというなら、これは難しいですね!!
>
>角田さんのサイトに詳しく出ていますから参考にしてください。
>
>http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTopic.htm

ありがとうございました。まさにこれのことでした。
本当にありがとうございました。

【39066】Re:保存状況をメーター?で表示するには
質問  てつじ  - 06/6/16(金) 22:50 -

引用なし
パスワード
   ▼てつじ さん:
>▼ichinose さん:
>>▼てつじ さん:
>>こんにちは。
>>
>>>以前どこかで見たことがあるのですが
>>>ボタン(保存)を作成し、クリックをし、保存が完了するまでuserform上?でメーターが動く動作が可能ですか?
>>プログレスバーのことですか?(なあんて、私も名称を思い出すのに2分かかった)
>>
>>原則としては、保存のコードを見ないとなんともいえませんが、
>>
>>workbooks("bk.xls").save
>>
>>や
>>workbooks("bk.xls").saveAs xxxxx
>>
>>というメソッドで使おうというなら、これは難しいですね!!
>>
>>角田さんのサイトに詳しく出ていますから参考にしてください。
>>
>>http://www.h3.dion.ne.jp/~sakatsu/ProgressBarTopic.htm
>
>ありがとうございました。まさにこれのことでした。
>本当にありがとうございました。

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

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

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

上記は、一例です。


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

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