Pythonの条件分岐は「読みやすさ」を最優先に設計されています。
VBAやGASとの最大の違いは、End If や波括弧{ } を使わず、インデント(字下げ)で処理ブロックを管理する点です。
それでは、基本の書き方から順を追って確認していきましょう。
基本構造とインデントのルール
Pythonでは、条件が成立した時に実行するコードの先頭に、一定幅のスペース(一般的には半角スペース4つ)を挿入してインデントを設定します。
score = 85
if score >= 90:
print("最高評価です")
# ここもifの中
elif score >= 70:
print("合格です")
# ここもelifの中
else:
print("不合格です")
# ここもelseの中
print("判定終了") # インデントがないので、if文の外(必ず実行される)
if、elif、else の行末には必ずコロン(:)が必要です。
論理演算子の違い(VBA・GAS比較)
記号ではなく「英単語」をそのまま使用する点がPythonの大きな特徴となります。
他言語からの移行時は記法ミスにご注意ください。
| 種類 | Python | VBA | GAS (JS) |
| かつ | and | And | && |
| または | or | Or | ` |
| 否定 | not | Not | ! |
使用例:
age = 25
is_member = True
if age >= 20 and is_member:
print("会員かつ成人です")
Pythonならではの3つの書き方
実務で頻出する、Python特有の効率的な記述方法を3つご紹介します。
① 値の存在チェック(in演算子)
リストや文字列の中に特定の値が存在するかを直接判定できます。
ループ処理で要素を1つずつチェックさせる必要がありません。
# リストの場合
team = ["Tanaka", "Suzuki", "Sato"]
if "Suzuki" in team:
print("鈴木さんが在籍しています")
# 文字列の場合
log_message = "Error: Connection failed"
if "Error" in log_message:
print("エラーログが検出されました")
② オブジェクトの真偽値判定(Truthiness)
Pythonでは、「空のリスト」「空の文字列」「数値の0」「None」は、条件式において自動的にFalseとして扱われます。
この仕様を活用すると、要素数チェックなどの記述が非常にシンプルになります。
data_list = []
# 「リストにデータが存在する場合」の書き方
if data_list:
print(f"データが{len(data_list)}件あります")
else:
print("データは存在しません")
③ 1行で完結する条件分岐(三項演算子)
変数への代入など、シンプルな条件分岐であれば1行にまとめて記述できます。
# 点数を設定
score = 75
# 三項演算子(条件付き式)による判定
# 構文: 真の値 if 条件 else 偽の値
status = "合格" if score >= 70 else "不合格"
print(f"得点: {score}点 -> 判定: {status}")
多分岐処理の記法(match文)
Python 3.10以降では、VBAのSelect Caseや他言語のswitch文に相当するmatch文がサポートされました。
特定の値に応じた多分岐をすっきり整理できます。
role = "manager"
match role:
case "admin":
print("管理者権限")
case "manager" | "leader": # パイプ(|)で「または」を表現
print("承認権限あり")
case "user":
print("一般ユーザー")
case _: # ワイルドカード(VBAのCase Else)
print("権限なし")
応用:リスト内包表記での条件フィルタリング
「リストから条件に合致する要素のみを抽出する」という処理は、通常のfor文とif文を組み合わせるよりも、リスト内包表記を用いることで1行で記述できます。さらに通常の記述より処理も高速になります。
numbers = [1, 2, 3, 4, 5, 6]
# 通常の書き方
evens = []
for n in numbers:
if n % 2 == 0:
evens.append(n)
print(evens) # 結果: [2, 4, 6]
# リスト内包表記
# [式 for 変数 in リスト if 条件]
evens_smart = [n for n in numbers if n % 2 == 0]
print(evens_smart) # 結果: [2, 4, 6]
Pythonの条件分岐は、単なる分岐処理にとどまらず、in演算子やmatch文、リスト内包表記と組み合わせることで、コード全体の可読性と開発効率を大きく向上させてくれます。
日々の業務ツール作成にぜひ取り入れてみてください!
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

コメント