- 締切済み
文字列の比較
excelvbaです。(excel2003) 3個のセル(a1,b1,c1)に文字列が入っています。 このそれぞれ文字列の右8桁を比較し、 最小の文字列が入っているセルに色を付けたいのです。 調べたら、minは使えませんし、dminがありましたが、 right(range("A1").value,8)をどう扱うかが分かりません。 出来ましたら、dminでなく他の方法が在ればベターです。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mt2008
- ベストアンサー率52% (885/1701)
文字列としての比較ですか? 例:ABCDEFGHI、JKLMNOPQ、RSTUVWXY のうち一番小さいデータ 右8文字が数字の文字列で、その数字で比較ですか? 例:A00000001、B00000002、C00000003 後者ならANo.1、ANo.2の回答で大丈夫ですが、前者だとStrcompで比較する必要があります。
- watabe007
- ベストアンサー率62% (476/760)
参考に Dim c As Range With Range("A1:C1") For Each c In .Cells If Application.Evaluate("MIN(RIGHT(" & .Address & ",8)*1)") = Right(c.Value, 8) * 1 Then c.Interior.ColorIndex = 8 Exit For End If Next End With
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 条件付き書式ではダメですか? 必ず右8文字は数値とします。 A1~C1セルを範囲指定 → 条件付き書式 → 数式が → 数式欄に =RIGHT(A1,8)*1=MIN(RIGHT($A1:$C1,8)*1) として 書式 → パターン → 好みの色を選択しOK これでおそらくお望み通りになると思います。 ※ どうしてもVBAで!というコトであれば無視してください。m(_ _)m
お礼
早速有り難うございました。 strcompを見てみましたが、2個の大小しか聞けないみたいですね。 3個をまとめて調べたいのが狙いでした。 お世話になりました。