プロが教えるわが家の防犯対策術!

VB.netについての初歩的な質問かもしれませんがよろしくお願いします。

●下記の様に値が入力されたエクセル(Book1.xls)があります。
   A   B   C   D   E
1  100 200 300 400 500
2 600 700 800 900 999

●VB.net側では下記のように宣言してあります。
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet

ここで、Book1.xlsの"A1"から"E2"までのセルに入力されている値の中で最大のセルと最小のセルの色を変えるプログラムを作りたいと考えています。

【質問】
(1)この場合、『MAX関数』『MIN関数』の様なものは使用できないのでしょうか?使用できる場合は、セルの範囲指定で計算を行うことができないでしょうか?
 ※ちなみに、セルを一つずつforループで検査する方法であればできています。
(2)またそのセル名(A5、C6等)を取得することはできないでしょうか?

ご教授下さい。

A 回答 (2件)

>そこがわかりません。

もしおわかりでしたらお教え下さい。

http://msdn2.microsoft.com/ja-jp/library/system. …
より
|NET Framework クラス ライブラリ
|Math.Max メソッド
|指定された 2 つの数のうち、大きい方を返します。
    • good
    • 0
この回答へのお礼

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

やはり2つを比較する関数なんですね。

初歩的な質問ですみませんでした。
とても勉強になりました。
ありがとうございました。

お礼日時:2007/05/16 09:05

>(1)この場合、『MAX関数』『MIN関数』の様なものは使用できないのでしょうか?



VBAなら、
Application.WorksheetFunction.Max(範囲)
Application.WorksheetFunction.Min(範囲)

>セルの範囲指定で計算を行うことができないでしょうか?

設定方法が決まっているなら可能です。

> ※ちなみに、セルを一つずつforループで検査する方法であればできています。
(2)またそのセル名(A5、C6等)を取得することはできないでしょうか?

For Each なら可能
(VBA)
For Each c In Range("A1:A10")
If c.Value = Max Then
c.ColorIndex = 6
ElseIf c.Value = Min Then
c.ColorIndex = 2
End If
Next

.netでも応用可能かと思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

.netだと

System.Math.Max()
System.Math.Min()
という関数があるのですが、
範囲指定に
xlsheet.Range("A1:E3")
と指定すると
「この引数を受けつける"MAX"がないためオーバーロードに失敗しました。」
というエラーが出てしまいます。

そこがわかりません。もしおわかりでしたらお教え下さい。
度々すみません。

お礼日時:2007/05/15 16:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!