No.3ベストアンサー
- 回答日時:
こんにちは。
>あらかじめ指定したA2とB3とE5のセルの値のうち最小の値を持つセルの値とアドレスを取得する記述を教えてください。
本来は、「あらかじめ指定したセル」に、きちんとした法則があれば、関数で可能なような気がします。たぶん、「あらかじめ指定したセル」は、名前定義を行うつもりなのでしょうね。だから、以下のSelection は、仮に、ということにしてください。
'--------------------------------------------
Sub FindMinimum()
Dim myRng As Range
Dim c As Range
Dim minVal As Double
Dim myFirstAddress As String
Dim buf As String
If TypeName(Selection) <> "Range" Then Exit Sub
Set myRng = Selection '名前定義の場合は、ここから
If WorksheetFunction.Count(myRng) = 0 Then MsgBox "範囲を指定してください。", vbCritical: Exit Sub
minVal = WorksheetFunction.Min(myRng)
Set r = myRng.Find(minVal)
With myRng
Set c = .Find(What:=minVal, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
myFirstAddress = c.Address
Do
buf = buf & ", " & c.Address
Set c = .FindNext(c)
Loop Until c Is Nothing Or c.Address = myFirstAddress
End If
End With
MsgBox minVal & ": " & Mid$(buf, 2), , "最小値とアドレス"
Set myRng = Nothing
End Sub
No.2
- 回答日時:
Sub test()
Dim sh As Worksheet
Set sh = Worksheets("Sheet1")
x = Application.WorksheetFunction.Min(sh.Range("a1"), sh.Range("c3"), sh.Range("d5"))
MsgBox x
End Sub
をご参考に。
セル指定のニーズやパターンが質問から良くわからないが、プログラムの中に入れられるなら上記。
Cells(i,j)の形ででRangeを相対化できます。
大変参考になりました。最小値はこれで取得できましたが、アドレスが取得できなかったので、BLUEPIXYさんの構文と組み合わせてみてやってみます。
ありがとうございました。
No.1
- 回答日時:
CTRL+で飛び飛びの範囲を指定してマクロを呼び出すとして
概ね、こんな感じ
Public Sub Sample()
Dim x As Range, min As Range, minValue
Dim wk As String, a, i
'minValue は、指定した範囲の最小値、空白セルが有る場合は0
minValue = Application.WorksheetFunction.min(Selection)
wk = ""
For Each x In Selection
If minValue = x.Value Then
wk = wk & x.Address & "," '同一の最小値が有る場合があるのでアドレスを集める
End If
Next
If wk <> "" Then
wk = Left(wk, Len(wk) - 1) '最後のカンマを取り除く
End If
a = Split(wk, ",") 'アドレスの集まりを配列にする
For i = 0 To UBound(a)
Debug.Print a(i) '配列で取り出す(テストプリント)
Next
End Sub
大変に長い構文例を作成していただきありがとうございました。
私の質問がわかりにくかったと思いますが、最小値のアドレスは取得できましたが、その値が取得できませんでした。
この構文を参考に研究してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 13:13
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Excel(エクセル) セルを数式で指定する方法 5 2022/04/13 16:55
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
【VBA】【ユーザーフォーム_Lis...
-
特定の色のついたセルを削除
-
VB.netでのExcelデータの読み込み
-
入力規則のリスト選択
-
C# DataGridViewで複数選択した...
-
エクセルVBA ダブルクリックし...
-
データのある範囲を選択するVBA...
-
マクロのコマンドボタンの位置...
-
【VBA】写真の貼り付けコードが...
-
Excel VBAで特定の範囲の空白セ...
-
【ExcelVBA】値を変更しながら...
-
エクセルVBA 配列からセルに「...
-
VBAについて
-
Excelで空白セル直前のセルデー...
-
VB6.0 ExcelオブジェクトのFind...
-
VBA:日付を配列に入れ別セルに...
-
マクロ初心者です。 マクロで範...
-
エクセルの値を範囲指定で取得...
-
CellEnterイベント仕様について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBA 配列からセルに「...
-
Excelで空白セル直前のセルデー...
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
C# DataGridViewで複数選択した...
-
特定の色のついたセルを削除
-
VBA:日付を配列に入れ別セルに...
-
【VBA】写真の貼り付けコードが...
-
EXCEL VBA 文中の書式ごと複写...
-
Excel 範囲指定スクショについ...
-
入力規則のリスト選択
-
複数指定セルの可視セルのみを...
-
Excel VBAでCheckboxの名前を変...
-
【VBA】【ユーザーフォーム_Lis...
-
DataGridViewでグリッド内に線...
-
CellEnterイベント仕様について
-
下記のマクロの説明(意味)を...
-
DataGridViewのフォーカス遷移...
-
VBA にて、条件付き書式で背景...
おすすめ情報