
【いきなりStudio13】(ソース・テンプレート編)Configファイルの読み込みでガチろう①~今回は、操作が長いんで、流れを一気にやる( ´∀` )
さてと、前回
で、
ファイルの存在を確認アクティビティ
まではやったので、今回はこれまでと少し構成を変えて、ここまで引っ張ってきたので、
Configファイルの流れを一気にやってく💃
細かいひとつひとつのアクティビティの
説明
考え方
こうした方がいい
そもそもConfigファイルって何
みたいなことは次回以降で順を追って説明する💃
☞実際に、1回自分で組んで動かした方
が理解が深まる( ´∀` )
モダンでやってる人は、別にオイラが嫌いなだけだし、
みたいなサイトもあるみたいだから、まあ参考になれば幸い( ´∀` )
んだば、早速
前回までのソース

基本的な操作の流れ(間の確認は今回は抜き)
ディクショナリ引数を準備する
ディクショナリの初期化
Excelアプリケーションスコープを設定
Configファイルを取得する
Configファイルの全シートを取得
Configファイルの各シート分繰り返し
各シート全体を読み込み
各シートの各行を読み込み
ディクショナリに各行の値を代入
Configファイルを閉じる
RobotMainに引き渡す
って感じかな( ´∀` )
以下の操作説明で、操作説明どおりに変数がうまく出てこないって人が出てくると思うので~~~
実際の操作の前に、先に完成形の変数パネルを見せておくけど、

あくまでも正常処理(Try)中の処理でしか使わない変数ばかりなんで、
敢えて、スコープを正常処理に設定してる
別にこれ以上広い

にしてあげてもいいんだけど、
スコープはその変数を使う範囲で、一番広いものにしといた方がいい
(何かの処理が追加になって、その変数を使わないといけなくなることがある)
ので、今回は正常処理が適切かなと( ´∀` )
そろそろ今後色々面倒くさそうなので

ちょっと、時間がかかるんだよねえ( ;∀;)
毎回( ´∀` )

30分以上かかった( ;∀;)
じゃ早速、ひとつひとつ操作を
まずは、Configファイル読み込み用の処理を追加していくので、事前準備で、新しいシーケンスを追加


1.ディクショナリ引数を準備する
今までは、プロパティから必要な変数や引数をCtrl+Kなんかで追加してたけど、今回はアクティビティに依拠しない引数を新規で追加するので

ReadMKakuConfig
てな名前にして、









※ここが意外とインターネットの記事でも
当たり前すぎると思っているのか載っていないことが多いので、さっきと同じエラーメッセージが出てきたら、
ディクショナリの型指定(String、String)
が出来てるか
を見てみてね。開発現場でやっていたオイラも久しぶりだと意外と忘れる( ´∀` )
2.ディクショナリの初期化
アクティビティに紐付かない変数や引数は、そのまま代入しようとすると、入れ物が準備出来てないから、そのままだとエラーになる( ´∀` )なので、
初期化のシーケンスに
ディクショナリ引数を代入👀💦



右辺には、
new System.Collections.Generic.Dictionary(of String, String)
を入れて~~~


3.Excelアプリケーションスコープを設定
で、ここからMKakuConfigファイル=Excelファイルを使うので~~~
Excelファイルを使う用のアクティビティを

インターネット上の記事なんかでは、ここではよく、
最近のアクティビティのモダン化
に合わせて、
Excelプロセススコープ
を使う人が多い。
んだけど、オイラは、既存のワークブックに変数を設定して、
ロボットの処理中に、MKakuConfigファイルを開きっぱにして、処理の間、他の人がファイルを編集できないようにしておきたい
(いや、ホント多いのよ。ロボの処理中に影響ないと思って、途中でファイル触る方が( ´∀` ))
ので、
Excelアプリケーションスコープ

を使う💃

4.Configファイルを取得する

前回までに使ったMKakuConfigファイルの
フルパスを設定して~~~

プロパティの下にある




でブックの変数を出力しておく

自動的に選んで作成できてるね👀
5.Configファイルの全シートを取得


6.Configファイルの各シート分繰り返し




テキストとして扱うので

7.各シート全体を読み込み







で、読み込んだ各シートの範囲をデータテーブルにセット

8.各シートの各行を読み込み



でここまでで、データテーブルなんかがどうなっているかを確認したいので


Main.xamlタブを選んで、ファイルを実行してみると、



セット出来てんね👀
でここまで確認出来たら、ブレークポイントを入れたメッセージをログアクティビティは要らないので削除

9.ディクショナリに各行の値を代入


1で作って、2で初期化した引数
ReadMKakuConfigディクショナリ
を使って、
左辺:ReadMKakuConfig(CurrentRow("キー").ToString)
右辺:CurrentRow("値").ToString
て感じで



で、ここまででもう一回ローカルを確認したいので、

Main.xamlタブを選んで、ファイルを実行してみると、

🖋をクリックして~~~



ことが確認出来たね👀
10.Configファイルを閉じる
さっきの操作までだと、
Excelが開きっぱでずっと閉じない
☞処理が終わってるのに、誰も触れない
なんてことが起きることがよくあるので、
ブックを閉じるアクティビティ
で、使い終わったExcelファイルを確実に閉じる
ようにしておく
☞当たり前の作法
だけど、忘れる人が多い( ´∀`)


ちょっとわかりにくいので、今までのアクティビティをちょっと折りたたんで

で、Excelアプリケーションスコープをセットしたときに、出力に設定してた変数を


Main.xamlタブを選んで、ファイルを実行してみると、

確実にMKakuConfigファイルが閉じてる
のが確認できた( ´∀` )
11.RobotMainに引き渡す

ReadMKakuConfigを受け取る(入力用の)引数を追加してく

同じ型のディクショナリを選択







をセットして~~~
Main.xamlタブを選んで、ファイルを実行してみると、

にも値が入ったことを確認

と同じ値が引き継がれてんね( ´∀` )
で最後に、もう一回今度はプロジェクトを実行できちんと通るか確認


最後に、引数を追加したことでMain.xamlにも実は、、、

引数をインポートをクリックして

コッチは今回の操作で特に引き渡すものはないので、詳細エディターで何かを操作しなくてOK( ´∀` )
☞引数の管理について、
Studioはめっちゃ
神経質なんだよね~~( ´∀` )
操作説明としては以上( ´∀` )
要らなくなったブレークポイントを外す




ジャンプしてくれるので~~~



毎回恒例のソース・リファクタリング
■リファクタリング前

■リファクタリング後

今回追加した処理シーケンスを折りたたむと

ソース・リファクタリング後に念のため、最後にもう一回プロジェクトを実行

今回は、以上( ´∀` )
さてと、次回は
今回使ったアクティビティを順番にひとつひとつ分解しながら解説してく💃
その前に、まずは、
そもそもConfigファイルの解説からかな🧐
明日はデジタルフリーなのでまた来週( ´∀` )