[[20070627140703]] 『C列のセルに"1"を入力した場合に、同じ行のA列ax(POPI) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『C列のセルに"1"を入力した場合に、同じ行のA列のセルの色を赤になるように設定するVBAを授けてください。お願いします。』(POPI)

 Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
      If .Column <> 3 Then Exit Sub
      If .Count > 1 Then
           With Application
                .EnableEvents = False
                .Undo
                .EnableEvents = True
           End With
           Exit Sub
      End If
      If .Value <> 1 Then
           .Offset(,-2).Interior.ColorIndex = xlNone
      Else
           .Offset(,-2).Interior.Color = vbRed
      End If
 End With
 End Sub
 (seiya)

seiya殿 早速の解答ありがとうございます。今後もご教授の程よろしくお願いいたします。

申し訳ありません。うまく動かないようです。関数では可能でしょうか?

 1) コードを貼り付けた場所は?
 2) 何をどうしたときにうまく動かないの?
 3) 条件付書式で十分可能
 (seiya)


 >関数では可能でしょうか?
 ユーザー定義関数?
 でもこれ用に書いてないので無視。
 BJ

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim RG As Range, CL1 As Range, CL2 As Range
 Dim KK As Variant

 KK = 1

 Set RG = Intersect(Columns(3), Target)
 If RG Is Nothing Then Exit Sub
 If Application.CountIf(RG.Areas(1).Cells, RG.Cells(1).Value) = _
   RG.Areas(1).Cells.Count Then
   If RG.Cells(1).Value = KK Then
      iro = 3
   Else
      iro = xlNone
   End If
   For Each CL1 In RG.Areas
       Call Main(CL1, iro)
   Next
 Else
   For Each CL1 In RG
      If CL1.Value = KK Then
         iro = 3
      Else
         iro = xlNone
      End If
      Call Main(CL1, iro)
   Next
 End If
 End Sub

 Private Sub Main(ByVal CL As Range, iro)
 CL.Offset(, -2).Interior.ColorIndex = iro
 End Sub

 //////////////
 If Application.CountIf(RG.Areas(1).Cells, RG.Cells(1).Value) = _
   RG.Areas(1).Cells.Count Then

  ↓に修正してください。6/28 11:13

 If Application.CountIf(RG.Areas(1).Cells, RG.Cells(1).Value) = _
   RG.Areas(1).Cells.Count Or _
   Application.CountBlank(RG.Areas(1)) = RG.Areas(1).Cells.Count Then


 seiyaさん。
  POPIさんじゃないのですが・・・
  シートモジュールに貼り付けて、どこかのセルに入力をすると
  「実行時エラー'424': オブジェクトが必要です。」
    If .Column <> 3 Then ←の部分が黄色くなります。(2002)

 POPIさん。
  条件付き書式で宜しければ(VBAじゃないです)
  A1セルを選択して
  メニュー・書式(O)→条件付き書式(D) で
   条件1
    数式が =$C1=1  [セル色 赤 に設定]
      [ OK ]
  として、必要な行まで書式をコピーしてみて下さい。
http://www.excel.studio-kazu.jp/lib/e2qw/e2qw.html

 (HANA)

 > Private Sub Worksheet_Change(ByVal Trget As Range)
                                      ~~~~~ココですねb
 (ROUGE)

 ROUGEさんの変更で、次へ進みました。
 入力した場合は、色が付くのですが
 消去或いは数字の変更をした場合、
「実行時エラー'438":
 オブジェクトは、このプロパティまたはメソッドをサポートしていません。」
   .Offset(, -2).Interior.ColoIndex = xlNone ←の部分が黄色くなります。

 ・・・はっっ!
 ColoIndex→ColorIndex ですね。
 きっちり動きました。(汗)

 POPIさん、お邪魔しました。
 変更して試してみて下さい。

 (HANA)

 ROUGEさん、HANAさん、いつもお世話おかけします....
 と、いうことでコードを変更しましたのでもう一度試してください。
 (seiya)

ありがとうございました。大変参考になりました。これからもよろしくです。(POPI)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.