Make.comの変数は、使わなくてもシナリオは作れます。だから「必要なのかどうか分からない」まま放置されがちな機能です。
判断軸を先に出します。変数を使うべきなのは、次のどれかに当てはまるときです。
- 同じ値を3か所以上で使い回している
- あとから変更する可能性がある値を、モジュールに直接書いている
- 分岐したあとの処理で、分岐前の値を参照したい
- 計算や加工をした結果を、複数の場所で使いたい
逆に、値を1回だけ使うなら変数は不要です。前のモジュールの出力を直接マッピングすれば済みます。
ぶっちゃけ、小さいシナリオでは出番がありません。モジュールが増えてきてから効いてくる機能です。
変数とは何か
値を一時的に入れておく箱です。名前をつけて、中に数字や文字列や日付を入れておく。あとから名前を指定すれば取り出せます。
コインロッカーに近い。荷物を預けて、番号を控えて、あとで取り出す。ただし営業時間が終われば中身は空になります。
この「終われば空になる」がMakeの変数の性質そのもので、後で触れる重要な制約でもあります。
基本の4モジュール
変数関連のモジュールは、Toolsのセクションにあります。
| モジュール | 役割 |
|---|---|
| Set variable | 変数を1つ作って値を入れる |
| Get variable | 変数を1つ取り出す |
| Set multiple variables | 複数の変数をまとめて作る |
| Get multiple variables | 複数の変数をまとめて取り出す |
Set variableの使い方
設定するのは2項目だけです。
- Variable name:変数の名前(英数字が無難)
- Variable value:入れる値。前のモジュールの出力をマッピングできる
たとえば、メールの差出人アドレスを何度も使うなら、最初にsenderという変数に入れておく。あとの処理では変数を参照するだけで済みます。
Get variableの使い方
取り出したい変数の名前を指定するだけです。実行すると、その値が返ってきます。
クレジットを節約する使い方
ここが本題かもしれません。
Makeはモジュールが1つ動くごとにクレジットを消費します。変数を5つ取り出したいときに、Get variableを5つ並べると5クレジット。これが毎回積み上がる。
Get multiple variablesを使うと、複数の変数を1クレジットで取り出せます。公式のヘルプにも、この点が利点として明記されています。
| やり方 | 消費クレジット |
|---|---|
| Get variable × 5 | 5 |
| Get multiple variables(5個指定) | 1 |
Set側も同じで、Set multiple variablesを使えばまとめて設定できます。
1回の実行で4クレジットの差なら大したことないように見えますが、1日20回動くシナリオなら月に2,400クレジットの差になるわけです。無料プランの月1,000クレジットを前提にすると、これは無視できない数字です。
私がこのブログの記事生成をMakeで回していた頃も、クレジットの節約はほぼ常時の課題でした。実行頻度を落とすのが一番効きますが、モジュール数を減らすのも効果があります。
組み込み変数
自分で作らなくても最初から使える変数があります。代表的なのが日時系です。
{{now}} → 現在の日時
{{formatDate(now; “YYYY-MM-DD”)}} → 2026-08-18 のような形式
ファイル名に日付を入れる、シートに記録した時刻を残す、期間を指定して検索する。この手の処理では毎回登場します。
注意点として、nowが返すのは組織のタイムゾーン設定に基づく現在時刻です。設定が日本時間になっていないと、記録される日付がずれます。
ローカル変数とグローバル変数
Makeの変数には、有効範囲の違うものがあります。
| 種類 | 有効範囲 | 使いどころ |
|---|---|---|
| ローカル変数 | そのシナリオ内 | 通常はこちら |
| グローバル変数 | 複数のシナリオ間 | 共通の設定値など |
最初のうちはローカルだけで足ります。グローバルが必要になるのは、複数のシナリオで同じ値を共有したい場面ですが、そこまで来ると設計を見直したほうがいい場合も多い。
変数が消える問題
ここでつまずく人が多いです。
Makeの変数は、シナリオの1回の実行が終わると消えます。次回の実行時には残っていません。
だから「前回処理した最後のIDを覚えておいて、次回はそこから続きを処理したい」といった用途には使えません。コインロッカーは一晩で空になる。
実行をまたぎたいなら
その場合はデータストアを使います。Makeが用意している簡易データベースで、こちらは実行が終わっても値が残ります。
| 変数 | データストア | |
|---|---|---|
| 保持期間 | 実行中のみ | 削除するまで |
| 設定の手間 | 少ない | 構造の定義が必要 |
| 用途 | 一時的な受け渡し | 状態の記録 |
コインロッカーと貸倉庫の違いだと思ってください。用途が違うので、どちらが優れているという話ではありません。
ただ、データストアは無料プランだと容量に制限があります。使い始める前に、自分のプランで何レコード持てるか確認しておいたほうがいい。
つまずきやすいポイント
設定より前で取り出そうとする
Set variableより前に置いたGet variableは、当然ながら空を返します。モジュールの並び順は上から下、左から右です。
ルーターで分岐している場合は特に注意が必要で、別のルートで設定した変数を参照しようとして詰まるケースがあります。
名前の付け方
日本語の変数名も動きますが、マッピング時に選びにくくなることがあります。英数字とアンダースコアで統一しておくのが無難です。
それと、名前は具体的にしたほうがいい。「data」「temp」「value1」のような名前は、3か月後の自分が読んで意味が分からなくなります。
繰り返し処理の中での挙動
Iteratorなどで繰り返し処理をしている中で変数を設定すると、繰り返しのたびに上書きされます。各回の値を全部残したいなら、変数ではなく配列や集約モジュールを使う設計になります。
気になるところ
Makeの変数機能について、弱いと感じる点も書いておきます。
まず、変数の一覧を確認する画面がないこと。シナリオ内でどんな変数を作ったかは、モジュールを開いて1つずつ見るしかありません。規模が大きくなると把握が難しくなります。
もう1つ、変数の型が明示的でないこと。文字列として入れたつもりが数値として扱われて、比較がうまくいかない場面があります。想定と違う動きをしたら、実行ログで実際の値を確認するのが早いです。
正直、ここは私も設計に迷うところで、変数を多用するくらいなら処理の順序を組み替えたほうが読みやすいシナリオになることも多い。使いすぎない、というのも1つの技術かなと思っています。
よくある質問
変数はいくつまで作れますか
明確な上限は公開されていません。ただし数が増えるとシナリオが読みにくくなるので、実用上は10個以内に収まるはずです。
変数の値を条件で変えられますか
Set variableの値の欄に条件式を書けます。if関数を使って、条件に応じた値を入れる形です。
他のシナリオから参照できますか
ローカル変数はできません。グローバル変数か、データストアを使うことになります。
変数を使うとクレジットは増えますか
Set variableもGet variableもモジュールなので、1つにつき1クレジット消費します。だからこそ、まとめて扱えるモジュールを使う価値があります。
変数の中身を確認するには
シナリオを実行して、該当モジュールの実行結果を開くと入っている値が見られます。テスト時はこれで確認してください。
まとめ
変数は、シナリオを読みやすくするための道具です。処理そのものを増やす機能ではありません。
そして、クレジットを消費する機能でもあります。だから「便利そうだから使う」ではなく、「同じ値を何度も使うから使う」という順番で判断してください。使うなら、複数まとめて扱えるモジュールを選ぶ。ここで消費が5分の1になります。
※本リンクはアフィリエイトリンクです。
無料プランでも、変数を含む構成は普通に組めます。まずは小さいシナリオで試してみるのが早いです → Make.com(※アフィリエイトリンクです)
使うかどうかの基準を1つ渡すとすれば、同じ値をシナリオ内で何回書いているかです。1回なら不要。3回以上書いているなら、そこが変数の出番です。答えは機能説明ではなく、あなたのシナリオの中で繰り返し登場している、あの値の中にあります。


コメント