- ベストアンサー
マクロでのMAX,MIN
ExcelでのMAX(範囲),MINをマクロではどのように なるのでしょうか? 宜しくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(1)ワークシート関数 Application部分は省略しても可。この場合、Applicationとはエクセルのことを指します。Maxは下記でMINの部分をMAXに置き換えてください。 Sub test01() m = Application.WorksheetFunction.Min(Range("a1:a6")) MsgBox m End Sub 文字列ばかりだと0、文字列が混じっていると無視する(0扱い)ようです。 (2)プログラムロジック Sub test02() Dim cl As Range m = Range("A1") For Each cl In Range("A1:a6") If m > cl Then m = cl End If Next MsgBox m End Sub Maxの場合は If m < cl Then m = cl と変える。 ついでに、A列内で考えるなら Sub test02() Dim cl As Range d = Range("A65536").End(xlUp).Row MsgBox d m = Range("A1") For Each cl In Range(Cells(1, "A"), Cells(d, "A")) If m > cl Then m = cl End If Next MsgBox m End Sub
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
ワークシート関数をそのまま呼び出せます。こんなかんじ: Sub test() Debug.Print WorksheetFunction.Max(Range("A1:C3")) End Sub
お礼
さっそくの回答ありがとうございました。 お礼が遅くなって申し訳ございませんでした。 これからも宜しくお願い致します。
お礼
詳しい説明ありがとうございます。 MAXでのF1キーで、該当する項目がないと表示される 意地悪なHELPで困っておりました。 私のような初心者には表示されてたとしても理解困難な説明です。 m = Application.WorksheetFunction.Min(Range("a1:a6")) で目的を達することが出来ました。 本当にありがとうござとました。