Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1606 / 13646 ツリー ←次へ | 前へ→

【73196】特定の文字を含むセルの行に色をつける おにこ 12/11/28(水) 17:09 質問[未読]
【73197】Re:特定の文字を含むセルの行に色をつける ウッシ 12/11/28(水) 17:25 回答[未読]
【73199】Re:特定の文字を含むセルの行に色をつける おにこ 12/11/29(木) 14:48 お礼[未読]
【73201】Re:特定の文字を含むセルの行に色をつける ウッシ 12/11/29(木) 15:15 回答[未読]
【73198】Re:特定の文字を含むセルの行に色をつける UO3 12/11/28(水) 17:37 発言[未読]
【73200】Re:特定の文字を含むセルの行に色をつける おにこ 12/11/29(木) 14:51 お礼[未読]

【73196】特定の文字を含むセルの行に色をつける
質問  おにこ  - 12/11/28(水) 17:09 -

引用なし
パスワード
   N列に「2」が入っている場合その行(A〜N列)に色をつけたいです。

Sub TEST()

  Rows("1:1").Select
  Range("B1").Activate
  Selection.AutoFilter
  Selection.AutoFilter Field:=14, Criteria1:="2"
  
  Rows("▼").Select
  Range("■").Activate
  Selection.Interior.ColorIndex = 6
  Selection.AutoFilter Field:=14
  
End Sub

▼と■の部分をどう指定したら良いか、悩んでいます。
お力を貸してください。

【73197】Re:特定の文字を含むセルの行に色をつける
回答  ウッシ  - 12/11/28(水) 17:25 -

引用なし
パスワード
   こんにちは

殆どの処理にはActivateもSelectも必要ないです。

Sub test()
  Range("B1").CurrentRegion.AutoFilter Field:=14, Criteria1:="2"
  ActiveSheet.AutoFilter.Range.Interior.ColorIndex = 6
  Rows(1).Interior.ColorIndex = 0
  ActiveSheet.ShowAllData
End Sub

抽出データが無い場合等のエラー回避も必要です。

【73198】Re:特定の文字を含むセルの行に色をつける
発言  UO3  - 12/11/28(水) 17:37 -

引用なし
パスワード
   ▼おにこ さん:

▼と■の部分の回答ということですから、ご希望には反しますが。

Sub TEST()
  Dim r As Range
  
  ActiveSheet.AutoFilterMode = False   '念のため解除
  
  Range("A1").CurrentRegion.AutoFilter  'オートフィルター設定
  With ActiveSheet.AutoFilter.Range
    Set r = .Resize(.Rows.Count - 1, 14).Offset(1) 'タイトル行を除いた領域
    r.Interior.ColorIndex = xlNone       'まず、色を消して
    .AutoFilter Field:=14, Criteria1:="2"    'オートフィルター実行
    '抽出された時のみ色付け
    If WorksheetFunction.Subtotal(103, .Columns(14)) > 1 Then r.Interior.ColorIndex = 6
  End With
  
  ActiveSheet.AutoFilterMode = False   'オートフィルター解除
 
End Sub

【73199】Re:特定の文字を含むセルの行に色をつける
お礼  おにこ  - 12/11/29(木) 14:48 -

引用なし
パスワード
   ▼ウッシ さん:

早急なご回答ありがとうございました。

>殆どの処理にはActivateもSelectも必要ないです。
そうなんですね。。。
いつもこれを繰り返していました。

[CurrentRegion]

について勉強してみたいと思います。
本当にありがとうございました。

>こんにちは
>
>殆どの処理にはActivateもSelectも必要ないです。
>
>Sub test()
>  Range("B1").CurrentRegion.AutoFilter Field:=14, Criteria1:="2"
>  ActiveSheet.AutoFilter.Range.Interior.ColorIndex = 6
>  Rows(1).Interior.ColorIndex = 0
>  ActiveSheet.ShowAllData
>End Sub
>
>抽出データが無い場合等のエラー回避も必要です。

【73200】Re:特定の文字を含むセルの行に色をつける
お礼  おにこ  - 12/11/29(木) 14:51 -

引用なし
パスワード
   ▼UO3 さん:
こんにちは

丁寧な解説をつけていただきありがとうございました。
やりたい事に解説をつけていただくと、次に活かせるので
本当に助かります。

ありがとうございました!

>▼おにこ さん:
>
>▼と■の部分の回答ということですから、ご希望には反しますが。
>
>Sub TEST()
>  Dim r As Range
>  
>  ActiveSheet.AutoFilterMode = False   '念のため解除
>  
>  Range("A1").CurrentRegion.AutoFilter  'オートフィルター設定
>  With ActiveSheet.AutoFilter.Range
>    Set r = .Resize(.Rows.Count - 1, 14).Offset(1) 'タイトル行を除いた領域
>    r.Interior.ColorIndex = xlNone       'まず、色を消して
>    .AutoFilter Field:=14, Criteria1:="2"    'オートフィルター実行
>    '抽出された時のみ色付け
>    If WorksheetFunction.Subtotal(103, .Columns(14)) > 1 Then r.Interior.ColorIndex = 6
>  End With
>  
>  ActiveSheet.AutoFilterMode = False   'オートフィルター解除
> 
>End Sub

【73201】Re:特定の文字を含むセルの行に色をつける
回答  ウッシ  - 12/11/29(木) 15:15 -

引用なし
パスワード
   こんにちは

>>殆どの処理にはActivateもSelectも必要ないです。

と言いつつ、ActiveSheet を使ったコードをレスしてたらマズいですね。

Sub test1()
  With Worksheets("Sheet1")
    .Range("B1").CurrentRegion.AutoFilter Field:=14, Criteria1:="2"
    .AutoFilter.Range.Interior.ColorIndex = 6
    .Rows(1).Interior.ColorIndex = 0
    .ShowAllData
  End With
End Sub

1606 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free