忍者ブログ

Excel.sys

Excelでどこまでできるか! ExcelとStiLLでビジネス・デザイン自由自在!!

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

「Excelデータ取得」(2)

前回のダイアログ設定状況は下図の通り。
 
*出力セルの「Test」は現在のシート名。

上記の設定でボタンを実行し取得・表示されたデータは、
元データの型名(数値、文字など)が保持されている。
     

今度は省略した項目式範囲を設定して見る。
プルダウンリストに定義されている名前が表示されるが、いまは(セル参照)ボタンで任意のセル位置を指定する。

これまでと同様、項目式の範囲指定は、開始位置(左上)との思いから、一つのセルだけを指定しOKをクリック。

このまま特に(項目式作成)を行わず、OKで設定を終了して実行すると、上図の出力データ1列目(年月日の項目名とデータ)が全てクリアされた・・・。
次に、表示されているデータを全てクリアしてから再度実行するも何も表示されない・・・。


この現象から、データが取得されない、いや正しくは取得されてはいるが表示されないことが判った。
つまり、項目式範囲を入力したときは必ず(項目式作成)を行わなければならないのだ。
知ってしまえば当然のことだが。

項目式範囲を入力後、(項目式作成)ボタンを開くと下図のように左に<元データ>の項目名が表示され、右の<項目式>に出力したいに項目名をセットすることがわかる。


ここで右のカーソル位置に注目すると、何故か1つ目の項目のマスが空欄だ。
そうか! 項目式範囲で指定したセルのマスだ。
指定したセルのマスはできたが、(項目式作成)を省略したので項目名が空欄のままとなり、結果として出力対象が無く何も表示されなかったのだ。
しかもこの空欄のマスは“空白”を出力するという動作を行うので、1列目がクリアされたのだ。

事情が分かったところで、右のカーソルを一番上に位置づけ、左の項目名を下にドラッグして全項目を選択し、右矢印で移送してOKボタンをクリックすると、項目式の範囲指定で入力したシートのセル位置を基準(左上)にデータ項目名と型名が展開・表示された。
(因みに右のカーソルが初期状態で項目名を右に移すと空欄のマスの下から移送される)

そして最初のダイアログ「BtMergeの作成」に戻ったので、OKボタンで設定を終了して実行すると前回同様にデータが取得され表示されたのだった。


ここでまた遡って、項目式範囲を指定せず、先に(項目式作成)ボタンを開くとどうなるかを見てみた。
項目式作成ダイアログ右のカーソルは一番上にあり、左の項目を下にドラッグして選択し、右矢印で移送すると一番上から綺麗に設定され、ダイアログ上にもデータの型名が自動的に設定・表示された。
この状態でOKボタンをクリックすると、今度は項目式の出力位置を指定する画面が表示されたので、設定した項目数を確認して適切なセルの場所を選択できた。

こちらの流れの方が好きかも。

続く。
PR

「Excelデータ取得」

今回から外部データ取り込みに触れてみる。

始めに「Excelデータ取得」ボタンを使ってみる。
これまで同様、ボタンテンプレートからボタンを貼り付け、ボタン制御の「Excelデータ取得」をクリックして開く。すると下図のダイアログが表示される。
 
フォルダとファイル名の右側にある選択ボタンをクリックすると現在のドライブ配下のフォルダ名が表示されるので、取得したいデータのエクセルブックが保存されているフォルダを開きファイル名を選択(クリック)してOKで設定する。

いま使用するフォルダは私(究)の個人フォルダ Kiwamu で、ここにデータが入力されている「月別集計表1.xlsx」を置いてあるので、このフォルダとファイル名を入力。
*「月別集計表1.xlsx」は「StiLL」の「システムテンプレート」の「システムブック」タグの中にある集計表示を処理するテンプレートファイルで、これを新規ブックとして開き保存したもの。ここにサンプルデータがあることを聞いたので、今回このデータを利用する。

ファイルを選択すると、ダイアログのフォルダに %BOOKPATH%\Kiwamu\ が表示された。
これはファイル選択時の指定方法が初期値の「相対位置で指定」となっていることと関係があり、%BOOKPATH% は対象ファイルが置かれているフォルダ(Kiwamu)の上位フォルダ名を意味する変数とのこと。

基本は「相対位置で指定」のまま設定する。
これで上位フォルダ名の変更などでフォルダ環境が変化しても影響を受けにくくなる。

次に元データの対象シート名を選択するのだが、対象ブック内にある複数のシートを選択することができる。ここでは「月別集計表1.xlsx」のデータシート名(data)のみを選択。
なお、データ領域(範囲)は選択したシート共通での指定となるので注意が必要だ。

また基本的にデータ領域は列で指定するのが望ましいと思う。
逆に言うとデータをシート上に作成する時はシンプルに1行目を見出しに使い2行目以下をデータとする。

これは選択された個々のシートのデータ量(件数)が異なるので、仮に特定のシートの件数を基準に領域を設定してしまうと他のシートにそれ以上のデータが存在していても取得されない原因となる。

ここでは「月別集計表1.xlsx」のデータに合わせた列指定で A:F と入力。
対象シート名、元データ範囲の入力時は実際のファイルが開き、内容を確認することができるので、わざわざ別にファイルを開く必要がなく大変便利だ。

なお遡って、フォルダとファイル名を選択しないで、空欄のまま対象シート名の選択を行うと、今開かれている自分自身のブックにあるシート名が表示される。
つまり、自身のブック内のデータを取り出す場合はここを省略すればよいことになる。

項目式範囲、検索式範囲の入力を省略して、次に出力セル位置を指定する。
範囲ではなく位置なので、データの開始位置(結果として表示される領域の最左上のセル)を指定する。ここでは「Excelデータ取得」ボタンを配置した同じシートのセルE1を指定した。

この状態でOKをクリックし設定を終了して実行すると、「月別集計表1.xlsx」のシート(data)から取得されたデータがセルE1を起点に表示された。

続く。

「ボタン連続実行」

一応、前回で条件分岐実行はできたが、この処理では一度セルB10に1が設定されると、その状態が固定されてしまい変化しなくなるので、セルB10を再度0に設定させることで、交互に処理が行われるようにしてみる。

先ず、前回同様に「セル値セット」のボタンをもう一つ作成する。
今度のボタンではセルB10に0をセット(リセット)する設定とする。
これでボタンはできたので、このボタンを実行させる設定を考える。

最初に設定した1つ目の条件(B10=1のとき:前回の図参照)で、メッセージが表示された際、同時にセルB10を0にリセットしたいが、「条件分岐実行」ボタンでは分岐時のボタン設定は1つだけなので、ここで「ボタン連続実行」のボタンを作成し、この連続実行ボタンを1つ目の条件で実行するボタンとして設定する。

3)ボタン連続実行
これまで同様、ボタンテンプレートからボタンを貼り付け、ボタン制御の「ボタン連続実行」をクリックして開く。
ダイアログの左側に、シート上に作成されているボタンが表示されるので、右側の実行ボタンリストに実行順に選択するだけだ。
「条件分岐メッセージ」ボタンとセルB10に0をセットする「セル値リセット」ボタンを選択し、OKで設定完了。

(下図参照)
   
*「条件分岐メッセージ」ボタンと「セル値リセット」ボタンの設定内容を下段に表示した状態。

ここで作成した「ボタン連続実行」ボタンを最初に設定した「条件分岐メッセージ」ボタンの代わりに「条件分岐実行」ボタンに設定する。
ここまでの設定内容は下図の通り。
 
OKボタンで設定完了。

「条件分岐実行」ボタンを実行すると、はじめはセルB10が1なので、メッセージが表示され、メッセージのOKボタンをクリックすると、セルB10が0に設定(リセット)された。

続いてもう一度「条件分岐実行」ボタンを実行すると、今度はセルB10が1に設定された。
これで「条件分岐実行」ボタンを繰り返し実行すると、2つの処理が交互に実行されることを確認できた。

今回までで「ボタン機能設定」メニュー上段のボタン制御(ボタン連続実行、条件分岐実行、条件分岐メッセージ)について一通り感触が掴めた。

続く。

「セル値セット」

条件分岐実行の続き。
そろそろ文字のみでの説明だと伝わらない状況になりつつあるので、前回設定値の図を添えます。
  
  

ボタン名(Bevel 2)は「StiLL」で自動的につけられる。
メッセージはセル値(B13)を参照するように設定している。
ちなみにセルB13には式「="セル値が"&B10&"です。"」を入力してみた。

さて次に、もうひとつの分岐に処理を設定しようと思ったところ、まだボタンを作っていなかったので簡単なボタンを作成します。

ここまで手入力でセルB10に値を入力していたので、この処理を行うボタンを作ろうと思います。
これまでと同様にボタンをシートに貼り付け「ボタン機能設定」を開き、セル値の設定機能を探すと、そのまんまの「セル値セット」があったので、早速セルB10に1がセットされるように入力してOKボタンで設定。

(下図参照)
 
なお、名前が設定されている場合は対象範囲入力時にプルダウンリストに表示され選択もできる。
クリックでボタンを実行して、セルB10に1が設定されることを確認した。

ちょっとここで、‘範囲’の文字が気になったので、試しに複数個のセルを指定して設定後、ボタンを実行してみると、指定した全てのセルに1がセットされた。
さらにセット値に数値ではなく、関数(Today)を入力し、ボタンを実行すると今日の日付がセットされた。

少し寄り道したが、これで条件分岐実行の2つ目の分岐処理を行うボタンが出来たので設定する。
この2つ目の実行条件は1ではない時との思いから、「<>1」を入力したがこれが間違いでボタンを実行するも反応無し。

原因は、条件値に演算子を入力したことと、セルB10の内容をクリアし空欄にしていたこと。
常に具体的数値での条件指定が求められることがわかった。
2つ目の条件値を0に設定し、セルB10にも0を入力してから実行することで無事セルB10に1が設定された。

続けてもう一度条件分岐ボタンを実行すると、今度はセルB10が1に設定されているため、メッセージ「セル値が1です。」が表示されることが確認できた。


続く。




「条件分岐実行」

きのうの続き。
2)条件分岐実行
この機能をクリックすると、先ず「セル値から分岐」か「ボタンを押した結果から分岐」かを選択できる。
ここでは「セル値から分岐」を選択し、取りあえずセル位置にB10を入力した。

その下段に3つの分岐が設定できる領域が用意されている。
特に条件値との見出しは無いが、プルダウンの横に「のとき」との表記があるのでそれとわかる。
プルダウンでは主にボタンでの分岐用に選択肢が選択できるが入力も可能、ここでは1を入力。

すると下段に分岐したとき実行するボタンを設定する入力項目が表示されたので、
ここに昨日作成した「条件分岐メッセージ」ボタンを指定してみた。

ここまでで、セルB10が1のときメッセージも表示されるように設定を行ったつもり。
最後に「ボタン実行時に終了」のチェックボックスがあるが、ここではチェック無し(デフォルト状態)のままとした。

B10セルを空欄にして、作成したボタンをクリックし実行した。当然何も起こらない。
B10セルに1を入力してボタンをクリック。
今度は昨日作成したボタンのメッセージとアイコンが表示された。イメージ通り。

続く。

お知らせ

「StiLL体験セミナー」
(東京 恵比寿)
!!NEW!!
 StiLL体験セミナー

日付:2020年2月4日(火)
時間:14:00~17:00
場所:アイエルアイ総合研究所
   
参加費:無料(定員8名)
詳細・お申込:こちらから

ブログ内検索

Copyright ©  -- Excel.sys --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]