A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
「nの数」と「m個」は別のセルであるという前提で。
「m個」の「個」は書式を設定して、セルの実際の値は「m」としたほうが楽かと思います。
「nの数」列がA列、「m個」列がB列、マクロの出力セルをC1セルとした場合
with activesheet
.Range("C1") = worksheetfunction.Max(.Range("B:B"))
end with
でどうでしょうか、正直VBAよりもワークシート関数のが良さそうな内容ですが、問題とのことなのでそれは関係ないですね
No.2
- 回答日時:
こんにちは
問題とのことですので、出題者には期待する回答があると想像します。(教えた内容に沿った回答など)
基本的には、ご質問文通りに処理を行えば回答にたどり着くと思いますが、エクセルということなので、シートの関数を利用する方法なども考えられます。
セル位置が不明ですが、例えば文字がA1:A3に、個数がB1:B3にあるものとして、B列の値は8、4、1の数値で「個」は書式などで設定されているものと仮定します。
以下はセルD1~D3に、それぞれ異なる考え方で値を設定します。
◇1 対象範囲を走査して探す方法
(B列の数値は必ず0以上であると仮定しています。)
maxVal = -1
targetStr = ""
For rw = 1 To 3
If Cells(rw, 2).Value > maxVal Then
maxVal = Cells(rw, 2).Value
targetStr = Cells(rw, 1).Value
End If
Next rw
Range("D1").Value = targetStr
◇2 ワークシート関数を利用する方法
maxVal = WorksheetFunction.Max(Range("B1:B3"))
idx = WorksheetFunction.Match(maxVal, Range("B1:B3"), 0)
Range("D2").Value = WorksheetFunction.index(Range("A1:A3"), idx)
◇3 セルに関数式を設定する方法
内容的には2と同じですが、VBAで計算(処理)せずに結果を得たいセルに2と同じ内容の関数式を設定して、実際の計算はエクセルに行ってもらう方法です。
Range("D3").Formula = "=INDEX(A1:A3,MATCH(MAX(B1:B3),B1:B3,0))"
※ 問題らしいので、各内容の細かな説明は省略しました。
No.3
- 回答日時:
ANo2です。
書き忘れたので、以下を追加です。
例示の内容は、いずれも最大値が複数ある場合の対処については考慮してありません。
(実際には、最大値を持つセルが複数存在する可能性があり、その場合にどう処理するのかはいろいろ考え方があることとと思います。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
VBAでセルをクリックする回...
-
VBからEXCELのセルの値を取得す...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
【Excel】指定したセルの名前で...
-
Sub 要具ライフ() ActiveSheet....
-
任意フォルダから画像をすべて...
-
i=cells(Rows.Count, 1)とi=cel...
-
【VBA】飛び飛びの3セルに"完了...
-
Excel VBAで比較して数値があっ...
-
Excel VBA、 別ブックの最終行...
-
【Excel VBA】指定行以降をクリ...
-
TODAY()で設定したセルの日付...
-
エクセル(Excel) ワイルドカー...
-
EXCELで変数をペーストしたい
-
エクセルVBAで、シート上で結合...
-
ExcelのVBAで数字と文字列をマ...
-
VBAの計算で@が出てしまう件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報