全5件 (5件中 1-5件目)
1

9月24日(土)福知山にて、北部私学フェスタに参加しました。尾木ママの講演会でした。北部私学フェスタは、地域のためになる講演会を主催したいという思いのもと、多くの方のためになる講師の方を毎年招聘されています。記念すべき第1回は民間校長第1号の藤原和博さんでした。僕が参加したのは、藤原さんの時以来、2回目。テレビで人気の尾木ママですので、楽しみにしていました。講演会には会場から入場され、大変親しみやすい印象でした。批判めいたこともたくさん言われましたが、笑顔で話されてアハハと笑い飛ばす話し方で、全く毒を感じさせませんでした。言いたいことは言うけれども全くそれが否定的だったり攻撃的だったりするような印象を与えない。さすがの話し方でした。多忙による寝不足で不覚にもお話の途中で少し寝てしまいましたが、お話の中身はとても興味深かったです。「外国ではほとんど私学。私学が基本」とか、「今回のは、すんごい教育改革なのよ」とか、教育に関心のある人にピッタリのテーマで話をされていました。「40人学級の日本は世界的にはワースト1」とか、現状の日本の教育環境があまりよくない、という話もされていました。教育に関する博識ぶりはさすが。特に外国の教育との比較は、勉強になりました。外国では小学校教育が始まる年齢が下がってきていて、フランスは3歳から1年生、オランダは4歳から、ということで、大変驚きました。諸外国の多くには一斉テストがない。「自分の時間割は、自分で決めます」ということを言われていて、日本はだいぶ違うな、という印象を持ちました。日本の教育を遠目に見て、客観的に教育について考えることは大事ですね。講演会の後は、特に私学の宣伝めいたこともなく、欲しい人が任意で資料をもらって帰る、ということで解散となりました。興味のあった私学の資料を少しいただきました。その中の、福知山淑徳高等学校の資料には、必要なお金についての表が挟まれていました。京都府在住の場合、年収500万円以下の家庭では授業料が無償になるようです。具体的に表で示されていて、よく分かりました。兵庫県在住の場合でも親の年収によって授業料に差がありました。(下表参照)私立高校の場合、年間にかかる諸経費は学校によってかなり違うようでした。それだけに、こういう金額の表を入学を検討されている保護者にあらかじめ渡しているのは、かなり良心的でありがたいことだな、と思いました。福知山は京都府とはいえ、兵庫県からJRでつながっているので、通学範囲ではあります。実際に西脇市から通っている子の事例も入学パンフレットに載っていました。丹波市だとさらに近いので、選択肢としてはありえますね。福知山淑徳高等学校の場合は、女子なら入寮という選択肢もあるそうです。
2018.09.30
コメント(0)

【Excelプログラミング講座】第13回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のゲームプログラムを材料として、エクセルVBAでのプログラミングを解説していきました。今回が最終回です。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 連載を真面目に読んでくださった方、長々とお付き合いいただきありがとうございました。最後の「未解決バグに挑戦」は「こうか?ああか?」と右往左往してすっきりしない記事になりました。大変申し訳ないです。あまりにもわけが分からない内容につき、即刻記事を削除して「なかったこと」にしようかと思いましたが、若気の至りということで、一応置いておきます。まだ僕も若かったんだなあ。としみじみとしております。連載記事の今後ですが、全体をもう少しすっきりさせて、kindle電子書籍の形でまとめようかと思っています。そのうち、と言ってもいつになるかわかりませんが、年内を予定にがんばってみます。その際には書き下ろしのおまけ記事も追加する予定です。今のところ、「ゲーム中毒のカラクリ」という見出しで、ゲームがやめられなくなる仕掛けについての考察を入れる予定です。これはもしかしたら門外不出の超ヒミツかもしれない、と思っています。完成したらまた読んでもらえたら幸いです。では、ここまでの連載内容を振り返ってみましょう。==========================開催予告 2018.6.4第1回 エクセルにマッチするゲームとは 2018.6.20第2回 プログラミング成功のためのカギとは 2018.6.27第3回「ゲーム」を作ると、頭がよくなる! 2018.7.4 第4回 ゲームとしての核心部分を追求しよう! 2018.7.11 第5回 条件分岐のプログラミング2018.7.18 第6回 ホームランの時のプログラム 2018.7.25 第7回 「もし」の話が続いたら、どうなるか?2018.8.1 第8回 場合の数を「一目瞭然」にしよう 2018.8.8公開 第9回 デバッグをしよう!2018.8.22 第10回 未解決バグに挑戦!(その1)2018.8.29 第11回 未解決バグに挑戦!(その2)2018.9.5 第12回未解決バグに挑戦!(その3) 2018.9.12==========================さて、この連載が、「エクセルでゲームを作るときのプログラミングがわかる」というねらいに沿ったものだったかどうか?みなさんの評価はどうでしょうか?「プログラミング」という言葉が指し示す範囲はあまりに広範囲です。世の中にはいろいろなプログラミング言語があり、使用できるソフトウェアも様々です。その中から、「エクセル」では何ができるか、何をやりやすいか、というのを最初の方に書きました。( 第1回エクセルにマッチするゲームとは)簡単に言うと、「データ管理ができるので、データを生かすゲームが作りやすい」ということですね。次に、ゲームプログラムの全体構造を概観しました。画面に表示するのが「フォーム」、こういうときにはこうしなさいという命令が「コード」です。プログラムとは一般に、プログラムコードを指すことが多いですね。ちなみに、フォームもコードもひっくるめたプログラム全体を、エクセルVBAでは「プロジェクト」と言います。かっこいいですね、プロジェクト。エクセルでプログラムを組んだら、あなたも立派なプロジェクトリーダーです。そのうち「プロジェクトX」にも出られるかもしれません。いいですね。プログラムの中ではいろいろな「変数」を使用します。XでもYでも何でもいいんですが、その中に入る内容が、場合によって変わるのが、変数です。一つ前のプログラムコードでユーザーが何をしたかを格納したりする等、いろいろな使い方があります。変数は基本的に、それがどういう型のどういうものであるかを「宣言」する必要がありました。たとえば・Dice1:サイコロその1 が出す、ダイスの目 ・Dice2:サイコロその2 が出す、ダイスの目というのが、モデルにしたゲーム内の代表的な「変数」でした。ランダム変数を使えば、「1から6までのランダムな整数」などの設定もできます。そうです、プログラム上で、実際にサイコロを振ったのと全く同じことができるのです。逆を言えば、プログラミングさせたいことを実物のサイコロを振ってゲームプログラムと同じことができます。つまり、コンピュータに頼らないアナログゲームとしてサイコロを使うゲームをまず考えて、それをゲーム化することが初心者向きです。これは本当におすすめです。頭の中だけでゲームを考えるのは、とてもハードルが高いのです。第3回「ゲーム」を作ると、頭がよくなる!では、エクセルのことに全く触れずに、「プログラミング的思考」の重要性について語りました。ゲームを作ることは、決してプログラミングをすることではありません。紙と鉛筆でゲームを作ることもできるし、発想次第、思考次第です。第4回では、プログラミング関係なしに、「ゲーム」を作る上での重要ポイントを書きました。すべてのものづくりに通じるかもしれませんが・・・そのゲームのウリを焦点化し、それ以外の部分を思い切って捨てることです。初心者にありがちなのは、なんでもかんでも詰め込みすぎてしまうことです。ゲームとしてのオリジナリティを出すために、積極的に魅力を特化しましょう。第5回以降はやっと具体的なエクセルVBAプログラム解説講座っぽく具体的になっていきます。ただ、第5回以降、ほとんど「条件分岐」の話しかしていません。何しろモデルになったゲームが全てが条件分岐でできているようなゲームですので・・・。そういうわけで、かなり偏った記事だったかと思いますが、もしかしてほんのちょっとでもお役に立っていたら、幸いです。コメントお寄せください。待っています。では、また!(毎週水曜21時の「エクセルプログラミング講座」は、ひとまずこれにて終了!)
2018.09.19
コメント(1)

【Excelプログラミング講座】第12回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のゲームプログラムを材料として、エクセルVBAでのプログラミングを解説していきます。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 前々回から、未解決のまま放置していたバグの解決に乗り出しています。 簡単に言うと、「サヨナラで途中終了すると、成績反映がされずに終わっちまうときもある」というバグです。原因は、設計段階で「サヨナラで途中終了する場合」のことを想定していなかったことにあります。前回までで、「打点」と「安打数」の成績反映はできそうな見通しが立ちました。今回はいよいよ「打数」の反映の入れ込みです。 道筋としては、「打数のカウントを最初にして、送りバントの場合のみ、例外的にカウントを戻す、というやり方」をとろうとしています。 今回は、そのつづき! 果たして今まで放置していたバグが解決できるか? 打数の成績反映のコマンドは、 Call SeisekiB(Range("H6"), 22)でした。現在の打数反映コマンドがどの場所にあるか、まず調べておきましょう。Crtlキーを押しながら”F"で、「検索」でしたね。検索窓に、「Call SeisekiB(Range("H6"), 22)」を貼り付けます。このとき、検索条件を指定できます。今回は、ゲームプログラム全体から検索したいので、「カレントプロジェクト」を選びます。もしも、1つのサブルーチンとか、あるプロシージャの中だけを探すときは「カレントプロシージャ」、今いる「Module1」などのモジュール全体の中から探すときは「カレントモジュール」を選びます。右側に「置換」もありますね。Wordでもそうですが、検索と置換はうまく使うとかなり便利です。今まで使いこなしていない人には、超おすすめの便利機能ですよ。で、検索すると、該当箇所が反転表示されて、見つかります。もう一度検索すると、別の該当場所に移動します。確認すると、該当箇所は2つ。「HR(ホームラン)ねらい」と「飛球判定」の最後。いずれも、その打席が終わって、次の打者に切り替わるか、チェンジを迎える直前に打数の成績反映がされています。ん?今回のエラー、「ホームランの時は記録されるのに」と報告されていましたが、この2カ所しかないということは、サヨナラホームランの場合もやはり打数は記録されないようです。そうなると、話は早い!前回、「サヨナラの処理」のところだけに入れれば話が済むんじゃないか、と言っていた理屈が、通るようになります。そんなわけで、Sub「ScoreIn」の「Call SeisekiP」の下に、打数の成績反映も付け足します。=========================== 'サヨナラの処理 If Range("O3") <> "" And Range("Q3") > Range("Q2") Then Call SeisekiP(Range("O6"), 22) Call SeisekiB(Range("H6"), 22) Y = 3 'Y=3でwinningを処理 MIDIstop Winning End End If===========================これで、エラー改善ができたはず!以下、確認作業です。これまでの修正箇所を、7回制変更プログラムにも反映させ、7回制の試合で実際にサヨナラ処理を起こさせて、結果を見てみます。エクセルのスコアボードは、実は自由に数値入力できるので(!)得点は自由に操作しながら、7回裏まで試合を進行させます。ヒットやホームランを打つかどうかは運任せですが、相手投手をヘボ投手に選手交代し、少しでも確率を上げます。ちなみに、「勝負!」ボタンだけはマウスでクリックしなければなりませんが、ダイアログボックスはキーボードのEnterキーで次に進むので、急いでいるときはEnterキー押しまくりでかなり高速進行できます。再現に挑戦した1回目。おっと、サヨナラホームランになってしまいました。サヨナラホームランの打者成績反映はやはり完璧であることを確認する結果となりました。(--;)気を取り直して2回目。今度は、サヨナラ2ベース。さっそく打者成績を見に行くと、おっと打点が入っていない。そういえばこの連載記事の中ではちゃんと打点の反映方法に触れていませんでした。(打点の反映方法は、バグ報告へのコメントの回答欄に以前書いていたのでした。)そちらも反映し、見事、バグ取り、完成です。バグ取りが本当に出来たかどうかの確認のため試合をしないといけないのは面倒ですが、これは大事なところ。本当に直ったかどうか、まず自分で確認することは大事です。そんなわけで、未解決バグは、見事解決されました!解決済みバージョン3.3は近いうちに公開します!(^0^)
2018.09.12
コメント(0)

【Excelプログラミング講座】第11回です。 この講座では、エクセル野球シミュレーション「ダイナミックベースボール」のゲームプログラムを材料として、エクセルVBAでのプログラミングを解説していきます。 ▼ダイナミック・ベースボールのページ 過去記事をまとめたサイト↓ ▼エクセルプログラミング講座 前回から、なかなかやっかいなバグの解決に乗り出しています。簡単に言うと、「サヨナラで途中終了すると、成績反映がされずに終わっちまうときもある」というバグです。原因は、なんと設計段階でサヨナラで途中終了する場合のことを想定していなかった!そういうわけで「今更どうやって入れ込むよ」という状態なのですが、強引になんとか解決を図りたいと思います。道筋としては、「打数と安打数のカウントを最初にして、送りバントの場合のみ、例外的にカウントを戻す、というやり方」をとろうとしています。今回は、そのつづき!果たして今まで放置していたバグが解決できるか?前回は「打数」のカウントのみにまず着目しましたね。そこで、今日は「安打数」のカウントについても、そのタイミングを調べておきましょう。安打数をカウントする命令は Call SeisekiB(Range("H6"), 20)でした。Call SeisekiB(Range("H6")までが、打者成績のカウント命令に共通する部分で、その後の数字が「20」なら安打数なのでした。この「20」は目的のセルの列番号を表しているのでした。たとえばヒットを打ったときなら、=========================== MsgBox "うまく打ちました!ヒット!", , "ヒット!" Call 走者判定HIT HitIn Call SeisekiB(Range("H6"), 20)===========================となっています。検索(Ctrl+”F”)で調べましたが、どこも「HitIn」とセットになっていますね。この「HitIn」、怪しいけど、その中身は?「HitIn」のサブルーチンを見てみると、意外にも、非常に短いプログラム。===========================Sub HitIn() If N Mod 2 = 0 Then '表のとき Range("R2") = Range("R2") + 1 Else '裏のとき Range("R3") = Range("R3") + 1 End IfEnd Sub===========================これは、スコアボードの各チームの「累計ヒット数」のカウントをプラスするプログラムですね。今回の成績処理には関係ありません。なあんだ。「サヨナラの処理」があるのは、「ScoreIn」、つまり得点が入ったときのサブルーチン。ずばり、そうでしょう。「ScoreIn」を見てみると、ありました。次のところです。=========================== 'サヨナラの処理 If Range("O3") <> "" And Range("Q3") > Range("Q2") Then Call SeisekiP(Range("O6"), 22) Y = 3 'Y=3でwinningを処理 MIDIstop Winning End End If===========================サヨナラヒットの場合は打数と安打数のカウントがされないということだったので、「だったら、ここにカウントするプログラムを追加するだけで済むんじゃねえの?」と思われる方もいるでしょうが・・・問題は、「ホームランの時はカウントされる」というところ。ある条件だけで発生するバグへの対応なのに、得点処理ScoreInに書いてしまうと、すべての条件でカウントがされてしまい、別ルートをたどってきた条件では二重処理がされてしまうリスクがあります。そんなわけで、面倒がらずにそれぞれのルートを確認します。ホームランの時のサヨナラ処理がたどるルートは・・・たとえば3塁ランナーがいた場合だと、=========================== MsgBox "3塁ランナーホームイン!!", , "ホームラン!" Call SeisekiB(Range("H6"), 16) Call SeisekiP(Range("O6"), 20) ScoreIn=========================== と書いてあります。うん。ちゃんと打者成績処理(打点)が 「ScoreIn」の前に来ています。ここからさかのぼってランナー条件を見る以前に戻ると、ホームランだと表示させたときにすでに=========================== HitIn Call SeisekiB(Range("H6"), 14) Call SeisekiB(Range("H6"), 16) Call SeisekiB(Range("H6"), 20) Call SeisekiP(Range("O6"), 20)=========================== という打者成績処理もしています。SeisekiB(Range("H6"), 16)の打点処理は、ランナーが帰ってくるたびにプラスしているので、この表記で、合っていますね。では、ホームラン以外の場合はどうか。ホームラン以外の場合は、走者がホームインしたかどうかを読み取らないといけません。この分岐は、「Module Runnner」にあります。おや。この場合もホームランのときと同じですね。打者成績処理は、数字が16。16は打点です。なんと。違いは見いだせず!サブルーチン処理に違いがないので、分岐前の「飛球判定」に戻ってきてからの処理を見てみます。ホームランの場合は「ScoreIn」の前に、「 Call SeisekiB(Range("H6"), 20)」(安打数のカウント)が、ありました。ホームラン以外の場合は、「ScoreIn」は「走者判定」に含まれるので、打者成績処理が「走者判定」の前にないといけないのですが・・・たとえば3塁打の場合、=========================== Call 走者判定3B HitIn Call SeisekiB(Range("H6"), 20)=========================== おっと、思いっきり、逆でした。これは単純に順序の入れ替えでいけそうです。「安打数のカウント」については、以下の対応でクリアできると思います。「 Call 走者判定○○」の前に、「Call SeisekiB(Range("H6"), 20)」を持ってくる。場所は「Module1」の「飛球判定」の中です。該当箇所の「Call SeisekiB(Range("H6"), 20)」を切り取り、「 Call 走者判定○○」の前に挿入し、「 Call 走者判定○○」を切り取って「Call SeisekiB(Range("H6"), 20)」が合った場所に移します。切り取りのキーボードショートカットはOKですか?コピーはCtrl+”C”でしたが、切り取りはCtrl+”X”ですね。念のため。キーボードでサクサク修正作業を進められないとまどろっこしくてしょうがないので、自由自在にできるようになっておきましょう。なにしろ同じような修正箇所が多いですから・・・。ちなみに「HitIn」とは順序が前後しても構いませんよね。すでに見たように、「HitIn」はスコアボードのヒット数表示だけに関わるプログラム。そのため、カットペーストを繰り返すのが面倒なら、「 Call 走者判定○○」のみを切り取って、「Call SeisekiB(Range("H6"), 20)」の後に移し替えるだけでもOKです。これで、安打数のカウントに関してはクリアできました。まだ完全にバグ対応が終わっていませんが・・・またまた長くなったので、続きはまた次回!なお、デバッグにおいては、何をどこまで作業したのかを記録しておくことが重要です。今回の場合、修正したファイルの「情報」タブに、以下のような追記をして、まだ途中だという意味を込めて赤字で目立たせておきました。これは自分用のメモですが、修正版を公開したときにもこういったバグ修正情報は必要なので、体裁を整えて情報を残すようにします。↑自分用のメモ。今はまだ僕の自宅PCのファイルでしか見られない。それではまた来週!次回こそ、修正バージョン完成か!?
2018.09.05
コメント(0)
![]()
最近、コードハープなるものを買いました。まさかハープを買うときがくるとは思わなかった。(^^;)コードを表すボタンを押すと、そのコードの音しか鳴らなくなるハンディハープです。コードによる音の違いを意識するには、手軽でいいものです。ジャラ~ン♪ARIA(アリア) コードハープ音楽は好きですがコードが苦手なので、この機会にコードの勉強をしたいと思っています。そういうときに、いいアプリがあります。音楽ファイルを解析し、どんな曲でもコードを表示させるアプリ、その名も「mysound」。正式名称は「mysoundプレーヤー」。iOS版とAndroid版があり、無料で利用できます。▼ヤマハの公式サイトスマホにインストールすると、スマホに保存しているミュージックライブラリーを自動で読み込みます。その中から好きな曲を選択すると、再生。そこまでは普通ですが・・・「歌詞」ボタンをタップすると、歌詞を表示します。対応していない楽曲も多いですが、メジャーな歌なら対応しているようです。例えば、iTunesで購入した星野源の「アイデア」だと、歌詞がバーーンと表示されました。カラオケのように色が変わっていきます。「歌詞」と「カラオケ」の2画面表示を切り替えることが出来、カラオケのように一部だけ表示するのではなく、「カラオケ」のほうがフォントサイズが大きくなり、一画面の文字量が少なくなります。(「歌詞」は縦画面表示、「カラオケ」は横画面表示)「コード」ボタンをタップすると、コードを解析しだします。ちょっと待つと、解析終了。以下のような画面になります。これで、コード楽器での弾き語りもバッチリ練習できますね!コード表示欄の下画面にはギターやウクレレのフレット表示や、ピアノの鍵盤の押さえ方表示も出すことができます。至れり尽くせりです。さて、このコード本当に合っているのかどうか、コード表記付きの公式な楽譜と見比べてみました。検証に使ったのは児童用合唱曲「パーム・パーム」です。結論としては、だいたい合っています。ヤマハの技術、すごいです。公式の楽譜では、冒頭小節のコードはC . . C/B Am . . Am/GF . . . Gaug . . .となっています。(前のコードと同じ拍は「.」で書きました。)いくらコードハープがお手軽だとは言え、速い曲のコード変更にはなかなかついていけない・・・。遅い曲を選んで練習しようと思います。(^^)
2018.09.01
コメント(0)
全5件 (5件中 1-5件目)
1