Excelファイルアクセス 1. 概 要 Excel ファイルアクセスコンポーネントは Microsoft Excel のファイルを 開 いてセルの 値 や 書 式 を 取 得 変 更 したり テーブル 全 体 を 新 しいファイルと して 保 存 したりするために 用 います Excel ファイルアクセスコンポーネントは アプリケーションビルダーのメニューから 以 下 のように 選 びます [コンポーネント 追 加 ]-[ 入 出 力 ]-[ファイル]-[Excel ファイルアクセス] 2. 用 途 Excel ファイルに 対 するデータの 入 出 力 を 行 いたいとき 3. ここで 使 用 されるイベントとメソッド ここで 使 用 するメソッドを 表 1に 示 します Excelファイルアクセスコンポーネントから 発 生 するイベントはありません 表 1 ここで 使 用 する Excel ファイルアクセスコンポーネントのメソッド 使 用 されるメソッド 処 理 内 容 ファイルからブックを 読 み 込 んで 選 択 する(String) Excel ファイルを 名 前 指 定 で 読 み 込 んで そのファイルのブックを 現 在 の 編 集 対 象 とする 空 のブックを 作 成 して 選 択 する(XLS 形 式 )() 新 しい Excel ファイルのブックを 作 成 して 現 在 の 編 集 対 象 とする ファイルに 現 在 のブックを 書 き 出 す(String) 現 在 のブックを 名 前 指 定 で Excel ファイルに 書 き 出 す 現 在 のブックのシートを 選 択 する(int) 現 在 のブックに 含 まれるシートを 位 置 指 定 で 選 択 して 現 在 の 編 集 対 象 とする 現 在 のブックにシートを 作 成 して 選 択 する(String) 現 在 のブックに 新 しいシートを 名 前 指 定 で 作 成 して 現 在 の 編 集 対 象 とする 現 在 のシートの 行 を 選 択 する(int) 現 在 のシートの 行 を 位 置 指 定 で 選 択 して 現 在 の 編 集 対 象 とする 現 在 のシートに 行 を 作 成 して 選 択 する(int) 現 在 のシートに 位 置 指 定 で 行 を 作 成 して 現 在 の 編 集 対 象 とする 現 在 のシートの 最 後 の 行 位 置 を 取 得 する() 現 在 のシートに 含 まれるデータの 最 終 行 の 位 置 を 取 得 する 現 在 の 行 のセルを 選 択 する(int) 現 在 の 行 のセルを 位 置 指 定 で 選 択 して 現 在 の 編 集 対 象 とする 現 在 の 行 にセルを 作 成 して 選 択 する(int) 現 在 の 行 に 位 置 指 定 でセルを 作 成 して 現 在 の 編 集 対 象 とする - 1 -
現 在 の 行 の 最 後 のセル 位 置 を 取 得 する() 現 在 のセルの 値 を 文 字 列 として 取 得 する() 現 在 のセルの 値 を 設 定 する(String) 現 在 のブックにセル 書 式 を 作 成 して 選 択 する() 現 在 のブックのセル 書 式 を 選 択 する(short) 現 在 のセルのセル 書 式 を 選 択 する() 現 在 のセルに 現 在 のセル 書 式 を 設 定 する() 現 在 のセル 書 式 を 複 製 して 選 択 する() 現 在 のセル 書 式 が 塗 りつぶし 有 か 判 定 する() 現 在 のセル 書 式 の 塗 りつぶし 色 番 号 を 取 得 する() 現 在 のセル 書 式 に 塗 りつぶし 色 を 設 定 する(short) 色 番 号 から 色 オブジェクトを 取 得 する() 色 オブジェクトに 近 い 色 番 号 を 取 得 する(Color) 罫 線 種 別 細 線 を 取 得 する() 現 在 のセル 書 式 に 上 罫 線 を 設 定 する(short) 現 在 のセル 書 式 に 下 罫 線 を 設 定 する(short) 現 在 のセル 書 式 に 左 罫 線 を 設 定 する(short) 現 在 のセル 書 式 に 右 罫 線 を 設 定 する(short) 現 在 のブックにフォントを 作 成 して 選 択 する() 現 在 のフォントの 色 番 号 を 取 得 する() 現 在 のフォントの 色 を 設 定 する(short) 現 在 のセル 書 式 のフォントを 選 択 する() 現 在 のセル 書 式 に 現 在 のフォントを 設 定 する() 現 在 の 行 に 含 まれるデータの 最 終 列 の 位 置 を 取 得 する 現 在 のセルの 値 を 文 字 列 として 取 得 する 現 在 のセルの 値 を 文 字 列 指 定 で 設 定 する 現 在 のブックに 新 しいセル 書 式 を 作 成 して 現 在 の 編 集 対 象 とする 現 在 のブックに 含 まれるセル 書 式 を 識 別 番 号 指 定 で 選 択 して 現 在 の 編 集 対 象 とする 現 在 のセルのセル 書 式 を 現 在 の 編 集 対 象 とする 現 在 のセルに 現 在 のセル 書 式 を 反 映 させる 現 在 のセル 書 式 を 複 製 して 新 しいセル 書 式 を 作 成 し 現 在 の 編 集 対 象 とする 現 在 のセル 書 式 の 塗 りつぶし 指 定 の 有 無 を 取 得 する 現 在 のセル 書 式 の 塗 りつぶし 色 を 特 定 するための Excel 内 の 番 号 を 取 得 する 現 在 のセル 書 式 に 塗 りつぶし 色 を Excel 内 の 番 号 指 定 で 設 定 する Excel 内 の 色 番 号 から MZ で 利 用 できる 色 オブジェクトを 取 得 する MZ で 扱 う 色 オブジェクトを 指 定 して 最 も 近 い Excel 内 の 色 番 号 を 取 得 する 罫 線 種 別 細 線 の 識 別 番 号 を 取 得 する 現 在 のセル 書 式 に 識 別 番 号 を 指 定 して 上 罫 線 の 種 別 を 設 定 する 現 在 のセル 書 式 に 識 別 番 号 を 指 定 して 下 罫 線 の 種 別 を 設 定 する 現 在 のセル 書 式 に 識 別 番 号 を 指 定 して 左 罫 線 の 種 別 を 設 定 する 現 在 のセル 書 式 に 識 別 番 号 を 指 定 して 右 罫 線 の 種 別 を 設 定 する 現 在 のブックに 新 しいフォントを 作 成 して 現 在 の 編 集 対 象 とする 現 在 のフォントの 色 を 特 定 するための Excel 内 の 番 号 を 取 得 する 現 在 のフォント 色 を Excel 内 の 番 号 を 指 定 して 設 定 する 現 在 のセル 書 式 のフォントを 現 在 の 編 集 対 象 とする 現 在 のセル 書 式 に 現 在 のフォントを 反 映 させる 4. コンポーネント 使 用 例 付 属 のサンプルアプリケーションを 使 って Excelファイルアクセスコンポーネントの 使 い 方 を 説 明 します アプリケーションビルダーからインストール フォルダ 以 下 の AP_DATA Sample Excelファイルアクセス.mzax をロードし [ 実 行 ]ボタンをクリックしてアプリケーションを 実 行 してください( 図 1) このサンプルでは Excelファイルの 特 定 のセルを 指 定 して 文 字 列 を 入 出 力 する 例 と Excelファイルに 含 まれるデータ 全 体 をMZ Platformのテーブル データとして 入 出 力 する 例 を 示 します それぞれの 機 能 は 画 面 上 側 のタブで セル 指 定 および テーブル 全 体 を 選 択 することで 切 り 替 えて 使 用 するこ とができます - 2 -
図 1 Excel ファイルアクセス.mzax の 実 行 サンプルアプリケーションの セル 指 定 タブでは Excel ファイルに 含 まれる 特 定 のセルの 値 を MZ Platform のテキストフィールドの 文 字 列 として 入 出 力 する 例 を 示 します ファイルから 読 み 込 む ボタンを 押 すとファイル 選 択 ダイアログが 開 くので サンプルアプリケーションと 同 じフォルダにある AP_DATA Sample Excelファイル(セル 指 定 用 ).xls を 選 択 してください Excelファイルに 含 まれる 特 定 セルのデータが 読 み 込 まれて MZ Platformの テキストフィールドに 表 示 されます( 図 2) - 3 -
図 2 セル 指 定 タブで 利 用 する Excel ファイルと 読 み 込 み 後 の 状 態 この 処 理 について ビルダーでの 接 続 方 法 を 示 します( 図 3) Excelファイルアクセスの 使 い 方 としては ファイルを 読 み 込 んでブックを 選 択 状 態 とし 次 にシートの 選 択 行 の 選 択 最 後 にセルの 選 択 を 実 行 します この 状 態 になったら 選 択 状 態 のセルの 値 を 取 得 することができます このサンプルでは 特 定 位 置 のセル 2 つの 値 を 取 得 して 2 つのテキストフィールドに 文 字 列 を 設 定 しています - 4 -
図 3 セル 指 定 タブでの 読 み 込 み 処 理 の 記 述 - 5 -
一 方 ファイルに 書 き 出 す ボタンを 押 すと 現 在 開 いているExcelファイルに 対 して 特 定 セルの 値 を 書 き 換 えて 別 名 保 存 することができます この 処 理 について ビルダー 上 での 接 続 方 法 を 示 します( 図 4) Excelファイルを 開 いてブックとシートを 選 択 している 状 態 なので 行 を 選 択 してセルを 選 択 し ます この 状 態 で 現 在 のセルの 値 を 設 定 することができるので フィールドの 文 字 列 を 取 得 して 設 定 します このサンプルでは 2 つのフィールドから 値 を 取 得 してセルの 値 を 設 定 しています セルの 値 の 設 定 が 終 了 したら ファイルに 出 力 します 図 4 セル 指 定 タブでの 書 き 出 し 処 理 の 記 述 - 6 -
続 いて サンプルアプリケーションの テーブル 全 体 タブでは Excel ファイルに 含 まれるデータ 全 体 を MZ Platform のテーブルデータとして 入 出 力 する 例 を 示 します ファイルから 読 み 込 む ボタンを 押 すとファイル 選 択 ダイアログが 開 くので サンプルアプリケーションと 同 じフォルダにある AP_DATA Sample Excelファイル(テーブル 全 体 用 ).xls を 選 択 してください Excelファイルに 含 まれるセルのデータとセルの 塗 りつぶし 色 およびフォ ント 色 が 読 み 込 まれて MZ Platformのテーブルに 表 示 されます( 図 5) 図 5 テーブル 全 体 タブで 利 用 する Excel ファイルと 読 み 込 み 後 の 状 態 この 処 理 について ビルダーでの 接 続 方 法 を 示 します( 図 6から 図 11) 処 理 の 概 要 としては ファイルからブックを 読 み 込 んで 選 択 し シートを 選 択 シート 上 の 各 セルを 読 み 込 んでテーブルデータを 作 成 し GUIのテーブルにデータを 設 定 するという 流 れになります( 図 6) このサンプルでは 選 択 シー トは 最 初 のシート(0 番 目 )に 固 定 しています - 7 -
図 6 テーブル 全 体 タブでの 読 み 込 み 処 理 の 記 述 1 テーブル 本 体 の 読 み 込 み 処 理 では まずExcelファイルに 含 まれる 実 体 のあるデータのサイズを 取 得 して 読 み 込 み 用 のテーブルを 作 成 してから 各 セル の 値 を 読 み 込 みます( 図 7) Excelファイルには 実 体 のあるセルとそれが 含 まれる 行 があり 実 体 のある 最 後 の 行 位 置 はメソッドで 直 接 取 得 できますが 行 ごとに 実 体 のある 最 後 の 列 位 置 が 異 なるため 一 度 Forループですべての 行 を 調 べる 必 要 があります( 図 8) このForループが 完 了 すると 最 後 の 列 位 置 の 最 大 値 が 得 られるので 読 み 込 み 用 のテーブルで 列 数 と 行 数 を 確 保 します このサンプルではセルの 値 のほかに セルの 背 景 色 とフォント 色 を 読 み 込 むの で それらの 読 み 込 み 用 のテーブルを 準 備 しています - 8 -
図 7 テーブル 全 体 タブでの 読 み 込 み 処 理 の 記 述 2-9 -
図 8 テーブル 全 体 タブでの 読 み 込 み 処 理 の 記 述 3 続 いて 実 際 に 読 み 込 む 処 理 について 説 明 します すでに 説 明 した 通 り 行 とセルには 実 体 の 有 無 があるので 全 体 を 読 み 込 むためには 実 際 にデータが あるかどうか 確 認 しながらの 読 み 込 みになります( 図 9) セルの 値 の 取 得 はすでに 説 明 したとおりですが セルの 背 景 色 はセル 書 式 から セルのフォント 色 はセル 書 式 に 設 定 されたフォントから 取 得 しますので それらを 選 択 する 処 理 が 必 要 になります セルの 値 を 読 み 込 む 際 に ここではNull 値 かどうかの 確 認 と 空 文 字 かどうかの 確 認 をして 有 効 な 文 字 列 が 含 まれていたら 読 み 込 むことにしています( 図 10) また フォント 色 の 読 み 込 みは 有 効 な 文 字 列 が 含 まれていた 場 合 のみ 行 うために その 処 理 の 後 ろに 記 述 しています Excelのセルのフォント 色 は 色 番 号 で 取 得 する 形 式 になっているので その 番 号 をMZ Platformで 利 用 できる 色 オブジェクトに 変 換 する 処 理 が 必 要 になります セルの 背 景 色 は まずセルに 塗 りつぶし 指 定 があるかどうか 確 認 して あれば 塗 りつぶし 色 を 取 得 します フォント 色 と 同 様 に 色 番 号 からの 変 換 が 必 要 です( 図 11) - 10 -
図 9 テーブル 全 体 タブでの 読 み 込 み 処 理 の 記 述 4-11 -
図 10 テーブル 全 体 タブでの 読 み 込 み 処 理 の 記 述 5-12 -
図 11 テーブル 全 体 タブでの 読 み 込 み 処 理 の 記 述 6 一 方 ファイルに 書 き 出 す ボタンを 押 すと 現 在 MZ Platformのテーブルに 表 示 されているテーブルデータの 値 とセルの 背 景 色 と 文 字 色 が 指 定 した Excelファイルに 書 き 出 されます このサンプルのGUIテーブルは テーブル 上 でのマウス 右 ボタンクリックでポップアップメニューが 出 るようにしてあり テーブルのデータを 自 由 に 作 成 してフォントやセルの 背 景 色 を 変 更 することができますので いろいろなテーブルを 作 成 して 出 力 してみてください この 処 理 について ビルダーでの 接 続 方 法 を 示 します( 図 12 から 図 17) なお 元 の 書 式 保 持 にチェックをして ファイルに 書 き 出 す ボタンを 押 すと 読 み 込 んだファイルの 書 式 をすべて 保 持 したままテーブルの 値 のみを 上 書 きしてファイルに 保 存 しますが ここでは 説 明 を 省 きます この 例 では 新 しいExcelファイルを 作 成 してその 中 にテーブルデータや 色 を 書 き 出 していきます まずは 空 のブックを 作 成 して 選 択 し 必 要 に 応 じて 書 式 を 作 成 現 在 のブックにシートを 作 成 して 選 択 し テーブルを 書 き 出 して 最 後 に 現 在 のブックをファイルに 書 き 出 すという 流 れになります( 図 12) セルの 値 だけを 出 力 する 場 合 は 書 式 を 作 成 する 必 要 がありませんが 今 回 のようにセルの 色 やフォントの 色 を 指 定 する 際 や 罫 線 を 設 定 する 場 合 には 書 式 の 作 成 が 必 要 になります - 13 -
図 12 テーブル 全 体 タブでの 書 き 出 し 処 理 の 記 述 1 図 13 テーブル 全 体 タブでの 書 き 出 し 処 理 の 記 述 2-14 -
セルの 書 式 は 作 成 すると 整 数 のインデックス 番 号 が 付 与 されるので 後 から 利 用 するためにこの 番 号 を 覚 えておく 必 要 あります この 例 では セルを 囲 む 罫 線 を 細 線 に 指 定 した 書 式 を 作 成 しています( 図 13) テーブルの 書 き 出 しでは 値 とセル 背 景 色 およびフォント 色 用 の 3 つのテーブルデータを 書 き 出 します シートを 選 択 した 状 態 で すべての 行 について シートに 行 を 作 成 して 選 択 し 行 に 含 まれるすべてのセルについて 行 にセルを 作 成 して 選 択 し 値 を 出 力 します( 図 14 および 図 15) 図 14 テーブル 全 体 タブでの 書 き 出 し 処 理 の 記 述 3-15 -
図 15 テーブル 全 体 タブでの 書 き 出 し 処 理 の 記 述 4-16 -
このサンプルでは セルの 作 成 と 同 時 に 各 セルの 書 式 を 個 別 に 設 定 するために 最 初 に 作 成 した 書 式 を 複 製 して 最 後 に 反 映 させています( 図 15) 読 み 込 み 処 理 で 説 明 したとおり セルの 塗 りつぶし 色 の 出 力 では MZ Platformのセルの 背 景 色 をそのまま 用 いることができません これに 対 応 するた めに このコンポーネントでは 色 を 指 定 するとExcelの 塗 りつぶし 色 に 用 いることができる 近 い 色 の 番 号 を 取 得 できる 機 能 を 提 供 しています この 機 能 を 用 いて Excelファイルのセルの 色 を 指 定 します( 図 16) 図 16 テーブル 全 体 タブでの 書 き 出 し 処 理 の 記 述 5 フォント 色 の 出 力 では さらにフォントの 作 成 という 処 理 が 必 要 になります セル 書 式 と 同 様 に ブックに 関 してフォントを 作 成 し そのフォントの 色 をセルの 背 景 色 と 同 様 に 番 号 指 定 で 設 定 し 最 後 に 作 成 したフォントをセル 書 式 に 設 定 します( 図 17) - 17 -
図 17 テーブル 全 体 タブでの 書 き 出 し 処 理 の 記 述 6-18 -