• ベストアンサー

マクロでのMAX,MIN

ExcelでのMAX(範囲),MINをマクロではどのように なるのでしょうか? 宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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

miyarita
質問者

お礼

詳しい説明ありがとうございます。 MAXでのF1キーで、該当する項目がないと表示される 意地悪なHELPで困っておりました。 私のような初心者には表示されてたとしても理解困難な説明です。 m = Application.WorksheetFunction.Min(Range("a1:a6")) で目的を達することが出来ました。 本当にありがとうござとました。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

ワークシート関数をそのまま呼び出せます。こんなかんじ: Sub test() Debug.Print WorksheetFunction.Max(Range("A1:C3")) End Sub

miyarita
質問者

お礼

さっそくの回答ありがとうございました。 お礼が遅くなって申し訳ございませんでした。 これからも宜しくお願い致します。

関連するQ&A