【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

何度もすみません。もう一度お救い下さい

Wクリックで、文字を切り替えるコードで、セルの文字を切り替えることが容易になったのですが、これまでのように対象のセル以外は、Wクリックで、セルの編集(文字入力)がしたいのですが、可能でしょうか。


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Cancel = True
 If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub
 With Target
  If .Value = "■" Then
   .Font.Name = "MS ゴシック"
   .Value = "□"
  ElseIf .Value = "□" Then
   .Font.Name = "Wingdings 2"
   .Value = "P"
  ElseIf .Value = "P" Then
   .Font.Name = "MS ゴシック"
   .Value = "■"
  Else 'それ以外の文字や空白の時
   .Font.Name = "MS ゴシック"
   .Value = "■"
  End If
 End With
End Sub

A 回答 (3件)

対象外だったら処理終了で抜ける。


その後、イベントをキャンセルして処理に入るようにします。

Cancel = True
If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub
 ↓
If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub
Cancel = True
    • good
    • 0
この回答へのお礼

感謝。感謝です。ありがとうございました。

お礼日時:2019/03/27 11:09

可能です。



変更前
If Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub

変更後
If Intersect(Target, Range("B1:B10")) Is Nothing Then
SendKeys "{F2}"
Exit Sub
End If

見たまんまですが、F2キーを押して編集状態にするってだけの単純なコードです。
    • good
    • 0

こんばんは。



B1:B10以外の場所、全てに対して、ダブルクリックで文字が入るようにするということでしょうか?
単純な意味なら、以下のようにすればよいのですが、同じようなスタイルを別に作るということなら、もう少し具体的に教えてください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Cancel = True
 If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
  With Target
   If .Value = "■" Then
    .Font.Name = "MS ゴシック"
    .Value = "□"
   ElseIf .Value = "□" Then
    .Font.Name = "Wingdings 2"
    .Value = "P"
   ElseIf .Value = "P" Then
    .Font.Name = "MS ゴシック"
    .Value = "■"
   Else 'それ以外の文字や空白の時
    .Font.Name = "MS ゴシック"
    .Value = "■"
   End If
  End With
 Else
  Target.Value = "OK" 'ここに加える
 End If
End Sub
'//

なお、
>Cancel = True
これは、イベントのキャンセルの意味ではなく、ダブルクリックで入力モードにならないようにしています。
    • good
    • 0

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


おすすめ情報