マクロの開発への挑戦

 
石井俊雄
過日の「シニア自由市民の哲学」でアルゴリズムをパソコンに組み込んで、ボタンを押せば、 10組の組がランダム(無作為)に並んだ状態で、パソコン画面に表示されるようにすればよいとし、 組み込み方法として、次の方法を提案した。
今回、手始めに簡単なマクロの作成をしてみよう。皆さんにコンピュータープログラムの実体を知ってもらうのと、興味を持ってもらうのが目的だ。
先ず、次の手順で進めることにする。興味のある方は、実際やってみるとよい。 きっと、面白いと感じると思う。
  1. 簡単なマクロ作成
    1. 先ず、EXCELを立ち上げる。
    2. EXCELのワークシートが開いたら、ツール/マクロ/Visual Basic Editor をクリックする。
    3. Visual Basic Editor の画面が表示されるので、挿入/標準モジュール をクリックする。
    4. 開いた画面で、 左側画面のVBAProject(Book1)の下位の標準モジュールの下位のModule1をクリックする。
    5. 開いた画面に、次の文字を書き込む。なお、「組選抜」以外の文字は全て半角とすること。 また、スペース(空白)もちゃんと挿れること。"."のピリオッドも忘れないで挿れること。 等等、プログラム言語の入力は慣れてないと結構難しい。何故なら、ほんのちょっとした文字にも意味があるからだ。 例えば、スペース(空白)は文字間のセパレーターの役を荷っているし、ピリオッドやダブルクォーテーションも意味をもっている。 人の目ほどパソコンは融通が利かないことを念頭におかないと上手く動いてくれない。 半角、全角も峻別しなければならない。大文字小文字はウインドーズの場合区別しなくてもいい場合が多いがそれは例外だ。 そんなことを考えると、1文字づつ入力するよりHPの次の部分("Sub 組選抜()"から"End Sub"まで)をコピー&ペーストした方が確実だからお薦めする。
      Sub 組選抜()
      Dim s As Single
      Dim n As Integer
      Randomize
      s = Rnd
      n = CInt(s * 10)
      Worksheets("Sheet1").Cells(1, 1).Value = n
      End Sub
    6. EXCELのシートを開き、ツール/マクロ/組選抜 を選択し「実行」を押す。
    7. (注)再度開く際には、「・・・マクロを含んでいる」という小画面がポップアップするが、「マクロを有効にする(E)」を選択すること。
    8. EXCELのシートの1行目1列目のセル(桝)に選ばれた組番号(1〜10の整数値)が表示されているのを目視できるだろう。
    9. 以上で、サイコロで言えばサイコロを1回振った状態である。
    10. 後は、残りの1〜10の組の全部が出揃うように工夫し、それを加味すればよい。 しかし、このマクロを繰り返した方がよいと思う向きは、このマクロを繰り返して、 1〜10の間の夫々の数が必ず1回だけ含まれる10組の数列を作ることは可能だ。ただ、時間を要するだろう。
     
  2. 説明
    1. Dim s As Single は、変数sを定義したもの
    2. Dim n As Integer は、変数nを定義したもの
    3. Randomize は、乱数発生の初期化を行うもの
    4. s = Rnd は、Rnd関数を実行し、結果を変数sに蓄えるためのもの。この関数による乱数は、0<s<1の値をとる。
    5. n = CInt(s * 10) は、sの値を10倍し、整数nを得るためのもの。nは、0<=n<10の値をとる。この意味は、0以上10未満という意味だ。
    6. Worksheets("Sheet1").Cells(1, 1).Value = n は、nの値をEXCELのSheet1の1行目1列目のセル(桝)に書き出すためのもの。 なお、他のセルに書き出すなら、Cells(1, 1)のところを変えればいい。例えば、2行3列を指定したいなら、Cells(2, 3)とすればいい。 更に、他のシート、例えば、"Sheet2"に表示したいなら、"Sheet1"の部分を"Sheet2"に書き直せばよい。"Sheet1"とか"Sheet2"は、EXCELを開くと、 ページの下にぶら下がって出てくるタグの名称だ。
 
以上、簡単なマクロを作ってみた。マクロ名は「組選抜」だ。 何故そうなるかと言えば、「Sub 組選抜()」で指定したからだ。なお、右端の()は左括弧と右括弧だ。1文字だけのように見えるが2文字あるのだ。 このように見た目と実際の中身は異なったように見えるから注意を要す。
以上がEXCELVBAというプログラミング言語によるプログラム作成だ。自分でやってみて欲しい。 面白ければいいけど。・・・このようなことを経験するとミクロの僅かな違いが結果に大きく係わってくることに気が付くはず。 相手が、コンピュータのことだが、人間に比べて馬鹿だから仕様がないのだ。 でも、スピードでは人間を凌駕する局面も多い。だから面白い。 なお、"Visual Basic"というプログラミング言語は、マイクロソフト社の重要なアプリケーション開発言語であることを付け加えておこう。
コンピュータとかロボットとか相当進んで来たが、その中身は今回のマクロを作ったプログラムと同じレベルのプログラムだ。 一言で言えば逐次処理型の処理装置ということ。人間の脳とは基本が違うみたい。 そういう意味では、単なる機械に過ぎない。癒し系ロボットなどあたかも人情味を持った存在のように宣伝するかも知れないが、 そんなのは、所謂、フェイク(偽者)、騙されないように。
癒しを求めるなら、若い頃聴いた音楽がいいと思う。
 
音楽は過ぎ去った昔を思い出させてくれる。 試聴サイトで聴くデビー・レイノルズのタミイ だ。
彼女の声は本当に素敵だね。ドリス・デイは普通の声だが、彼女のは特別だ。 我々より6歳年上だが、今も元気だろうか。 「西部開拓史」で歌った唄、それは"A Home in the Meadow"だが、 それもよかった。 小生は今でも彼女の熱烈なファンだ。
 
 
 
 
 
コメントはこちらへメールして下さい。その際、文中冒頭に「HPコメント」と記して下さい。 Email
 

<コメント欄>   当欄は上記のメールをコメントとして掲示するものです。