よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13468 / inTopicNo.1)  色付きセルで
  
□投稿者/ aki -(2020/09/09(Wed) 11:35:19)
    初めて書かせていただきます。

    当サイトはとても分かりやすく勉強させていただいております。

    その中で、過去にユーザー定義関数で「色付きセルのカウントと合計」する関数を作成していましたが、「色付きのセルの最大値・最小値」を求める定義関数はありますでしょうか?

    可能でしたら、ご教授いただきたいです。
引用返信/返信 削除キー/
■13469 / inTopicNo.2)  Re[1]: 色付きセルで
□投稿者/ よねさん -(2020/09/09(Wed) 14:03:03)
    ↓のページで作成しているユーザー定義関数ですね。
    色付きのセルを数える/合計する:Excel VBA入門
    http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_color.html
    
    > 「色付きのセルの最大値・最小値」を求める定義関数はありますでしょうか?
    ユーザー定義関数はあらかじめ準備されているものではなく、ユーザーが作成する関数です。
    よって、最大値や最小値を求めるコードを作成します。
    エラー処理など細かなところは無視していますが、下記のような計算でいかがでしょうか?
    最大値はColorMax、最小値はColorMinとしています。
    
    Function ColorMax(R1 As Range, C As Range)
        Dim r As Range
    
        Application.Volatile
        ColorMax = 0
        For Each r In R1
            If r.Interior.Color = C.Interior.Color Then
                If ColorMax < r.Value Then ColorMax = r.Value
          
            End If
        Next r
    
    End Function
    
    Function ColorMin(R1 As Range, C As Range)
        Dim r As Range
    
        Application.Volatile
        ColorMin = 10 ^ 9
        For Each r In R1
            If r.Interior.Color = C.Interior.Color Then
                If ColorMin > r.Value Then ColorMin = r.Value
          
            End If
        Next r
    
    End Function
    
    
    

引用返信/返信 削除キー/
■13470 / inTopicNo.3)  Re[2]: 色付きセルで
□投稿者/ aki -(2020/09/10(Thu) 15:54:16)
    お返事ありがとうございます。

    下記のコーディングで完璧でした!

    色々と応用させていただきます、誠に感謝申し上げます!


    > 最大値はColorMax、最小値はColorMinとしています。
    >
    > Function ColorMax(R1 As Range, C As Range)
    > Dim r As Range
    >
    > Application.Volatile
    > ColorMax = 0
    > For Each r In R1
    > If r.Interior.Color = C.Interior.Color Then
    > If ColorMax < r.Value Then ColorMax = r.Value
    >
    > End If
    > Next r
    >
    > End Function
    >
    > Function ColorMin(R1 As Range, C As Range)
    > Dim r As Range
    >
    > Application.Volatile
    > ColorMin = 10 ^ 9
    > For Each r In R1
    > If r.Interior.Color = C.Interior.Color Then
    > If ColorMin > r.Value Then ColorMin = r.Value
    >
    > End If
    > Next r
    >
    > End Function
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -