画面の文字をマクロに読み取る方法
Windows マクロの中で画面を OCR:任意のウィンドウから数値、状態、名前を読み取り、それをもとに次の処理を決めます。
2026年9月18日更新 · 画面からの文字読み取りは Myna Recorder の Pro プランに含まれます。新規アカウントでは 7 日間無料で試せます。
1. read_text でできること
多くのマクロ ツールはクリックや入力はできても、画面に何が表示されているかはわかりません。read_text は画面の四角形の範囲を読み取って変数に入れます。その値は、別の場所に入力したり、比較したり、メッセージの中で使ったりできます:
total = read_text(region=(820, 400, 180, 40), single_line=True)
message_box("The order total was ${total}")
2. 領域を選ぶ
必ず region=(x, y, width, height) を指定してください。デスクトップ全体を読み取ると画像が縮小され、通常のインターフェイスの文字は読めなくなります。対象のフィールドくらいの大きさの領域なら、速く正確に読み取れます。single_line=True は、読み取った内容を 1 行にまとめます。数値や名前にはこれが適しています。領域の各数値には変数や計算式も使えるので、wait_for で見つけた一致の位置に領域を合わせることもできます。
3. 3 つの読み取りエンジン
| engine= | 内容 | クレジットの消費 | エクスポートしたプログラムへの持ち出し |
|---|---|---|---|
| "builtin" | 既定。お使いのコンピューター上で動作します。 | いいえ | はい |
| "tesseract" | 2 つ目のローカルの読み取りエンジン。内蔵のものよりうまく読める画面もあれば、苦手な画面もあります。page_mode= で、画像を行に分割する方法を制御できます。読み取り結果が惜しいのに正しくないときに試してください。 | いいえ | はい |
| "ai" | 当社のサーバー上の書き起こしモデル。2 つのローカルの読み取りエンジンがどちらも読み間違える文字に使います。 | はい | いいえ |
エンジンはステップごとに選ぶので、1 つのマクロの中で、ほとんどの箇所では無料の読み取りエンジンを使い、肝心な 1 つのフィールドだけ AI の読み取りエンジンを使う、といったことができます。
4. 結果を整えて使う
total = read_text(region=(820, 400, 180, 40)).to_number()
if total < 1000:
notify("Total looks low: ${total}")
読み取った内容はメソッドで整えます。いちばんよく使うのは .to_number() です。空白の領域では空の文字列が保存され、実行は続くので、書いた条件は値がある場合だけでなく空白の場合でも確かめてください。実行中は「変数」パネルにすべての変数がリアルタイムで表示されます。読み取りエンジンが実際に何を返したかを確認するには、これがいちばん手早い方法です。
5. 代わりに AI に尋ねるとき
read_text は書き起こすだけです。画面について判断させるには ask_ai を使います:「赤い行はいくつありますか?」「エラー ダイアログは表示されていますか?」。役割は 3 つあります。"count" は数と、それぞれの位置を返すので、マクロがそれをクリックできます。"explain" はログや通知に使える文章を返します。"read" は選んだモデルで書き起こします。同じ理由で、小さな領域を指定してください。モデルは、デスクトップ全体にあるものを数えることはできても、その位置までは特定できないことがあります。呼び出しのたびにクレジットを消費し、1 回の実行での AI の呼び出しは 60 回が上限です。詳しくはマニュアルをご覧ください。
6. マクロの実行中に文字を監視する
ステップは、置いた場所で 1 回だけ読み取ります。「AI に質問」に設定した監視行は、実行中ずっと、または「監視を開始」の後は単独で確認を続け、回答が現れたときや消えたときに発火します。ポップアップを表示する、スクリーンショット付きで Telegram や Discord にメッセージを送る、マクロを停止する、といった対応ができます。こうすれば、すべてのループにそのためのステップを入れなくても、午前 3 時に表示された「セッションの有効期限が切れました」というバナーについて知らせを受けられます。
7. 費用、プラン、エクスポート
- 画面からの文字読み取りと ask_ai は Pro プランに含まれ、Pro プランには毎月 3,000 クレジットも付きます。2 つのローカルの読み取りエンジンがクレジットを消費することはありません。
- engine="ai"、ask_ai、AI を使う監視行はクレジットを消費し、プログラムとしてのエクスポートができなくなります。内蔵の読み取りエンジンまたは Tesseract で読み取るマクロは、読み取りエンジンをファイルに内蔵したうえで問題なくエクスポートできます。
- プランとクレジット パックについては料金ページをご覧ください。