なでしこを使って,日本語でバッチを書こう!

第4回 なでしこでバッチ「繰り返し編」

この記事を読むのに必要な時間:およそ 2 分

前回は,なでしこを使った条件分岐を説明しました。今回は,同じ処理を何度も行うことができる「繰り返し」について説明します。

繰り返しは,他の言語で言うとFORやLOOP,while等繰り返す命令に当たります。なでしこは同等の命令を持っていますが,その記述の方法についてが中心となります。

今回利用するデータ

今回もExcelを利用します。使うデータは以下の通りですダウンロードできます)⁠

図1 対象データ

図1 対象データ

基本その1:~回(FOR)

FOR基本構文は以下の通りです。

リスト1 FOR文の記述例

セル行とは整数
製品とは文字列
セル行=7
オフでエクセル起動
「{デスクトップ}book2.xls」をエクセル開く
「A2」のエクセルセル取得
製品=それ
5回
 「A{セル行}」へ製品をエクセルセル設定
 セル行=セル行+1
「{デスクトップ}book2.xls」へエクセル保存
エクセル終了。
終わる。

実行結果は,以下の図のようになります。

図2 リスト1の実行結果

図2 リスト1の実行結果

上記の場合,エクセルを不可視の状態で起動してから,特定のセル(A2)に入っている値を取得して,変数「製品」に代入します。変数「セル行」には,あらかじめ貼り付け先の行番号(7行目)を入れておきます。命令「回」を使って,5回同じ処理を繰り返すようにしてあり,常に違う行に貼付け処理を行いたいので変数「セル行」に対して,毎回1を足しています。最後に貼り付け処理を行った結果を既存「{デスクトップ}book2.xls」に保存してから,エクセルを終了させています。

気をつける点は,インデントだけです。繰り返す内容を,命令「回」と同じインデントに記述してしまうと,繰り返し処理が行われなくなりますので注意してください。

基本その2:反復(LOOP)

LOOPの基本構文は以下の通りです。

リスト2 LOOPの基本例文

セル行とは整数
製品とは配列
セル行=7
オフでエクセル起動
「{デスクトップ}book2.xls」をエクセル開く
A2からA5までエクセル一括取得
製品にそれを代入
製品を反復
 「A{セル行}」へそれをエクセルセル設定。
 セル行=セル行+1
「{デスクトップ}book2.xls」へエクセル保存
エクセル終了
終わる。

実行結果は,以下の図のようになります。

図3 リスト2の実行結果

図3 リスト2の実行結果

命令「反復」の場合,繰り返す回数は指定しません。今回の場合は,変数「製品」を配列変数として指定していることに注目してください。

コピーしたいセルの範囲を指定して,エクセル一括取得で変数「製品」にデータを代入します。そして,変数「製品」の内容を命令「反復」を利用して,一行ずつ取り出します。その後は,命令「回」の時と同じ処理になります。

著者プロフィール

choco

東京情報システム株式会社 システム営業部IxDグループに所属。社内ではプロジェクトマネージャーとして日々奔走中。

4年ほど前に「なでしこ」に出会い,その魅力に取り付かれて外販用資産管理ソフトを「なでしこ」で作成。現在は,なでしこ友の会でDB接続に関するプログラムをブログで紹介中。

URLhttp://www.choco.org.uk/chocodb/

コメント

コメントの記入