この記事では今日の日付を自動認識して、日付をもとに「2022-01-17」のような名前でフォルダ・ファイルを作成する方法について学習します。
今日の日付の名前を付けてフォルダを作成する。
▲「日時」グループの中の「現在の日付を取得します」アクションを追加します。
▲パラメーターはデフォルトのまま「保存」をクリックします。もし他の国の時間を使うときはシステムタイムゾーンの値を変更してください。
▲テキストグループの中の「datetimeをテキストに変換」アクションを追加します。
▲パラメータを入力します。
- 変換するdatetime:%CurrentDateTime%
- 使用する形式:カスタム
- カスタム形式:yyyy-MM-dd
変換するdatetimeに渡している%CurrentDateTime%
は「現在の日付を取得します」アクションが生成する変数です。
「使用する形式」はデフォルトで用意されている形式を使用するか、オリジナルの形式を使用するかを選択します。
カスタム形式には、「yyyy-MM-dd」という形式で渡してます。例えば2022年1月17日の場合「2022-01-17」という文字列が取得できます。小文字と大文字によって意味がかわるので注意してください。例えばMMをmmにすると違う結果になります。ここで使用できる記号については後述します。
▲フォルダーグループの中の「フォルダーの作成」アクションを追加します。
▲パラメータを入力します。
- 新しいフォルダーを次の場所に作成:フォルダーを作成するパスを指定します。
- 新しいフォルダー名:%FormattedDateTime%
%FormattedDateTime% 変数は「datetimeをテキストに変換」アクションが生成する変数です。この変数を渡すことで「2022-01-17」という名前でフォルダーを作成します。
「2022-01-17_請求書」というように日付以外の文字列と組み褪せて命名する場合は%と%の間に文字列を挿入します。(例:「%FormattedDateTime_請求書%」)
このアクションの詳細な使い方については後述します。
▲フロー実行後に「フォルダーの作成」アクションに指定したパスをエクスプローラーで確認してみます。本日の日付の名前のフォルダーが作成されていることがわかります。
日付の名前でフォルダーを作成することができました。
ファイルを作成する場合も、同様にファイル名に%FormattedDateTime%を使えばOKです。
「datetimeをテキストに変換」アクションについて
日付はDatatime型という特殊な形式の変数で保存されます。この変数の値を直接フォルダ名として使用することはできないため、一度テキストに変換して使います。「datetimeをテキストに変換」アクションはDatatime型変数をテキストに変換する役割のアクションです。
テキストに変換する方法として「表示する形式」パラメータで次の2つのいずれかを選択します。
2つのテキストへ変換する方法
- 標準
- カスタム
「標準」の表示形式
「標準」はデフォルトで用意されている表示形式から選択して使います。
例:2022年1月17日 12:34:56の場合
設定値 | 結果の例 |
---|---|
短い日付形式 | 2022/01/17 |
長い日付形式 | 2022年01月17日 |
短い時刻形式 | 12:34 |
長い時刻形式 | 12:34:56 |
完全なdatetime(短い時刻形式) | 2022年1月17日 12:34 |
完全なdatetime(長い時刻形式) | 2022年1月17日 12:34:56 |
一般的なdatetime(短い時刻形式) | 2022/01/17 12:34 |
一般的なdatetime(長い時刻形式) | 2022/01/17 12:34:56 |
並び替え可能なdatetime | 2022-01-17T12:34:56 |
カスタム形式に使用できる記号
「カスタム」は、下の表の記号を用いてオリジナルの表示形式を作成することができます。
例:2022年01月09日(日曜日) 01:02:03の場合
記号 | 意味 | 例 |
---|---|---|
y | 年月 | 2022年1月 |
yy | 西暦の下2桁 | 22 |
yyy | 西暦4桁 | 2022 |
yyyy | 西暦4桁 | 2022 |
M | 月(桁を揃えない) | 1 |
MM | 月(桁を揃える) | 01 |
MMM | 月(桁を揃えない) | 1 |
d | 日(桁を揃えない) | 9 |
dd | 日(桁を揃える) | 09 |
ddd | 曜日(省略名) | 日 |
dddd | 曜日(完全) | 日曜日 |
D | 年月日(桁を揃えない&文字列表記) | 2022年1月9日 |
h | 時(12時間表記&桁を揃えない) | 1 |
hh | 時(12時間表記&桁を揃える) | 01 |
H | 時(24時間表記&桁を揃えない) | 1 |
HH | 時(24時間表記&桁を揃える) | 01 |
m | 分(桁を揃えない) | 2 |
mm | 分(桁を揃える) | 02 |
s | 秒(桁を揃えない) | 3 |
ss | 秒(桁を揃える) | 03 |
tt | 午前/午後の表示 | 午前 |
zzz | UTCとの時間差 | +09:00 |
個人的によく使うのは「yyyy-MM-dd-HHmmss」です。
「フォルダーの作成」アクションについて
「フォルダーの作成」アクションはフォルダーを作成することができます。
同じ名前のフォルダーが存在する場合の挙動は?
同じ名前のフォルダーが存在する場合、エラーは起きずフォルダーの作成アクションは実行をスキップして次のアクションが実行されます。 NewFolder変数の中身には既存の同名フォルダーの情報が格納されます。
同じ名前のフォルダーが存在して実行がスキップされたかどうか、どうやって判断するの?
NewFolder変数はFolder型変数です。アクション実行後にFolder型変数のプロパティを確認することで「フォルダーが存在してアクションがスキップされた」か「フォルダーを新規作成できた」かを判断できます。
【注意!】スラッシュはファイル名・フォルダ名に使用することができません!!!
日付によくつかわれる「/」スラッシュはファイル名・フォルダ名に含めることができません。このため例えば「2022/01/17」という文字列を「フォルダーの作成」アクションに渡してフォルダーを作成するとどうなるかというと、スラッシュが階層の意味にとらえられて下図のような3つのフォルダーが作成されます。
Excelを今日の日付の名前を付けて保存する方法は?
▲「日時」グループの中の「現在の日付を取得します」アクションを追加します。パラメーターはデフォルトのまま「保存」をクリックします。もし他の国の時間を使うときはシステムタイムゾーンの値を変更してください。
▲テキストグループの中の「datetimeをテキストに変換」アクションを追加してパラメータを入力します。
- 変換するdatetime:%CurrentDateTime%
- 使用する形式:カスタム
- カスタム形式:yyyy-MM-dd-HHmmss
変換するdatetimeに渡している%CurrentDateTime%
は「現在の日付を取得します」アクションが生成する変数です。
「使用する形式」はデフォルトで用意されている形式を使用するか、オリジナルの形式を使用するかを選択します。
カスタム形式には、「yyyy-MM-dd-HHmmss」という形式で渡してます。例えば2022年1月17日23時59分12秒の場合「2022-01-17-235912」という文字列が取得できます。小文字と大文字によって意味がかわるので注意してください。例えばMMをmmにすると違う結果になります。ここで使用できる記号については後述します。
▲「Excel」グループの中の「Excelを閉じる」アクションを追加します。
- Excelインスタンス:%ExcelInstance%
- Excelを閉じる前:名前を付けてドキュメントを保存
- ドキュメント形式:Excelブック(xlsx)
- ドキュメントパス:C:\Users\user\Desktop\請求書\請求書%FormattedDateTime%.xlsx
ドキュメントパスに%FormattedDateTime%変数を使います。
▲フロー実行後に「Excelを閉じる」アクションに指定したパスをエクスプローラーで確認してみます。本日の日付の名前でExcelが保存されていることがわかります。
Robinソースコード
Excel.LaunchExcel.Launch Visible: True LoadAddInsAndMacros: False Instance=> ExcelInstance DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyy-MM-dd-HHmmss''' Result=> FormattedDateTime Excel.CloseExcel.CloseAndSaveAs Instance: ExcelInstance DocumentFormat: Excel.ExcelFormat.FromExtension DocumentPath: $'''C:\\Users\\user\\Desktop\\請求書\\請求書%FormattedDateTime%.xlsx'''
まとめ
この記事では、日付を使ってフォルダ・ファイルに名前を付ける方法について学習しました。
このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。