カテゴリー別アーカイブ: レッスン

ゲームではじめるマクロ/VBA_導入編~映画の字幕学習のように学ぶ

 このコーナーではエクセルマクロ/VBAにて作成したゲームを楽しみながら「マクロ/VBAの学習を無理なく」そして「挫折することなく」学習しながら、同時にプログラミングにも強くなりましょう!

使用して頂くゲームは2千万人が学ぶKids学習用プログラミングゲームを参考にしつつ、斬新な工夫も加えています

ぜひ、お子様とゲームを楽しみながら有意義に勉強していきましょう!

*コード詳細表示のシートでチェックを外すと通常のゲーム機能だけになります

エクセルマクロ/VBAを覚えると、相当な業務削減の効果が見込めます!

「でも、マクロ/VBAは難しそう・・・」

もし、そんな風にマクロ/VBAの学習をはじめることを躊躇している方は、ぜひこのゲームで楽しみながら「慣れ」を作ってみて下さい

私は47歳からVBAを始めました

SEとしてVBAを始めましたが、とにかく無理やり慣れました

但し、

慣れ方にも工夫の仕方があるのに気づきました

その気づきをまとめたのがこのゲームです

繰返し処理や条件分岐処理などのプログラミングの重要概念も学べるように工夫してあります

 ゲームにはペンギンとオバケが登場します。ペンギンが迷路の中で壁にぶつからないように、事前に用意してあるコードを選択してオバケをつかまえられるようにしてください!

*めいろゲームは3部構成です

ところで、

何故、「エクセルの話にゲームが出てくるのか?」

その事についてはポイントが2点あります

1点目は、マクロ/VBAはコンピューターとのコミュニケーション言語である点です

2点目は、「英語映画の英語字幕」による学習についてです

まず1点目のマクロ/VBAが言語である点についてです

マクロ/VBAではコンピューターにコードで指示を出します

しかも、コンピューターに指示が的確に伝わるようにしなくてはなりません

「どのシート」の「どのセル範囲」の「何を」「どう変えるのか」

を正確にPCに伝えなくてはなりません

つまり、他のプログラミング言語も同様ですが、エクセルマクロ/も言語なのです

しかも、英語でコードを書きます

ですので、英語学習の要領でのマクロ/VBAの学習方法があってもいいのです

次に2点目、「英語映画の英語字幕」による学習についてです

これは英語の映画を、英語の字幕のまま見ながら学習する方法です

こちらは、映画の登場人物とスクリーンを介して疑似対話を行いながら、タイムリーに表示される英語字幕を通じて生きた英語が学べます

このゲームでは映画の字幕の代わりにコードが表示されます

通常のマクロだと一瞬で終了しますが、このゲームは違います

登場人物の動きに合わせて、コードを表示できます

ゲーム内の登場人物の動きに合わせてコードが表示されると、その意味合いを体感しやすくなります

今回、ゲーム内で表示されるコードについては、学習を始めやすいコードに絞ってあります

特に後述する「.」の使い方や「=」はこのゲームで慣れて頂きたいと思います

この「.」と「=」を使いこなすだけでもかなり効果が出ます

尚、

この記事では2つファイルが添付されています

ゲームの他に演習用ファイルがあります

演習用ファイルには、ゲームで出てくるコードが2つ書かれています

ぜひ、ご自身でコードを修正してみたりして、コードの動きを体感してみてください!

ゲームを楽しむ

前述の「めいろゲーム_1」をダウンロードしたら「めいろ1」のシートを選択してください

このシートではまず、コードをご自身で選択して設定します

選べるのは、ペンギンを右に1つ進めるか、下に1つ進めるか、だけです

コードを選択したら、下の画像の一番左にある「スタート」ボタンを押して下さい

もし、やり直す場合には、上の画像の真ん中にある「やりなおす」ボタンを押して下さい

ペンギンが動く際には、前述のように「.」、「=」を理解するためののコードが表示されます

特に、スタートボタンを押した後は、ユーザーフォームが表示されます

こちらは映画の再生を止めて「字幕」をじっくり確認するようなイメージになっています

Excel VBA超入門第1弾エクセルが自動で仕事する!マクロの魔法 文系・非IT職もできるプログラミング

 ユーザーフォーム内のOKボタンをクリックした後に、コードが実行されるので「コードの動き」が実感し易い仕組みになっています 

 もし、ペンギンがオバケをつかまえるのに成功したら、カーソルの動きのみですが、全コードがまとめて表示されます

もし、コードを表示せずに純粋にゲームを楽しみたい場合には、下の画像の箇所のチェックを外すようにしてください

表示されるコードの概要解説

「.」について

コード内に出てくる「.」については、「の」と置き換えて理解してみてください

*ちなみに今の段階では、コードについては完全に覚える必要はありません

①セルの選択/カーソルをセルに置く

ActiveSheet.Range(“B4”).Select

こちらのコードは、↓のような感じで「意訳」してみてください

カーソルがあるSheet内 範囲/Range 選択/Select

 ②1つカーソルを移動する

Selection.Offset(1,0).Select

こちらのコードは、↓のような感じで「意訳」してみてください

カーソルが選択してあるセル範囲/Selection 別位置 選択/Select

Offset(1,0)の場合は1つ下に、Offset(0,1)の場合には1つ右に移動します

「=」について

「=」については左辺の内容を右辺の内容に変えると理解して見て下さい

こちらのコードについては別な機会に演習で実際に体験してみて頂きます

値を入力する

ActiveSheet.Range(“B4”).Value = ActiveSheet.Range(“N1”).Value 

こちらのコードは、↓のような感じで「意訳」してみてください

カーソルが選択されているシート/ActiveSheet”の”B4セル”の”値/Valueを、カーソルが選択されているシート/ActiveSheet”の”N1セル”の”値/Valueに変える

演習

演習用ファイルで実際にご自身でコードを動かして、コードの動きを体感して見ましょう!

開発タブの設定

まだ開発タブを設定していない方は、まずは動画か、演習ファイルの解説シートを見てタブを設定してください

*開発タブの設定用動画(ファイルタブ➡オプション➡リボンのユーザー設定)

コードを動かしてみる

演習ファイルの演習1シートにカーソルを置いてください

次の画像のマクロボタンをクリックすると「Sample1」という文字が見えるはずです

Sample1の文字は次ような感じで見えているはずです

Sample1が選択されているのを確認したら、右にある実行ボタンを押して下さい

すると、上の画像のようにB5セルが「選択されている/カーソルが置かれている」はずです

マクロを実行してみた後は、コードの中味を実際に見て見ましょう!

コードの中味の確認

では、下の画像の「編集」をクリックして、コードの中味を見て見ましょう!

「編集」をクリックすると下の画像の内容が見えます

ここからはご自身で修正してみて、コードの動きを試してみて下さい

例えば、上の画像だと「Selection.Offset(1,0).Select」と入力されています

ですのでコードを実行すると、上のコードでB4セルを選択した後に、1つ下のセルに移動しています

この「Selection.Offset(1,0).Select」「Selection.Offset(0,1).Select」と修正してみてください

すると、1つ目のコードで選択されたB4セルの一つ右隣りのC4セルが選択されているはずです

ちなみに、

下の画像のようにOFFSET関数は、通常の関数でもあります

=OFFSET(セル範囲,行指定,列指定)

この関数では、引数1番目で指定したセル範囲から行方向、もしくは列方向に移動した箇所を指定できますので、興味があれば試してみてください

なお、通常のエクセルシートに戻る際には、下の黄色につけた印の箇所をクリックしてください

<まとめ>

今回は、ゲームと演習ファイルを通じてVBAコードを体験して頂きました

マクロ/VBAの本質にこれから迫っていく「取っ掛かり」にはとてもいい内容だと思います

記事の冒頭でも述べましたが、マクロ/VBAはコンピューターとのコミュニケーションであり、的確に指示をコンピューターに伝えなくてはなりません

 今回経験して頂いたコードには「どこの/どのセル範囲」を操作対象にして、その操作範囲の「何を」「どうするのか」というコンピューターへの「的確な指示」に必要な要素が端的に詰まっています

この「的確な指示」とは具体的にはどういうことか?ということについては、また別な記事で解説したいと思います

まずは、コードを動かしてみる事、そしてマクロ/VBAを楽しむことが重要です!

ちなみに、サンプルファイルは「.xlsm」になっている点にも注目して下さい

この拡張子「xlsm」のように、マクロ/VBAの場合には通常のエクセル作業とは違ったルールがあったりしますが、それは後々、解説していきます

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

にほんブログ村

ゲームではじめるマクロ/VBA~繰返処理を字幕で学ぼう!

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

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

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

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

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

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

めいろゲーム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というサンプルファイルを添付します

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

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

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

まず、Sample2です

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

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

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

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

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

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

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

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

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

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

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

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

<まとめ>

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

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

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

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

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

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

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


にほんブログ村

ゲームではじめるマクロ/VBA~条件分岐に字幕で慣れる

前々回に試して頂いた「めいろ1」ですが、「X」の壁にぶつからないで「オバケ」をつかまえられたでしょうか?

もし、壁にぶつかると条件分岐処理によりペンギンは止まります

今回は、この条件分岐の処理を体験して頂きます

通常のIF関数の復習

今回は、前回使用した演習2のファイルからはじめます

このファイルのK8セルには上記のようなIF関数が埋め込まれています

ですので、「迷路の一の二/C4セル」に”X”が入力されていると”終了”の文字を出力します

このIF関数と同じ仕組みが、記事の冒頭の「カベにぶつかったとき」のマクロの処理に組み込まれています

壁にペンギンをぶつける

では、今回はめいろ1にて敢えてペンギンを壁/Xにぶつけてみましょう!

上の画像のように、コードの1行目で下に進むようにすれば、スタートボタンを押すのとほぼ同時に壁にぶつかります

上の画像では、数式バーに「X」と出ています

つまり、これはカーソルがある箇所にXが入力されているということになります

カーソルがある箇所のセルの中味が「X」の場合には、処理が止まるようにマクロが組み込まれているわけですが、コードにすると次のようになります

2行目の「End」は「マクロ処理」の終了という意味です

この「End」というコードが、1行目のIfからはじまるコードと3行目のEnd Ifに囲まれています

1行目のコードでは、IfとThenの間に「Selection.Value」というコードが入力されています

「Selection.Value」については、今の段階では次のように解釈しておいてください

「選択/Selectionした箇所 中味/Value」

つまり、「もし/If、カーソルが選択されているセルの中味が”X”の場合には」という条件式が「If Then」の の箇所に書いてあります

そして、条件に合う場合には、次の行から書いてあるコードを実行します

3行のEnd Ifは、条件に合う場合に実行されるコードの終点を示しています

条件分岐処理を体験する

では演習2のファイルに戻ります

こちらのファイルにあるSample3のマクロを開いてみて下さい

今回は、下の画像の「Visual Basic」のところをクリックしてみましょう!

すると「Sub Sample3()」の箇所がみえるはずです

こちらのマクロは、実行するとカウンターとして設定した「myCount」が1から3まで増える間にメッセージボックスを3回繰り返し表示します

では、今回はFor ~ Next文の中に次の3行を入力してみましょう

こちらのコードは「もし/If、1からはじまるmyCountが1の場合には、マクロを終了する」という意味になります

ですので、このIf文をMsgBox~の上に書くと、メッセージボックスは1度も表示されません

<まとめ>

今回は、条件分岐の処理を体験して頂きました

前回の繰返し処理もそうですが、この条件分岐処理は操作を記録して再生する「記録マクロ」では実行できません

ですので、繰り返し処理と同様にシステムの醍醐味といってもいい処理だと思います

ぜひ、手を動かして体感してみてください

尚、記事の中で無造作にマクロという言葉を使用していますが、こちらはVBAコードを集めたセット/一式ぐらいに思っていただければ結構です

ではまた次回もよろしくお願いします


にほんブログ村

ゲームではじめるマクロ/VBA_セル変更

今回は3番目の迷路に取り組みます。今回のテーマは「セル変更」です

セル変更と聞くと、何をイメージしますか?

 セルの中の値でしょうか?こちらが一般的ですね。でもフォントの大きさや色などの変更もセル変更には違いないですよね

 VBAコードを書く際、セルが操作対象の場合にはセルの「何」を「どのように変えるか」を明確に指定する必要があります

 今回はセルという操作対象の値を変えたり、フォントのサイズを変えたりするVBAコードに触れて、VBAコードの作法に慣れていきましょう!

めいろ3を動かしてみる

今回、オバケをつかまえるのに書くコードはわずか2コードだけです!

右に行くか、下に行くかそれだけです

オバケをつかまえるまで、このコードをひたすら繰り返します

では、何を基準にして「オバケをつかまえた」とするのでしょうか?

それはカーソルの位置でしょうか?こちらはぜひ、事前に想像してみておいてください

ペンギンのサイズ

1回目の時に「.」は「~の」という風に解釈してみてくださいという記事を書きました

今回はこの点を深堀しつつ、「=」を使って「~に変える」という操作にも注目してみましょう!

さて、

めいろ3を実際に動かしてみると、ペンギンが小さくなったり大きくなったりします

こちらはセルのフォントを変更している訳ですが、表示されるコードに注目してみましょう!

Selection.Font.Size = 14

Selection.Font.Size = 20

こちらの2つのコードは「Selection/選択個所」「フォント」「サイズ」を「14/20に変える

そんな風に解釈してください

オバケをつかまえる

めいろ3を動かして、オバケの手前までくると、下の画像のようなメッセージがでます

Valueについては中味、もしくは値を解釈してみてください

ちなみにSelection.Offset(0,1)は「選択個所」「一つ右」という意味です

つまり、一つ動いた先のセルの中味/値がオバケの場合に「オバケをつかまえた」ということでこのゲームは動いているのです

下の画像がオバケをつかまえた際に出てくるコード一覧です

黄色の箇所に注目して頂きたいのですが、「選択個所値」と「オバケがいるセル値」が等しくなるまで(Do Until)2つのコードを繰り返すという意味になっています

<まとめ>

今回は、めいろ3を通じて「.」と「=」の使い方に慣れて頂きたいと思いました。この「.」と「=」の使い方を理解することは、マクロ/VBAのマスターへのかなりの近道になるはずです。

次回は実際に「.」と「=」を使ってコードを書いてみましょう


にほんブログ村