VBATips

セルに入力した時刻をTimeValueに設定する際「型が一致しません」が表示される

セルに入力した時刻をTimeValueに設定する際「型が一致しません」が表示される

ユーザーにマクロ起動時刻をセルに入力してもらいたい場合があります。
例えば、
ユーザーには「11:00:00」と入力をしてもらう→11時00分をマクロ起動時刻としたいが、エラーが発生してしまう。

「型が一致しません」のエラーが表示される原因

セルに時刻を入力すると見た目は時刻のようだが、実際の値は「シリアル値」のため、
型が一致しないためのエラーが発生します。

Public Sub sample()

    Cells(1, 1).Value = "11:00:00"
    
    '■Valueを省略しようがしなかろうが、実行時エラー13 型が一致しませんエラー発生
    Debug.Print TimeValue(Cells(1, 1))
    Debug.Print TimeValue(Cells(1, 1).Value)
    
    '■セルのシリアル値を変換かけて文字列にすることでエラーは発生しなくなる。
    Debug.Print Format(Cells(1, 1), "hh:mm:ss")
    Debug.Print Format(Cells(1, 1).Value, "hh:mm:ss")
    
    
End Sub

関連記事

コメント

タイトルとURLをコピーしました