FAQ-369 さまざまなオブジェクトをループするスクリプトを作成するには?

最終更新日:2015/02/04

documentコマンドを使ってオブジェクトをループできます。–e スイッチを使うとループしたいオブジェクト を指定することができます。-ef スイッチはループを現在のフォルダ内で限定します。

この例では、すべてのワークブック、すべてのワークシート(レイヤ)をループして、特定のロングネームを持つ列の特定の行を取得します。

// 全てのブックをループします
doc -e W {
   // ブック名を文字列変数として入力します - 単に%hを使う事もできます
   book$ = %h;
   type "Book is:%(book$)";
   // 全てのシートをループします
   doc -e LW {
      // シート名を変数に入力します
      sheet$ = layer.name$;
      type "Sheet is:%(sheet$)";
      // ロングネームを持つ列の利用範囲を(再)定義します
      // "system pressure"
      range r = [%(book$)]%(sheet$)!col(system pressure);
      // 現在のブック内の現在のシートで列"system pressure" 
      // から5行目を入手します
      double d = r[5];
      // 欠損値か否かを確認します
      if( d != 0/0 )
         type "system pressure row 5 = $(d)";
   }
}

キーワード: ページ, レイヤ, 列, 行, フォルダ, ワークシート, ワークブック, 行列