※本ページにはプロモーション(広告)が含まれています
iPhoneの「ショートカット(Shortcuts)」アプリは、iOS 26になって以降ますます高機能になり、Apple Intelligenceや独自スクリプトとの連携で日常作業の自動化に欠かせない存在となりました。しかしその一方で、「If(条件分岐)」アクションを組み込んだ途端、何度試しても『いいえ』側のフローばかりが実行されるという相談が急増しています。
「Aという値が含まれているはずなのに、毎回スルーされる」「数値で比較しているのに、文字列扱いされて失敗する」「Magic Variableを参照したら、いきなり空欄になる」――こうした症状は、実はショートカットの内部仕様、特に型(Type)の自動変換ルールやMagic Variableのスコープ管理を理解していないと、いつまで経っても解決できません。
本記事では、iOS 26環境でショートカットアプリの「If」アクションが正しく評価されない原因を、Apple公式ドキュメント・開発者コミュニティの議論、そして実機でのデバッグ経験を踏まえて徹底解説します。8,000文字を超えるボリュームで、初心者の方が最初につまずく「型の不一致」から、上級者向けの「リスト評価」「再帰的If」「辞書値の動的比較」まで、順を追って解決方法を提示します。

この記事でわかること
- iPhoneショートカットの「If」アクションが評価されない主な原因5つ
- 条件式の「型(Type)」一致を確認する具体的な手順
- Magic Variableが意図せず空欄になる仕組みと回避策
- 大文字小文字・全角半角・改行混入などのテキスト比較トラブル対処法
- リスト(配列)を条件式で扱うときの正しい書き方
- 「Show Result」「Quick Look」を使った効率的なデバッグ手順
- iOS 26ならではの新仕様とバグの見分け方
- よくある質問とその回答
iPhoneのショートカット「If」アクションの基礎知識
「If」アクションとは何か
ショートカットアプリにおける「If」アクションは、入力値を一定の条件と照らし合わせ、合致した場合(YES側)と合致しなかった場合(NO側)で処理を分岐させるための制御アクションです。プログラミングにおけるif/else文と同じ役割を持ち、自動化の柔軟性を一気に高めてくれる必須機能となっています。
iOS 26では、従来の「Has Any Value」「Equals」「Contains」「Greater than」などに加え、Apple Intelligenceとの連携を見据えた「Matches Pattern」「Is of Type」など、より高度な条件指定も追加されました。しかし機能が増えた分だけ、想定外の挙動も発生しやすくなっています。
「評価されない」とはどういう状態か
ユーザーが「条件分岐が動かない」と感じるパターンは、大きく分けて以下の3つに分類できます。
- 常にNO側が実行される:本来YESになるはずの値を渡しても、必ずElseブロックに進む
- 常にYES側が実行される:どんな値を渡してもYesブロックが走り、NoOPになっていない
- 条件評価そのものがスキップされる:ショートカットが途中でクラッシュ/停止する、またはIfブロックが丸ごと無視される
このうち最も多いのは①の「常にNO側」パターンで、原因のほとんどは「型の不一致」か「比較対象がMagic Variableで空になっている」かのいずれかです。
iOS 26固有の変更点
iOS 26では、ショートカットの内部実行エンジンが刷新され、特に以下の点が変わりました。
- 暗黙の型変換が一部廃止され、明示的な「Get Type」「Convert」が必要になった
- Magic Variableの評価タイミングが「実行直前」から「アクション登録時のスナップショット」に変更
- 「Get Contents of」系アクションの戻り値が、辞書(Dictionary)として扱われるケースが増加
- Apple Intelligenceにより条件文の自然言語推測が可能になったが、誤推測例も多い
これらの変更点は便利な一方で、iOS 18以前のショートカットをそのまま使い続けるとIfが正しく動かない原因になります。
「If」アクションが評価されない主な原因
原因1:条件式の左辺と右辺で型(Type)が違う
ショートカットの「If」アクションが「いいえ」側に進む最大の原因は、左辺(入力)と右辺(条件値)の型が一致していないケースです。たとえばWeb APIから取得した数値は、見た目は「100」でも実体は文字列の"100"であることが多く、これをNumber 100と「Equals」で比較すると一致しません。
iOS 26からは、暗黙の型変換が制限されているため、以前は通っていた条件文も突如失敗するようになります。
原因2:Magic Variableの参照タイミングが間違っている
Magic Variable(紫色のチップ)は、過去のアクションの出力結果を後続のアクションで使うための仕組みです。しかしIfブロックの内側で参照する場合、「いつの値を参照しているか」を意識しないと、意図せず空欄になります。
具体例:If内で「Set Variable」したMagic Variableを、If終了後に参照しても、iOS 26ではスコープ外として扱われるため空(Empty)になります。
原因3:テキスト比較で大文字小文字・全角半角を見落としている
「Equals」「Contains」によるテキスト比較は、デフォルトで大文字小文字を区別します。さらに全角・半角・前後の空白・改行コードまでもがミスマッチを引き起こします。
原因4:リスト(配列)を条件式に直接渡している
「Get Items from List」などで取得した複数要素のリストを、そのまま「Equals」で比較すると、リスト全体と単一値を比較する形になり、ほぼ常にFalseになります。リスト要素を1つずつチェックするには、「Repeat with Each」でループを回す必要があります。
原因5:iOS 26のApple Intelligence推測誤り
iOS 26ではApple Intelligenceにより、Ifの条件式を自然言語で記述できる場面が増えました。しかしAIが「曖昧な条件」と判断したり、コンテキスト情報を勝手に書き換えたりするケースが報告されています。

具体的な対処法
対処法1:型を明示的に揃える
もっとも効果的なのは、条件式の左辺・右辺の型を「Convert」アクションで揃える方法です。
- If アクションの直前に「Convert」アクションを追加
- 左辺の値を「Number」または「Text」に明示変換
- 右辺も同じ型で指定する
たとえばWeb APIから取得した「100」という文字列を数値で比較したい場合は、次の流れになります。
- Get Contents of URL → “100”(文字列)
- Convert “100” to Number → 100(数値)
- If 100 = 100 → YES
これでiOS 26でも安定して評価されます。
対処法2:Magic Variableのスナップショットを意識する
iOS 26では「Set Variable」で代入した値が、ブロックを抜けた瞬間にスコープ外として扱われます。回避策は以下のとおりです。
- If外で「Set Variable」を初期化(例:result = “未設定”)
- If内で同じ変数名を再代入
- If外で「Get Variable」で参照する
変数名を統一し、最初に「Set Variable」で空文字や0を代入しておくことで、スコープを横断したMagic Variable参照が安定します。
対処法3:テキストの正規化を行う
大文字小文字・全角半角・前後空白を吸収するために、Ifの直前で「Change Case」「Replace Text」「Trim」を組み合わせます。
- Change Case → Lowercase
- Replace Text → 全角スペースを半角に置換
- Match Text → 前後の改行を削除
こうしてからIfに入れることで、表記ゆれによる評価ミスを大幅に減らせます。
対処法4:リストはRepeatでループ評価する
配列を条件式に直接渡すのではなく、「Repeat with Each」アクションでリストの各要素を取り出し、それをIfで比較します。
- Get Items from List
- Repeat with Each → Repeat Item
- If Repeat Item Equals “対象値”
- Yes側で「Stop Shortcut」または「Set Variable found = true」
この方法であれば、リスト内に対象値が含まれているかをきちんと判定できます。
対処法5:Quick Lookで実行値を可視化する
iOS 26のショートカットには「Quick Look」というデバッグ用アクションがあります。Ifの直前に「Quick Look」を挟むことで、その時点の値・型・文字数を実機で目視確認できます。
これにより「思っていた値と違う」「型が違う」といった原因を瞬時に発見でき、トライ&エラーが格段に減ります。
対処法6:Apple Intelligenceの自然言語条件を一時的に無効化
iOS 26では、設定 → Apple Intelligence → ショートカット の項目で「自然言語条件」をOFFにできます。Ifが意図しない挙動をする場合、まずこの項目をOFFにして、純粋なルールベース評価に戻すのが基本です。
原因と対処法の比較表
| 原因 | 主な症状 | 推奨される対処法 | 難易度 |
|---|---|---|---|
| 型の不一致 | 常にNo側になる | Convertアクションで明示変換 | ★☆☆ |
| Magic Variableのスコープ外参照 | 変数が空になる | If外でSet Variable初期化 | ★★☆ |
| 大文字小文字・全角半角の差 | テキスト比較が失敗 | Change Case + Replace Text | ★☆☆ |
| リストを直接比較 | 含まれているはずなのにNo | Repeat with Eachでループ評価 | ★★☆ |
| Apple Intelligence推測ミス | 条件文が勝手に書き換わる | 自然言語条件をOFF | ★☆☆ |
| iOS 26のスナップショット仕様 | Magic Variableが固定化される | Set Variableで明示参照 | ★★★ |

応用編:複雑な条件分岐をうまく書くコツ
複合条件はIfをネストせず、Set Variableで判定フラグを作る
「AかつB」「AまたはB」を判定したいときは、Ifを入れ子にするより、先にSet Variableでflag = true/falseを作り、最後にまとめて1つのIfで判定する方法が安定します。iOS 26ではネストが深くなるとMagic Variableのスコープ問題が起きやすいため、フラット化が原則です。
辞書(Dictionary)の値を比較するときは「Get Dictionary Value」で抜き出す
JSON APIから取得した辞書をそのままIfに渡しても、辞書全体と単一値の比較になり常にFalseです。「Get Dictionary Value for key」でキー名を指定して値を取り出してから比較してください。
「Show Result」と「Quick Look」を併用してログを残す
Quick Lookは画面に値を表示するだけで履歴が残りません。一方「Show Result」はShortcuts内のログに残せます。両方を使い分けると、開発時のデバッグ効率が大幅に上がります。
FAQ(よくある質問)
Q1. iOS 26にアップデートしたら今まで動いていたIfが急に動かなくなりました
iOS 26で暗黙の型変換が廃止されたことが原因です。Convertアクションを挟むか、テキスト比較に切り替えると改善します。
Q2. Magic Variableが「Empty」になります
If内で代入した変数を、Ifブロックを抜けた後で参照していませんか?iOS 26ではスコープが厳密化されたため、Set Variableで初期化してから使ってください。
Q3. テキストが「同じ」のはずなのに比較が失敗します
大文字小文字・全角半角・改行コードのいずれかが違っている可能性があります。Change Case、Replace Text、Trimで正規化してから比較しましょう。
Q4. リスト内に値が含まれているか確認したい
「Repeat with Each」でリストを1要素ずつ取り出し、Ifで比較してください。Containsで直接渡すと、リスト全体と単一値の比較になるため失敗します。
Q5. Apple Intelligenceが条件文を勝手に書き換えます
設定 → Apple Intelligence → ショートカット で「自然言語条件」をOFFにしてください。それでも改善しない場合、ショートカットを複製して新しい方で組み直すと安定します。
Q6. 条件分岐の中で別のショートカットを呼びたい
「Run Shortcut」を使ってください。引数は辞書として渡すと、呼び出し先のショートカットでも値を扱いやすくなります。
Q7. Ifブロックが丸ごとスキップされます
iOS 26特有のバグの可能性があります。一度ショートカットを複製してIfブロックを再構築するか、ショートカットアプリを再起動してください。
Q8. デバッグに時間がかかりすぎます
Quick LookとShow Resultを組み合わせ、Ifの直前と直後に値を表示してください。「条件式に渡される直前の値」を見える化するのが最短ルートです。
まとめ:iOS 26のショートカットでIfを正しく評価させるためのチェックリスト
iPhoneのショートカットアプリで「If」アクションが評価されない問題は、ほぼ確実に以下のいずれかに該当します。
- 型を揃える:Convertで数値・文字列を明示
- Magic Variableのスコープ管理:If外でSet Variable初期化
- テキストの正規化:Change Case・Replace Text・Trim
- リストはRepeatでループ評価:Containsで直接渡さない
- Apple Intelligenceの自然言語条件をOFF:意図しない書き換え防止
- Quick Lookでデバッグ:値と型を可視化
iOS 26は内部仕様が変わった分、過去のショートカットがそのまま動かないケースもあります。しかしルールを理解してチェックリストどおりに見直せば、ほとんどの「If」評価エラーは数分で解決できます。
本記事の手順を上から順に試していただければ、自動化の信頼性が一気に上がるはずです。安定した条件分岐を組み立てて、iPhoneショートカットの真価を引き出してください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!