最終更新日 2025年4月27日 by toytune
スクラッチはアメリカの大学、MIT(マサチューセッツ工科大学)メディアラボで開発されたビジュアルプログラミング言語です。
はじめに
今回は、スクラッチで作ったプログラムを「いつ」「どうやって」動かすのか、その“きっかけ”となる「イベント」について解説していきます。作ったプログラムを発動させる「きっかけ」を設定する「イベント」について解説していきたいと思います。
スクラッチの基本操作を一通りされた方は、をクリックして、プログラムをスタートさせた経験があるかと思います。
でも実は、それ以外にもプログラムをスタートさせる「きっかけ(=イベント)」を自由に設定することができるんです。
たとえば、こんな場面でプログラムを動かすことができます。
- スプライトをクリックしたとき
- キーボードのスペースキーや矢印キーを押したとき
- タイマーの時間になったとき
- 背景が切り替わったとき
- 他のスプライトからメッセージを受け取ったとき
これらの「きっかけ」は、スクラッチでは「イベントブロック」として用意されています。
種類はそこまで多くありませんが、工夫次第でさまざまな発動タイミングを作ることができます。
この記事では、代表的な「イベントブロック」の使い方を紹介しながら、実際にプログラムを作って「イベント」の仕組みを学んでいきましょう。
今回作成するプログラム(の旗をクリックして動作を確認することができます)
イベントブロックを見てみよう
まず、どんなイベントブロックがあるのか見てみましょう。
画面左側の「イベント」カテゴリーをクリックすると、イベントブロックが一覧で表示されます。
もし表示されていない場合は、画面左上の「コード」タブをクリックしてください。

「旗が押されたとき」
いちばんよく使われるのがこのブロックです。この「が押されたとき」になります。これは、ステージにある同じくのアイコンをクリックするとプログラムが発動するものになります。これは見た目も同じなのでわかりやすいかと思います。

「○○キーが押されたとき」
キーボードのキーを押すことで発動するイベントです。最初は「スペースキー」が設定されていますが、「スペース」の部分をクリックすれば、他のキーにも変更できます。
たとえば「aキーが押されたとき」にすると、「a」を押すとプログラムが動くようになります

「このスプライトが押されたとき」
このブロックは、スプライトがクリックされたときにプログラムを実行します。
たとえば、ネコのスプライトにこのブロックを使えば、ステージ上のネコをクリックしたときに動き出します。

「背景が○○になったとき」
操作ではなく、プログラムの進行中に背景が切り替わったタイミングを「きっかけ」にするブロックです。
ブロック内の「背景1」の部分をクリックすると、他に設定されている背景から選ぶことができます。
背景が指定したものに変わったとき、続くプログラムが実行されます。

「○○が△△より大きくなったとき」
音量やタイマーの値が、指定した数値より大きくなったときに発動します。
「音量」または「タイマー」を選択でき、右側の数値も変更可能です。
これは条件分岐と組み合わせて使うこともできますが、単体でもイベントとして利用できます。
下記では、「音量」となっているところをクリックし、「音量」か「タイマー」かの選択が表示されます。選択後、右側に設定されてる数値(下記図では10になっているところ)よりも大きい場合、以下に続くプロくらむが発動するということになります。

メッセージを使ったイベント
スクラッチでは、スプライト同士で「メッセージ」をやり取りすることができます。
これにより、別のスプライトや同じスプライト内の別の処理に、動作を連動させることが可能になります。
「○○メッセージを受け取ったとき」
このブロックは、指定されたメッセージを受け取ったときにプログラムを発動させます。
メッセージ名は自由に追加できます。「新しいメッセージ」をクリックして、名前をつけましょう。

「○○メッセージを送る」
メッセージを送る側のブロックです。こちらはプログラムの中間で使います。
送りたいメッセージ名をリストから選択、または「新しいメッセージ」を作成して追加します。

「○○メッセージを送って待つ」
「送る」ブロックに似ていますが、メッセージを送ったあと、そのメッセージを受け取ったスプライトの処理が終わるまで待機するという違いがあります。連携の順序をコントロールしたいときに便利です。

イベントブロックを実際に使ってみよう
まずは簡単なプログラムを作ってみます。
先頭に「が押されたとき」をドラッグし、すぐ下に「10歩動かす」のブロックをくっつけます。
ここまでできたら、ステージのをクリックしてください。「ネコ」のスプライトが少し右に動くかと思います。続けてをクリックと、クリックするたびに「ネコ」のスプライトは少しづつ右に動いていくかと思います。
プログラムした通り、「が押されたとき」「10歩動かす」ができているということになります。

このままではをクリックしたままになるので、赤い「六角形」のアイコンをクリックしプログラムを止めます。あと、「スプライト」の位置もこのままでは右の方にあるので、ステージ下の座標の「x」ところを「0」と入力します。
これで元に戻っているかと思います。この状態で次の「イベント」を使ったプログラムを作っていきたいと思います。

複数のイベントブロックを組み合わせてみよう
今度は少し発展させて、複数のイベントブロックを使って連動した動きを作ってみます。
まず、「が押されたとき」のブロックの下に「制御」から「ずっと」をドラッグしくっつけます。

先ほども使った「10歩動かす」を「ずっと」の中に入れます。
試しませんが、この時点で、ステージのを1回クリックすると、「スプライト」はずっと右に進み続けます。

今度は、条件分岐を入れていきます。
「制御」から「もし〜なら」をドラッグし、「ずっと」の中、「10歩動かす」の下にドラッグで入れます。

「もし〜なら」の条件部分となる「六角形」のところに条件となるブロックを入れます。
「調べる」から「マウスのポインターに触れた」をドラッグして、「もし〜なら」の「六角形」のところに入れます。

「マウスのポインターに触れたなら」の「マウスのポインター」を変更したいので、そこをクリックします。
出てきた選択肢の中からより「端」をクリックで選択します。

「イベント」から「メッセージ1を送る」をドラッグし、「もし〜なら」(「もし端に触れたなら」)の中に入れます。
これで1つ目のプログラムは終了です。

2つ目のプログラムを作っていきます。
1つ目の隣などでいいので、「イベント」から「メッセージ1を受け取ったとき」をドラッグしてきます。

そのすぐ下に「見た目」から「うーん…と考える」をドラッグして、くっつけます。
簡単ですが、これで2つ目のプログラムも完成です。
できたプログラムは、をクリックすると、「ネコ」のスプライトが右に10歩づつ動き続け、端に到達したらメッセージを送信し、メッセージを受け取ったら「うーん…」という吹き出しがでます。
本来であれば、同じスプライト内であれば、「メッセージ」を送信しなくても同じプログラムは作れますが、「イベント」を理解するためにこのようにしています。

「ネコ」のスプライトが右に動いていき、ステージの右端に達すると「うーん…」という吹き出しが出てきました。

まとめ
スクラッチの「イベントブロック」では、以下のようなタイミングでプログラムをスタートできます。
- スプライトをクリックしたとき
- キーが押されたとき
- タイマーや音量が変化したとき
- 背景が変わったとき
- メッセージを受け取ったとき
特にメッセージを使ったイベントは、スプライト同士の連携に欠かせません。
少し複雑に感じるかもしれませんが、慣れてくるととても便利に使えるようになります。
また、イベントブロックを使わずに「もし〜なら」などの条件分岐で同じような動きを作ることも可能です。
目的に応じて使い分けながら、楽しくプログラミングを学んでいきましょう!





