C#
Excel
office
VSTO

Excelセルの判定方法(数値、文字列、日付、時刻、論理値)

各種のAPIを用いた結果を以下の画像に記載します。

18d125d31d80f14dc9c96a97eec4780c.png

セルの種別

判断するセルの種類(数値/文字列/日付/時刻/論理値)

概要

各種判定メソッドを用いてセルの形を判断する。

ただし、時刻「23:59:59」などは数値セルの判定となり、数値と時刻の区別が付かないためcell(“format”, 対象セル)の戻り値でD6/D7/D8/D9になる場合は時刻表示として判断する必要がある。

※時刻は、セルの値で0~0.9999999999999で保持され表示書式として「hh:flag_mm:ss」などを指定すると時刻として表示されるためこのような仕様となる。

判断の順序

1.VBAでIsDateで日付形式かどうか判定 → 日付確定

2.IsTextで文字列かどうか判定 → 文字列確定

3.IsLogicで論理値かどうか判定 → 論理値確定

4.IsNumberで数値かどうか判定 → Cell(”format”, 対象セル)の戻り値がD6~D9の場合は時刻確定、それ以外は数値確定

※1と2の順序は逆でも大丈夫です、文字列形式の日付を日付として扱うか文字列として扱うかにより順序を変えてください。

補足情報(VBAソースコード)

b7b799c6e93b537bf53a4c05cb902ec1.png