Excel VBA質問箱 IV

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

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


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

【8546】FontChangedイベントについて サトウ 03/10/23(木) 14:12 質問
【8551】Re:FontChangedイベントについて INA 03/10/23(木) 15:54 回答
【8562】Re:FontChangedイベントについて サトウ 03/10/24(金) 10:49 発言
【8600】Re:FontChangedイベントについて Ron 03/10/25(土) 21:52 回答
【8610】Re:FontChangedイベントについて bykin 03/10/26(日) 23:17 回答

【8546】FontChangedイベントについて
質問  サトウ  - 03/10/23(木) 14:12 -

引用なし
パスワード
   EXCEL2000で、フォントを変更した時のイベントを取得したいのですが、
やり方を知ってる方、是非教えて下さい!

【8551】Re:FontChangedイベントについて
回答  INA  - 03/10/23(木) 15:54 -

引用なし
パスワード
   >EXCEL2000で、フォントを変更した時のイベントを取得したいのですが、
無いと思います。
そのイベントを使いたい目的は何でしょうか?
SelectionChangeで、 Target.Font.Name を使って、
比較するくらいかな・・・

これ以上は思いつきません。

【8562】Re:FontChangedイベントについて
発言  サトウ  - 03/10/24(金) 10:49 -

引用なし
パスワード
   >>EXCEL2000で、フォントを変更した時のイベントを取得したいのですが、
>無いと思います。
>そのイベントを使いたい目的は何でしょうか?

このイベントは、保護が掛かっているシートに対してフォントを変更したときに
そのイベントを拾って、1.一時的に保護を解除して2.フォントを設定し、3.再度保護を掛けるようにしたいのです。
エクセルのWITHEVENTで、FontChangedイベントがあったので、
上手く使えるかなと思ったのですが無理でしょうか。

【8600】Re:FontChangedイベントについて
回答  Ron E-MAIL  - 03/10/25(土) 21:52 -

引用なし
パスワード
   こんばんは。
FontChangedイベントについては、ちょっと試しましたが、ツールバーでのフォント変更には未対応(?!)でしたので、やめました。
で、Worksheet_SelectionChangeイベントで作ってみました。
以下、対象のシートモジュールへ
-------------------------------------------
Dim mySize As Double
Dim myName As String
Dim myBold As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  Application.Goto Target
  If UBound(Application.PreviousSelections) < 2 Then GoTo skip
  With Application.PreviousSelections(2)
    Select Case False
      Case .Font.Size = mySize
        MsgBox "Sizeが変更されました" & Chr(10) & "元に戻します"
        Me.Unprotect
        .Font.Size = mySize
        Me.Protect
      Case .Font.Name = myName
        MsgBox "Name"
        Me.Unprotect
        .Font.Name = myName
        Me.Protect
      Case .Font.Bold = myBold
        MsgBox "Bold"
        Me.Unprotect
        .Font.Bold = myBold
        Me.Protect
    End Select
  End With
skip:
  With Target
    mySize = .Font.Size
    myName = .Font.Name
    myBold = .Font.Bold
  End With

End Sub
------------------------------------------
では。

【8610】Re:FontChangedイベントについて
回答  bykin  - 03/10/26(日) 23:17 -

引用なし
パスワード
   こんばんわ。

>このイベントは、保護が掛かっているシートに対してフォントを変更したときに
>そのイベントを拾って、1.一時的に保護を解除して2.フォントを設定し、3.再度保護を掛けるようにしたいのです。

保護がかかってたら最初のフォント変更もできへん(=イベントが発生しない)のとちゃいまっか?(^^;;
イベントでマクロ動かすのは難しいんやないかな?

保護がかかってるんやったら、マクロでそれを解除して、フォント設定用のダイアログを表示させて、最後にもう一度
保護をかける・・・なんて方法にすればできるけど。
↓こんなの

Sub test()
  ActiveSheet.Unprotect
  Application.Dialogs(xlDialogFontProperties).Show
  ActiveSheet.Protect
End Sub

こういうこととちゃうのかな?
はずしてたらかんにんな。
ほな。

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