「StiLL」 デザイン情報180 StiLLコマンド--他のブックシートのデータ範囲を取得する | ||||||||||||||||||||||
【テーマ】 他のブックシートのデータ量(行)を知りたいときなど、使用されているデータ範囲を取得する例をご紹介します。 | 【方法】「指定範囲に名前を定義(BtOffsetName)」セルリンクボタンで現在データが入力されている範囲を知ることができます。なおデータ範囲を取得する他のブックを「指定のブック、シートを選択(BtBookActive)」セルリンクボタンでアクティブにしておく必要があります。 | 【参考】サンプル例をご用意しておりますのであわせてご参照ください。 | ||||||||||||||||||||
対応Ver. :StiLL-XV1.0
以降 対応種類:StiLL Dev・Pro |
対応Ver. :StiLL-XV1.0
以降 対応種類:StiLL Dev・Pro |
対応Ver. :StiLL-XV1.0
以降 対応種類:StiLL Dev・Pro |
||||||||||||||||||||
■ 今回の内容 | ||||||||||||||||||||||
他のブックシートのデータ範囲を取得する例をご紹介します。 | ||||||||||||||||||||||
下図のような会員台帳リストの明細データ範囲を取得します。 | ||||||||||||||||||||||
![]() |
||||||||||||||||||||||
サンプル例をご用意しておりますのでご参照ください。 | ||||||||||||||||||||||
今回の全体図を示します。 | ||||||||||||||||||||||
※設定する項目は図の一番上にある黄色のセル範囲となります。(下線より下の設定値は変更しません) | ||||||||||||||||||||||
![]() |
||||||||||||||||||||||
■ ボタンの説明 | ||||||||||||||||||||||
【図の下線部より下のボタンと式について説明します】 | ||||||||||||||||||||||
・@特定のブック、シートを選択(BtBookActive) | ||||||||||||||||||||||
このボタンで対象ブック(ファイル)をアクティブにします。 | ||||||||||||||||||||||
1. ブック名はセルD19 を参照 | ||||||||||||||||||||||
2. シート名はセルD20 を参照 | ||||||||||||||||||||||
・A新規ブックへシートをコピーする(BtBookNewCopy) | ||||||||||||||||||||||
このボタンで対象シートを新規ブックにコピーします。 | ||||||||||||||||||||||
1. 選択シート名1はセルD32 を参照 | ||||||||||||||||||||||
コピーしたブックのシートをダミーシートとすることで、B以降の処理では実際の対象ファイルには | ||||||||||||||||||||||
範囲名等の痕跡を残さずにデータ範囲を取得することができます。 | ||||||||||||||||||||||
・B指定範囲に名前を定義(BtOffsetName) | ||||||||||||||||||||||
このボタンでAのダミーシートのデータ範囲を出力することができます。 | ||||||||||||||||||||||
出力するセル位置はセルA1(固定)としています。 | ||||||||||||||||||||||
1. 範囲はセルD32とD21 を参照 | ||||||||||||||||||||||
2. 列数はセルD22 を参照 | ||||||||||||||||||||||
3. 範囲出力位置はセルD32 を参照 | ||||||||||||||||||||||
・Cコピー元範囲のデータをコピー先セル位置にコピー(BtCellCopy) | ||||||||||||||||||||||
このボタンでダミーシートのセルA1 に出力されたデータ領域を「範囲出力位置」(黄色)に指定されたセルにコピーします。 | ||||||||||||||||||||||
この結果、ダミーシートの情報が本処理を行っている ex181sms.xlsx に出力されます。 | ||||||||||||||||||||||
1. コピー元範囲はセルN37 を参照 | ||||||||||||||||||||||
2. コピー先セル位置はセルD23 を参照 | ||||||||||||||||||||||
・D指定ブックを閉じる(BtClose) | ||||||||||||||||||||||
このボタンでダミーブックを閉じます。 | ||||||||||||||||||||||
1. BookQuit(保存しないで閉じる)のオプションで閉じています。 | ||||||||||||||||||||||
・Eコピー元範囲のデータをコピー先セル位置にコピー(BtCellCopy) | ||||||||||||||||||||||
このボタンでFで算出された最終行番号を「最終行番号出力位置」(黄色)に指定されたセルにコピーします。 | ||||||||||||||||||||||
1. コピー元範囲はセルD4とS52 を参照 | ||||||||||||||||||||||
2. コピー先セル位置はセルD24 を参照 | ||||||||||||||||||||||
・F最終行番号の算出式 | ||||||||||||||||||||||
ここでは以下の式を設定しています。 | ||||||||||||||||||||||
1. セルR52 には以下の式が設定されています。 | ||||||||||||||||||||||
=SUBSTITUTE(INDIRECT(D23),D32&"!","") | ||||||||||||||||||||||
この式で「対象シート名」(黄色)に指定されたシート名を除外しています。 | ||||||||||||||||||||||
2. セルS52 には以下の式が設定されています。 | ||||||||||||||||||||||
=IFERROR(ROWS(INDIRECT(R52))+ROW(INDIRECT(R52))-1,"") | ||||||||||||||||||||||
この式でデータ範囲の最終行番号を算出します。 | ||||||||||||||||||||||
以上のようなボタン構成で対象シートのデータ範囲と最終行番号を取得できます。 | ||||||||||||||||||||||
一見複雑そうですが、変更する箇所が限られていますので応用しやすいかと思います。 | ||||||||||||||||||||||
実行後、下図のように現在のデータ範囲と最終行番号が指定されたセルに出力されます。(○印) | ||||||||||||||||||||||
![]() |
||||||||||||||||||||||
■ ご参考までに | ||||||||||||||||||||||
1.全て空欄のシートを指定した場合でも1行目をデータ範囲として最終行番号には1が返されます。 | ||||||||||||||||||||||
2.出力された最終行番号を使って対象シートのリストにデータを追加する処理を作成することが可能です。 | ||||||||||||||||||||||
サンプル例をご用意しておりますのでご参照ください。 | ||||||||||||||||||||||
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください) | ||||||||||||||||||||||
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます | ||||||||||||||||||||||