前提・実現したいこと
エクセルシートで、T行に✓が入ったらU行に自動で"済"と入れたい。
発生している問題・エラーメッセージ
U行に関数を設定後、ダブルクリックしたら、U行の関数が消え、=と表示されてしまう。
該当のソースコード
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("J3:T302")) Is Nothing = False Then Cancel = True If Target.Value = ChrW(10003) Then Target.ClearContents Else Target.Value = ChrW(10003) End If End If End Sub
試したこと
現在、J3~T302のセルをダブルクリックすると✓が入ります。
T行に✓は入ったらU行に"済"としたくて、U行のセルに次のように関数を入力しました。
=IF(T3="","","済")
すぐには済と表示されるのですが、次にセルをダブルクリックさせ✓を入れると同時にU行は=と表示され関数が消えてしまいます。
補足情報(FW/ツールのバージョンなど)
質問時、誤っている箇所がありました。
=となってしまうのは、U行です。T行としてしまっていたところを修正致しました。よろしくお願いいたします。
この質問だけだとわからない部分がありますね。
ソースで
If Target.Value = ChrW(10003)
をやっている点で既に✓が入っているセルを再度ダブルクリックすると消えるのは
正しい動作だと思いますし、
別にU行の関数が消えたりしません。
更に新しいシートでこのVBAとU行の関数をコピーするだけでは
J行に影響及ぼす要素がないのでこちらではその動作は確認できません。
U行やJ行の動作はこの質問に出したものとは別なことが影響していると思うのですが。
ありがとうございます。
J~T行の動きは今まで通りダブルクリックすると✓が付いたり消えたりで大丈夫です。U行セルに、T行に✓が付いている時だけ済という文字が表示されるようにしたいです。
別な事の影響とは、例えばどのような事を確認したら解決の糸口が見つかるのでしょうか。
よろしくお願いいたします。
U行の関数が消されてしまうと「済」が付かなくなってしまうのですが、
提示のソースではU行の内容を消す処理が入っていないので。
何か他にVBAや関数を設定しているようなところはないのかなという疑問です。
お世話になります。
申し訳ありません。慌てていただけのようです。
再度やってみたら思う通りの動きになりました。
お騒がせしてしまい、すみませんでした。
回答1件
あなたの回答
tips
プレビュー