重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

セルが左ダブルクリックされると、そのセルが色づけされるプログラムがあります。
しかし、そのセル内に複数行の文字列が入力されている場合、そのセルを選択時、
そのセル内の文字列が数式バーにも複数行表示されますが、数式バーとセルが重
なってしまう時、左クリックが優先されてしまうため、左ダブルクリックが認識
できません。どうすれば、この問題を解決できるのでしょうか。
教えて下さい。

「セルが左ダブルクリックされると、そのセル」の質問画像

A 回答 (4件)

いちばん確かなのは[数式バー]を非表示にすることですね


他には別のイベントで1行目で、かつ文字列に改行文字が入っていると色づけする方法など
参考に
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Target
  '1行目以外はExit
    If .Row > 1 Then Exit Sub
    '改行文字が入り色が付いていなければ
    If InStr(.Value, vbLf) And .Interior.ColorIndex = xlNone Then
      .Interior.ColorIndex = 38
    ElseIf InStr(.Value, vbLf) And .Interior.ColorIndex <> xlNone Then
      .Interior.ColorIndex = xlNone
    End If
  End With
End Sub
    • good
    • 0

こんにちは。



>セル内の文字列が数式バーにも複数行表示されますが、数式バーとセルが重なってしまう時、
ダブルクリック・イベントの途中で割り込みが入るという意味だと思います。
図のような文字だけでは再現性は得られませんね。問題ありません。

数式だというのでしたら、試しに、Calculation プロパティを変えてみるとかいかがでしょうか?
ダブルクリック・イベントと、Calculate イベントと、どちらが先になるのかは、やってみないと分かりませんが、ダブルクリック・イベントが可動しなくなった時点で、大掛かりな変更を要求されているような気がします。

'-------------------------------------------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  Application.Calculation = xlCalculationManual '←必要かどうかは分かりません。
  Target.Interior.ColorIndex = 34
  Application.Calculation = xlCalculationAutomatic '←
End Sub

'-------------------------------------------
    • good
    • 0

ダブルクリックを優先するのであれば


数式バーを非表示にすればよいのでは

この回答への補足

ご回答頂きありがとうございました。

数式バーを非表示にしてみます。

左ダブルクリックなら色付け処理
左シングルクリックなら数式バーにセルの内容の表示
なんて、わがままなことはできませんよね。

数式バーを基本非表示にし、右シングルクリックなら
数式バー表示ということも考えていますが、
その場合、ポップアップメニューを隠すことができ
ますか。

教えて下さい。

補足日時:2010/02/11 10:18
    • good
    • 0

そのセルをクリックしてから『F2』キーをおせばダブルクリックしたのと同じになります。



…が
セル内の数式や内容を変更するんであれば
そのセルをクリックして数式バーにセル内容が表示されるので、数式バーで内容を打ち変えて確定すればいいだけですよ?。

それではダメなんですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!