仮想通貨100種類以上紹介のブログ……を目指して(^^;

プログラミング講座2-7・ライフゲーム-誰でも実行できる用にフォームを作ろう

 

さて、この連載もそろそろおしまいです。主要な機能はすべて完成してしまいました。最後にUI(ユーザーインターフェース)の部分を作りましょう。まず、今日は前回までに作ったライフゲームを自分以外の人でも使用できるようにボタンと回数入力用のボックスの配置されたフォームを作成しましょう。

……と言いつつ、実は僕の一番の苦手分野だったりしますw(できないワケではなく、結構面倒臭い作業なんですよね(^^;エディタの使い勝手は悪いし。)

まずはフォームの見た目を作る

では早速、VBEの左側のVBAProjectのところを右クリックし、挿入の中のユーザーフォームを開きましょう。すると、右側にはウィンドウ・左中央あたりにツールボックス・左下にプロパティという欄の3つが開いたと思います。(もし、出ていなければ、上の表示のところから、「プロパティウィンドウ」というところをクリックして開いてください。)プロパティの中の「Caption」というところを「LifeGame」にしましょう。すると、右側のウィンドウの上の文字が「LifeGame」に変わるハズです。さらに「ShowModal」を「false」にしておきましょう。ここを「false」にしておかないと、フォームが開いている間は、セルの操作ができなくなってしまいます。

次にツールボックスの中から、ボタンを選び、ボタンを「LifeGameウィンドウ」の中に配置しましょう。これもすぐにCaptionを「START」にします。次にラベルを選び、ラベルを配置し、ラベルのCaptionを「繰り返し回数:」とします(ラベルは「A」と書いてあるアイコンです。)最後にテキストボックスを選び、これはCaptionをいじらない代わりに、繰り返し回数のデフォルトをValueに入力します。とりあえず20とでもしておきましょうか(これは「ab」と書いてあるアイコンです。)

後は、バランスを見ながら、サイズなどを調整してやりましょう。ここまでくると大体下のような感じになります。

ライフゲーム-ユーザーフォーム

ここからコーディング

ここまで来たら、やっとこさコーディングです。(苦手分野終了でホッとするw)自分で作った「START」ボタンをダブルクリックしましょう。ここで、まずはテキストボックスの中身を数字として扱うための変数を定義します。それぞれ「frequency」とでもしておきましょう。(テキストボックスの中身はTextBox1で取得できます。)

なぜ数字として、変数に代入するのかというと、様々な人が使うと、数以外のものを入力する人がいるかもしれないからです。なるべくエラーが出ないようにしたいですよね。

VBAには便利な関数がすでに準備されており、簡単にテキストが数かどうか判別したり、テキストを数に変更したりすることができます。数かどうかを判別するには「IsNumeric」を使い、数に変更するにはCLngを使います。ここまでをコーディングすると下のようになります。

Private Sub CommandButton1_Click()

    Dim frequency As Long

    If IsNumeric(TextBox1) Then

        frequency = CLng(TextBox1)

        ‘ここで前回作った呼び出す

    Else

        ‘エラー処理

    End If

End Sub

さて、次に呼び出し部分ですが、これは前回やりましたね。「Call repeatNextGeneration(frequency)」でOKです。さらに繰り返し回数が終わったら、メッセージを表示することにしましょう。これもVBAには初めから便利な関数が準備されていて、「MsgBox(“ここにメッセージを書く”)」と書くだけでメッセージが表示できます。メッセージ内容は「繰り返し完了」としておきましょう。

エラー処理についても、「必ず数字を入力してください。」というメッセージを表示するだけで済ませましょうか。

ここまですべて書くと、下記のようになります。

Private Sub CommandButton1_Click()

    Dim frequency As Long

    If IsNumeric(TextBox1) Then

        frequency = CLng(TextBox1)

        Call repeatNextGeneration(frequency)

        MsgBox(“繰り返し完了”)

    Else

        MsgBox(“必ず数字を入力してください。”)

    End If

End Sub

これで一通り完了です。保存してから、プログラムを実行してみましょう(F5もしくは再生ボタンなど)フォームが使えるようになったハズです。

これで、フォームは完成です。次回はフォームを誰でも使えるように、エクセルを開くと同時にフォームも開くように設定しましょう。

前へ ・ 目次へ ・ 次へ

SNSでフォローする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です