へっぽこヘタレシステム管理者の管理人です。
職場で、EXCELマクロの作成依頼を受けて・・・
条件を伺ったところ・・・
文字列&不等号で条件が記載されてきて意味が分からん
手書きの紙で・・・
【+以上だったら】
と記載されていました。
管理人には【???】だったので、電話で聞くと・・・
セルには・・・
- +
- ++
- +++
- ++++
- +++++
- ±
- -
が条件として入力されていて・・・
【+】が1個以上だったら・・・
条件判定として【TRUE】となるとのことです。
ただ、テキストで不等号を条件として記載するのは意味不明なので止めて欲しいところです。
言葉では分か難いと思いますので、エクセルの画面では下図の様になります。
配列で処理する
どういう手法を使うかイロイロと悩みましたが・・・・
配列で処理することにしました。
コードは次のとおりです。
Sub main()
Worksheets("Sheet1").Activate
Dim array1() As Variant
array1 = Array("+", "++", "+++", "++++", "+++++")
Dim rowcount As Long
rowcount = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To rowcount
Cells(i, 2).Value = False
For j = LBound(array1) To UBound(array1)
If Cells(i, 1).Value = array1(j) Then
Cells(i, 2).Value = True
End If
Next j
Next i
End Sub
配列【array1】にヒットすべき文字列を格納します。
そこから・・・
参照するセル = 配列の中の文字列を順番照合
し・・・
該当する文字列があれば・・・
【TRUE】を返すという仕組みにしてみました。
いちおうこれで、やりたい事はできましたが・・・
もっとスマートなやり方があるのかもしれません。
コメント