Aの範囲をダブルクリックしたら特殊文字挿入。
Bの範囲をクリックしたらA4セルの文字表示を赤色にして点滅表示
というマクロを作成しようとしています。
AとBの範囲は一部重複しています。
重複している範囲は、クリックの内容が優先でA4セルを点滅表示としたい。
VBAは全く初心者で、いろんなサイトで見た内容を貼り付けで下記まで作成してみましたが、
動作が中途半端になっています。
どうもシングルクリックとダブルクリックの対応部分でけんかをしているみたいなのですが、
どの様に修正したらよいか教えて頂きたく。
尚、全く新たなVBAでもかまいません、よろしくお願いします。
'Aの範囲;E16:E98あるいはK14:K147をダブルクリックしたら特殊文字挿入
'特殊文字が表示されている状態でダブルクリックした場合は空欄表示
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("E16:E98", "K14:K147")) Is Nothing Then Exit Sub
Cancel = True
If Target.Value = "" Then
Target.Value = ChrW(&H2713)
Else
Target.ClearContents
End If
End Sub
'Bの範囲;B15:G37をクリックしたらA4セルの文字表示を赤色にして点滅表示
'Bの範囲外をクリックしたら文字表示を点滅表示と停止させて黒色表示…(まだ作成未です)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 15 Or Target.Row > 37 Then Exit Sub
If Target.Column < 2 Or Target.Column > 7 Then Exit Sub
点滅フラグ = True
Call 点滅
End Sub
'標準モジュール部
Public 点滅フラグ As Boolean
Public Sub 点滅()
If Range("A4").Font.ColorIndex = 3 Then
Range("A4").Font.ColorIndex = 2
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
excel2003です。
No.1ベストアンサー
- 回答日時:
答えになっているかどうか分からないが、
下記コードは
(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)他のユーザーが使うことを予想事案?などをするのは早過ぎると思う。
イベントなど複数イベントの競合(有線)や色んな操作の場合の理解と手当てなども含め、難しいと常ずね思う。
自分だけが使うときは、おかしい場面で気づいて対処もも可能だろうが。
ーー
それに標題がおかしいと思う。普通この標題を読んだら他のことを連想するのでは。
回答ありがとうございます。参考にさせていただきます。
VBAは全く初心者で
(1)イベントの利用や(2)点滅などのこと(凝り過ぎ)(3)他のユーザーが使うことを予想事案?などをするのは早過ぎると思う。
⇒VBAの初心者が点滅など懲り過ぎとありますが、質問に対する内容から外れると思います。
この内容に関しては私が使用するデータではありません。多くの作業内容の中で、今、どこの部分を実施しているのかを1目でわかりやすくするためには点滅が一番良い方法かと考え採用しようとした次第です。最初は色だけ変更の内容にしていました。
一般がやりやすいように範囲条件などは変えた。(読者への配慮が足りない)
⇒範囲条件に関してはセルがA1から始まるものが、分かりやすいというものでもないと思います。投稿する時に、もっと少ない範囲に変えることも検討したのですが、問題としていたのは範囲ではありません。
ダブルクリックとシングルクリックの混在した操作での問題解決を望んでいたので、あえてそのままにしました。
逆に質問とは異なる内容へ範囲を変えることの方が、読者に対しての配慮が足りないのではないでしょうか。
尚、私は初心者なりに他のホームページ等を調べた上で質問する様にしています。
まるまるVBA内容を教えてというのでは、質問する側として失礼かと思っているからです。
ということで、ある程度動作する様な状況でVBAの内容をそのまま投稿し、助言を頂きたい(トラブル無く動作可能な状態までもっていきたい)というおもいでいます。
最後に。
あなたは回答された時に、御自分が回答された内容を見直しているでしょうか?
でで とか もも とか言葉がだぶっているところがあります。
読者への配慮を気にされるのであれば、言葉づかいも含めて考慮されたらいかがでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで文字の点滅方法
-
スマートキーの赤い点滅ランプ...
-
ダイアグとは・・・?
-
時計 アルミフレーム インテリ...
-
180SXの自己診断
-
EAのゲームで画面が点滅する
-
黄色の点滅信号と赤の点滅信号...
-
オーディオインターフェースのU...
-
Audi TTの時計の合わせ方。
-
UR22mk2がある日突然、白ランプ...
-
LED点滅点灯回路のつくりかた
-
ガラホの青い点滅は何が来てい...
-
エクセルで、セル内の文字を点...
-
温水洗浄便座、点検時期お知ら...
-
LANケーブルの接続部分が点滅し...
-
腕時計の時刻表示が勝手に点滅
-
黄色の点滅信号について教えて...
-
ワゴンR MH21系のオートエア...
-
FMVのディスプレイの横の鍵の点...
-
エクセルVBA 指定のセル背...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで文字の点滅方法
-
スマートキーの赤い点滅ランプ...
-
ダイアグとは・・・?
-
PS3コントローラーが充電できな...
-
オーディオインターフェースのU...
-
黄色の点滅信号と赤の点滅信号...
-
エクセルで、セル内の文字を点...
-
Audi TTの時計の合わせ方。
-
ガラホの青い点滅は何が来てい...
-
EAのゲームで画面が点滅する
-
180SXの自己診断
-
TEPRA Lite LR30 が壊れた?
-
一定時間間隔でセルを点滅させたい
-
時計 アルミフレーム インテリ...
-
子供用デジタル時計設定
-
SwitchJoy-Con
-
エクセルVBA 指定のセル背...
-
ポケットモンスター プラチナで
-
ELECOMのワイヤレス充電器(W-Q...
-
左ウィンカー点滅が早い。
おすすめ情報