セル内の文字の前後に空白があると、セル編集で中身を見てみないことには分からず気づきにくい。
そんな時は文字の前後にある空白を除去してくれるTrim便利。
Trim(引数)、戻り値はString
前後の空白は全て敵!何も考えずこんな感じの脳筋プログラムを作りました。
Dim r As Range For Each r In Activesheet.UsedRange r.value = Trim(r.value) Next
できれば良いのだ!Trimの話は以上!
ここから全然違う話になります。
なんやかんやで何度も実行するハメになりまして、2度目のTrimは意味が無いのでTrimする前に比較を入れました。面倒事の始まり!
If r.value <> Trim(r.value) Then r.value = Trim(r.value) End If
これは意味の無い比較。エラーにはならないけど、やらない方がマシ。扱うデータに依るけど一般的にセルには文字、数値、日付データが入ってます。この例だと数値や日付のデータが来た場合、Trimで返されたStringと比較すると、Excelが気を利かせて不一致判定を出します。そもそも他言語ではエラーになる気がします。
文字は文字と比較、数値は数値と比較、日付は日付と比較するのが正しいです。
という事でセル値のデータ型を調べてから比較することになります!型を調べるにはTypeNameを使います!Trimしたいだけだったのに!面倒なのでやりません!!
以上。