Excel VBA質問箱 IV

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

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


32657 / 76734 ←次へ | 前へ→

【49311】Re:上位5位まで書式設定
発言  ichinose  - 07/5/31(木) 7:51 -

引用なし
パスワード
   ▼やま さん:
おはようございます。

>やっとここまで出来ました
>これに範囲D4からデータのあるD列最終行と
>色設定を教えて下さい。よろしくお願いします。
>色は 1位に・・・赤
>   2位に・・・緑
>   3位に・・・青
>   4位に・・・ピンク
>   5位に・・・オレンジ です
以前作成したFindメソッドのサブルーチンが目に付いたので
これを使いました。

標準モジュールに
'============================================================
Sub 番号順()
  Dim i As Long
  Dim j As Long
  Dim ans As Variant
  Dim rng As Range
  Dim samecnt As Long
  Dim clarray As Variant
  j = 1
  clarray = Array(3, 10, 5, 7, 46)
  With Range("d4", Cells(Rows.Count, "d").End(xlUp))
    For i = 1 To 5
     j = j + samecnt
     ans = Application.Large(.Cells, j)
     If IsError(ans) Then Exit For
     samecnt = Application.CountIf(.Cells, ans)
     Set rng = get_findcell(ans, .Cells)
     Do Until rng Is Nothing
       rng.Interior.ColorIndex = clarray(i - 1)
       Set rng = get_findcell()
       Loop
     Next
    End With
End Sub
'============================================================
Function get_findcell(Optional ByVal f_v As Variant = "", _
           Optional ByVal rng As Range = Nothing, _
           Optional ByVal alookin As XlFindLookIn = -4163, _
           Optional ByVal alookat As XlLookAt = 1, _
           Optional ByVal aso As XlSearchOrder = 1, _
           Optional ByVal asd As XlSearchDirection = 1, _
           Optional ByVal mc As Boolean = False, _
           Optional ByVal mb As Boolean = True) As Range
'指定された値でセル範囲を検索し、該当するセルを取得する
'input : f_v 検索する値
'    rng 検索する範囲
'    alookin 検索対象 xlvalues,xlformulas,xlcomments
'    alookat: :検索方法 1-完全一致 2-部分一致
'    aso : 検索順序 1 行 2 列
'    asd : 検索方向 1 Xlnext 2 XlPrevious
'    mc  : 大文字・小文字の区別 False しない True する
'    mb  : 半角と全角を区別   True する  False しない
'output:get_findcell 見つかったセル(見つからなかったときはNothingが返る)
  Static 検索範囲 As Range
  Static 最初に見つかったセル As Range
  Static 直前に見つかったセル As Range
  Static 検索方向 As XlSearchDirection
  If Not rng Is Nothing Then
    Set 検索範囲 = rng
    End If
  If f_v <> "" Then
    Set get_findcell = 検索範囲.Find(f_v, 検索範囲.Cells(検索範囲.Rows.Count, 検索範囲.Columns.Count), _
                    alookin, alookat, aso, asd, mc, mb)
    If Not get_findcell Is Nothing Then
     Set 最初に見つかったセル = get_findcell
     Set 直前に見つかったセル = get_findcell
     検索方向 = asd
     End If
  Else
    If 検索方向 = xlNext Then
     Set get_findcell = 検索範囲.FindNext(直前に見つかったセル)
    Else
     Set get_findcell = 検索範囲.FindPrevious(直前に見つかったセル)
     End If
    If get_findcell.Address = 最初に見つかったセル.Address Then
     Set get_findcell = Nothing
    Else
     Set 直前に見つかったセル = get_findcell
     End If
    End If
End Function

同じ数字があっても取り合えず、
1番大きい数字のあるセルは、全部 赤に塗りつぶす
2番目に大きい数字のあるセルは、全部 緑に塗りつぶす



という処理にしました。

意味合いが違うなら、プロシジャー番号順を変更してください。

2 hits

【49300】上位5位まで書式設定 やま 07/5/30(水) 19:43 質問
【49301】Re:上位5位まで書式設定 ぱっせんじゃー 07/5/30(水) 20:16 発言
【49302】Re:上位5位まで書式設定 ぱっせんじゃー 07/5/30(水) 20:20 発言
【49307】Re:上位5位まで書式設定 やま 07/5/31(木) 0:04 発言
【49310】Re:上位5位まで書式設定 やま 07/5/31(木) 1:44 質問
【49311】Re:上位5位まで書式設定 ichinose 07/5/31(木) 7:51 発言
【49318】Re:上位5位まで書式設定 やま 07/5/31(木) 10:15 質問
【49330】Re:上位5位まで書式設定 ウッシ 07/5/31(木) 13:27 発言
【49335】Re:上位5位まで書式設定 やま 07/5/31(木) 13:56 質問
【49336】Re:上位5位まで書式設定 ウッシ 07/5/31(木) 14:17 発言
【49338】Re:上位5位まで書式設定 やま 07/5/31(木) 14:26 発言
【49339】Re:上位5位まで書式設定 ウッシ 07/5/31(木) 14:42 発言
【49347】Re:上位5位まで書式設定 やま 07/5/31(木) 15:30 お礼

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