• 締切済み

文字列の比較

excelvbaです。(excel2003) 3個のセル(a1,b1,c1)に文字列が入っています。 このそれぞれ文字列の右8桁を比較し、 最小の文字列が入っているセルに色を付けたいのです。 調べたら、minは使えませんし、dminがありましたが、 right(range("A1").value,8)をどう扱うかが分かりません。 出来ましたら、dminでなく他の方法が在ればベターです。 宜しくお願いします。

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

文字列としての比較ですか? 例:ABCDEFGHI、JKLMNOPQ、RSTUVWXY のうち一番小さいデータ 右8文字が数字の文字列で、その数字で比較ですか? 例:A00000001、B00000002、C00000003 後者ならANo.1、ANo.2の回答で大丈夫ですが、前者だとStrcompで比較する必要があります。

nagahaha
質問者

お礼

早速有り難うございました。 strcompを見てみましたが、2個の大小しか聞けないみたいですね。 3個をまとめて調べたいのが狙いでした。 お世話になりました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

参考に 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)
回答No.1

こんにちは! 条件付き書式ではダメですか? 必ず右8文字は数値とします。 A1~C1セルを範囲指定 → 条件付き書式 → 数式が → 数式欄に =RIGHT(A1,8)*1=MIN(RIGHT($A1:$C1,8)*1) として 書式 → パターン → 好みの色を選択しOK これでおそらくお望み通りになると思います。 ※ どうしてもVBAで!というコトであれば無視してください。m(_ _)m