「StiLL」 デザイン情報171 StiLLコマンド--入力セルにデータを入れる際に便利な3機能 | |||||||||||||||||||
【テーマ】 入力画面などで、入力セルに値を入れたい時に便利なStiLLの機能が3つあります。 それぞれの機能を使って入力画面に値を入れる方法を、メリット・デメリットを含めご紹介します。 |
【方法1】 「BtSetMultiCell」
は、一度に複数のセルに値を入れられる便利な機能です。 【方法2】 入れるセルが少ない場合や、同じ値を複数セルに入れたい場合には「BtSetValue」 も使用できます。 |
【方法3】 データを入れるセルが多く 「BtSetMultiCell」 では時間がかかってしまう場合は 「BtCellCopy」 を使用する方法もあります。 | |||||||||||||||||
対応Ver. :StiLL-] Ver
1.0 以降 対応種類:StiLL Dev・Pro・Std |
対応Ver. :StiLL-] Ver
1.0 以降 対応種類:StiLL Dev・Pro・Std |
対応Ver. :StiLL-] Ver
1.0 以降 対応種類:StiLL Dev・Pro・Std |
|||||||||||||||||
■ 今回の内容 | |||||||||||||||||||
入力画面などで、入力セルに値を入れたい時に便利なStiLLの機能が3つあります。 | |||||||||||||||||||
「BtSetMultiCell」 ・・・ 入力範囲の値を出力範囲にセットする | |||||||||||||||||||
「BtSetValue」 ・・・・・ セルに値をセットする | |||||||||||||||||||
「BtCellCopy」 ・・・・・ コピー元範囲のデータをコピー先セル位置にコピー | |||||||||||||||||||
それぞれの機能を使って入力セルに値を入れる方法を、メリット・デメリットを含めご紹介します。 | |||||||||||||||||||
以下の図のように、データ取得用のシートに取得したレコードの値を、データ編集画面のデータ入力セルに入れる例でご説明します。 | |||||||||||||||||||
データ取得用のシート(シート名:DLDATA) | |||||||||||||||||||
![]() |
|||||||||||||||||||
データ編集画面用シート(シート名:編集画面) | |||||||||||||||||||
■ 「BtSetMultiCell」 を使う方法 | |||||||||||||||||||
上のような例の場合は、「BtSetMultiCell」 を使う方法が便利です。 | |||||||||||||||||||
設定例(StiLLボタン) | |||||||||||||||||||
![]() |
|||||||||||||||||||
◆メリット | |||||||||||||||||||
[入力範囲] と [出力範囲] のセルの数が一致していれば、1つのボタンで複数セルを指定できます。 | |||||||||||||||||||
カンマ区切りで離れたセル範囲の指定も可能ですので、3つ以上の範囲も指定することができます。 | |||||||||||||||||||
値を入れるシートにシート保護がかかっていても、入力するセルのロックが解除されていればボタンを実行できます。 | |||||||||||||||||||
◆デメリット | |||||||||||||||||||
値を入れる範囲が多くなればなるほど処理スピードが遅くなります。 | |||||||||||||||||||
また 「BtSetMultiCell」 の活用方法の詳細については以下のバックナンバーでもご紹介していますので、ぜひご参考ください。 | |||||||||||||||||||
「StiLL」デザイン情報161 StiLLコマンド-- 「BtSetMultiCell」 で複数のセルに値をセット | |||||||||||||||||||
■ 「BtSetValue」 を使う方法 | |||||||||||||||||||
値を入れるセルが少ない場合や、同じ値を複数セルに入れたい場合には 「BtSetValue」 を使うこともできます。 | |||||||||||||||||||
設定例(セルリンクボタン) | |||||||||||||||||||
![]() |
|||||||||||||||||||
※ ご参考までに(セルの値を参照する数式について) | |||||||||||||||||||
空のセルを参照する時に、「0」 と表示されるのを防ぐには | |||||||||||||||||||
「""(空文字)」 を連結します。 | |||||||||||||||||||
ただし、数値と空文字を連結すると文字列扱いになるので、 | |||||||||||||||||||
数値のまま表示したい場合は以下の例のように | |||||||||||||||||||
IF文を使用してください。 | |||||||||||||||||||
=IF(DLDATA!H3="","",DLDATA!H3) | |||||||||||||||||||
◆メリット | |||||||||||||||||||
値を入れるシートにシート保護がかかっていても、入力するセルのロックが解除されていればボタンを実行できます。 | |||||||||||||||||||
カンマ区切りで同一シート内の離れたセル範囲の指定も可能です。(例:編集画面!H9,P9) | |||||||||||||||||||
セット値に 「%TODAY%」 と設定すると現在の日付をセットできます。(現在の日時は 「%NOW%」) | |||||||||||||||||||
◆デメリット | |||||||||||||||||||
セット値を1つしか指定できないので、複数の値を入れたい場合はその数分 「BtSetValue」 ボタンが必要になります。 | |||||||||||||||||||
StiLLボタンの場合、セット値をセル参照指定することはできませんので、セルリンクボタンをお使いください。 | |||||||||||||||||||
■ 「BtCellCopy」 を使う方法 | |||||||||||||||||||
データを入れるセルが多く 「BtSetMultiCell」 や 「BtSetValue」 では時間がかかってしまう場合、 | |||||||||||||||||||
「BtCellCopy」 を使って値をコピーする方法があります。 | |||||||||||||||||||
まず、入力画面と同じセルの構成のコピー元用のシート 「コピー元」シート を用意し、値を入れるセルに数式で | |||||||||||||||||||
DLDATAシートのデータが表示されるようにします。 | |||||||||||||||||||
![]() |
|||||||||||||||||||
そして 「BtCellCopy」 で 「コピー元」シート のデータを 「入力画面」シート に値コピーするよう設定します。 | |||||||||||||||||||
「貼り付けデータ種類」 は結合セルが無ければ 「Values」 でもよいですが、 | |||||||||||||||||||
結合セルがある場合は 「All/OutValues」 にしてください。 | |||||||||||||||||||
※ 「貼り付けデータ種類」 の 「All/OutValues」 はセルリンクボタンでのみ設定できます | |||||||||||||||||||
設定例(セルリンクボタン) | |||||||||||||||||||
◆メリット | |||||||||||||||||||
コピーする範囲が多い場合、 「BtSetMultiCell」 や 「BtSetValue」 で値を入れるよりは処理スピードが比較的速くなります。 | |||||||||||||||||||
◆デメリット | |||||||||||||||||||
コピー先のシートにシート保護が設定されていると 「BtCellCopy」 を実行できません。 | |||||||||||||||||||
「コピー元範囲」 や 「コピー先セル位置」 に、カンマ区切りで離れたセル範囲の指定することはできません。 | |||||||||||||||||||
■ まとめ | |||||||||||||||||||
今回ご紹介した3種類の方法を状況に応じて使い分けてご活用ください。 | |||||||||||||||||||
値を入れるセルが少ない、または今日の日付やある数式の計算結果を入れたい ・・・ 「BtSetValue」 | |||||||||||||||||||
複数セルに一度に入れたい ・・・ 「BtSetMultiCell」 | |||||||||||||||||||
値を入れるセルがかなり多く、「BtSetMultiCell」 では時間がかかりすぎてしまう ・・・ 「BtCellCopy」 | |||||||||||||||||||
■ ご参考までに | |||||||||||||||||||
「BtSetValue」 や 「BtCellCopy」を使う方法ですと、 DLDATAシートのデータをExcel関数を使い変換して | |||||||||||||||||||
表示画面に入れることもできます。 | |||||||||||||||||||
以下の図はVLOOKUP関数とIFERROR関数を使用し、DLDATAシートのコードを名称に変換して表示するような例です。 | |||||||||||||||||||
◇ BtSetValue | |||||||||||||||||||
![]() |
|||||||||||||||||||
◇ BtCellCopy | |||||||||||||||||||
![]() |
|||||||||||||||||||
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください) | |||||||||||||||||||
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます |