Excel VBA質問箱 IV

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

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


9047 / 13644 ツリー ←次へ | 前へ→

【29615】保存時のメッセージ表示について toki 05/10/9(日) 14:43 質問[未読]
【29616】Re:保存時のメッセージ表示について BB 05/10/9(日) 15:28 回答[未読]
【29620】Re:保存時のメッセージ表示について toki 05/10/9(日) 17:09 お礼[未読]
【29617】Re:保存時のメッセージ表示について Hirok 05/10/9(日) 15:55 発言[未読]
【29621】Re:保存時のメッセージ表示について toki 05/10/9(日) 17:11 お礼[未読]
【29647】Re:保存時のメッセージ表示について Hirok 05/10/10(月) 11:00 回答[未読]
【29649】Re:保存時のメッセージ表示について りん 05/10/10(月) 11:38 発言[未読]
【29651】Re:保存時のメッセージ表示について Hirok 05/10/10(月) 15:15 質問[未読]
【29653】Re:保存時のメッセージ表示について りん 05/10/10(月) 17:29 回答[未読]

【29615】保存時のメッセージ表示について
質問  toki  - 05/10/9(日) 14:43 -

引用なし
パスワード
   みなさんこんにちは。

現在作成中のファイルが非常に重たくなってしまい、保存に時間がかかってしまいます。
せめて「保存中です」の表示を大きめに出したいと思っているのですが何かいい方法がありますでしょうか?

現在は、ユーザーフォームに配置された閉じるボタンを押すと、Saveして終了するようにしています。
Private Sub 閉じる_Click()
  ThisWorkbook.Save
  ThisWorkbook.Close
  Unload Me
End Sub

例えば、ユーザーフォームで新たにメッセージ用のフォームを作成したとして、これを
上記マクロの工程にどのように組み入れればよいのでしょうか?

ちなみにYesNo選択分岐は不要で、保存完了したらこの表示は消えて終了してくれれば良いのですが。

よろしくお願いいたします。

【29616】Re:保存時のメッセージ表示について
回答  BB  - 05/10/9(日) 15:28 -

引用なし
パスワード
   ▼toki さん:

Save前にオートシェイプで「保存中」とか出して、Close前にオートシェイプをデリートするんじゃダメですかね?

>  ThisWorkbook.Save
>  ThisWorkbook.Close

【29617】Re:保存時のメッセージ表示について
発言  Hirok  - 05/10/9(日) 15:55 -

引用なし
パスワード
   ▼toki さん:
オートシェイプで

Set myShape1 = ActiveSheet.Shapes.AddTextEffect(msoTextEffect11, _
      "保存中…", "MS ゴシック", 28, msoFalse, msoFalse, 120, 100)
DoEvents
myShape1.Delete
Set myShape1 = Nothing

こんな感じでしょうか?

【29620】Re:保存時のメッセージ表示について
お礼  toki  - 05/10/9(日) 17:09 -

引用なし
パスワード
   ▼BB さん:
>▼toki さん:
>
>Save前にオートシェイプで「保存中」とか出して、Close前にオートシェイプをデリートするんじゃダメですかね?
>
>>  ThisWorkbook.Save
>>  ThisWorkbook.Close

そうすることにします。ありがとうございました!

【29621】Re:保存時のメッセージ表示について
お礼  toki  - 05/10/9(日) 17:11 -

引用なし
パスワード
   ▼Hirok さん:
>▼toki さん:
>オートシェイプで
>
>Set myShape1 = ActiveSheet.Shapes.AddTextEffect(msoTextEffect11, _
>      "保存中…", "MS ゴシック", 28, msoFalse, msoFalse, 120, 100)
>DoEvents
>myShape1.Delete
>Set myShape1 = Nothing
>
>こんな感じでしょうか?

ありがとうございます!この方法でやってみます。
ちなみにこのコードはエクセル97以降ならどのバージョンでもOKでしょうか?

【29647】Re:保存時のメッセージ表示について
回答  Hirok  - 05/10/10(月) 11:00 -

引用なし
パスワード
   ▼toki さん:

こんにちは
>ちなみにこのコードはエクセル97以降ならどのバージョンでもOKでしょうか?
はいOKです。

DoEvents と
myShape1.Deleteの間に

やりたいマクロのコードを入れてください。

【29649】Re:保存時のメッセージ表示について
発言  りん E-MAIL  - 05/10/10(月) 11:38 -

引用なし
パスワード
   toki さん、こんにちわ。

>せめて「保存中です」の表示を大きめに出したいと思っているのですが何かいい方法がありますでしょうか?
>
>現在は、ユーザーフォームに配置された閉じるボタンを押すと、Saveして終了するようにしています。
>Private Sub 閉じる_Click()
>  ThisWorkbook.Save
>  ThisWorkbook.Close
>  Unload Me
>End Sub
ブックを保存して閉じるまではフォームは表示されているようなので、
フォームに、「保存中」と書いたテキストボックスまたはラベルを非表示で準備しておき、
閉じるボタンがクリックされたときに表示するというのもひとつの手です。

【29651】Re:保存時のメッセージ表示について
質問  Hirok  - 05/10/10(月) 15:15 -

引用なし
パスワード
   ▼りん さん:

>
>>せめて「保存中です」の表示を大きめに出したいと思っているのですが何かいい方法がありますでしょうか?
>>
>>現在は、ユーザーフォームに配置された閉じるボタンを押すと、Saveして終了するようにしています。
>>Private Sub 閉じる_Click()
>>  ThisWorkbook.Save
>>  ThisWorkbook.Close
>>  Unload Me
>>End Sub
>ブックを保存して閉じるまではフォームは表示されているようなので、
>フォームに、「保存中」と書いたテキストボックスまたはラベルを非表示で準備しておき、
>閉じるボタンがクリックされたときに表示するというのもひとつの手です。

リンさん

Userform1のラベルに「保存中」と明示して

Private Sub UserForm_Activate()
  DoEvents
  実行マクロコードをここに記述
 
  Unload Me
End Sub
とすれば良いのでしょうか。

【29653】Re:保存時のメッセージ表示について
回答  りん E-MAIL  - 05/10/10(月) 17:29 -

引用なし
パスワード
   Hirok さん、こんにちわ。

>>>せめて「保存中です」の表示を大きめに出したいと思っているのですが何かいい方法がありますでしょうか?
>>ブックを保存して閉じるまではフォームは表示されているようなので、
>>フォームに、「保存中」と書いたテキストボックスまたはラベルを非表示で準備しておき、
>>閉じるボタンがクリックされたときに表示するというのもひとつの手です。

>Userform1のラベルに「保存中」と明示して
コマンドボタンを使うと簡単に文字がセンタリングされるので、ラベル代わりに使用しました。
新しくコマンドボタンを追加し、
 ・サイズ、位置はお好みで
 ・ForeColorを赤
 ・BackColorを白
 ・フォントを大きめにする
 ・Visibleを最初からFalseに設定
(もしくは、FormのActivateやInitializeイベントで設定する)

追加されたボタンが、CommandButton2だとして、

>>>Private Sub 閉じる_Click()
    CommandButton2.Visible = True
    DoEvents
>>>  ThisWorkbook.Save
>>>  ThisWorkbook.Close
>>>  Unload Me
>>>End Sub

↓動作確認
シート1の65536行×50列に1を入れて、いったん保存しておく

標準モジュールに
Sub test()
  UserForm1.Show '表示
  Unload UserForm1 '開放
End Sub

UserForm1に
Private Sub CommandButton1_Click()
  CommandButton2.Visible = True
  DoEvents
  ThisWorkbook.Close SaveChanges:=True
  Me.Hide '閉じてTESTに戻る
End Sub

TESTを実行。

UnloadをFormのモジュールにいれると、ブックは閉じているのにVBEには実行中と表示されたままになりました(XL2000)ので、分けてあります。

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