- ベストアンサー
エクセル マクロ
If Target.Value = "" Then Exit Sub End If シートが空白のとき 選択されないようにするように教えていただいたのですが この分に B1:C11までの範囲 という条件をさらにつけたい場合は (B1:C11)をどのようにいれたらいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 全体のコードを書かないと訳が分からないですよ。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Value = "" Then Exit Sub End If If Not Intersect(Target, Union( _ Range("$B$1:$C$11"), Range("$A$2:$A$3"), _ Range("$A$5:$A$6"), Range("$A$8:$A$9"), _ Range("$A$11:$A$13"))) Is Nothing Then Worksheets(Target.Value).Visible = True Worksheets(Target.Value).Select End If End Sub という事でしょうか?
その他の回答 (2)
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19840)
空白「または」B1~C11、という条件にする場合 If Target.Value = "" Or (Target.Row >= 1 And Target.Row <= 11 And (Target.Column = 2 Or Target.Column = 3)) Then '空白またはB1~C11だったらやりたいことをココに書く End if 空白「かつ」B1~C11、という条件にする場合 If Target.Value = "" And (Target.Row >= 1 And Target.Row <= 11 And (Target.Column = 2 Or Target.Column = 3)) Then '空白かつB1~C11だったらやりたいことをココに書く End if
お礼
ありがとうございます 参考にさせてもらいます
- kkkkkm
- ベストアンサー率66% (1721/2591)
多分No1さんの回答が正解だと思いますが、言葉通りと考えて示されたところに追加するのだとしたら、マウスが滑ってセルの選択が2個以上になった時に実行しないようにするのも付け加えて If Target.Count > 1 Then Exit Sub End If If Not Intersect(Target, Range("B1:C11")) Is Nothing And Target.Value = "" Then Exit Sub End If
お礼
ありがとうございます No1でできました No2さんのでもできました。 参考にさせてもらいます
お礼
申し訳ない これが全体の分です 最初に If Target.Value = "" Then Exit Sub End If 入れるとBとC列は空白を認識するのですが D列などを押すとエラーが出てくるため 範囲していしたかったのです
補足
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$B$2" Or Target.Address = "$B$3" Or Target.Address = "$B$4" Or Target.Address = "$B$5" _ Or Target.Address = "$B$6" Or Target.Address = "$B$7" Or Target.Address = "$B$8" Or Target.Address = "$B$9" _ Or Target.Address = "$B$10" Or Target.Address = "$B$11" Or Target.Address = "$C$2" Or Target.Address = "$C$3" _ Or Target.Address = "$C$4" Or Target.Address = "$C$5" Or Target.Address = "$C$6" Or Target.Address = "$C$7" _ Or Target.Address = "$C$8" Or Target.Address = "$C$9" Or Target.Address = "$C$10" Or Target.Address = "$C$11" Then Worksheets(Target.Value).Visible = True Worksheets(Target.Value).Select Else End If End Sub