タグ別アーカイブ: ゲーム

ゲームではじめるマクロ/VBA~繰返処理

前回は、めいろゲーム1を試してみて頂いた上で、カーソルを動かす簡単なマクロを試して頂きました

今回、まずはエクセルマクロ/VBA醍醐味である「繰り返し処理/ループ」を試してみて頂きます

この「繰り返し処理」はシステム全般醍醐味といっても過言ではありません

この繰り返し処理のおかげで、人間は退屈な処理から解放されています

ぜひ、めいろゲーム2を通じて、この繰り返し処理を体感してみてください

この繰り返し処理は通常のマクロ/だと一瞬で終わってしまい、結果でしか、実感する暇がありません
このゲーム形式だと、登場人物に合わせて表示されるコードにて、はっきりと繰り返し処理が行われている様子を実感できるのが大きなメリットです!

アイコン

めいろ2 182.98 KB 2 downloads

...

めいろゲーム2の遊び方

迷路ゲーム2のシートにて、L列の下にある「やり方」ボタンを押すとゲームのコード設定の方法が表示されます

このめいろ2では、めいろ1と違い「2つのコード」とそれぞれの処理回数の指定だけで「ペンギン」が「オバケ」を壁にぶつからないでつかまえることができるようにします

めいろ1とめいろ2は「めいろの内容」と「ペンギンとオバケの配置」は全く同じです

ところが、繰り返し処理を行うめいろ2の場合は僅か2行のコードを設定するだけで済みます

この2行へのコードの集約がまさに「繰り返し」処理の醍醐味です

ペンギンがオバケをつかまえた後は、カーソルの動きの動き(ペンギンの移動)について実行された「全てのコード」が表示されます

上の画像を見て「なんのことかさっぱり??」と思われたかもしれませんが、

次の章で、中身について解説していきます

繰り返し処理の中味を見る

繰り返し処理には様々な種類がありますが、今回はFor ~Next文に絞って解説を行います

上の画像の赤字部分が、構文になります(➡後は可変になります)

ForとNextの間に書いてあるコードを繰り返し処理をさせます

「繰り返し処理を何回行うか?」

の指定については、変数という概念を使います

今回はこの変数については「魔法の呪文」と割り切って話を進めさせて頂きます

上の画像の「Dim myCount As Long」とは、「myCount」を「整数の型式」にて変数として使うという意味になります

この変数の「myCount」は中学の数学で使う「X」のような意味で考えて頂いて結構です

数学の問題ではXに様々な値が入り、Yの値が変わっていきます

今回の繰返し処理のコードでは「As Long」として指定することにより、「myCount」に整数だけが入るというルールになります

ちなみに、myCountという名前は「i」などの他の名前にして頂いても結構です

さて、

この「myCount」はFor~Next文の中で、繰り返し処理回数をコントロールするのに重要な役割を果たします

「For myCount = 1」と指定することで、myCountは整数の1から始まり、

その後に「to 4」と指定することで、myCountを1つずつ増やして4になるまでFor ~ Nextの中に入るコードを繰り返し処理するという意味になります

実際にコードをいじってみよう

今回は演習2というサンプルファイルを添付します

アイコン

演習2 133.64 KB 1 downloads

...

サンプルファイルの中には3つのマクロが入っています

このうち「Sample1」は前回に使用したものです

今回は、Sample2とSample3を使用します

まず、Sample2です

Sample2を実行すると「メッセージ」が表示されます

では、「編集」ボタンを押してSample2の中味をみてみましょう!

本当に簡単な一文が書かれているはずです

MsgBox~この一文だけで「メッセージ」を表示させることができます

では、Sample3を実行してみましょう!

今度は3回メッセージが出てきました

Sample2と同じ様に中味をみてみましょう

めいろ2と同じ様な繰り返し処理のコードが書かれています

今回の場合には、Toの後が4からに変わっています

ですので、メッセージを出すコードが3回繰り返し実行されています

繰返し処理を体感する意味で、この「」を他の数字に変更してみましょう!

変更した上で実行すると、繰り返し処理を体感しやすいはずです

<まとめ>

いかがでしたでしょうか?

今回は、繰り返し処理について体験して頂きました

記事の冒頭でも書きましたが、この繰り返し処理はシステムの醍醐味です

この繰り返し処理を使いこなせると、エクセルを使う景色が変わってきます

今回の内容は、繰り返し処理の中でも一番、基礎的な内容です

この基礎形を理解しておくと、様々な形で応用が効きますのでぜひマスターしておきましょう!

!ストリート・アカデミーにてゲームを使ったマクロ/レッスンも行っています➡ 詳細


にほんブログ村

大人のためのプログラミングゲーム~エクセルマクロも学べる~

エクセルマクロ(VBA)をもっと広めるにはどうしたらいいかを考えて作成したのが、この親子でも楽しめる「めいろゲームです」。これまでも紹介してきたアニメーションマクロを取り混ぜながら作成してあります【無料ダウンロード】。

 3つの迷路に取り組むなかで、プログラミングの基本である「繰り返し処理」をゲームをしながら体感できるようになっています

 これからプログラミング学習を始めるお子様も楽しめるように意識して作成してあります

このゲームを作成するに当たっては、こちらのサイトに大いに刺激を受けました

https://studio.code.org/hoc/1

フェイスブックの創設者、ザッカーバーグも登場するキッズ用のプログラミング学習ゲームサイトです

ザッカーバーグが前述のゲームサイトでこう言っています

「コンピューターが本当に得意のことのひとつは、コマンドを繰り返すこと」

まさにITの本質だと思います

我々の今の生活に欠かせないコンピューターですが、「繰り返し処理」がなければ我々の今の生活レベルは違ったものになっています

逆に言えば、「繰り返し処理」さえ理解すればITの本質を相当カバーできます

また、この「めいろゲーム」ではエクセルのコードが1部ですが表示されます

・ゲームを行っている際中

・ゲームをクリアーした後

プログラミングの上達のコツの一つは、コードに慣れることです

 このゲームを通じて、簡単なコードでもいいので「慣れ」を感じて頂けると嬉しいです!

表示されるコードについて、概要を以下に解説します

・ ActiveCell.Offset(1, 0).Activate

これは、カーソルの位置を「下に1つ移動する」という意味になります

通常、エクセルのセルの位置は「A8」「C2」という形で表現されます

まず「列位置(A~)」があり、次に「行位置」が表現されています

実は、エクセルではR1C1という形で「行位置」「列位置」の順番にてセル位置を表現する方法があります(R➡Row、c➡Column)

つまり(行位置,列位置)という型式にて、あるセル位置を基準にして行列位置を完全に定量化して表現する方法が可能です

ちなみに列位置を一つ右へ移動する場合には、次のコードを書きます

ActiveCell.Offset(0, 1).Activate

・For文(For~Next)

ForとNextに書かれたコードを繰り返し実行します

繰り返す回数は「For A = B to C Step D」という形で表現されます

・Do Until文

ある条件を満たすまで、Do UntilとLoopの間のコードを実行します

次に操作について概要を解説します

めいろ1~3までシートが分かれていますが、それぞれのシートでの操作はほぼ一緒です

コードを表示させたくない時には、次の画面で非表示も選択できます

・コード記入画面

コードはリストで選択します

・各種ボタン

「スタート」ボタンを押すと記入されたコードに従って、ペンギンが動き出す仕組みです

「やりなおす」ボタンを押すと、コード等がリセットされます

「やりかた」ボタンを押すと、ゲームの解説が表示されます

・めいろ1

記入されたコードを上から順に実行していきます

・めいろ2

めいろ1のコードの内容を、プログラミングの構文で言えばFor~Next文で集約する内容になっています

*実際にFor文を書くことはありません

・めいろ3

めいろ1と2はかなり簡単ですが、3は少しトリッキーな内容も入れています

プログラミングの構文で言えばDo Until~文で繰り返す内容になっています

*実際にDo Until文を書くことはありません

ゲームは次のアイコンからダウンロードできます

アイコン

めいろゲーム 312.61 KB 12 downloads

...

注意事項を書いたシートがあるので、そちらは事前にご確認ください

ぜひ、プログラミング自体を楽しんでみてください!

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村 IT技術ブログ VBAへ

にほんブログ村