1.概要
Unifinityアプリケーションは、ExcelなどのWindowsアプリケーションと連携させることが可能です。
この記事では、Unifinityアプリケーションの画面に入力した内容を、Excelに出力する方法について解説します。
以下のようなケースで便利に活用いただけます。
- 所定フォーマットで帳票を出力したい
- アプリで入力したデータをエクセルで集計したい
- CSVファイルを作成して他システムにインポートしたい
解説で使用しているサンプルプロジェクトは、以下よりダウンロードすることができます。ぜひご活用ください。
2.動作イメージ
アプリでセルの行と列を指定のうえ内容を記入してロジックを実行すると、所定のExcelファイルに内容が転記されます。Excel出力の基本的な動きとなります。
3.実装方法
3-1.画面の設定をする
まずは、必要となる画面を作成していきます。画面設計機能から新規にフォームを作成し、左側のコントロールバーからコントロールを選択し、作成したフォーム上に配置をします。配置したコントロールの設定は、右側のプロパティーエリアから行います。
3-1-1.Excelオープン画面を作成する
以下の要領で新規に画面を作成し、その中にボタンコントロールを配置します。
①ボタン
3-1-2.Excel連携画面を作成する
以下の要領で新規に画面を作成し、その中にボタンや、テキストのコントロールを配置します。
①テキストボックス
②ボタン
3-1-3.テキストボックスを設定する
3-1-2で作成した「行位置指定テキスト」と「列位置指定テキスト」の設定を行います。「オブジェクト」>「動作設定」>「入力内容」に「数値のみ」を指定します。その後「入力必須」にチェックを付けておいてください。
同じく3-1-2で作成した「書き込み内容入力テキスト」の設定を行います。「オブジェクト」>「動作設定」>「入力必須」にチェックを付けます。
3-2.Excelを開く
Excelを出力する前に出力先のExcelファイルを開くロジックを作成します。
Excelを開くのに使用するロジックは以下のとおりです。
#1でダイアログを開いて開くファイルを選択します。#2で開いたファイルのパスを記録しておきます。#3で選択したファイルを開き、#4でExcelの出力内容を指定するフォームに遷移します。
Excelファイルを新規に作成する場合には、ダイアログで右クリックからファイルの新規作成を実行します。
#2のロジックを実行する前にグローバル変数を設定しておきます。グローバル変数は、「プロパティー」>「グローバル変数」から「変数名」を設定して登録します。
#3のロジックにかかわるパラメーターは以下の通りです。
3-3.Excelに書き込む
3-2で開いたExcelファイルにデータを書き込むロジックを作成し、「Excel書き込み」ボタンにロジックを登録します。
Excel書き込みに使用するロジックは以下となります。
#1は入力内容の判定ロジックです。入力必須テキストが未入力の場合はメッセージを表示して、処理を中断します。未入力でない場合は、#2以降に進みます。#2から#4は各テキストボックスに入力された値を取得するロジックです。#5で取得した値に基づいて Excelファイルに書き込みを行います。
#5Excel書き込みのパラメーター設定は以下の通りです。行番号、列番号、書き込み内容がそれぞれ指定できます。
3-4.Excel保存ロジックの作成
書き込みを行ったExcelファイルを保存する際に使用するロジックを作成します。作成したロジックは「Excel保存」ボタンに登録します。
作成するロジックは以下のとおりです。
#1で、3-2で設定したグローバル変数を取得し、取得したファイルパスを指定してExcelファイルを保存し、#3で開いているExcelファイルを閉じます。#4で、グローバル変数の値をリセットし、#5で「Excelオープン画面」に戻ります。
#2「Excelファイル保存」のパラメーター設定は以下の通りです。
以上で、Excelに出力するアプリの設定は完了です。
作成したロジックがボタンに登録されていることを確認し、メニューアイコンの「実行」ボタンからアプリを実行して動作を確かめてみてください。
Excelオープン画面で「Excelを開く」ボタンを押すとダイアログが開きますので、適当なExcelファイルを選択するか、右クリックからExcelファイルの新規作成を行い、Excelファイルが開くことを確認してください。
Excelの起動に成功すると、アプリは自動的にExcel連携画面に遷移しますので、行数と列数を数値で指定し、書き込み内容入力欄にテストデータを記入したうえで「Excelに書き込む」ボタンを押します。
指定したセルにテストデータが入力されたら成功です。