Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11800 / 76734 ←次へ | 前へ→

【70464】Re:3つのセルの数字の比較評価
発言  kanabun  - 11/11/18(金) 11:20 -

引用なし
パスワード
   ▼トキノハジメ さん:こんにちは〜
>
>kanabunさんに教えて頂きたいのですが
>A1 B1 C1 をD3 D4 D5になった場合は如何すればよいのか教えてください。

以下のように元の表が[D3]から始まっているなら、

  D  E  F  G
3 6  5  4  ×
4 3  4  2  〇
5 6  7  8  ◎
6 6  5  6  △
7 8  8  3  △

Sub Try1() のFor〜Nextループ文を
> With Range("D3", Cells(Rows.Count, "F").End(xlUp))
> End With
で括ってやり、内部の Cells(i, j) を .Cells(i, j) のように
Cellsのまえにドットをつけてやれば、その他の変更は無用です。

Sub Try2()
 Dim maxVal As Long, maxCol As Long
 Dim i As Long, j As Long

 With Range("D3", Cells(Rows.Count, "F").End(xlUp))
  For i = 1 To .Rows.Count
    maxVal = .Cells(i, 1) '初めは1列目の値を
    maxCol = 1     '最大値とし
    For j = 2 To 3   '2,3列目の値をこれと比較
      If maxVal < .Cells(i, j) Then 'これまでの最大値より
        maxVal = .Cells(i, j)  '大きかったら、この値を最大値に
        maxCol = j       'かつ、最大値の列番号を更新
      ElseIf maxVal = .Cells(i, j).Value Then '値が最大値と同じとき
        maxCol = maxCol + j - (j < 3) '列番号を3以上にする
      End If
    Next
    .Cells(i, 4).Value = Choose(maxCol, _
          "×", "〇", "◎", "△", "△") 'maxColの値により記号を返す
  Next
 End With
End Sub


けれど、

>A1 B1 C1 をD3 D4 D5になった場合は如何すれば

これは列方向が行方向に変わるのですから、別の修正が必要です。
ほんとに表がそのように変わったのですか?
一応確認しときます。

6 hits

【70448】3つのセルの数字の比較評価 トキノハジメ 11/11/16(水) 19:04 質問
【70449】Re:3つのセルの数字の比較評価 UO3 11/11/16(水) 20:00 回答
【70450】Re:3つのセルの数字の比較評価 kanabun 11/11/16(水) 20:38 発言
【70455】Re:3つのセルの数字の比較評価 panpan 11/11/17(木) 15:53 発言
【70463】Re:3つのセルの数字の比較評価 トキノハジメ 11/11/18(金) 10:13 質問
【70464】Re:3つのセルの数字の比較評価 kanabun 11/11/18(金) 11:20 発言
【70465】Re:3つのセルの数字の比較評価 panpan 11/11/18(金) 12:06 発言
【70504】Re:3つのセルの数字の比較評価 トキノハジメ 11/11/21(月) 21:54 お礼

11800 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free