Power Automate Desktop(PAD)でテキストをDatetimeに変換する方法について解説します。
PADでテキストをDatetime型に変換する方法
PADでテキストをDatetime(日付型)に変換する方法には、以下のアクションを使います。
“2024/02/08” を変換する場合
“2024/02/08” など、yyyy/MM/dd で表されたテキストを変換する場合です。
「テキストをdatetimeに変換」を追加します。
これを実行すると、変換後の変数がDatetime型になります。
Datetimeに変換可能な形式一覧
Datetimeに変換可能な形式一覧は、以下のとおりです。
- 2024年02月08日
- 2024.02.08
- 2024 02 08
- 2024-2-8
- 2024,2,8
形式を直してから変換する場合
「2024ねん2がつ8にち」や、「20240208」などは、そのまま変換しようとするとエラーになります。
指定されたテキスト値を有効な datetime に変換できません
そこで、一度変換できる形式に直してから、変換にかける必要があります。
“2024ねん2がつ8にち” を変換する場合
「2024ねん2がつ8にち」をDatetimeに変換する場合、「2024」「2」「8」にいったん分ける必要があります。
「サブテキストの取得」アクションにて、〇文字目から〇文字分取得し、Year、Month、Dayそれぞれの変数に格納します。
最後に、「テキストをdatetimeに変換」アクションにて、それぞれを “/” でくっつけます。
“20240208”を変換する場合
「20240208」をDatetimeに変換する場合、どこからどこまでが年・月・日なのか分からないので、こちらも先ほどと同様に3つに分割します。
全角文字を半角文字に直してから変換する方法
「2024年2月8日」など、全角文字のテキストをDatetimeに変換するには、まず数字を半角にする必要があります。
全角文字のテキストを半角に変換するために、「VBScriptの実行」アクションを使います。
スクリプトは、以下のサイトに載っていたものをそのまま使わせていただきました。
Windowsで無料で使えるPower Automate Desktopの利用方法⑥ 全角数字を半角数字に変換したい
inp = "%NewVar%" 'NewVarをinpに格納する
out = ""'出力先outを初期化する
cnt = %NewVar.Length% 'NewVarの文字数を格納する
For lp = 1 to cnt
buf = Mid(inp,lp,1) 'inpを先頭から1文字づつ取得し、bufに格納する。
Select Case buf
Case "0": out = out & "0" 'bufが全角の「0」なら、半角の「0」を保存する
Case "1": out = out & "1" 'bufが全角の「1」なら ...
Case "2": out = out & "2"
Case "3": out = out & "3"
Case "4": out = out & "4"
Case "5": out = out & "5"
Case "6": out = out & "6"
Case "7": out = out & "7"
Case "8": out = out & "8"
Case "9": out = out & "9"
Case Else: out = out & buf 'bufが全角の「0」~「9」でなければ、元の1文字を保存する
End Select
Next
WScript.StdOut.Write(out) '編集が終わったoutを戻す
これを実行すると、元のテキストがDatetimeに変換されていることを確認できました。
まとめ
今回は、Power Automate Desktop(PAD)でテキストをDatetimeに変換する方法について解説しました。
当ブログでは、Power Automate、Power Automate Desktopに関する記事を他にも投稿しています。もし、「このようなことが知りたい」「こんなフローの作り方が知りたい」等ございましたら、問い合わせやコメントからお気軽にご連絡ください。
コメント