帳票取込テンプレートファイルについて
帳票取込テンプレートファイルは、Microsoft Excel 2007-2013 ブック形式(.xlsx
)、Microsoft Excel 2007-2013 マクロ有効ブック形式(.xlsm
)、またはExcel 97-2003 ブック形式(.xls
)で作成します。
Excelで通常と同じように帳票を作成し、UnitBaseにフィールドのデータを取り込むセルにキーワードを記入します。
※ファイルに複数のシートがある場合、取り込むことができるのは、1枚目のシートだけです。
ここでは、帳票取込テンプレートファイルの作成に関する情報をまとめています。
キーワード
キーワードは、フィールドデータを取り込むセルを決定するために使用する文字列データです。
帳票取込テンプレートを登録するときに、キーワードとフィールドを関連付けて、データの取り込み先を指定します。
UnitBaseは、「${
」と「}
」で囲まれた文字列をキーワードとして認識します。
[例] ${顧客名}
、${単価}
、${登録日}
キーワードには任意の文字列を使用できます。長さは、「${
」と「}
」を除いて256文字までです。
通常は、フィールドとの関連をわかりやすくするために、フィールド名と同じ文字列を使用することをお勧めします。
フィールド名と同じ文字列をキーワードに使用すると、帳票取込テンプレートを登録するときの関連付けを簡単にすることができます。
※同じキーワードはExcelシート上に複数指定できません。
※同じフィールドを複数キーワードにマッピングすることはできません。
※キーワードは同じセル内に複数指定できません。
※キーワードセルにはキーワードと数式指定以外入れることはできません。
※両端に「#
」を使用するキーワードは、UnitBaseで予約されているため利用できません。
システムキーワード
明細の出力範囲を指定するために、システムキーワードが定義されています。
以下にシステムキーワードの一覧を示します。
システムキーワード | 説明 |
---|---|
${#明細行終了#} ${#明細領域#} |
明細行の出力設定のために使用します。 作成された帳票では、これらのキーワードは消去されます。 |
[キーワード一覧]ダイアログボックスの利用
[キーワード一覧]ダイアログボックスには、編集中のデータベースのフィールド名をキーワード化した文字列や、システムキーワードなどが一覧に表示されます。
表示されたキーワード文字列をコピーし、帳票取込テンプレートファイルで取り込み先としたいセルに貼り付けると、キーワードの入力ミスを防ぐことができ、効率よく帳票取込テンプレートを作成できます。
[キーワード一覧]ダイアログボックスは、データベース編集画面で、コマンドバーの をクリックし、表示されるメニューで[キーワード一覧]を選択すると表示されます。
フィールドとセルのデータ型の対応
帳票を取り込むときの、UnitBaseのフィールドとExcelのセルのデータ型の対応は、次のとおりです。
※ユーザー、画像については、「フィールド名^ID」または「フィールド名^ファイル名」に関連付けることで、指定方法を変更したり、追加データを取り込むことができます。
※表示形式が「標準」でないときは、日付時刻以外はExcel上での表示どおりにデータが取り込まれないことがあります。
UnitBaseのフィールドの種類 | ファイル内のデータの書式 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
文字列(1行) | セル内の1行の文字列 | |||||||||||||||||
文字列(複数行) | セル内改行を利用した、セル内の複数行の文字列 | |||||||||||||||||
数値 | 半角の数字 ※半角のマイナス( - )や、半角の小数点( . )を使って記述された負数や小数も取り込むことができます。 ※整数部分が3桁ごとにカンマ( , )で区切られている数も取り込むことができます。 |
|||||||||||||||||
メール | @(アットマーク)で区切られた、メールアドレスとして適切な文字列 またはハイパーリンクを指定 ※ハイパーリンクが優先されます。 |
|||||||||||||||||
URL | セル内改行を利用して、URLとラベルの間で改行した文字列 [例]http://justsystems.com<セル内改行>JUSTSYSTEM あるいはハイパーリンクを指定 ※ハイパーリンクが指定されている場合、ハイパーリンクがURL、セル内文字列がラベルとして取り込まれます。 |
|||||||||||||||||
ドロップダウン | セル内改行を利用して、選択肢の項目ごとに改行した文字列 | |||||||||||||||||
チェックボックス | true または false あるいは-1、0(チェックなし)、1(チェックあり) ※値が設定されていない場合は、false となります。 |
|||||||||||||||||
選択リスト | セル内改行を利用して、選択肢の項目ごとに改行した文字列 | |||||||||||||||||
日付時刻 | Excelに組み込まれている表示形式のうち、半角文字で次の形式で記述された日付や時刻 日付 : YYYY/MM/DD MM/DD/YY DD/MM/YY DD/MMM/YY *YYYY/MM/DD *YYYY年MM月DD日 平成YY年MM月DD日 H.YY.MM.YY 時刻 : hh:mm:ss hh:mm hh:mm:ss AM( or PM ) hh:mm AM( or PM ) 日付時刻 : YYYY/MM/DD hh:mm YYYY/MM/DD hh:mm AM( or PM ) ※日付を表す「 ※表示形式の分類が[ユーザー定義]になっているものは、正しく取り込めない場合があります。 |
|||||||||||||||||
時間量 | 半角文字で、次の形式または整数でで記述された日時分秒 日時分秒 : d-hh:mm:ss 日時分 : d-hh:mm 日時 : d-hh 時分秒 : hh:mm:ss 時分 : hh:mm 日 : d 時 : h 分 : m 秒 : s ※「
※整数で指定された場合は、表示形式の最小分解単位で取り込まれます。
|
|||||||||||||||||
自動採番 | フィールドの詳細設定で定義した書式(表示桁数・接頭文字/接尾文字)に従って記述された文字列 (例)a0001z、a0002z、a0003z、・・・、a9999zという連番データを取り込む場合
※値がない場合は、自動で採番されます。 ※値が重複すると、エラーになります。 |
|||||||||||||||||
ユーザー | ユーザー名の文字列 ※該当するユーザーフィールドに指定できるユーザーで、同じユーザー名のユーザーが複数存在する場合、そのユーザー名は指定できません。 ※ログインIDの文字列は指定できません。 ※同じフィールドのユーザー^IDと同時に関連付けはできません。 |
|||||||||||||||||
ユーザー^ID | ログインIDの文字列 ※ユーザー名の文字列は指定できません。 |
|||||||||||||||||
画像 | セル内に配置された画像を取り込みます。 ※画像の左上隅がセル内に入っている必要があります。 ※複数の画像が同じセル内にあった場合はエラーになります。 ※取り込み可能な画像はPNG/JPEG/GIF形式です。 ※ExcelファイルやExcelの設定によっては、Excelに配置する際にオリジナル画像とは違うフォーマットで保存されたり、画質・サイズが変化していることがあります。 |
|||||||||||||||||
画像^ファイル名 | 取り込まれた画像のファイル名を指定します。 ※同じフィールドの画像が別キーワードで関連付けられている必要があります。 ※拡張子はファイル名に応じて付加されます。 ※このフィールドが関連付けされていない場合、取り込まれた画像のファイル名は自動的に割り当てられます。 |
明細行の取り込み
明細フィールドを取り込む場合は、以下の条件を満たす必要があります。
- キーワードに明細フィールドをマッピングする
- ${#明細行終了#}キーワードで明細の終了位置を指定する
[例] 帳票取込テンプレートにおける明細行の定義例とデータ記入例、取り込み結果(キーワードがすべて明細フィールドに対応する場合)
- 定義例
- データ記入例
明細行テンプレートの範囲
明細行テンプレートの範囲は、明細フィールドとして対応付けされているキーワードがつくる矩形となります。
UnitBaseは、この範囲を1つめの明細ととらえ、それが下向きに空行無く指定されているものとみなして明細を取り込んでいきます。

※キーワードがセル結合内に指定されている場合は、セル結合分の幅・高さが範囲として反映されます。
- 取り込むセルがない行が上下に含まれるような明細を取り込む場合、システムキーワード「${#明細領域#}」を指定することで明細行(1明細分)の範囲を拡げることができます。
- キーワード${#明細領域#}の指定されたセルでは何も取り込まれません。
- キーワード${#明細領域#}は2つまで指定できます。
明細行の終了条件
明細行は以下の場合に終了とみなされ、それ以上取り込みません。
- キーワード「${#明細行終了#」が指定されている行を通り越した場合
キーワード${#明細行終了#}の指定により取り込まれる明細件数は以下のようになります。
※キーワード「${#明細行終了#}」は、明細行テンプレートの真横以下に指定できます。
ただし、キーワード「${#明細行終了#}」によって、明細が終了するまでに明細取り込みが明細でないフィールドを通過するような位置には指定できません。 - 何も指定されていない明細を検出した場合
明細取り込みにおいて、明細フィールドとしてマッピングされている全てのキーワードセルが以下の条件を満たす場合、何も指定されていない明細とみなし、キーワード「${#明細行終了#}」が示す取り込み件数未満であっても明細取り込みは終了します。- セルが空である
- ハイパーリンクが指定されていない
- 画像が配置されていない
- 明細の許容数に達した
1つのレコードに設定できる明細件数の最大に達した場合も明細取り込みは終了します。
データ取込用テンプレートについて
レコード一覧画面の[取込情報]ダイアログボックスから、データ取込用テンプレートをダウンロードできます。
このテンプレートは、帳票取込テンプレートからキーワードを消去したものです。帳票取込を利用する際は、UnitBaseからダウンロードしたこのデータ取込用テンプレートにデータを記入したものを用いて取り込むことを強くおすすめします。
- キーフィールドに数式を展開する
キーワードに「${#=<数式>#}」という形式で併記すると、データ取込用テンプレート内に数式として展開されます。
明細フィールドに対応付けられたキーワードに併記した場合は、明細行内へのセル参照を追随させながら、キーワード「${#明細行終了#}」による明細終了位置まで展開されます。
Excelを用いた複雑な計算結果を、テンプレートとして埋め込んでおいて取り込む場合に有用です。※システムキーワードには併記できません。
※数式によっては、正しく計算できない場合や、正しく取り込めない場合があります。
補足・制限事項
補足
- レコード一覧画面からダウンロードできるデータ記入用テンプレートには、Excelファイルのユーザープロパティに「ub_imptempl_version」としてバージョン情報が埋め込まれています。
バージョン情報は、帳票取込テンプレートにおいて、以下の項目が変更された場合に変化します。
- 帳票取込テンプレートファイルの再アップロード
- キーワードの個数
- キーワードの位置
- キーワード名
- キーワードの関連付け先フィールド
バージョン情報が異なるデータ記入用テンプレートは、現在運用されている帳票取込テンプレートとキーワード位置や関連付けフィールドに差異がある場合があり、正常に取り込めない可能性が高くなります。バージョン情報が一致しないデータ帳票は取り込まず、常に最新のデータ記入用テンプレートを用いた運用をおすすめします。
制限事項
- データ記入用テンプレートのフォーマットに従った帳票データを取り込んでください。フォーマットに位置ずれが あるデータを取り込んだ場合、不正なデータが取り込まれてしまう可能性があります。
特に、行や列の挿入・削除など、セル位置がずれる操作にはご注意ください。
- 1つの帳票テンプレートファイルに指定できるキーワードは200個までです。
- 登録できる帳票テンプレートファイルのサイズは、20MBまでです。
- 名前や印刷範囲をシート上に設定する場合、次の制限があります。
- Excel 97-2003 ブック形式(
.xls
)の場合、名前範囲にコメントが含まれていると、正しく取り込めない場合があります。
- Excel 97-2003 ブック形式(
- 動作確認済みのExcelの関数
使用されている関数によっては、UnitBaseにデータを取り込むことができない場合があります。※次の関数は、UnitBaseにデータを取り込むことができることを確認した関数です。
これら以外の関数が使用されている帳票はサポートしません。
また、これらの関数でも条件によっては正しくデータを取り込むことができない場合があります。
※ほかのブックへの参照はサポートしません。
動作確認済みのExcelの関数 関数 ABS 関数
ACOS 関数
ACOSH 関数
ADDRESS 関数
AND 関数
AREAS 関数
ASIN 関数
ASINH 関数
ATAN 関数
ATAN2 関数
ATANH 関数
AVEDEV 関数
AVERAGE 関数
CEILING 関数
CHAR 関数
CHOOSE 関数
CLEAN 関数
COLUMN 関数
COLUMNS 関数
COMBIN 関数
CONCATENATE 関数
COS 関数
COSH 関数
COUNT 関数
COUNTA 関数
COUNTBLANK 関数
COUNTIF 関数
DATE 関数
DAY 関数
DAYS360 関数
DEGREES 関数
DEVSQ 関数
ERROR.TYPE 関数
EVEN 関数
EXACT 関数
EXP 関数
FACT 関数
FALSE 関数
FIND 関数
FLOOR 関数
FV 関数
HLOOKUP 関数
HOUR 関数
HYPERLINK 関数
IF 関数
INDEX 関数
INDIRECT 関数
INT 関数
IRR 関数
ISBLANK 関数
ISERROR 関数
ISEVEN 関数
ISLOGICAL 関数
ISNA 関数
ISNONTEXT 関数
ISNUMBER 関数
ISODD 関数
ISREF 関数
ISTEXT 関数
LARGE 関数
LEFT 関数
LEN 関数
LN 関数
LOG 関数
LOG10 関数
LOOKUP 関数 (引数1~3)
LOWER 関数
MATCH 関数
MAX 関数
MAXA 関数
MEDIAN 関数
MID 関数
MIN 関数
MINA 関数
MINUTE 関数
MOD 関数
MODE 関数
MONTH 関数
MROUND 関数
NA 関数
NETWORKDAYS 関数
NOT 関数
NOW 関数
NPER 関数
NPV 関数
ODD 関数
OFFSET 関数
OR 関数
PI 関数
PMT 関数
POISSON 関数
POWER 関数
PRODUCT 関数
PV 関数
RADIANS 関数
RAND 関数
RANDBETWEEN 関数
RANK 関数
RATE 関数
REPLACE 関数
RIGHT 関数
ROUND 関数
ROUNDDOWN 関数
ROUNDUP 関数
ROW 関数
ROWS 関数
SEARCH 関数
SECOND 関数
SIGN 関数
SIN 関数
SINH 関数
SMALL 関数
SQRT 関数
STDEV 関数
SUBSTITUTE 関数
SUBTOTAL 関数
SUM 関数
SUMIF 関数
SUMPRODUCT 関数
SUMSQ 関数
SUMX2MY2 関数
SUMX2PY2 関数
SUMXMY2 関数
T 関数
TAN 関数
TANH 関数
TEXT 関数
TIME 関数
TODAY 関数
TRIM 関数
TRUE 関数
TRUNC 関数
UPPER 関数
UPPER 関数
VALUE 関数
VAR 関数
VARP 関数
VLOOKUP 関数
WEEKDAY 関数
WORKDAY 関数
YEAR 関数