- ベストアンサー
EXCEL複数マクロ起動!初心者の方にも分かりやすい方法を教えます
- EXCEL複数マクロ起動の方法を解説します。センセーショナルなタイトルでわかりやすく説明しています。
- さらに、Aの範囲をダブルクリックすると特殊文字が挿入され、Bの範囲をクリックするとA4セルの文字表示が赤色で点滅表示されます。重複する範囲ではクリックの内容が優先されます。
- VBA初心者でも理解しやすいように、具体的なコードとともに解説しています。動作が中途半端になる場合は、修正方法も詳しく説明しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
答えになっているかどうか分からないが、 下記コードは (1)Msgbox は納得後削除 (2)一般がやりやすいように範囲条件などは変えた。(読者への配慮が足りない) (3)Application.EnableEvents = Falseが私のポイント。 ーー 点滅の停止・終了条件はあるのか? ーー テスト中に、トラブルったら(イベントが反応しなくなったら) 標準モジュールに Sub test01() Application.EnableEvents = True End Sub を入れて実行。 ーー 標準モジュールに Public 点滅フラグ As Boolean Public Sub 点滅() If Range("A4").Font.ColorIndex = 3 Then Range("A4").Font.ColorIndex = 5 Else Range("A4").Font.ColorIndex = 3 End If If 点滅フラグ Then '進捗状況を示すために準備する 指定時刻 = Now + TimeValue("0時00分01秒") '1秒後 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "点滅", TimeValue(待ち時間) End If End Sub ーーーー シートSheet1のイベントモジュールとして Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "D" Application.EnableEvents = False If Intersect(Target, Range("A1:A20", "C1:C10")) Is Nothing Then GoTo p1 Cancel = True If Target.Value = "" Then Target.Value = ChrW(&H2713) Else Target.ClearContents End If p1: Application.EnableEvents = True End Sub Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "C" If Target.Row < 5 Or Target.Row > 37 Then Exit Sub If Target.Column > 12 Then Exit Sub 点滅フラグ = True Call 点滅 End Sub ーーー >VBAは全く初心者で で(1)イベントの利用や(2)点滅などのこと(凝り過ぎ)(3)他のユーザーが使うことを予想事案?などをするのは早過ぎると思う。 イベントなど複数イベントの競合(有線)や色んな操作の場合の理解と手当てなども含め、難しいと常ずね思う。 自分だけが使うときは、おかしい場面で気づいて対処もも可能だろうが。 ーー それに標題がおかしいと思う。普通この標題を読んだら他のことを連想するのでは。
その他の回答 (1)
- mu2011
- ベストアンサー率38% (1910/4994)
>Bの範囲をクリックしたらA4セルの文字表示を赤色にして点滅表示 ⇒Worksheet_Changeはセル内容変更時のイベントでシングルクリックでは反応しません。 SelectionChangeイベント(セリ移動)があるがBeforeDoubleClickの共有はできない。 従って、BeforeDoubleClickイベントでA,B範囲を認識して処理をするしかないので は無いでしょうか。
お礼
回答ありがとうございました。参考にさせていただきます。
お礼
回答ありがとうございます。参考にさせていただきます。 VBAは全く初心者で (1)イベントの利用や(2)点滅などのこと(凝り過ぎ)(3)他のユーザーが使うことを予想事案?などをするのは早過ぎると思う。 ⇒VBAの初心者が点滅など懲り過ぎとありますが、質問に対する内容から外れると思います。 この内容に関しては私が使用するデータではありません。多くの作業内容の中で、今、どこの部分を実施しているのかを1目でわかりやすくするためには点滅が一番良い方法かと考え採用しようとした次第です。最初は色だけ変更の内容にしていました。 一般がやりやすいように範囲条件などは変えた。(読者への配慮が足りない) ⇒範囲条件に関してはセルがA1から始まるものが、分かりやすいというものでもないと思います。投稿する時に、もっと少ない範囲に変えることも検討したのですが、問題としていたのは範囲ではありません。 ダブルクリックとシングルクリックの混在した操作での問題解決を望んでいたので、あえてそのままにしました。 逆に質問とは異なる内容へ範囲を変えることの方が、読者に対しての配慮が足りないのではないでしょうか。 尚、私は初心者なりに他のホームページ等を調べた上で質問する様にしています。 まるまるVBA内容を教えてというのでは、質問する側として失礼かと思っているからです。 ということで、ある程度動作する様な状況でVBAの内容をそのまま投稿し、助言を頂きたい(トラブル無く動作可能な状態までもっていきたい)というおもいでいます。 最後に。 あなたは回答された時に、御自分が回答された内容を見直しているでしょうか? でで とか もも とか言葉がだぶっているところがあります。 読者への配慮を気にされるのであれば、言葉づかいも含めて考慮されたらいかがでしょうか。