【第54回】ロータス博士のWinActor塾~ファイル一覧
今回はファイル一覧というライブラリについて紹介しよう。
前回の最後に、ファイルを特定するのに便利なものがあると言ったが
その一つがこのライブラリなのじゃ。
前回言われてからずっと気になってました!
勉強させてもらいますよ!博士!
お、いつになくやる気じゃな。
では塾のはじまりはじまり~じゃ。
ファイル名の取得
ライブラリの配置
ライブラリは以下の場所に格納されています。
NTTATライブラリ > 13_ファイル関連 > 04_ファイル一覧
プロパティ設定
ファイル一覧(ファイル名)取得ライブラリには4つの設定項目があります。
それぞれ確認してみましょう。
「フォルダ名 」にはファイルリストでも扱った通り、取得したいファイルが格納されているフォルダのパスを指定します。
「カウンタ」にはフォルダ内にあるファイルの番号を指定します。
ライブラリが実行され、ファイル名が取得されたら「ファイル名」に設定した変数に結果が格納されます。
それと同時に「種別」にはTrue、Falseのどちらかが格納され
Trueであればファイルが、Falseであればフォルダが取得されたことを意味します。
全然わけわかんないのが出てきましたね。
「カウンタ」って何ですか?
カウンタというのはファイルを一覧で見たときに順番に割り振った番号のことじゃ。
実はこのイメージを持ってもらうために前回ファイルリストを勉強したのじゃ。
もしファイルリストの勉強がまだの方は以下の記事を参考にしてほしい。
2021年11月18日
【第53回】ロータス博士のWinActor塾~
ファイルリスト
ファイルリストについて解説しています。実行結果を交えて
「ファイルリスト作成」ライブラリの使用方法と注意点を学びます。
今回使うライブラリは特定の1つのファイル名を取得するものじゃが
ファイルリストと同じように、実行するとフォルダの中を一旦全部チェックするのじゃ。
前回と同じフォルダを使ってみてみよう。
例えばフォルダ内がこのようになっているとすると・・・
このように、上から順番に番号が振られるのじゃ。
この番号は実際に目で見ることはできんが、頭の中でイメージして欲しい。
なるほど!この図はわかりやすいです。
つまり「カウンタ」に「0」を入れたら
「Microsoft Excel ワークシートA.xlsx」が取得されるんですね!
うむ、その通りじゃ!
このライブラリがどのような働きを持つか、これで理解できたと思う。
せっかくじゃから試してみよう。
実行して確認
「ファイル一覧(ファイル名)取得」ライブラリの動きを確かめるために以下のような簡易なシナリオで確認してみましょう。
フォルダパスも変数にしていますが、確認だけのシナリオですので直接入力でも構いません。
終了直前に待機ボックスを入れることで、実行後の変数の状態を確認できます。
変数は次のように準備されています。
カウンタに0を設定しておるから、エクセルファイルが取得できれば成功じゃな。
というわけで実行結果じゃ。
想定通りに取得できてますね!
うまくいったようじゃな。
エクセルファイルは”ファイル”じゃから種別にtrueが格納されているのう。
実行は成功じゃ!
何番目のファイルが欲しいかによって「カウンタ」の値を変えればいいんですね。
ハカソは4番かあ。
まあ・・・そうじゃな。
カウンタは0から始まることに注意するんじゃぞ。
ファイルのソート順
博士!聞いてください!博士!
一体どうしたんじゃ。そんなに慌てて。
自分でも試してみようと思って違うフォルダとファイルを作ったんですけど
思った通りのファイル名が取得できないんです。フォルダはこれです。
めちゃくちゃな名前じゃな・・・。
これでカウンタに0を指定したので「_aafe.xlsx」が取れるはずなんですけど。
結果はこうなっちゃいました。
これ絶対変ですよね?
なんでこんなことになっちゃうんでしょうか。
ふむ、実はこのライブラリはある程度名前順に番号が振られるんじゃが
記号などが混ざってくると、エクスプローラ上の順番と変わってくることがあるのじゃ。
これを確認するには前回の「ファイルリスト作成」が役に立つ。
リストを作成して見比べてみよう。
あ・・・本当だ。ファイルリスト作成で作った順序が正しいんですね。
えー、じゃあこれ全然使えないじゃないですか!
いや、本来このライブラリはカウンタの番号で狙い撃ちするようなものではないのじゃ。
そもそも番号が最初からわかるならファイル名もわかるじゃろう。
う、確かに・・・。
とはいえ、ソート順の問題じゃからな。
それを解決するライブラリは存在するぞ。
待ってました!
どんなライブラリですか?教えてください!
ソート順を指定する
ソート順の問題を解決するライブラリは「ファイル一覧(ファイル名)取得(ソート順あり)」です。
ライブラリは以下の場所に格納されています。
NTTATライブラリ > 13_ファイル関連 > 04_ファイル一覧
プロパティ設定
ファイル一覧(ファイル名)取得(ソート順あり)ライブラリには5つの設定項目があります。
それぞれ確認してみましょう。
「フォルダ名」「カウンタ」「ファイルパス」「種別」の使い方はファイル一覧(ファイル名)取得ライブラリと同様です。
このライブラリではそれに加えて「ソート」という項目があります。
このパラメータはプルダウンリストとなっていますので、任意の並べ替えの方法を選択しましょう。
指定できるソート方法は以下の6通りです。
ファイルの名前を基準に並び替えられます
・ファイル名(昇順)
・ファイル名(降順)
ファイルが作成された時間を基準に並び替えられます
・作成日時(昇順)
・作成日時(降順)
ファイルが最後に更新(編集)された時間を基準に並び替えられます
・更新日時(昇順)
・更新日時(降順)
では、もともとエクスプローラではどのような表示順になっていたのか確認しよう。
フォルダを開いて右クリックから「並べ替え」を見るのじゃ。
ふむ、名前で昇順が選択されておるな。
ではライブラリに設定するパラメータもそれに合わせてみよう。
「ファイル名(昇順)」じゃな。
ここまでわかればもうバッチリですよ!
実行します!いでよファイル名!
えぇ・・・
先走りすぎじゃよ。
しっかり話を聞かないからこうなるんじゃぞ。
「BOFとEOFのいずれかTRUEになっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。」
のエラーが出力された場合は次のような原因が考えられます。
・参照先のレコードが0件である
指定したフォルダ内にファイルがひとつも存在しない場合
・参照するインデックスが0になっている
「カウンタ」に指定した値が0の場合
特に2つ目にひっかかりやすい。最初に紹介したライブラリのカウンタは0からじゃったが
このライブラリでは0を指定することができないのじゃ。
カウンタは1からで数えよう。
まさに0でやってました・・・
こんなにあっさり引っかかるなんて。
ふぉっふぉっふぉ。
ではそのあたりの注意点も踏まえて確認用のシナリオを実行してみよう。
実行して確認
「ファイル一覧(ファイル名)取得(ソート順あり)」ライブラリのソートが
うまく動作するかどうかを確かめるために以下のような簡易なシナリオで確認してみましょう。
今回も実行後の変数の中身を確認するため、終了直前に待機ボックスを入れています。
変数は次のように準備されています。
一応「ファイル格納先その2」の中をもう一度確認しておこう。
こんな感じになっておったな。
それでは実行じゃ。
結果の変数はこのようになったぞ。
おお!完璧じゃないですか!
これで順番がおかしくなる問題は解決ですね!
うむ、そうじゃな。
じゃがさっきわしが言ったことを覚えておるかのう?
え、なんでしたっけ?
「失敗?これはうまくいかないということを確認した成功だよ。」
・・・かな?
トーマス・アルバ・エジソン
1847 - 1931
それはエジソンの名言じゃ。なぜに目隠し・・・。
まぁおぬしが好きそうなセリフじゃが・・・じゃなくて、
「本来狙い撃ちするような使い方はしない」というやつじゃよ。
1ミリも合っとらんぞ。記憶力どうなっておるんじゃ。
あ、それかあ!
つまりこのライブラリにはもっとちゃんとした使い方があると。
うむ!そういうことじゃ!
そこでロータス君に宿題を出すぞ!このライブラリの有効な使い方を探してみてくれ。
次回はその解説をしようと思うから、それまでにやってみるのじゃ!
「逃げるは恥だが役に立つ」
それはドラマ・・・じゃなくて、こら!どこいくんじゃ!
カッコイイ感じで言っても無駄じゃぞ!
うーむ、また逃げおった。読者の皆さんも是非使い方を模索してみて欲しい。
ということでまた次回!
関連記事こちらの記事も合わせてどうぞ。
2024.11.05
【第105回】ロータス博士のWinActor塾~新しい画像マッチング画面
2024.09.27
【第104回】ロータス博士のWinActor塾~ガイド利用シナリオ(作成編)
2024.09.10