- 締切済み
VBAでキャンセルしたときの構文は
いつもお世話になりります。 WIN7 エクセル2010 です。 次のようなマクロがあります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$C$10" Then Target.Offset(-6, 2).Value = Date End If If Target.Address = "$C$10" Then ActiveSheet.Tab.ColorIndex = 49 End If End Sub この場合、 C10 をクリアーした時 「G4(-6,2)の日付 と シートタブの色」 の両方をクリアーすることも可能でしょうか。 もし可能ならばご指導願えませんか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- okormazd
- ベストアンサー率50% (1224/2412)
結合セルがあるなんてどこにも書いてなかっただろ。 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Range("$C$10") <> "" Then Range("$C$10").Offset(-6, 2).Value = Date ActiveSheet.Tab.ColorIndex = 49 Else Range("$C$10").Offset(-6, 2).Value = "" ActiveSheet.Tab.ColorIndex = xlColorIndexNone End If Application.EnableEvents = True End Sub
- okormazd
- ベストアンサー率50% (1224/2412)
なんだか、Targetは関係ないような・・・。使ってもいいけど。 質問の中身は以下のようなのだが。 Private Sub Worksheet_Change(ByVal Target As Range) If Range("$C$10") <> "" Then Range("$C$10").Offset(-6, 2).Value = Date ActiveSheet.Tab.ColorIndex = 49 Else Range("$C$10").Offset(-6, 2).ClearContents ActiveSheet.Tab.ColorIndex = xlColorIndexNone End If End Sub
補足
ご指導でテストしましたが、 下記の部分が黄色で警告が出ます。 Range("$C$10").Offset(-6, 2).ClearContents 「実行時エラー’1004’: 結合されたセルの一部を変更することはできません。」 Range("$C$10").Offset(“$G$4”).ClearContents を試しにしましたら矢張り警告されました。 「実行時エラー’28’: スタック領域が不足しています。」 参考に(何か関係しているのでしょうか) 下記2点が「セルを結合して中央揃い」 C10 E10 G4(-6,2) H4 誠に恐れ入りますが再度ご指導いただけませんでしょうか。