記録の先へ:スクリプトの条件分岐・ループ・変数
操作を記録して再生するマクロは、繰り返し作業を自動化する最も手軽な方法です。しかし、記録したマクロには根本的な性質があります。それは「毎回まったく同じことをする」ということです。実際の業務には「もし在庫がゼロなら発注する」「合計が予算を超えたら警告する」といった、状況に応じて動きを変える判断が数多く含まれます。記録だけでは、この「判断」を扱えません。
そこで登場するのが「スクリプト」です。スクリプトを使えば、条件分岐(もし〜なら)、ループ(繰り返し)、変数(値を覚えておく箱)といったプログラムの基本要素を、あなたの自動化に組み込めます。「プログラミング」と聞くと身構えるかもしれませんが、これらは日常の判断をそのまま形にしたもので、考え方は決して難しくありません。この記事では、記録の次のステップとして、スクリプトの3つの柱を分かりやすく解説します。
条件分岐(IF/ELSE):判断させる
条件分岐は、「ある条件が成り立つときだけ、特定の処理を行う」仕組みです。IFブロックは、条件が真(正しい)のときにだけ中の処理を実行し、ELSEはそれ以外の場合を担当します。たとえば「画面に『エラー』という文字があれば、担当者に通知する。なければそのまま次へ進む」といった動きが、これで表現できます。
条件として使えるのは、画面上に表示された値、特定のピクセルの色、あるいは変数に入っている数値などです。人間なら「画面を見て、状況を判断して、次の行動を決める」という一連の流れを無意識に行っています。条件分岐は、まさにその判断を自動化に取り込むためのものです。一度書いてしまえば、あとはコンピューターが、あなたの代わりに毎回正しく判断してくれます。
ループ(LOOP):繰り返させる
ループは、同じ処理を何度も繰り返す仕組みです。マクロの「再生回数」を指定するのと似ていますが、スクリプトのループはもっと柔軟です。「10回繰り返す」といった回数指定はもちろん、「リストの行がなくなるまで繰り返す」「特定の条件が満たされるまで繰り返す」といった、状況に応じた繰り返しができます。
ループの真価は、大量のデータを扱うときに発揮されます。「1件のデータを処理する」という処理をループで囲むだけで、「リストにある全件を処理する」に変わります。100件でも1000件でも、書く処理は1件分だけ。あとはループが自動で全件を回してくれます。手作業なら数時間かかる処理が、ループを使えば一度書くだけで、あとは待つだけになります。ここが、自動化が「数分」ではなく「数時間」を節約する分かれ目です。
変数:値を覚えておく
変数は、処理の途中で値を一時的に覚えておくための「箱」です。カウンター(何回目か)、ファイル名、画面から読み取った数値、計算の途中結果——こうした値を変数に入れておけば、後のステップで使い回せます。たとえば「セルの値を変数に読み込み、それが1万を超えていたら別のシートに転記する」といった処理は、変数と条件分岐を組み合わせて実現します。
変数・条件分岐・ループの3つが揃うと、自動化の表現力は一気に広がります。「データを読み取り(変数)、内容に応じて処理を変え(条件分岐)、全件に適用する(ループ)」——この組み合わせだけで、実務のかなりの部分をカバーできます。単純な記録・再生では手が届かなかった「賢い自動化」の入り口が、ここにあります。
エラー処理で「止まらない自動化」にする
条件分岐・ループ・変数に慣れてきたら、次に覚えたいのが「エラー処理」です。自動化を長く運用していると、想定外のことは必ず起こります。ネットワークが一瞬切れる、開くはずのファイルが見つからない、画面の表示が普段と違う——こうしたとき、何の備えもないスクリプトは、その場で全部止まってしまいます。無人で実行している夜間なら、翌朝まで作業が止まったままになりかねません。
そこで役立つのが、TRY/CATCHというエラー処理の仕組みです。「TRYブロックの中で失敗が起きても、そこで全部止まるのではなく、CATCHブロックに書いた処理(エラーを記録する、通知する、その1件だけ飛ばして次に進む、など)に切り替える」という動きを組めます。これにより、「1件失敗しても、残りは最後まで処理する」堅牢な自動化になります。人間なら当然のように行っている「失敗しても、いったん記録して先に進む」という対応を、スクリプトに教え込むわけです。
よく使うSCRコマンドを知っておく
makuroku のSCRスクリプトには、実務で頻繁に使うコマンドが揃っています。全部を一度に覚える必要はありませんが、どんなことができるかを知っておくと、「これも自動化できそうだ」という発想が広がります。代表的なものを挙げてみましょう。
- • FIND_IMAGE / WAIT_IMAGE:画面上の要素を画像で探す・待つ
- • IF / ELSE / LOOP:条件分岐と繰り返し
- • SET / ADD / SUB:変数への代入と計算
- • READ_FILE / WRITE_FILE:ファイルの読み書き
- • HTTP_GET / POST:外部サービスとの通信
- • NOTIFY / PROMPT:通知の表示、ユーザーへの入力要求
これらを組み合わせると、「ファイルからデータを読み込み、条件に応じて処理を変え、結果を外部サービスに送信し、完了を通知する」といった、単純な記録では到底届かない高度な自動化が実現できます。しかも、一つひとつのコマンドの役割はシンプルなので、覚えるのは難しくありません。必要になったコマンドから、少しずつ引き出しを増やしていけばよいのです。
スクリプトで実現できる自動化の例
条件分岐・ループ・変数、そしてエラー処理を組み合わせると、単純な記録では到底届かない自動化が可能になります。いくつか具体例を見てみましょう。たとえば「フォルダ内の全ファイルを1件ずつ開き、内容を確認して、条件に合うものだけ別フォルダに移動する」という作業。これはループで全ファイルを回し、条件分岐で振り分ける、という組み合わせで実現できます。手作業なら1時間かかる仕分けが、一度スクリプトを書けば数分で終わります。
別の例として、「Webサイトから定期的にデータを取得し、前回の値と比較して、変化があれば通知する」という監視作業も、スクリプトの得意分野です。HTTP通信でデータを取得し、変数に保存した前回値と比較し、条件分岐で「変化があれば通知」する。これをスケジュール実行と組み合わせれば、あなたが何もしなくても、変化を見逃さない監視の仕組みができあがります。
こうした自動化は、一見難しそうに見えますが、一つひとつの要素——ループ、条件分岐、変数、通信、通知——はどれもシンプルです。難しいのは「一度に全部を理解すること」であって、「一つずつ組み合わせること」ではありません。まずは条件分岐だけ、次はループだけ、というように、必要になった要素から少しずつ手を広げていけば、気づけばかなり高度な自動化まで自分で作れるようになっています。
重要なのは、いきなり完璧なスクリプトを目指さないことです。まず動く最小限の版を作り、実際に走らせて、うまくいかない箇所を少しずつ直していく。makuroku には実行中の行をリアルタイムでハイライトするデバッグ機能があるので、「今どこで、何が起きているか」を目で確認しながら改善できます。試して、直して、また試す——この反復こそが、スクリプトを使いこなす一番の近道です。
スクリプトを読みやすく保つコツ
スクリプトは一度書いて終わりではなく、後から見返して修正することが多いものです。だからこそ、書くときに「読みやすさ」を意識しておくと、後の自分が助かります。コツはいくつかあります。まず、変数には意味の分かる名前を付けること。「x」や「a」ではなく、「合計金額」「対象ファイル名」のように、中身が分かる名前にすれば、後から見ても処理の意図がすぐに理解できます。
次に、処理のまとまりごとにコメントを添えておくこと。「ここからデータ取得」「ここで金額をチェック」といった短いメモがあるだけで、スクリプト全体の流れが追いやすくなります。また、複雑な処理は、いくつかの小さなスクリプトに分けるのも有効です。一本の長大なスクリプトより、役割ごとに分かれた短いスクリプトの集まりのほうが、修正も再利用もしやすくなります。「未来の自分が読んで分かるか」を基準に書くことが、長く使えるスクリプトを作る秘訣です。
スクリプトのデバッグの進め方
スクリプトを書いていると、思いどおりに動かないことは必ずあります。そんなとき慌てずに原因を突き止めるのが「デバッグ」です。デバッグの基本は、「どこまで正しく動いて、どこから想定と違うか」を切り分けることです。makuroku には実行中の行をリアルタイムでハイライトする機能や、途中の値を画面に表示するPRINT出力があり、「今どこで、何が起きているか」を目で確認しながら原因を探せます。
効果的なデバッグの進め方は、まず処理を小さく区切って、一区切りずつ動作を確認することです。全部を一度に完成させようとすると、どこで問題が起きているのか分かりにくくなります。少しずつ書いて、こまめに動かし、正しく動くことを確認してから次に進む。この地道な反復が、結果的には最も速く、確実なスクリプト作りにつながります。エラーが出ても、それは「どこを直せばよいか」を教えてくれるヒントだと捉えれば、デバッグは怖くありません。
スクリプトを学ぶ順序の目安
スクリプトの要素をどの順番で身につけるとよいか、目安を示しておきましょう。最初に覚えたいのは、やはり条件分岐(IF/ELSE)です。「もし〜なら」という判断は、あらゆる自動化の基礎になります。次に、ループ(LOOP)。繰り返し処理は、大量のデータを扱う場面で絶大な効果を発揮します。この2つを使えるようになるだけで、単純な記録では届かなかった多くの作業が自動化できるようになります。
その次が、変数です。値を覚えておく仕組みは、条件分岐やループと組み合わせることで、より柔軟な処理を可能にします。ここまで来たら、エラー処理(TRY/CATCH)を学びましょう。無人で長く運用するなら、途中で失敗しても止まらない仕組みは欠かせません。そして最後に、ファイル操作やHTTP通信、OCRといった、目的に応じた専門的なコマンドを、必要になったものから覚えていけば十分です。
大切なのは、すべてを一度に覚えようとしないことです。実際の作業のなかで「これができたら便利だな」と思ったときに、その機能を調べて使ってみる。この「必要に迫られて学ぶ」スタイルが、結局は最も身につきます。教科書を最初から順に読むより、目の前の作業を自動化しながら、その都度必要な要素を吸収していくほうが、実践的な力になります。
スクリプトは、一見難しそうに見えても、一つひとつの要素はシンプルで、順を追って学べば必ず身につきます。そして一度身につければ、あなたが自動化できる作業の範囲は、劇的に広がります。まずは記録から始め、そこに条件分岐を一つ足すところから、スクリプトの世界へ踏み出してみてください。
記録からスクリプトへ、無理なく移行する
「スクリプトは難しそう」と感じる人にこそ知ってほしいのが、白紙から書く必要はない、ということです。makuroku では、まず操作をGUIで記録し、そのマクロを編集可能なSCRスクリプトに変換できます。つまり、動作する骨組みが最初から手に入るのです。あとは、繰り返したい箇所をLOOPで囲む、判断したい箇所にIFを足す、というように、必要な部分だけを書き換えていけば済みます。
さらに、入力中に構文チェックが働くので、書き間違いをその場で教えてくれます。実行中の行がリアルタイムでハイライトされるデバッグ機能もあり、「今どこを処理しているか」が目で見て分かります。こうした支援があるおかげで、記録からスクリプトへの移行はなだらかです。まずは記録で骨組みを作り、そこに少しずつ条件やループを足していく——この進め方なら、プログラミング未経験でも、実用的な自動化を自分の手で作れるようになります。makuroku なら、これらの機能をすべて無料で試せます。
無料で試す
それ、makuroku で自動化できます
makuroku はマウス・キーボード操作を記録して自動再生。物足りなくなったら SCR スクリプトや AI(MCP)連携も。全機能を Windows で無料で使えます。