「セルを読み込み」で日付を読み取る場合

いつもお世話になっております。

「セルを読み込み」で、日付を読み取る場合、対象の文字列が、
「2024/1/29」でも「令和6年1月29日」の場合でも読み取れるようにしたいのですが、どのようにな処理が必要でしょうか??

こんにちは

セルの書式で表示形式が変更されている場合は、特段の措置は不要かと思いますが
セルには文字列として「令和6年1月29日」が入っていますでしょうか?

あるいは何かエラーが出ていますでしょうか?

こんにちは。
いつもお世話になっております。

見かけは令和表示ですが、Excelの数式バーを見ますと「2023/4/25」と表示されています。
通常通り実行してみますと、
「 “message”: “セルを読み込み: StringConverter cannot convert from System.DateTime.”,」とエラーが表示されます。

こんにちは

必ずDateTime型で返ってくるのであれば、セル読み込みアクティビティにセットする変数をDateTIme型にする。
あるいは文字列であることもある場合は、Object型または、GenericValue型の変数をセットして、必要に応じて変換する。

のいずれかをお試しください。

DateTimeとObject型、両方試しましたが、どちらも “message”: “05/17/2023 00:00:00”,で返ってくるのですが問題ないのでしょうか??

こんにちは

DateTime型で常にエラーなく取得できるのであれば、DateTime型で良いと思います。
日時以外の情報が来る可能性がある場合は、Object型の方が無難かもしれません。

中身としては問題ないと思いますが、この後どのように処理するかにもよります。

承知いたしました。
この後の処理は、次の通りで問題ないでしょうか??

「セルを読み込み」で変数(object型):「日付_obj」として出力しました。
この後の作業は、代入で、

ci = New System.Globalization.CultureInfo("ja-JP")
ci.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar()
日付 = 変数_obj.ToString("ggyy年MM月dd日",ci)

としたのですが、一番最後のアクティビティでエラーが生じています。

間違いだらけかもしれませんが、アドバイスお願いいたします。

こんにちは

object型で受けた場合はそれをDateTime型に変換する必要があります。
例えば

dateTimeVar = CDate(日付_obj)

としておいて

日付 = dateTimeVar.ToString("ggyy年MM月dd日",ci)

としてみてください。

アドバイスありがとうございます。
試した結果、「 “message”: “A.D.23年05月17日”,」と表示されます。
何がいけないのでしょう??

上記は端折りましたが

ci = New System.Globalization.CultureInfo("ja-JP")
ci.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar()

は必要になりますので、もしセットしていなければこちらを事前にセットしてください。

1 Like

無事解決できました。
ご丁寧に教えてくださりありがとうございました :relieved:

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.