• ベストアンサー

セルが左ダブルクリックされると、そのセルが色づけされるプログラムがあり

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

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.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

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

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

すると、全ての回答が全文表示されます。
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

ダブルクリックを優先するのであれば 数式バーを非表示にすればよいのでは

okayama394
質問者

補足

ご回答頂きありがとうございました。 数式バーを非表示にしてみます。 左ダブルクリックなら色付け処理 左シングルクリックなら数式バーにセルの内容の表示 なんて、わがままなことはできませんよね。 数式バーを基本非表示にし、右シングルクリックなら 数式バー表示ということも考えていますが、 その場合、ポップアップメニューを隠すことができ ますか。 教えて下さい。

すると、全ての回答が全文表示されます。
  • Us-Timoo
  • ベストアンサー率25% (914/3620)
回答No.1

そのセルをクリックしてから『F2』キーをおせばダブルクリックしたのと同じになります。 …が セル内の数式や内容を変更するんであれば そのセルをクリックして数式バーにセル内容が表示されるので、数式バーで内容を打ち変えて確定すればいいだけですよ?。 それではダメなんですか?

すると、全ての回答が全文表示されます。

関連するQ&A