【第4回】Excel画面からプログラムを開始/停止しよう | 現役システムエンジニアからのメッセージ

現役システムエンジニアからのメッセージ

発表スライドの作成方法,動画の作成方法,就活、プログラミングなどについて書いています。最近では、知育としてLaQを楽しんでいます。

小学校でプログラミング教育が必修化となり、注目を集めていますが、下記のような悩みを抱えている方いませんか?

・そもそもプログラミングって何?

・どうやって学んでいけばいいの?

・社会で通用するプログラミングスキルとは?

 

このようなお悩みを解決するために、身の回りの自動化を題材に楽しく学んでいきましょう。

 

今回は、「信号機プログラム」を題材に取り上げます。

 

第1回~第3回までの内容はこちらに掲載しています。

事前に見ていただくことをお勧めします。

 

第4回目は、VBA画面からプログラムを開始/停止していたのを、Excel画面からできるようにする方法をご紹介します。

 

1. 開始ボタンの作成

第1回~第3回で作成したファイルを開き、下記の手順でボタンを作成し、そのボタンにプログラムを登録します。

※プログラム(VBA)が含まれるファイルを開くと、「セキュリティの警告」が表示されることがあります。表示されない方は、そのまま次の手順に進んでください。

 

 

 

 

Excel画面から実行するためのボタンは、ボタン(フォーム コントロール)を使用します。

 

これで、このボタンを押すことでVBAで作成した信号機(Sub 信号機() ~ End) が実行されるようになります。

ボタンを識別しやすくするように名前も下記の手順で変更しましょう。

 

 

 

2. 繰り返し実行の条件を変更

第3回で作成したプログラムは、下記になります。

 

前回は、ループ処理の条件を「True」にしていました。

この場合、常に条件を満たしているため、VBAから[リセット]するしか停止させる方法がありませんでした。

そこで、この条件を変数にして、True/Falseをプログラムで切り替えできるように下記の手順で変更します。

 

 

サンプルコード

Dim p_loop As Boolean     
    p_loop = True
    
    Do While p_loop 

 

 

これで、[p_loop]変数が「True」だと、プログラムを繰り返し実行し、「False」になると、繰り返し実行しません。

 

3. 繰り返し実行の条件を「False」にするためのプログラムの作成

Sub ~End(例:Sub 信号機() ~End)が一つのプログラムの塊だと思ってください。これとは別に繰り返し実行の条件を「False」にするためのプログラムを下記のサンプルコードを使用し作成します。

 

サンプルコード

Sub 停止()
    p_loop = False
End Sub

 

 

これで、停止()のプログラムが実行されると、[p_loop](変数)が「False」になります。

 

4. 停止ボタンの作成

「手順1. 開始ボタンの作成」と同様に、停止ボタンを作成します。

 

 

ボタンには、1つのプログラム(Sub ~End)が登録できるようになっています。

 

以上でプログラムは完成です。

 

5. 動作確認

それでは、作成したプログラムが開始/停止するかを確認します。

 

 

このようにExcel画面から開始/停止できることで、プログラムが完成すると、VBA画面を開く必要がなくなり、使いやすくなります。

 

以上で第4回目の内容は終了です。

 

【ポイント】

  • Excel画面から実行するためのボタンは、ボタン(フォーム コントロール)を使用する
  • ループ処理の条件を変数にして、True/Falseをプログラムで切り替えできるようにする
  • ボタンには、1つのプログラム(Sub ~End)が登録できる

 

次回は、Excel画面から信号の点灯時間を変更できるようにします。