- ベストアンサー
IFの使い方
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim ANS As Integer ANS = MsgBox("Aをクリアしてもいいですか?", _ vbYesNoCancel + vbInformation, "クリア実行") If Sheets("A").Range("6D").Value <> "" Then Select Case ANS Case vbYes Sheets("営業確認").Range("b6:e1000,g6:k1000").Select Selection.ClearContents Sheets("入力").Select MsgBox "クリアしました" Case vbNo MsgBox "キャンセル" Case Else MsgBox "中止します" End Select Else End If End Sub 説明 (1)『A』というシートのセル『D6』に値が残っていれば メッセージボックスを出す。 (2)メッセージボックスはyes,no,cancelボタンがある (3)YESなら指定したセルの値を消す (4)NOなら消さない (5)キャンセルなら(3)、(4)以外 (6)『A』の『D6』に値がなければメッセージは出ない 上記のようにマクロを組みましたが、IFの所がエラーになってしまいます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
【補足の回答】 >Sheets("営業確認").Range("b6:e1000,g6:k1000").Select >Selection.ClearContents 恐らく、Rangeの使い方が間違っているのではないでしょうか。 Sheets("営業確認").Range("b6","e1000").Select Selection.ClearContents Sheets("営業確認").Range("g6","k1000").Select Selection.ClearContents と分けて処理を実行しないとエラーになる気がします。 Rangeプロパティの説明が載っているサイトをリンクで貼っておきます。
その他の回答 (1)
- yuro_xyz
- ベストアンサー率100% (1/1)
>If Sheets("A").Range("6D").Value <> "" Then .Range("6D")ではなくて.Range("D6")なのでは??
補足
確認ミスでした。 ただ、 Case vbYes Sheets("営業確認").Range("b6:e1000,g6:k1000").Select Selection.ClearContents Sheets("入力").Select MsgBox "クリアしました" 上記もエラーしてしまいます。 アドバイスいただければ幸いです。
お礼
ありがとうございます。 早速やってみたら出来ました!!