VBAで配列に入れた文字列をselectcaseで判定をしてるのですが、並べ替えや、その文字列をセルに入れてifで判定したときと違う結果になってしまいます。
コードは
dim ary1
dim ary2
・・・・
select case true
case ary1(i1,14)>ary2(i2,14)
・・・
case ary1(i1,14)=ary2(i2,14)
・・・
case ary1(i1,14)<ary2(i2,14)
・・・
end select
なのですが、ary2(i2,14)の方が並べ替えで上にくる文字列でも最初の判定でfalseになって3番目の判定でtrueになります。
比べてる文字列をセルに貼り付けてifで判定するとary2(i2,14)の方が小さいと判定されました。
どうしてかわかる方いましたら教えてください。
よろしくお願いいたします。
再現できるコードを提示できませんか。
実際の代入した文字列、If文の方のコードが分かるように。
お返事ありがとうございます。
比べたのは
A1セル:令和4年度一宮市まちづくり部区画整理課
A2セル:令和4年度一宮市まちづくり部公園緑地課
=IF(A1>A2,A2,A1)
で令和4年度一宮市まちづくり部区画整理課が表示されます。
先にいれたコードではaray2に令和4年度一宮市まちづくり部区画整理課が入っています。
よろしくお願いいたします。
A1、A2セルにそのように入力して、下記のコードを実行してみてください。
Dim ary1(0, 0)
Dim ary2(0, 0)
ary1(0, 0) = Range("A1")
ary2(0, 0) = Range("A2")
Select Case True
Case ary1(0, 0) > ary2(0, 0)
MsgBox "A1の方が大"
Case ary1(0, 0) = ary2(0, 0)
MsgBox "同じ"
Case ary1(0, 0) < ary2(0, 0)
MsgBox "A2の方が大"
End Select
メッセージボックスには何が表示されますか。
こちらのExcelでは、"A1の方が大" と正しく表示されます。
IF文ではA1セルの方が小さい判定だと思うのですが、私が勘違いしてますか?
私がA1セルにarey2の文字列を入れたのでややこしかったですね。

回答2件
あなたの回答
tips
プレビュー