プログラミング教育で賢い子を育てるサイト

エクセルプログラミング入門 -かるたゲームを作ってみよう

abekkan_LL.jpg

ようこそ!
「四児の父・あべっかん」のブログです。
子どもの家庭教育を中心に役立つネタを書いています。

先日、「エクセルプログラミング入門 -かるたゲームを作ってみよう」というトライアルセミナーを行いました。そのときの内容を説明します。トライアルセミナーですのでセミナーの練習版です。参加者は知人4人でした。

エクセルプログラミング入門

「エクセルプログラミング入門 -かるたゲームを作ってみよう」というトライアルセミナーを行いました。そのときの目次はこれです。
  1. あべっかんって何者?(自己紹介)
  2. なぜプログラミング?
  3. なぜエクセル?
  4. プログラミングの基礎
  5. かるたゲーム作成
  6. もっとおもしろくするためには
 
今回のセミナーのゴールは、初心者と子どもが簡単なかるたゲームを自分でも作れそうだ、と思えるようになることです。パソコンを使った実習セミナーではないので、一度話をきいただけで急に作れるようには私も思っていません。でも、作れそうだと感じてプログラミングを始めてみようと思ってくれるようになることをゴールとしました。
 

なぜプログラミング?

プログラミング教育を行うことの意義は3つあります。
  • ものごとを正確に伝えられるようになる
  • 「考える力」がつく
  • 学校教育でプログラミング学習が必修科目になる
 
以上の3つのことを説明しました。
詳しくはこちらを見てください(なぜプログラミング?
 

なぜ、エクセル?

初心者がプログラミングを学ぶときにプログラム言語としてエクセルのプログラミング(VBA)を選ぶのをお勧めする理由は次の3つです。
  • プログラマにならなくても役に立つ
  • 初期設定が簡単
  • 表の機能や関数と組み合わせてどう作るのか工夫するのが楽しい
その詳しい内容はこちらを見てください(なぜエクセル?


プログラミングの基礎

 

フローチャートとは?

プログラムの設計図のようなものです。

計算する、代入する、表示する、判定する、分岐する、繰り返しなどでどう処理を進めていくのかを考えて記述します。


変数とは「変な数」ではなく「変わる数」

学校の数学で習ったXやYのようなものを変数と言います。変数には数だけでなく文字を入れることもできます。

If 文で分岐せよ

If~Then と書くと、もし(条件に当てはまっていたら)~する

さらに Else と書くと、そうでない場合の処理を書くことができます。
例えばこんなふうに使います。

If 入力した答=正答 Then 「正解」と表示して得点を10点加算する。
Else 「不正解」と表示したあと正答を表示する

End If

For~Nextで繰り返せ

以下のように記述することで同じ処理を指定した回数(N回)繰り返すことができます。

For i=1 to (N)
  ここに処理内容を書く
Next i

エクセル表のデータを変数に取り込む、変数をエクセル表に書き込む

X=Cells(2,3).Value
のように書くとエクセルの2行目3列のセルのデータを変数に取り込むことができます。

同様に
Cells(3,5).Value=Y
 
のように書くとエクセルの3行目5列のセルに変数Yを書き込むことができます。
 
これを使ってエクセル表と変数の間でデータをやり取りすれば表の編集が自在にできるようになります。
複数の表からデータをかき集めて、条件に合うものを選んで別の表を作る、といった作業をプログラムを作って自動的に行うことができるようになるのです。
 

演習

変数の値を計算する簡単な練習問題を5問やってもらいました。
Xに1を
足す とか、X=X+1 を3回繰り返したらXはどうなるか、などなど。

かるたゲームを作ってみよう

私が用意しておいたかるたゲームの説明をしました。このゲームは、
  • 札を配る処理
  • 上の句を表示させる処理
  • 選んだ下の句が当たっているかを判定する処理

に分かれています。

  1. 「配る」ボタンをクリックすると、百人一首の百枚の下の句から10個が選択されて表示されます。
  2. 「上の句を読む」ボタンをクリックすると、上の句が一つ表示されます。
  3. その上の句と合うと思う下の句を選択した状態で「とる!」ボタンを押します

 

合っている場合は「正解」を、まちがっている場合は「まちがい」を表示します

2,3を繰り返して10枚の札がなくなったら終わりです

まずは「とる」処理を説明します。
最初はフローチャートを考えます。下の左のフローチャートだとどうでしょうか。
  1. 選択したセルの行番号と列番号を取り込む
  2. その行番号と列番号が、別のシートに書き込んでおいた正解の行番号、列番号と同じか?
  3. 同じなら「正解」、異なったら「まちがい」と表示する
でもこの処理だけでは、正解しても札は減りません。右側のフローチャートのように、正解で分岐した先で正解した下の句の札を消す、という処理を追加しなくてはいけません。
 
このような感じで説明しました。
さらには私が作成しておいたプログラムについて動作を説明しました。
 
この処理はエクセル表と変数とのデータのやり取りとIf~Thenだけ知っていればプログラミングできてしまいます。
ここでは省略しますが、実際のセミナーではプログラムの記述を見せて1行づつ説明しました。
 
同様に、「上の句を読む」処理と「札を配る処理」についてもフローチャートとプログラムの記述を説明しました。
 

もっとおもしろくするためには

次に、このかるたゲームをもっと面白くする方法を考えてもらいました。
さらにはこのかるたゲームを何かに応用できないか考えてもらいました。
  • 間違い回数を数えて得点をつける
  • 上の句を1文字づつ表示して早いうちに正解できたら得点を高くする
  • 対戦モードを作る
  • 間違えた札をチェックしておいて、間違い回数が多い札を何度も配るようにする→間違えた札を重点的に覚えられるようになる。
  • 和歌の部分を英単語や歴史の年号などに換えれば、中間テスト対策の暗記用のゲームになる
時間が無くなってしまったため、アイディアは少ししか出てきませんでした。
けれどもこうやって面白くする方法、他に流用できるものなどを考えることでプログラムを作るということが楽しく感じられるようになります。
 

まとめ

最後に、この日に教えた項目だけを復習のためにざっと見なおしました。
 
これで本日のゴール「簡単なかるたゲームを自分でも作れそうだ、と思えるようになる」は達成できたでしょうか?
と受講者のみなさんに感想を聞いてセミナーは終了しました。

このような感じでトライアルセミナーを行いました。

今後、これをブラッシュアップしたかたちでセミナーを開きたいと考えています。

 

————————————————————————————–

子どもにとってプログラミング教育はなぜ必要なのでしょうか? こちらをぜひご覧ください。「なぜプログラミング?」

初心者がプログラミングをちょっと学んでみたいとき、エクセルで始めることをおススメしています。こちらをぜひご覧ください。「なぜエクセル?」



「週末パパ講座で子どもに自分で考える力を着けさせる3つの方法」
紙の本電子書籍
電子書籍は、KindleUnlimitedの読み放題の対象です。


忙しいSEも『育児ナシ』を卒業
KindleUnlimited対象の電子書籍です。

電子書籍を出版してみたい人がいましたらサポートいたします。


電子書籍とPODの出版をサポートします

 

ブログを書けずに困っている人がいましたらお手伝いします。


ブログのスキマ、お埋めします!

Follow me!

About あべっかん

私には4人の子どもがいます。子どもの教育について体験したこと、考えたことをこのサイトで伝えます。 また、私はITエンジニアで、@ITというサイトにコラムを書いています。このサイトでは特にプログラミング教育についても伝えていきます。 学校でプログラミング教育が導入されることになりました。 子どもにプログラミングを教えることは何のためになるのか? をこのサイトで伝えます。 そもそも親世代は、プログラマーを目指した人以外はプログラミングのことを知らないと思います。そんなかたに、プログラミングってこういうものなんだよ、やってみると面白いんだよ、というのを体験して知ってもらいたい、と私は考えています。 リンクやシェアは大歓迎です。いいネと思った記事がありましたらどんどんシェアしてください!
URL :
TRACKBACK URL :

Comment

*
DigiPress

ten − 7 =

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Comment on Facebook

Return Top