[[20220119223307]] 『vbaで数字の並びかえ』(ゆで卵) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『vbaで数字の並びかえ』(ゆで卵)

よろしければ教えてください。エクセルは全くの初心者です。
数字を3つ入力して昇順に並べ替えたいです。ifで6通りの並べ替えを作れという指定があります。作ってみたのですが、bに一番大きい数が来た時にうまくいきません。どこが間違っているのか教えていただきたいです、よろしくお願いします!

a = s.Range("A1").Value
b = s.Range("A2").Value
c = s.Range("A3").Value

If a < b < c Then
s.Range("B1").Value = c
s.Range("B2").Value = b
s.Range("B3").Value = a
End If

If a < c < b Then
s.Range("B1").Value = b
s.Range("B2").Value = c
s.Range("B3").Value = a
End If

If b < a < c Then
s.Range("B1").Value = c
s.Range("B2").Value = a
s.Range("B3").Value = b
End If

If b < c < a Then
s.Range("B1").Value = a
s.Range("B2").Value = c
s.Range("B3").Value = b
End If

If c < a < b Then
s.Range("B1").Value = b
s.Range("B2").Value = a
s.Range("B3").Value = c
End If

If c < b < a Then
s.Range("B1").Value = a
s.Range("B2").Value = b
s.Range("B3").Value = c
End If

< 使用 Excel:Office365、使用 OS:unknown >


  例えば、a < b < c  という式は
 (a < b) < c と解釈されます
 まず、(a < b) の比較演算を行って、True か False の結果になります。
 そのあとで、
 True < c  か False < c が計算されます。
 論理値(True/False)と数値の比較演算って、どうなるかわかりますか?

 という理屈はさておき(入門書などで勉強してください。)
 
 If a < b < c Then は
 If (a < b) And (b < c) Then とするのがよいです。
(´・ω・`) 2022/01/19(水) 22:52

本当にありがとうございます!助かりました!
(ゆで卵) 2022/01/19(水) 23:18

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.