##使用ソフト・プログラミング言語
使用ソフト:Excel2016
使用言語:VBA
前提・実現したいこと
Excelのセルの文字列(利用者が時刻として入力した文字列)を時刻として変数に取得したいのです。
発生している問題・エラーメッセージ
下記コードを実行してみたところ、型エラーが発生し、ウォッチウィンドウで確認したところ、セルの文字列を小数点ありの数値?文字列?として取得しているための型エラーのようです。セルの文字列をちゃんと時刻として取得するにはどこを修正すればよろしいでしょうか?
取得前にISDATEを実施してみたところTrueでした。
セルの表示形式:[DBNum3]h:mm
※全角の時刻にしてあります。
該当のソースコード
VBA
1dim 時間 as date 2時間 = cells(7,10).text'J7セルの値を時刻として変数に格納する 3
「ちゃんと時刻」というのは?
シリアル値ですか?文字列ですか?
たぶん現在はシリアル値が取れているので、正しい値ではあると思います。
ちなみに時刻のシリアル値は、小数値で表され、0.5が昼の12時です。
Excel2013で試したところエラーは出ませんでした。
どんなエラーが出ましたか? 実際のエクセルシートとエラー画面を貼ってもらえませんか?
コメントありがとうございます。
シリアル値というのがあるんですね。
16:00と表示されているセルの値を16:00として日付型変数に格納(代入)する予定でしたが、変数に代入するときにセルの値を小数点付の文字列と認識しているため、型違いのエラーが発生しています。
この場合は、シリアル値を時刻に変換してからでないと変数に代入できませんか?
シリアル値は既に時刻です。
代入先が文字列とのことですが、質問文はdate型に入れてて矛盾してます。
例えば昼の12時なら、"12:00"が欲しいのか、0.5が欲しいのかどちらですか?
12:00として取得したいです

回答1件
あなたの回答
tips
プレビュー