変数は、数値や文字列が記録できるとても便利な機能です。
プログラミングをするうえで重要な機能なので、理解して使いこなしましょう。
- 変数とは、数値や文字などの値を入れる「箱」のこと
- 名前をつけることができる
- 変数同士を足したり繋げたりすることができる
- 変数の中の数値によって処理を変えることができる
- スクラッチの変数には3種類のタイプがある
- ローカル変数
- グローバル変数
- クラウド変数
- 変数は、1つの数値や文字を入れて使う
- リストは、複数の数値や文字を入れて使う
プログラミングの変数とは?

プログラミングにおける変数とは、数値や文字などの値を入れる「箱」のこと。
次のようなメリットがあり、使い方を覚えると、できることが一気に増えます。
- 名前がついているので分かりやすい
- 繰り返し利用できる
- 保守しやすい
変数の具体的な使い道は、次の通り。
- スコア(点数)
- HP(ヒットポイント)
- のこり時間
- スピード(速度)
- スイッチ
- ON、OFF
- 計算の答え
- 合計値、平均値、最高値、最低値など
- 利用者の入力値
- 回答、難易度など
変数のタイプと影響範囲
Scratch3.0で使える変数は次の3種類です。
- ローカル変数
- グローバル変数
- クラウド変数
うまく動かない場合、変数のタイプの選び方が間違っている可能性もありますので、変数の影響範囲を確認しましょう。
ローカル変数

ローカル変数は、このスプライトだけが使える変数で、プライベート変数やスプライト変数などともいわれます。
クローン機能を使ってスプライトを複製する場合は、ローカル変数にすると便利です。
グローバル変数

グローバル変数は、ステージとすべてのスプライトから使える変数です。
1つの変数を複数のスプライトで使い回すような場合は、グローバル変数にすると扱いやすいです。
クラウド変数

クラウド変数は、変数の値が保存され、全世界で値を共有できる特別な変数です。
アカウント区分が「New Scratcher」の場合、クラウド変数は利用できません。
一定の条件を満たし、アカウント区分が「Scratcher」に昇格すると、利用できるようになります。
「Scratcher」になるための「一定の条件」に関しては、公式では明記はされていません。Scratcherになった時の条件を見てみると、「開発時間、開発数、公開プロジェクト数」などで判断しているのではないかと考えられます。
スクラッチの変数範囲は?制限や上限を確認する
変数のタイプによって、制限されることや扱える内容が違うので確認しましょう。
ローカル変数 | グローバル変数 | クラウド変数 | |
---|---|---|---|
アカウント区分による利用制限 | なし | なし | 「Scratcher」のみ利用可能 |
変数の個数制限 | なし | なし | 10 |
変数名の文字数制限 | なし | なし | なし |
扱う値の種類 | 数値 文字列 | 数値 文字列 | 数値のみ |
扱う値の文字数制限 | なし | なし | 256文字 |
禁止事項 | なし | なし | チャットを作ること ※一覧から選択する「定型文式」は可 |
注意事項 | なし | なし | 0.1秒以上毎しか更新されない |
変数の4つの使い方をスクラッチブロックを使って理解しよう
変数は次の4つのステップで使います。
- 宣言
- 初期化
- 代入
- 参照
スクラッチで変数を扱う場合、次の1つのボタンと5つのブロックを使います。

宣言:変数を作る
「これからこの変数を使います!」と宣言することで、変数を使うことができるようになります。
スクラッチでの宣言方法を見ていきましょう。
まずは、【変数】「変数を作る」ボタンをクリックします。

次に、変数名を入力して「OK」ボタンをクリックします。
変数名は、何に使うのかがすぐに分かるような名前をつけましょう。
例えば、リンゴの数を扱う場合、「リンゴ」ではなく「リンゴの数」にすると分かりやすいです。

- すべてのスプライト用(グローバル変数)
- ステージとすべてのスプライトから使える変数
- ステージで変数を作る場合はグローバル変数になる
- このスプライトのみ(ローカル変数)
- この変数を作ったスプライトのみ使える変数
- クラウド変数(サーバーに保管)
- 世界中のユーザーと共有できる変数
これで変数が作成されます。
変数名の左にチェックが入った状態で作成され、ステージに表示されます。チェックを外すと非表示にできます。

変数タイプによるブロックの違い
変数のタイプによって、変数ブロックの表記が異なります。

変数タイプ | ブロックの表記 | ステージの表記 |
---|---|---|
クラウド変数 | ☁マーク+変数名 | ☁マーク+変数名 |
パブリック変数 | 変数名のみ | 変数名のみ |
プライベート変数 | 変数名のみ | スプライト名:変数名 |
初期化:最初の条件を整える
プログラムのメイン処理を開始する前に、変数に値を入れることを初期化をと言います。
変数が、前回終了時の値になっていたりすると、思ったような結果にならないこともあります。
必ず同じ状態から始められるように、初期化を行いましょう。


代入:変数にデータを入れる
変数に値を記憶させることを代入といいます。

スクラッチで変数にデータを代入するには、次のブロックを使います。
- 【変数】「()を0にする」ブロック
- 数値や文字を代入
- 変数や計算結果を代入
- 【変数】「()を1ずつ変える」ブロック
- 数値のみ代入可能
変数には乱数を入れることもできます。
プログラム実行のたびに動きを変えたい場合は、乱数を代入すると良いです。

参照:変数に入れたデータを使う
変数に記憶させたデータは、内容を表示したり、計算や条件として使ったりすることができます。

変数を使ってスクラッチプログラムを作ろう
変数を表示する・隠す

変数をステージ上に表示するには、次の2つの方法があります。
- スクリプトエリアにある変数名の左側のチェックボックスにチェックを入れる
- 【変数】「変数()を表示する」ブロックを使う
変数をステージ上から隠すには、次の2つの方法があります。
- スクリプトエリアにある変数名の左側のチェックボックスにチェックを外す
- 【変数】「変数()を隠す」ブロックを使う
変数の表示形式を変更する

ステージに表示されている変数の上で右クリックすると、変数の表示形式を変更できます。
次の3つから選択。
- 普通に表示
- 大きな表示
- スライダー
「スライダー」の場合は、スライド範囲を指定することもできます。
スライダー表示した変数の範囲を決める(上限と下限の指定)
スライダー表示した変数は範囲(最小値と最大値)を指定できます。
スライダー範囲はデフォルトが0~100です。

範囲を変更したい場合は、スライダー表示した変数の上で右クリックし、表示されたメニューで「スライダーの指定範囲を変更」をクリック。最小値と最大値を指定します。
範囲を「-10~110」に指定した結果は図の通りです。

範囲を「-10.5~110.5」のように最大値か最小値に少数を指定すると、少数点第二位まで選択できるようになります。

条件を付けて動きを変える「()が0になったら」
変数は、条件分岐の判断材料としてよく使います。

「()が~になったら」「()が~まで」のような条件を作って、動きを変えてみましょう。

変数の値が変わらない場合のチェックポイント
プログラミングを実行したときに、変数の値が思っているようにならない、または、変数の値が変わらないといった場合は、次のチェックポイントを確認しましょう。
- 【変数】「()を()にする」ブロック
- 実行されていること
- 入れた値が数値の場合は、半角であること
- 【変数】「()を()ずつ変える」ブロック
- 実行されていること
- 入れた値が数値の場合は、半角であること
変数とリストの違い
変数と同じように、数値や文字を入れる仕組みとして「リスト」(配列)があります。
違いは、次の通り。
- 変数は、1つの数値や文字を入れて使う
- リストは、複数の数値や文字を入れて使う
リストは、保存する量が多い場合、保存する量が分からない場合に使います。

まとめ:変数はプログラミングの基本知識
変数とは、数値や文字などの値を入れる「箱」のことです。
「今、変数の中には何が入っているか」を考えながらプログラミングすることが大事です。
変数を使うと次のようなメリットがあります。慣れるためにも、どんどん使っていきましょう。
- 保守しやすい
- 繰り返し利用できる
- 名前がついているので分かりやすい