- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一番大きな値を返す)
ExcelVBAで一番大きな値を持つ変数名を返す方法
このQ&Aのポイント
- ExcelVBAで一番大きな値を持つ変数名を返す方法について質問です。
- 具体的な例として、複数の変数の値を比較して最大値を取得し、その最大値を格納している変数名を表示する方法について知りたいです。
- If文やSelect Case文などを使用せず、できるだけ簡潔なコードで実現する方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ユーザにとって「変数名」は意味を持たないはずなので、コードで変数名を取得するようなことは、しないと思いますが… 同種のデータを大量に扱う場合、通常は、配列に入れておいて、変数名の 代わりにインデックス番号を扱うと思います。 >If や Select Case などでコツコツと条件分岐をさせて導き出すしか方法はありませんか? 前出の配列という概念が、ご質問の回答ではないかと思いますが。 例えばaという配列に数値が入っていて、その最大値とインデックスを取るなら For i = LBound(a) To UBound(a) If a(i) > aMax Then aMax = a(i): aIndex = i Next i MsgBox (aIndex & " , " & aMax) みたいな感じ。 どうしても、同質の変数名ではなく、個別の名称にしたければ(実態は変わってしまいますが)、連想配列で変数名(もどき)を代入しておくという方法もあるけど、その名前は計算上まったく必要ないはずなので、わざわざやることもないですね。 質問の意味を取り違えていましたら、無視してください。
お礼
fujillinさん、早速のご教示をありがとうございました。 >質問の意味を取り違えていましたら、無視してください。 否、全くご回答頂いた通りの意味なのです。 実は…実際に必要性に迫られた問題では無く、ふと、思いついた疑問だったのですが… 頂いた「インデックス番号を利用する」という考え方で、疑問は終止いたしたいと思いました。感謝いたします。