Excel VBA質問箱 IV

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

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


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

【71034】ブックを操作したときのイベント saya 12/1/26(木) 22:45 質問[未読]
【71038】Re:ブックを操作したときのイベント Abyss 12/1/26(木) 23:43 発言[未読]
【71041】Re:ブックを操作したときのイベント saya 12/1/27(金) 0:00 質問[未読]
【71044】Re:ブックを操作したときのイベント Abyss 12/1/27(金) 0:43 発言[未読]
【71045】Re:ブックを操作したときのイベント Abyss 12/1/27(金) 1:32 発言[未読]
【71053】Re:ブックを操作したときのイベント 774 12/1/27(金) 10:22 回答[未読]
【71096】Re:ブックを操作したときのイベント saya 12/1/28(土) 16:48 お礼[未読]
【71081】Re:ブックを操作したときのイベント ちん 12/1/28(土) 1:28 発言[未読]

【71034】ブックを操作したときのイベント
質問  saya  - 12/1/26(木) 22:45 -

引用なし
パスワード
   ブックの倍率(zoom)やブックのサイズが変更されたとき、それをイベントとしてVBAコードを実行する方法はないでしょうか。
セルが変更されたとか、マウスでクリックしたとかのイベントは簡単ですが、上記のような場合どうしていいのかわかりませんでした。
たとえばブックの倍率(zoom)が変わったら「倍率が変わりました」とメッセージを出したいです。

【71038】Re:ブックを操作したときのイベント
発言  Abyss  - 12/1/26(木) 23:43 -

引用なし
パスワード
   その様なEventは用意されていないですね。
自作するしか方法はないかと。

【71041】Re:ブックを操作したときのイベント
質問  saya  - 12/1/27(金) 0:00 -

引用なし
パスワード
   ▼Abyss さん:
自作する方法はありますか。
ヒントだけでもいいです。

【71044】Re:ブックを操作したときのイベント
発言  Abyss  - 12/1/27(金) 0:43 -

引用なし
パスワード
   > 自作する方法はありますか。

ふっと思いつくのは、Timerで監視する方法ですね。
しかし、ユーザーによるコードの修正などで、
アプリ自体が落ちてしまったりするので、安全対策に
相当の配慮が必要です。

考え方によっては、Zoom率変更をキャッチする方法ではなく、
Zoom率が変わっても支障のないコードを模索するのが
ラクかも知れません。

【71045】Re:ブックを操作したときのイベント
発言  Abyss  - 12/1/27(金) 1:32 -

引用なし
パスワード
   # もう一つの方法。

Timerでの監視より、WM_PAINTメッセージでの
検出が頻度的に少ないのでより安全かも。

# これには、個人的にも関心かあるので、
 試してみます。

【71053】Re:ブックを操作したときのイベント
回答  774  - 12/1/27(金) 10:22 -

引用なし
パスワード
   ごく単純にやるならこれ↓をThisWorkbookに貼る。

Private WithEvents myCommandBars As CommandBars
Private z As Variant

Private Sub myCommandBars_OnUpdate()
  If ActiveWindow.Zoom <> z Then
    MsgBox "Zoom Changed:" & ActiveWindow.Zoom
    z = ActiveWindow.Zoom
  End If
End Sub

Private Sub Workbook_Open()
  z = ActiveWindow.Zoom
  Set myCommandBars = Application.CommandBars
End Sub

Private Sub Workbook_WindowResize(ByVal Wn As Window)
  MsgBox "Window Resized:" & Wn.Caption
End Sub

ホイールには対応してないのであくまでも簡易的なもの。
タイマーなり何なりを使うよりは楽でしょ?
でもこんなんやるよりは

> Zoom率が変わっても支障のないコードを模索するのがラクかも知れません。

↑の方がいいでしょ。

【71081】Re:ブックを操作したときのイベント
発言  ちん  - 12/1/28(土) 1:28 -

引用なし
パスワード
   ▼saya さん:、こんばんわ、ちんといいます。
サイズが変更されると、不都合が生じるのであれば、ズームを使用不可にする事ができるようです。
ht tp://okwave.jp/qa/q3752347.html

目的が違うかもしれませんが参考までに・・・

【71096】Re:ブックを操作したときのイベント
お礼  saya  - 12/1/28(土) 16:48 -

引用なし
パスワード
   ▼774 さん:
うまくいきました。ありがとうございます。
> Zoom率が変わっても支障のないコードを模索するのがラクかも知れません。
言われてみると確かにそうです。そうします。でも勉強になりました。

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