「StiLL」 デザイン情報222 StiLLコマンド-- 繰返し実行の基本を覚えよう
                             
  【テーマ】
今回は、プログラムの基本的な機能ながら、作るのが難しい「繰返し(ループ)処理」について、考え方から作り方までをStiLLを使って解説します。
    【方法】
<StiLLボタン>
・繰返し実行(BtLoop)
・メッセージ分岐実行(BtMessageIf)

<Excel関数>
・ROWS/COUNTA関数
・INDEX関数
    【参考】
長時間終了しない事がないよう、全体の処理時間を踏まえて作成しましょう。
 
           
                             
■ 今回の内容                        
「順次」、「分岐」、「繰返し」はプログラムの基本的な処理です。
今回は「繰返し」処理についてクローズアップして、基本的な考え方と、使うStiLLボタンや関数などについてご紹介します。
※ 分岐処理については、前号(第221回配信分)をご参照ください。
【StiLLメールサービス バックナンバー】 「StiLL」 デザイン情報221 StiLLコマンド-- メッセージのある処理の中断や分岐処理を簡単に
【プログラムの例】:データを読み込み、件数分印刷するプログラム
■ 「繰返し実行」ボタンの解説                      
「繰返し実行」ボタンの設定は以下の通りです。
システムでは、直接このボタンを押すようなケースは少なく、連続するプログラムの途中で実行される事が多いです。
「繰返し実行(BtLoop)」ボタンの設定画面
!ポイント
同じ内容を繰り返すだけなら、「ボタン連続実行」で同じボタンを回数分指定すれば良いだけですが、
繰り返すプログラム中の内容を、各回ごとに変える事に繰返し処理の難しさがあります。
(例:顧客ごとに内容を変えて差込印刷する/データを分割して複数ファイルに保存するなど)
宛名やファイル名など、毎回変わる部分を「変数」と言いますが、StiLLではこの変数部分を、関数などを使い、セルに作成します。
■ ケース1:指定回数分の繰返し実行と変数について                
まずは、3回メッセージを表示する簡単な例から見てみましょう。
各メッセージは、それぞれ「1回目・2回目・3回目」と、変わりながら表示するようにします。
手順1:変数セルの準備
「繰返し実行」ボタンが回数を出力するセルと、「○回目」とメッセージを表示するセルを用意します。
下図では、黄色セル「E7」が出力先、青色セル「E12」がメッセージを表示するセルです。
!ポイント
黄色のセル「E7」には実行時、繰返しボタンから自動で1〜3の値が出力されます。
青色のセル「E12」は 「=E7&"回目"」 と数式を入れることで、毎回 「1〜3回目」と順番に表示されることになります。
手順2:メッセージボタンの作成
青色セル「E12」を、メッセージとして表示するよう、下図の設定をします。
手順3:連続実行ボタンの作成
手順2で作成したメッセージボタンを実行する「連続実行」ボタンを設定します。
!ポイント
今回の事例では、単一のメッセージボタンしか実行しないので、この連続実行ボタンは無くても良いのですが、
実際のケースでは、連続実行ボタンで一回分の連続処理を指定することが殆どです。
手順4:繰返しボタンの作成
「繰返し」ボタンで実行するボタンと、回数を出力するセルを指定します。
実行結果
もうお判りだと思いますが、実行すると、それぞれ「1〜3回目」とメッセージが表示されます。
ここでは、青色セル「E12」が、毎回内容が変わる「変数」になります。
■ ケース2:データの件数分繰り返す場合                    
次は、データの件数によって何回実行するか変わるケースです。
下図では、セルG12〜G14に支店のリストがあり、その件数分メッセージを表示する例となります。
手順1:最大回数をセルに表示する
支店数分実行するということは、「支店の数を数える」必要があります。
ここでは、セルG7にその数を表示し、最大回数としています。
データを数える関数は、「COUNTA」関数か「ROWS」関数を使用します。
手順2:実行中の情報を取得する
ケース1では実行中回数のみ、メッセージの一部として、セルE12にリンク表示させていました。
今回は、実行中の支店名を求め、メッセージに表示させます。
リストを元に、何回目(何行目)かの情報を求めるには「INDEX」関数を使います。
!ポイント
支店名, 住所, ○○区分など、リストが複数項目ある場合、
「INDEX( 範囲, 行番号, 列番号)」の指定で、他の項目列情報も取得できます。
リストの取得をStiLLボタンで行う場合、「出力範囲名」でリストに名前を付け、INDEX関数でその名前を参照するようにします。
手順3:繰返しボタンの作成
「繰返し」ボタンで、実行ボタン、繰り返す回数を参照するセル、回数出力するセルを指定します。
※ 他のボタン設定は、ケース1と同じなので、省略します。
!ポイント
メッセージボタンに限らず、実行中の情報をセルに表示させ、他の機能のボタンから参照させることで、
「支店名を保存ファイル名にする」、「現在選択中の支店でデータをさらにフィルタする」など、様々な変数処理が可能です。
■ 参考                          
「繰返し実行」ボタンは、実行中に「Ctrl」+「Break」などのキー操作で処理を中断することはできません。
長時間PCが使えなくなる事が想定される場合は、処理を分割するか、あらかじめ注意メッセージを表示するなどでご配慮下さい。
「繰返し実行」ボタンは、実行時に繰返し回数が確定しているプログラムです。(VBAのFor〜Nextタイプ)
実行中の条件で回数が変わる繰返し(Do〜Loop等)は、また次回以降に解説予定です。
「INDEX」関数については、「Excelメールサービスバックナンバー」もご参考にしてください。
【Excelメールサービス】 Excel情報027 関数--INDEX関数、コンボボックスの作り方
以上
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください)  
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます