2020年06月18日

10万円ではじめるプログラミング講座 4

全ての国民に10万円が行きわたると言う事で、様々な事情の
方がいらっしゃるかと思いますが、それが出来る人に向けて、
Excelを活用したプログラミング講座を執筆する事にしました。
「ゲームをやった時間を記録して集計出来るプログラム」を
自分で作れるようになる事を目標にしています。

前回は、ちょっとしたプログラムをつくってみるところまで
進めました。出来上がったプログラムを動かしてみていかが
でしたでしょうか。微妙な結果が出ましたか。微妙な結果が
出たら、正解だと思います。

今回は、つくってみたプログラムを改造して、Excelを使った
プログラミングの理解を深める事をやってみようと思います。

前回つくったプログラムは、ファイルに保存したと思うので
ファイルを開きます。ここで、注意しなければならない事は、
プログラム(マクロ)を含むExcelファイルを保存して閉じる
と、次に開いたときにプログラム(マクロ)が自動的に無効
になると言う事です。これはマクロを使ったウイルスが多く
出現した事により対応がとられた結果です。

前回つくったプログラムを開くと、まだ何も内容が書き込ま
れていない、まっさらなExcelブックが表示されると思います。
プログラム(マクロ)は「Alt+F11」を押した後に表示される
画面を開くと閲覧する事が出来ます。ただし、プログラムが
自動的に無効になっているので、プログラムが含まれている
事は確認出来るのですが、実行する事は出来ません。これを
解除する為には、ファイルを開いた直後に表示される警告の
時点で操作が必要になります。一度でも「Alt+F11」を押して
プログラムが確認出来る画面を開いてしまうと警告は消えて
しまう為、一旦ファイルを閉じて、再び開く必要があります。

改めて、前回つくったプログラムを開くと、まっさらなExcel
ブックに「セキュリティの警告 マクロが無効にされました。」
と言う表示(表現はバージョンによって違うかも知れません)
が出現している事が確認出来ると思います。その横にボタン
が表示(「オプション...」等と表示)されていて、押す事が
出来ると思うので、押すと、マクロを有効に設定する画面が
表示されると思います。この画面で「有効にする」を選ぶと
プログラム(マクロ)を実行する事が、出来る様になります。

プログラムの改造を始める前に、前回つくった内容を消して
しまう事のない様、ファイル名を変えておきましょう。

ツールバー等にある「名前を付けて保存」をクリックします。

ファイル名は「PEAP2.xlsm / PEAP2.xls」等が良いでしょう。

今回は、テキストボックスに数値を入力して数値が変わった
瞬間に計算が行われる様にして、数値の変更による計算結果
の変化を、すぐに確認出来る仕組みにしてみようと思います。

プログラムの変更に取り組む前に、前回つくったプログラム
には、ちょっとした問題があるので、それを確認しましょう。

「F5」を押してプログラムを実行します。

試しに、何も入力しない状態で「計算」ボタンを押してみま
しょう。エラーが表示されましたか。「デバッグ」を押して
みると、どこでエラーが起きているか分かります。

RatioA = CSng(txtRatioA.Text)

の場所で止まっている事が分かると思います。

この式は、右辺の内容を左辺に代入する、と言う意味の式で、
RatioA は変数です。変数とは、変化する値を保持する媒体の
事で、変数そのものを表したり、他の変数と区別したりする
為にアルファベット(A-Z)や数字(0-9)等を組み合わせた
名前が付けられています。変数には、どんな値でも保持する
事が出来る型(Variant型)も存在しますが、どんな値が保持
されているか分からないと使いにくい事が多いので、通常は
プログラムの目的に合わせて保持する事が出来る値の種類を
限定して使います。左辺のRatioA は、小数点以下を含む数値
を保持する事が出来る型(Single型)の変数で、一方右辺の
txtRatioA.Text は文字列を保持する事が出来る型(String型)
の変数で、そのままでは、右辺の内容を左辺に代入する事が
出来ません。そこで文字列から小数点以下を含む数値に変換
する関数(CSng)を使って、右辺の内容を左辺に代入出来る
様にしている、と言うのが、この式の説明です。

ところが、CSng関数は、文字列が数値として認識出来る場合
のみ変換を実行し、そうではない場合はエラーを発生させる
様につくられています。おかしな入力があった場合に勝手に
判断するのではなく、止まる様に出来ている、と言う事です。
その為、おかしな入力があった場合にどうするかプログラム
で記述しておく必要があるのです。

そこで、この式を以下の通りに、書き換える事にしましょう。

If IsNumeric(txtRatioA.Text) Then RatioA = CSng(txtRatioA.Text)

IsNumeric関数は、入力された値が、数値として認識出来るか
どうか判断する関数です。認識できる場合は、真(True)を
返します。If condition Then statements ステートメントは
条件付きの実行を行う事が出来る様になるステートメントで、
condition の式が真(True)の場合のみ、statements を実行
せよと言う意味のプログラムを書く事が出来ます。この式は、
txtRatioA.Text が数値として認識できる場合のみ、先ほどの
右辺の内容を左辺に代入する式、を実行するプログラムです。

同じ意味の式が、全部で6行続いているので、他の行も同様に
書き換えておきましょう。終わったら「F5」で再開出来ます。
問題がなければ、「計算」ボタンを押した後の状態に戻るで
しょう。入力ミス等で問題があれば、エラーが表示されます。

再開せずにプログラムの実行を中断し、編集画面に戻る事も
出来ます。その場合は、ツールバー等にある「リセット」を
探してクリックします。四角形が表示されたボタンです。

正しく書き換えられていたら、何も入力しない状態で「計算」
ボタンを押してみると、エラーは表示されず計算結果として、
0 が表示されているのではないかと思います。数値ではなく、
アルファベットを入力して、「計算」ボタンを押してみると、
やはりエラーは表示されず計算結果として、0 が表示される
のではないかと思います。

次に、テキストボックスにもプログラムを書き込みましょう。

フォーム編集画面でテキストボックスをダブルクリックして
も良いのですが、ちょっと別の操作をしてみようと思います。

コード画面を表示させると、画面の上部にコンボボックスが
二つ付いているのが確認出来ると思います。左にあるコンボ
ボックス(オブジェクト)を開くと、フォームに配置された
コントロールの一覧が、表示されるのではないかと思います。

この中から、テキストボックス「txtRatioA」を選んでみます。
すると、右にあるコンボボックス(プロシージャ)の内容が
更新され、プロシージャのひとつが自動的に選択され、同時
に、編集ボックスには、そのプロシージャのコードが自動的
に挿入されているのではないかと思います。試しに、いくつ
かのプロシージャを選択してみてください。試してみるうち
に、何となく雰囲気がつかめて来るのではないかと思います。

では、オブジェクトとして「txtRatioA」を、プロシージャと
して「Change」を選んでみます。「Change」は自動的に選択
されているプロシージャだと思います。すると、自動で以下
のコードが挿入されていると思うので、

Private Sub txtRatioA_Change()

End Sub

ここに「CommandButton2_Click」と書き加えます。

Private Sub txtRatioA_Change()
CommandButton2_Click
End Sub

以下に示す他のテキストボックスについても、同様にします。

「txtRatioP」
「txtRatioAP」「txtRatioAE」
「txtRatioPP」「txtRatioPE」

雰囲気としては以下の様になっていると思います。

Private Sub txtRati0A_Change()
C0mmandButt0n2_Click
End Sub
Private Sub txtRati0P_Change()
C0mmandButt0n2_Click
End Sub
Private Sub txtRati0AP_Change()
C0mmandButt0n2_Click
End Sub
Private Sub txtRati0AE_Change()
C0mmandButt0n2_Click
End Sub
Private Sub txtRati0PP_Change()
C0mmandButt0n2_Click
End Sub
Private Sub txtRati0PE_Change()
C0mmandButt0n2_Click
End Sub

(ここに示したコードはコピペしないでください)

――◇◆◇――

前回の記事では、プログラミング講座に関連して、その先に
広がるITの世界の話題に触れましたが、その中で更に、本日
告示日を迎えた東京都知事選挙についても触れました。

かつて、情報技術を活用した「IT機器」ではなかった装置が、
いまや「IT機器」のひとつとして数えられる様になった事例
はたくさんありますが、かつて磁気テープに映像を記録して
いた監視カメラは、「映像をデジタルデータに変換する技術」
の発展により、いまや「IT機器」のひとつとして数えられる
様になりました。

東京都知事選挙の結果によっては、権力に巣食い、うまい嘘
で国民を騙して富を掠め取り、その富を、自分を中心とする
親しい仲間に分配する活動を通して利権共同体をつくる勢力
が勢いづいて、その利権共同体を中心とする独裁体制を維持
する為に、果てしなく高度化した「IT機器」を、街中に張り
巡らせる様になるでしょう。

(前略)委託・外注を繰り返し、769億円もの税金を身内企業に配分――。持続化給付金事業のうち、20億円を中抜きしたトンネル法人の設立に関わりながら、(中略)追及を逃れているのは(中略)人材派遣大手パソナだ。東京都のオリンピック関連事業でも、パソナの謎だらけの契約が(中略)分かった。(中略)

五輪ボランティアの研修業務(について)(中略)2017年5月30日、オリパラ準備局が指名競争入札を実施し、パソナが落札。(中略)入札に参加した他の2社は、それぞれ100万円、770万円で応札したのに、パソナはたった8万3000円(全て税抜き)。(中略)参加した一社の営業担当者は「弊社の応札額はしっかり積算した結果。(中略)」と、(中略)振り返る。

この事業の契約期間は18年1月31日まで。その直後にオリパラ準備局は、ラグビーW杯に向けた「開催都市ボランティア育成開発等業務」の指名競争入札の実施計画を公表した。(中略)ラグビーW杯のボランティア育成に紛れて、五輪ボランティアの研修業務も盛り込まれていた。(中略)オリパラ準備局も「8万3000円の契約とひと続きの事業」(担当者)と認めた。(後略)


〈日刊ゲンダイ 6月11日(6月10日 夕刊) 3面〉

謎に包まれているので整理していきましょう。情報公開請求
をした人物は「最初の契約に関する資料の開示を求めたのに、
なぜかその直後に公表された別の契約の資料が含まれていた」
と証言しています。オリパラ準備局も認めた様に、これらは、
「ひと続きの事業」だったと言う事になります。

最初の契約において入札に参加した他の二社は、そのうちの
一社の担当者が「しっかり積算した結果」と証言している事
から分かる通り、入札の時点では、その直後に「ひと続きの
事業」となる別の契約の入札が控えている事を知らなかった
と言えるでしょう。ところが、唯一落札社だけが、その直後
に控えた別の契約を見通した金額で落札したと、これは事実
と言えるのではないでしょうか。

そうなると「落札社だけが、入札の時点で、他の二社が知ら
なかった、その直後に『ひと続きの事業』となる別の契約の
入札が控えている事を、知っていた」と言えるのではないか、
と思います。

(前略)同年(2018年)3月14日実施の入札(では、)(中略)パソナが落札するまで同じ日のうちに3回も入札が繰り返された(中略)。(中略)パソナありきの出来レースにも思える。この最大の謎をオリパラ準備局にぶつけると、「絶対に落札価格の事前調整はしていない」(担当者)と否定。パソナは「お問い合わせにあるような結果を前提にした事前の話し合いなどございません」(広報部)と答えた。(後略)

〈日刊ゲンダイ 6月11日(6月10日 夕刊) 3面〉

これはいわゆる「ご飯論法」ではないでしょうか。「朝ご飯
食べたか」と言う質問に「食べていない」と答えたとしても、
実際には「ご飯は食べていないけど、パンは食べた」と言う
事実を示して「食べていない」とはぐらかすやり方の事です。

――◇◆◇――

正確な表現は忘れてしまいましたが、かつて、小池都知事が
旧・希望の党を率いて国政選挙に挑戦したとき、公約の中に
「外国人労働者の活用」、しかも「厳選した限られた国から
の労働者を活用する」と言う様な内容が、含まれていました。

結局、旧・希望の党は失速し、現実化される事は無かったの
ですが、これを見た瞬間、露骨な利益誘導だとすぐに分かり
ました。実は、政府の規制緩和を決める委員と、規制緩和に
よって生じた事業を受託する民間企業の役員を兼務する政商
が、規制緩和によってある業界の外国人労働者の受け入れを
主導し、某国において事業所を設けて、日本に向けて大量の
労働者を送り込む準備を進めている事を知っていたからです。

小池都知事は大阪府を電撃訪問し、当時の松井大阪府知事と、
大村愛知県知事の三人で会見し、「三都物語」と称して連携
を進める旨を発表しました。この話を進めていたのが、何と
同じ政商だった、との報道が出ていましたが、小池都知事と、
旧・希望の党が、その政商に操られていた実態があった事の
一端をうかがい知る出来事だったのではないか、と思います。

――◆◇◆――

東京都知事選挙の結果によっては、権力に巣食い、うまい嘘
で国民を騙して富を掠め取り、その富を、自分を中心とする
親しい仲間に分配する活動を通して利権共同体をつくる勢力
が勢いづいて、その利権共同体を中心とする独裁体制を維持
する為に、果てしなく高度化した「IT機器」を、街中に張り
巡らせる様になるでしょう。

では、誰に投票すれば、その様な事態になるのを食い止める
事が出来るのでしょうか。本日は告示日ですので、本日から
その事をズバリはっきりと答える事が、許される様になった
のですけれども、具体名に触れる事は、避けたいと思います。

ところで、前回の記事では「主要な国政政党が後ろ盾に付く
都知事候補は、いまのところ三人いる」と述べ、そのうちの
二人については、盛んに触れたのですが、もうひとりの候補
について、触れておかないわけにはいかない内容があるので、
触れてみたいと思います。

立憲民主党や社民党、日本共産党が推す、宇都宮健児候補に
ついてです。宇都宮健児氏については国会で共同会派を組む、
立憲民主党と社民党が歩調を合わせていますが、同じく共同
会派を組む国民民主党は、「自主投票」になりました。あと
一歩のところで野党統一候補にならなかった候補者です。

宇都宮健児氏について調べてみると、経験や能力、人物とし
ては申し分ないものをお持ちの様ですが、完璧な候補者とは
言えない不安要素がある事が分かりました。日本の保守的な
考えを持った人たちにとって、絶対に超えてはいけない一線
を超える発言を、いくつもしているからです。これでは国民
民主党議員の支持者が気持ち良く票を投じる事は出来ません。

宇都宮健児氏の発言の中で繰り返し取り上げられる内容とは、
徴用工や慰安婦等、日韓で、国際問題となっているテーマに
関する内容でしょう。特に2019年に出たインタビュー記事で
「徴用工像や慰安婦像を国会議事堂前に」設置すべき、との
考えを述べた事は、致命的だったと思います。

例え、保守的な考えを持った人たちが嫌がる内容であったと
しても、それが具体的な事実に基づく内容であれば、嫌がる
人を諌める発言になるのでしょうけれども、嘘や捏造、誤報
に基づく内容を、誤認した発言であれば、混乱を招いた責任
は免れないと思います。

2019年に出たインタビュー記事を読む限り、徴用工に関して
は、豊富な具体事例に基づいた内容である事が、読み取れる
のですが、慰安婦に関しては、それがありません。このとき
の主張が、「徴用工像を国会議事堂前に」設置すべき、との
考えであれば、筋の通る主張であったのに、何故「慰安婦像」
に触れてしまったのでしょうか。

日本の従軍慰安婦問題については、かつて戦中に日本陸軍に
所属していたと自称し、著書を刊行して「軍令で女性を強制
連行して慰安婦にした」との証言を「主張」した人物がいて、
それを朝日新聞が取り上げ報道した事が端緒とされています。

ところが2014年8月になって朝日新聞が、これまで従軍慰安婦
問題について行われてきた一連の報道は、虚偽であり、裏付
けの得られない内容であったと認め、記事を撤回する出来事
がありました。2014年9月には、朝日新聞の役員が、謝罪会見
まで行っているのです。

宇都宮健児氏は、2012年と2014年(2月)の東京都知事選挙に
出馬していますが、日韓で、国際問題となっているテーマに
関する発言は、2014年より前に集中している事が分かります。
これらについては、朝日新聞が虚偽、誤報を認める前の発言
でしたので宇都宮健児氏の責任を問う必要は無いと思います。

しかし、朝日新聞の謝罪会見の後である2019年に出たインタ
ビュー記事で「慰安婦像」に触れた事については説明が必要
だと思います。

日本の従軍慰安婦問題については、いまから40年と少し前に
日本の国家としての関わりを「主張」した人物がいて、新聞
で取り上げられて問題とされる様になって以降、多くの者が
真実の解明に取り組み、検証を繰り返した結果、虚偽であり、
裏付けの得られない内容であった、との結論が出て、新聞社
の役員が謝罪会見まで行っています。

慰安婦問題における、日本の国家としての関わりについては、
虚偽であり、裏付けの得られない内容であった、との結論は、
歴史の審判を受けた、極めて信頼性の高い、確度の高い結論
なのです。

宇都宮健児氏は、どう説明するのでしょうか。東京都知事と
言えば、多くの日本国民を抱える東京都を代表する存在です。
もし東京都の代表として信任するとするならば、その説明を
見極める事が、どうしても必要なのではないか、と思います。

――◆◇◆――

話はプログラミング講座に戻ります。

忘れないうちに、ここまでつくって来たプログラムを保存し
ましょう。ツールバー等にある「保存」をクリックします。

 
posted by miraclestar at 17:00 | Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする