タグ別アーカイブ: 条件分岐

ゲームではじめるマクロ/VBA~条件分岐

前々回に試して頂いた「めいろ1」ですが、「X」の壁にぶつからないで「オバケ」をつかまえられたでしょうか?

もし、壁にぶつかると条件分岐処理によりペンギンは止まります

今回は、この条件分岐の処理を体験して頂きます

アイコン

めいろゲーム_1 200.40 KB 5 downloads

...

アイコン

演習2 133.64 KB 1 downloads

...

通常のIF関数の復習

今回は、前回使用した演習2のファイルからはじめます

このファイルのK8セルには上記のようなIF関数が埋め込まれています

ですので、「迷路の一の二/C4セル」に”X”が入力されていると”終了”の文字を出力します

このIF関数と同じ仕組みが、記事の冒頭の「カベにぶつかったとき」のマクロの処理に組み込まれています

壁にペンギンをぶつける

では、今回はめいろ1にて敢えてペンギンを壁/Xにぶつけてみましょう!

上の画像のように、コードの1行目で下に進むようにすれば、スタートボタンを押すのとほぼ同時に壁にぶつかります

上の画像では、数式バーに「X」と出ています

つまり、これはカーソルがある箇所にXが入力されているということになります

カーソルがある箇所のセルの中味が「X」の場合には、処理が止まるようにマクロが組み込まれているわけですが、コードにすると次のようになります

2行目の「End」は「マクロ処理」の終了という意味です

この「End」というコードが、1行目のIfからはじまるコードと3行目のEnd Ifに囲まれています

1行目のコードでは、IfとThenの間に「Selection.Value」というコードが入力されています

「Selection.Value」については、今の段階では次のように解釈しておいてください

「選択/Selectionした箇所 中味/Value」

つまり、「もし/If、カーソルが選択されているセルの中味が”X”の場合には」という条件式が「If Then」の の箇所に書いてあります

そして、条件に合う場合には、次の行から書いてあるコードを実行します

3行のEnd Ifは、条件に合う場合に実行されるコードの終点を示しています

条件分岐処理を体験する

では演習2のファイルに戻ります

こちらのファイルにあるSample3のマクロを開いてみて下さい

今回は、下の画像の「Visual Basic」のところをクリックしてみましょう!

すると「Sub Sample3()」の箇所がみえるはずです

こちらのマクロは、実行するとカウンターとして設定した「myCount」が1から3まで増える間にメッセージボックスを3回繰り返し表示します

では、今回はFor ~ Next文の中に次の3行を入力してみましょう

こちらのコードは「もし/If、1からはじまるmyCountが1の場合には、マクロを終了する」という意味になります

ですので、このIf文をMsgBox~の上に書くと、メッセージボックスは1度も表示されません

<まとめ>

今回は、条件分岐の処理を体験して頂きました

前回の繰返し処理もそうですが、この条件分岐処理は操作を記録して再生する「記録マクロ」では実行できません

ですので、繰り返し処理と同様にシステムの醍醐味といってもいい処理だと思います

ぜひ、手を動かして体感してみてください

尚、記事の中で無造作にマクロという言葉を使用していますが、こちらはVBAコードを集めたセット/一式ぐらいに思っていただければ結構です

ではまた次回もよろしくお願いします


にほんブログ村


RPA導入日記~便利技~

 今回はRPAを作成してきて、”これは便利だ、助かった”という技を2つだけですが紹介したいと思います。

 尚、内容はUipathでの内容に限られる点と、あくまで私個人の感想である点については予めご了承いただきたいです

1.条件分岐XxBOOLEAN型変数(フラグ)x条件分岐

RPAの場合、他の言語以上に分岐処理や繰り返し処理をどう行うかが重要だと考えています

特にBOOLEAN型の変数を使う機会は多いと思います

条件の発生と処理自体の分岐がシナリオ上、遠く離れていたり、並行処理を行う必要あったりするとき、もしくはAND条件やOR条件が絡む時にこの型の変数を条件分岐処理や繰り返し処理と組み合わせて使うととても便利です

➀まずフラグを設定する

②分岐処理の中でフラグの値を変える

③更にはフラグの値によって処理を変える

2.リトライスコープ

RPAが扱う業務は本来定型です。ところが、アプリケーションによってはパフォーマンスなどの要因により、以下のような、そうでないケース(定形的でない)もあります

・RPAでOKボタンをクリックしても、クリックできていない時がある

・保存などの処理を行った時に”処理しますか?”などの確認メッセージが1つだけ出てくるときもあれば、複数出てくる時もある

上記のような場合への対応策として繰り返し処理を入れたりすると、無限ループに陥るケースがあります

Uipathでは繰り返し処理以外の対応策として、リトライスコープという便利なアクティビティを用意しています

リトライスコープは条件通りの状態になるまで、”ある指定した操作”を”指定した回数”行います

ですから、指定した回数の操作を行ったら、処理を終了するので無限ループに陥ることはありません

このアクティビティはエラー対策としてとても便利なので、ぜひ有効活用してください

本来であれば”セレクター関連”もぜひ紹介しておきたかったところですが、それはまた別の機会にしたいと思います

また次回をお楽しみに!

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村 IT技術ブログ VBAへ

にほんブログ村