基本仕様

  • Excelファイルをオープンすると、そのファイルを識別するためのキーを返却します。以後、識別キーを使って処理を行います。(識別キーはひとつだけメモリに記憶されますので省略することもできます。)

  • マクロでオープンされたExcelファイルで、クローズされていないファイルがある場合は、ファイルの繰り返し処理の最後、又は設定の実行の最後でクローズされます。(この場合のクローズは更新内容は保存されません。)

  • Excelファイルのオープンクローズを使用すると、オープン時にファイルをロックするので他のプロセスが処理中にアクセスするのを防ぐことができます。また、処理の途中でエラーが発生してクローズが行われない場合はExcelファイルの更新が行われないのでトランザクション処理が可能です。

シート書式

  • シート名は「Sheet1/Sheet2」のように/で区切って複数指定することが可能です。

  • シート名は直接シート名を指定する以外に、以下の書式が使用できます。

    説明

    書式

    備考

    すべてのシート

    [AllSheets]

    現在のシート

    [ActiveSheet]

    Excelファイルに保存されているアクティブシート。

    番号指定

    [SheetNo(番号)]

    括弧内にシート番号を指定します。[SheetNo(1)]は一番左のシートを表します。「[SheetNo(1/2/3)]」のように番号を/で区切ると複数のシートを指定できます。

セル書式

  • セルは「B1」「C4」のような書き方と、「1:2」「4:3」のような書き方ができます。「B1」と「1:2」は同じセルを表します。

    「B1」のようなアルファベットを使った書き方は、列、行の順に記述しますが、「1:2」のような数字のみの書き方は行、列の順に記述します。

    また、「A1-A3」(「1:1-3:1」)や、「B2-D4」(「2:2-4:4」)のようにハイフンで区切ると範囲を表すこともできます。

    セルの範囲は、通常「A1-C3」のように左上と右下のセルを記述しますが、「A3-C1」や「C3-A1」のように記述しても同じ意味となります。

    セルやセル範囲を「|」で区切って複数渡すこともできます。「A1|A3」(「1:1|3:1」)や「B2-D4|A5-B8」(「2:2-4:4|5:1-8:2」)のように表記します。

    「A1-C3|B2-D4」のように複数の範囲が重複するセルを表している場合は、最初に「A1-C3」の処理をして、次に「B2-D4」の処理を行いますので、重複したセルは一番最後に処理した内容になります。

    セルやセル範囲を「&」で区切って複数渡すこともできます。「A&C-F」(「:1&:3-:6」)や「B2-C10&E2-F10」(「2:2-10:3&2:5-10:6」)のように表記します。

    「|」は複数のセル範囲を別々に行追加していきますが、「&」は複数のセル範囲を混在させた結果となります。

    A

    B

    C

    1

    会社名

    所在地

    電話番号

    2

    ○○建設

    東京

    03-5555-0000

    3

    △△運送

    大阪

    06-5555-0000

    4

    ■■商事

    名古屋

    052-555-0000

    「A2-A3|C2-C3」と記述すると以下の結果となります。

    ○○建設
    △△運送
    03-5555-0000
    06-5555-0000

    「A2-A3&C2-C3」と記述すると以下の結果となります。

    ○○建設,03-5555-0000
    △△運送,06-5555-0000

    「A2-A3&C3-C4&B2-B4」と記述すると以下の結果となります。左上を基準に横方向と縦方向にデータを追加していくイメージです。

    ○○建設,06-5555-0000,東京
    △△運送,052-555-0000,大阪
    ,,名古屋

    セル拡張書式

    列や行などの終端が決まっていない範囲を指定する場合は、以下の書式を使用します。

    説明

    書式

    備考

    シート全体

    [ALL]

    列指定

    A

    列指定(数字)

    :1

    A列は1、B列は2のように1からの番号で指定。

    列の範囲

    A-C

    A列~C列。

    行の範囲

    2-5

    2行目から5行目。

    列指定(開始行指定あり)

    B5-B

    B5から下方向。

    列指定(開始行指定あり)(数字指定)

    5:2-:2

    B5から下方向。

    行指定(開始列指定あり)

    B5-5

    B5から右方向。

    行指定(開始行列定あり)(数字指定)

    5:2-5

    B5から右方向。

    列指定(開始行指定あり・複数列)

    B5-C

    B列とC列の5行目から下方向。5:2-:3も可。

    行指定(開始列指定あり・複数行)

    B5-6

    5行目と6行目のB列から右方向。5:2-6も可。

  • xlsファイルは読み込み系のマクロに対応しています。(一部対応していないマクロあり。)

    xlsファイルは書き込み系のマクロに対応しておりません。

String.Format書式

書式

出力例
(入力値:1234.56
または 789)

説明

C

¥1,234.56

通貨形式(Currency)

D5

00789

整数を5桁で0埋め

E

1.234560E+003

指数表記(Exponential)

F2

1234.56

小数点以下2桁の固定小数点形式

N

1,234.56

数値(3桁ごとのカンマ区切り)

P

12,356.00%

パーセンテージ(Percent)

0.#

1234.6

小数第1位まで。小数第2位で四捨五入。0で終わる場合は省略(例: 1234.0 → 1234)

#,##0

1,235

整数部を3桁区切りで表示、小数なし(四捨五入)

0000

0789

4桁でゼロ埋め表示

書式

出力例(入力値: 2025年4月8日 14:35)

説明

yyyy/MM/dd

2025/04/08

年月日(スラッシュ区切り)

MM/dd/yyyy

04/08/2025

月/日/年の米国形式

HH:mm:ss

14:35:00

24時間制の時刻

dddd, MMMM d

火曜日, 4月 8

曜日と月日

yyyy年M月d日

2025年4月8日

和風スタイルの年月日

ExcelデータCSV出力

FORMAT1 {%EXCEL_SAVE_CSV(Excelファイル名,シート名,出力ファイル名,[フォーマットリストユーザーデータ名],[出力セル範囲],[出力ファイル既存時の挙動(SeqNo|Overwrite|Append)],[出力エンコーディング(UTF-8|SJIS)])}

引き数で指定されたExcelファイルの指定シートをCSVファイルに変換出力します。

シート名にはシート名を直接記述します。複数のシート名を指定する場合は、「Sheet1/Sheet2」のように/で区切って指定します。

また、シート名には シート書式 も使用できます。

シート名に複数のシートを指定した場合は、シート毎にCSVファイルが出力されます。また、出力されるファイル名の末尾に「シート番号(4桁)-シート名」が付与されます。

出力ファイル名に「集計表.csv」を指定、
対象シートを「東京」「大阪」「名古屋」のうち、「東京」「名古屋」を指定した場合
集計表_0001-東京.csv
集計表_0003-名古屋.csv

Excelファイルや上書き時の出力のファイルが使用中など、ファイルをオープンできなかった場合はエラーが発生します。

フォーマットユーザーデータ名には、CSV出力時に特定のセルを指定したフォーマットで出力するための情報をセットしたユーザーデータの名前を指定します。

フォーマットユーザーデータは、「セル」と「フォーマット」をキーにしたデータを複数渡すことができます。ここで指定する「セル」には セル拡張書式 も使用できます。

ここで指定するフォーマットの書式は .NET FrameworkのString.Formatの書式(:以降の書式) の書式を使用します。Excelの書式ではありませんので注意してください。

#A2から下方向のセル全てをyyyy/MM/ddでフォーマットする
{%SET_U(Format,1,セル,A2-A)}
{%SET_U(Format,1,フォーマット,yyyy/MM/dd)}

#F2から下方向のセル全てを5桁0埋めでフォーマットする
{%SET_U(Format,2,セル,F2-F)}
{%SET_U(Format,2,フォーマット,00000)}

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,Sheet1,D:\Home\ExcelDemo\Demo01\Sample.csv,Format)}

出力セル範囲には、出力するセルの範囲を指定します。省略するとシート全体が対象になります。([ALL]の指定と同等)

セル範囲は「|」で区切って複数渡すこともできます。セルの列数が違う範囲を複数渡すと、出力されるCSVの列数が違うものが混在することになります。

複数のシートを指定した場合は、すべてのシートに指定したセル範囲が適用されます。

出力ファイル既存時の挙動はSeqNo(連番付与)、Overwrite(上書き)、Append(追加書き込み)の何れかを指定できます。

連番付与はファイル名の末尾に「元ファイル名_0001.csv」のように連番が付与されます。省略すると連番が付与されて出力されます。

追加書き込みを指定した場合は、出力エンコーディングで指定したエンコーディングで追加書き込みを行います。

既存のファイルと異なるエンコーディングで追記を行うと文字化けが発生するので注意してください。

出力エンコーディングは省略するとUTF-8で出力されます。

例1 D:\Home\ExcelDemo\Demo01\Sample.xlsxの現在のシートをCSVファイルに出力する。(出力ファイルが存在する場合はファイル名に連番を付与する)

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,[ActiveSheet],D:\Home\ExcelDemo\Demo01\Sample.csv)}

例2 D:\Home\ExcelDemo\Demo01\Sample.xlsxの1番目のシートをCSVファイルに出力する。(出力ファイルが存在する場合は上書きする)

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,[SheetNo(1)],D:\Home\ExcelDemo\Demo01\Sample.csv,,,Overwrite)}

例3 D:\Home\ExcelDemo\Demo01\Sample.xlsxのSheet1をCSVファイルに出力する。(出力ファイルが存在する場合は上書きする)

「C4-P12」のセル範囲のフォーマットを数字のみにする。(カンマ編集などを行わない)

{%SET_U(Format,1,セル,C4-P12)}
{%SET_U(Format,1,フォーマット,0)}

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,Sheet1,D:\Home\ExcelDemo\Demo01\Sample.csv,Format,,Overwrite)}

例4 D:\Home\ExcelDemo\Demo01\Sample.xlsxのSheet1をCSVファイルに出力する。(出力ファイルが存在する場合は上書きする)

「C4-P12」のセル範囲のフォーマットを数字のみにする。(カンマ編集などを行わない)

「C4-P12」のセル範囲のみを出力する。

{%SET_U(Format,1,セル,C4-P12)}
{%SET_U(Format,1,フォーマット,0)}

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,Sheet1,D:\Home\ExcelDemo\Demo01\Sample.csv,Format,C4-P12,Overwrite)}

例5 D:\Home\ExcelDemo\Demo01\Sample.xlsxのSheet1をCSVファイルに出力する。(出力ファイルが存在する場合は上書きする)

「C4-P12」と「C15-P25」のセル範囲のフォーマットを数字のみにする。(カンマ編集などを行わない)

「C4-P12」と「C15-P25」のセル範囲のみを出力する。

{%SET_U(Format,1,セル,C4-P12|C15-P25)}
{%SET_U(Format,1,フォーマット,0)}

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,Sheet1,D:\Home\ExcelDemo\Demo01\Sample.csv,Format,C4-P12|C15-P25,Overwrite)}

例6 D:\Home\ExcelDemo\Demo01\Sample.xlsxのSheet1をCSVファイルに出力する。(出力ファイルが存在する場合は上書きする)

「A」と「C-F」のセル範囲のみを出力する。

#CSVファイル出力
{%EXCEL_SAVE_CSV(D:\Home\ExcelDemo\Demo01\Sample.xlsx,Sheet1,D:\Home\ExcelDemo\Demo01\Sample.csv,,A&C-F;,Overwrite)}
Excelブックオープン

FORMAT1 {%EXCEL_OPEN_BOOK(Excelファイル名)}

引き数で指定されたExcelファイルをオープンします。ファイルが存在しない場合はエラーとなります。

オープンに成功した場合は識別キー、失敗した場合はエラーになります。

オープンに成功した場合は識別キーがメモリに記憶されます。以後、識別キーが省略された場合はメモリに記憶している識別キーを参照します。

メモリに記憶している識別キーは設定の実行が終わるまで保持しています。また、別のファイルをオープンすると上書きされます。

ファイルが使用中など、ファイルをオープンできなかった場合はエラーが発生します。

例1 D:\Home\ExcelDemo\Demo01\Sample.xlsxをオープンする。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#クローズ
{%EXCEL_CLOSE_BOOK()}

例2 識別キーを使用する場合(同時に複数のファイルを扱う場合はこちらを使ってください。)

#Excelファイルをオープン
{%SET_U(Excel,Handle1,{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample1.xlsx)})}
{%SET_U(Excel,Handle2,{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample2.xlsx)})}

#Sample1.xlsxから作成日(J1)、担当者(J2)を取得
{%EXCEL_GET_CELL_VALUES(#Key,{%GET_U(Excel,Handle1)},Sheet1,J1|J2,,ExcelData)}

#Sample2.xlsxから作成日(J1)、担当者(J2)を取得
{%EXCEL_GET_CELL_VALUES(#Key,{%GET_U(Excel,Handle2)},Sheet1,J1|J2,,ExcelData)}

#クローズ
{%EXCEL_CLOSE_BOOK({%GET_U(Excel,Handle1)})}
{%EXCEL_CLOSE_BOOK({%GET_U(Excel,Handle2)})}
Excelブッククローズ

FORMAT1 {%EXCEL_CLOSE_BOOK([識別キー])}

引き数に渡されたハンドルのExcelファイルをクローズします。

引き数が省略された場合はメモリに記憶されている識別キーを参照して対象ファイルをクローズします。

オープンされているExcelファイルがない場合に呼び出してもエラーにならず、何も行いません。

ファイルをクローズする時にシートがひとつもない場合は「Sheet1」という名前でシートを自動作成してクローズします。

シート名取得

FORMAT1 {%EXCEL_GET_ALL_SHEET_NAMES(取得値格納用ユーザーデータ名)}

FORMAT2 {%EXCEL_GET_ALL_SHEET_NAMES(#Key,識別キー,取得値格納用ユーザーデータ名)}

オープン中のExcelファイルのすべてのシート名を取得します。

オープンされているExcelファイルがない場合に呼び出すとエラーが発生します。

例1 D:\Home\ExcelDemo\Demo01\Sample.xlsxのすべてのシートを取得してログに出力する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#シート名取得
{%EXCEL_GET_ALL_SHEET_NAMES(シート一覧)}

{%LOOP L1 {%GET_USER_DATA_COUNT(シート一覧)}(
  {%WRITE_LOG({%GET_U(シート一覧,[L_IDX(L1)])})}  
)}

#クローズ
{%EXCEL_CLOSE_BOOK()}
アクティブシート変更

FORMAT1 {%EXCEL_SET_ACTIVE_SHEET(シート名)}

FORMAT2 {%EXCEL_SET_ACTIVE_SHEET(#Key,識別キー,シート名)}

オープン中のExcelファイルのアクティブシートを変更します。

オープンされているExcelファイルがない場合に呼び出すとエラーが発生します。

例1 D:\Home\ExcelDemo\Demo01\Sample.xlsxのアクティブシートを「Sheet2」に変更する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#アクティブシート変更
{%EXCEL_SET_ACTIVE_SHEET(Sheet2)}

#クローズ
{%EXCEL_CLOSE_BOOK()}
空行検索

FORMAT1 {%EXCEL_FIND_FIRST_EMPTY_ROW(シート名,列,[開始行])}

FORMAT2 {%EXCEL_FIND_FIRST_EMPTY_ROW(#Key,識別キー,シート名,列,[開始行])}

指定した列を下方向に参照して空のセルを見つけて、その行番号を返します。開始行を指定した場合は指定した開始行から検索を行います。

複数の列を指定した場合は指定した列がすべて空の行番号を返却します。

列の指定例

#A列のみ
{%EXCEL_FIND_FIRST_EMPTY_ROW(Sheet1,A)}

#A~C列ですべて空白の行を検索
{%EXCEL_FIND_FIRST_EMPTY_ROW(Sheet1,A-C)}

#AとF列ですべて空白の行を検索。3行目以降を検索する。 
{%EXCEL_FIND_FIRST_EMPTY_ROW(Sheet1,A|F,3)}

例1 Sample.xlsxのSheet1のJ列から空のセルを見つけて直前までの合計式を設定する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#空のセルを見つけて合計式を設定する
{%SET_U(属性,合計行,{%EXCEL_FIND_FIRST_EMPTY_ROW(Sheet1,J)})}

{%EXCEL_SET_CELL_FORMULAS(Sheet1,J{%GET_U(属性,合計行)},=SUM(J2:J{%CALC({%GET_U(属性,合計行)}-1)}))}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セル値取得

FORMAT1 {%EXCEL_GET_CELL_VALUES(シート名,セル,[空文字の扱い(そのまま|左詰め)],取得値格納用ユーザーデータ名,[フォーマットリストユーザーデータ名])}

FORMAT2 {%EXCEL_GET_CELL_VALUES(#Key,識別キー,シート名,セル,[空文字の扱い(そのまま|左詰め)],取得値格納用ユーザーデータ名,[フォーマットリストユーザーデータ名])}

セルの値を取得します。

引き数で指定されたセルの指定によって、セル値が格納されるユーザーデータの構造が変わります。

空文字の扱いは、「そのまま」または、空文字列を指定すると、シートのセル範囲のセル値をそのまま取得します。「左詰め」を指定すると、シートから取得したセル値が空文字列だった時に左方向に詰めるような動きとなります。

取得値格納用ユーザーデータ名「ExcelData」(以後同じ)、セルに「A1」を指定した場合、以下のマクロで取得できます。

{%GET_U(ExcelData,1,1)} -> A1

セルに「A1-B2」を指定した場合、以下のマクロで取得できます。(ExcelData,縦方向セル番号,横方向セル番号)

セルを表す「B1」等は、列、行の順になっていますが、ユーザーデータでは、行、列の順に記述します。逆になっているので注意してください。

{%GET_U(ExcelData,1,1)} -> A1
{%GET_U(ExcelData,1,2)} -> B1
{%GET_U(ExcelData,2,1)} -> A2
{%GET_U(ExcelData,2,2)} -> B2

セルに「A1|B3」を指定した場合、以下のマクロで取得できます。(ExcelData,縦方向セル番号,横方向セル番号)

{%GET_U(ExcelData,1,1)} -> A1
{%GET_U(ExcelData,2,1)} -> B3

セルに「A1-B2|B3-C4」を指定した場合、以下のマクロで取得できます。(ExcelData,縦方向セル番号,横方向セル番号)

{%GET_U(ExcelData,1,1)} -> A1
{%GET_U(ExcelData,1,2)} -> B1
{%GET_U(ExcelData,2,1)} -> A2
{%GET_U(ExcelData,2,2)} -> B2
{%GET_U(ExcelData,3,1)} -> B3
{%GET_U(ExcelData,3,2)} -> C3
{%GET_U(ExcelData,4,1)} -> B4
{%GET_U(ExcelData,4,2)} -> C4

セルに「A1&B3」を指定した場合、以下のマクロで取得できます。(ExcelData,縦方向セル番号,横方向セル番号)

{%GET_U(ExcelData,1,1)} -> A1
{%GET_U(ExcelData,1,2)} -> B3

セルに「A1-B2&E1-F2」を指定した場合、以下のマクロで取得できます。(ExcelData,縦方向セル番号,横方向セル番号)

{%GET_U(ExcelData,1,1)} -> A1
{%GET_U(ExcelData,1,2)} -> B1
{%GET_U(ExcelData,1,3)} -> E1
{%GET_U(ExcelData,1,4)} -> F1
{%GET_U(ExcelData,2,1)} -> A2
{%GET_U(ExcelData,2,2)} -> B2
{%GET_U(ExcelData,2,3)} -> E2
{%GET_U(ExcelData,2,4)} -> F2

シートに[AllSheets]や複数シートを指定した場合は、シート名の階層が加わります。シートに「Sheet1/Sheet2」セルに「A1-B2」を指定した場合、以下のマクロで取得できます。(ExcelData,シート名,縦方向セル番号,横方向セル番号)

{%GET_U(ExcelData,Sheet1,1,1)} -> A1
{%GET_U(ExcelData,Sheet1,1,2)} -> B1
{%GET_U(ExcelData,Sheet1,2,1)} -> A2
{%GET_U(ExcelData,Sheet1,2,2)} -> B2
{%GET_U(ExcelData,Sheet2,1,1)} -> A1
{%GET_U(ExcelData,Sheet2,1,2)} -> B1
{%GET_U(ExcelData,Sheet2,2,1)} -> A2
{%GET_U(ExcelData,Sheet2,2,2)} -> B2

取得値格納用ユーザーデータはクリア処理を行ってから格納されます。

フォーマットユーザーデータ名には、特定のセルを指定したフォーマットで取得するための情報をセットしたユーザーデータの名前を指定します。

フォーマットユーザーデータは、「セル」と「フォーマット」をキーにしたデータを複数渡すことができます。ここで指定する「セル」には セル拡張書式 も使用できます。

ここで指定するフォーマットの書式は .NET FrameworkのString.Formatの書式(:以降の書式) の書式を使用します。Excelの書式ではありませんので注意してください。

Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#A2から下方向のセル全てをyyyy/MM/ddでフォーマットする
{%SET_U(Format,1,セル,A2-A)}
{%SET_U(Format,1,フォーマット,yyyy/MM/dd)}

#F2から下方向のセル全てを5桁0埋めでフォーマットする
{%SET_U(Format,2,セル,F2-F)}
{%SET_U(Format,2,フォーマット,00000)}

#A1からG20を取得
{%EXCEL_GET_CELL_VALUES(Sheet1,A1-G20,,ExcelData,Format)}

#CSVファイルに出力
{%WRITE_CSV_FILE(D:\Home\ExcelDemo\Demo01\Sample.csv,ExcelData,SJIS)}

#クローズ
{%EXCEL_CLOSE_BOOK()}

指定されたシートが見つからない場合はエラーとなります。

例1 Sample.xlsxのSheet1からJ1セル(作成日)、J2セル(担当者)を取得してユーザーデータにセットする。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#作成日(J1)、担当者(J2)を取得
{%EXCEL_GET_CELL_VALUES(Sheet1,J1|J2,,ExcelData)}

{%SET_U(属性,作成日,{%GET_U(ExcelData,1,1)})}
{%SET_U(属性,担当者,{%GET_U(ExcelData,2,1)})}

#クローズ
{%EXCEL_CLOSE_BOOK()}

例2 Sample.xlsxのSheet1からA1からG20までの範囲を取得してCSVファイルに出力する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#A1からG20を取得
{%EXCEL_GET_CELL_VALUES(Sheet1,A1-G20,,ExcelData)}

#CSVファイルに出力
{%WRITE_CSV_FILE(D:\Home\ExcelDemo\Demo01\Sample.csv,ExcelData,SJIS)}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セル値設定

FORMAT1 {%EXCEL_SET_CELL_VALUES(シート名,セル,設定値)}

FORMAT2 {%EXCEL_SET_CELL_VALUES(#Key,識別キー,シート名,セル,設定値)}

指定したセルに値を設定します。

セル範囲や複数のセルを指定した場合は、指定したすべてのセルに値を設定します。

xlsファイルには対応しておりません。

例1 Sample.xlsxのSheet1のJ2セルに「伊藤博文」を設定する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#担当者(J2)に「伊藤博文」を設定する
{%EXCEL_SET_CELL_VALUES(Sheet1,J2,伊藤博文)}

#クローズ
{%EXCEL_CLOSE_BOOK()}

例2 Sample.xlsxのSheet1のC5とC6セルに「0」を設定する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#C5とC6セルに「0」を設定する
{%EXCEL_SET_CELL_VALUES(Sheet1,C5|C6,0)}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セル値設定(ユーザーデータから設定)

FORMAT1 {%EXCEL_SET_CELL_VALUES_UD(シート名,セル,設定値が格納されたユーザーデータ名)}

FORMAT2 {%EXCEL_SET_CELL_VALUES_UD(#Key,識別キー,シート名,セル,設定値が格納されたユーザーデータ名)}

指定したセルに値を設定します。設定値はユーザーデータに格納された値を参照します。

ユーザーデータの設定値の格納ルールはセル値取得マクロと同じルールとしますが、セル範囲は左上のセルだけを指定することもできます。

指定したセル範囲とユーザーデータの構造が一致しない場合は設定可能な部分のみをセットします。

取得値格納用ユーザーデータ名「ExcelData」(以後同じ)を使用して、A1セルに「2024/12/01」を設定する場合、以下のマクロで設定できます。

{%SET_U(ExcelData,1,1,2024/12/01)}
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1,ExcelData)}

セルに「A1-B2」を指定した場合、以下のマクロで設定できます。

{%SET_U(ExcelData,1,1,商品コード)} <- A1用
{%SET_U(ExcelData,1,2,品名)} <- B1用
{%SET_U(ExcelData,2,1,S001)} <- A2用
{%SET_U(ExcelData,2,2,消しゴム)} <- B2用

{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1-B2,ExcelData)}

#以下のように左上のセルだけを指定することも可能
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1,ExcelData)}

用意したユーザーデータとセットするセルの構造が違う場合は設定可能な部分のみをセットします。

#B2用のユーザーデータが足らない
┏━┳━┓
┃*┃*┃
┣━╋━┫
┃*┃ ┃
┗━┻━┛
{%SET_U(ExcelData,1,1,商品コード)} <- A1用
{%SET_U(ExcelData,1,2,品名)} <- B1用
{%SET_U(ExcelData,2,1,S001)} <- A2用
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1-B2,ExcelData)}
↓★結果
A2まで書き込まれる
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1,ExcelData)}
-------------------------------------------------------------------------
#C2用のユーザーデータがはみ出してる
┏━┳━┓
┃*┃*┃
┣━╋━┫
┃*┃*┃*
┗━┻━┛
{%SET_U(ExcelData,1,1,商品コード)} <- A1用
{%SET_U(ExcelData,1,2,品名)} <- B1用
{%SET_U(ExcelData,2,1,S001)} <- A2用
{%SET_U(ExcelData,2,2,消しゴム)} <- B2用
{%SET_U(ExcelData,2,3,200)} <- C2用
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1-B2,ExcelData)}
↓★結果
C2は書き込まれない
#A1と指定するとC2も書き込まれる
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1,ExcelData)}
-------------------------------------------------------------------------
#3行目用のユーザーデータがはみ出してる
┏━┳━┓
┃*┃*┃
┣━╋━┫
┃*┃*┃
┗━┻━┛
 * *
{%SET_U(ExcelData,1,1,商品コード)} <- A1用
{%SET_U(ExcelData,1,2,品名)} <- B1用
{%SET_U(ExcelData,2,1,S001)} <- A2用
{%SET_U(ExcelData,2,2,消しゴム)} <- B2用
{%SET_U(ExcelData,3,1,S001)} <- A3用
{%SET_U(ExcelData,3,2,消しゴム)} <- B3用
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1-B2,ExcelData)}
↓★結果
A3,B3は書き込まれない
#A1と指定するとA3,B3も書き込まれる
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1,ExcelData)}
-------------------------------------------------------------------------
{%SET_U(ExcelData,1,商品コード)} <- A1用
{%SET_U(ExcelData,2,品名)} <- B1用
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1-B1,ExcelData)}
↓★結果
何も書き込まれない。キーの指定(階層)が1つ少ない。

セルに「A1|B3」を指定した場合、以下のマクロで設定できます。

{%SET_U(ExcelData,1,1,1,2024/12/01)} <- A1用
{%SET_U(ExcelData,2,1,1,山本)} <- B3用

{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1|B3,ExcelData)}
#ユーザーデータのデータが1つが少ない。
{%GET_U(ExcelData,1,1,1,2024/12/01)} <- A1用
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1|B3,ExcelData)}
↓★結果
B3は書き込まれない。
-------------------------------------------------------------------------
{%GET_U(ExcelData,1,1,2024/12/01)} <- A1用
{%GET_U(ExcelData,2,1,山本)} <- B3用
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1|B3,ExcelData)}
↓★結果
何も書き込まれない。キーの指定(階層)が1つ少ない。

セルに「A1-B2|B3-C4」を指定した場合、以下のマクロで設定できます。

{%SET_U(ExcelData,1,1,1,品名)} <- A1
{%SET_U(ExcelData,1,1,2,金額)} <- B1
{%SET_U(ExcelData,1,2,1,消しゴム)} <- A2
{%SET_U(ExcelData,1,2,2,200)} <- B2
{%SET_U(ExcelData,2,1,1,部署)} <- B3
{%SET_U(ExcelData,2,1,2,担当者名)} <- C3
{%SET_U(ExcelData,2,2,1,営業1課)} <- B4
{%SET_U(ExcelData,2,2,2,西田)} <- C4
{%EXCEL_SET_CELL_VALUES_UD(Sheet1,A1-B2|B3-C4,ExcelData)}

xlsファイルには対応しておりません。

セル寄せ方向取得

FORMAT1 {%EXCEL_GET_CELL_ALIGNMENTS(シート名,セル,[空文字の扱い(そのまま|左詰め)],取得値格納用ユーザーデータ名)}

FORMAT2 {%EXCEL_GET_CELL_ALIGNMENTS(#Key,識別キー,シート名,セル,[空文字の扱い(そのまま|左詰め)],取得値格納用ユーザーデータ名)}

セルの寄せ方向を取得します。

セル取得 と同じ仕様でセル寄せ方向を取得します。

セル寄せ方向は「垂直方向(上|中央|下|なし) 水平方向(左|中央|右|なし)」のフォーマットで取得できます。

例えば、上下中央、右寄せの場合は、「垂直方向(中央) 水平方向(右)」の文字列が取得できます。

xlsファイルには対応しておりません。

例1 Sample.xlsxのSheet1からJ11セル(合計値)の寄せ方向を取得してユーザーデータにセットする。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#合計(J11)の寄せ方向取得
{%EXCEL_GET_CELL_ALIGNMENTS(Sheet1,J11,,ExcelData)}

{%SET_U(属性,合計の寄せ方向,{%GET_U(ExcelData,1,1)})}

{%WRITE_LOG({%GET_U(属性,合計の寄せ方向)})}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セルの寄せ方向設定

FORMAT1 {%EXCEL_SET_CELL_ALIGNMENTS(シート名,セル,寄せ方向)}

FORMAT2 {%EXCEL_SET_CELL_ALIGNMENTS(#Key,識別キー,シート名,セル,寄せ方向)}

セルの寄せ方向を設定します。

セル範囲や複数のセルを指定した場合は、指定したすべてのセルに寄せ方向を設定します。

セル寄せ方向は「垂直方向(上|中央|下|なし) 水平方向(左|中央|右|なし)」のフォーマットで設定できます。

例えば、上下中央、右寄せの場合は、「垂直方向(中央) 水平方向(右)」を設定します。

「なし」を指定すると寄せ方向が設定されていない状態になります。また、垂直方向だけ、水平方向だけを設定したい場合は、「垂直方向(中央)」や「水平方向(右)」のみを指定することができます。

xlsファイルには対応しておりません。

例1 Sample.xlsxのSheet1のJ11に「垂直方向(中央) 水平方向(右)」を設定する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#合計(J11)を上下中央寄せ、右寄せに設定する
{%EXCEL_SET_CELL_ALIGNMENTS(Sheet1,J11,垂直方向(中央) 水平方向(右))}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セルの寄せ方向設定(ユーザーデータから設定)

FORMAT1 {%EXCEL_SET_CELL_ALIGNMENTS_UD(シート名,セル,設定式が格納されたユーザーデータ名)}

FORMAT2 {%EXCEL_SET_CELL_ALIGNMENTS_UD(#Key,識別キー,シート名,セル,設定式が格納されたユーザーデータ名)}

セルの寄せ方向を設定します。設定する寄せ方向はユーザーデータに格納された寄せ方向を参照します。

セル値設定(ユーザーデータから設定) と同じ仕様でセルの寄せ方向を設定します。

セルに「J11-K11」を指定した場合、以下のマクロで設定できます。

{%SET_U(ExcelAlignment,1,1,垂直方向(中央) 水平(右))} <- J11用
{%SET_U(ExcelAlignment,1,2,垂直方向(中央) 水平(右))} <- K11用

{%EXCEL_SET_CELL_ALIGNMENTS_UD(Sheet1,J11-K11,ExcelAlignment)}

#以下のように左上のセルだけを指定することも可能
{%EXCEL_SET_CELL_ALIGNMENTS_UD(Sheet1,J11,ExcelAlignment)}

xlsファイルには対応しておりません。

セル式取得

FORMAT1 {%EXCEL_GET_CELL_FORMULAS(シート名,セル,[空文字の扱い(そのまま|左詰め)],取得値格納用ユーザーデータ名)}

FORMAT2 {%EXCEL_GET_CELL_FORMULAS(#Key,識別キー,シート名,セル,[空文字の扱い(そのまま|左詰め)],取得値格納用ユーザーデータ名)}

セルの式を取得します。

セル取得 と同じ仕様でセル式を取得します。

セル式は「SUM(J2:J10)」のようなExcelのセル式が取得できます。

xlsファイルには対応しておりません。

例1 Sample.xlsxのSheet1からJ11セル(合計値)の式を取得してユーザーデータにセットする。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#合計(J11)の式を取得
{%EXCEL_GET_CELL_FORMULAS(Sheet1,J11,,ExcelData)}

{%SET_U(属性,合計の式,{%GET_U(ExcelData,1,1)})}

{%WRITE_LOG({%GET_U(属性,合計の式)})}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セル式設定

FORMAT1 {%EXCEL_SET_CELL_FORMULAS(シート名,セル,式)}

FORMAT2 {%EXCEL_SET_CELL_FORMULAS(#Key,識別キー,シート名,セル,式)}

セルの式を設定します。

セル範囲や複数のセルを指定した場合は、指定したすべてのセルに式を設定します。

セル式は「SUM(J2:J10)」のようなExcelのセル式を設定できます。

xlsファイルには対応しておりません。

例1 Sample.xlsxのSheet1のJ11セルに「=SUM(J2:J10)」を設定する。

#Excelファイルをオープン
{%EXCEL_OPEN_BOOK(D:\Home\ExcelDemo\Demo01\Sample.xlsx)}

#合計(J11)に「=SUM(J2:J10)」を設定する
{%EXCEL_SET_CELL_FORMULAS(Sheet1,J11,=SUM(J2:J10))}

#クローズ
{%EXCEL_CLOSE_BOOK()}
セル式設定(ユーザーデータから設定)

FORMAT1 {%EXCEL_SET_CELL_FORMULAS_UD(シート名,セル,設定式が格納されたユーザーデータ名)}

FORMAT2 {%EXCEL_SET_CELL_FORMULAS_UD(#Key,識別キー,シート名,セル,設定式が格納されたユーザーデータ名)}

セルの式を設定します。設定する式はユーザーデータに格納された式を参照します。

セル値設定(ユーザーデータから設定) と同じ仕様でセル式を設定します。

セルに「J11-K11」を指定した場合、以下のマクロで設定できます。

{%SET_U(ExcelFormula,1,1,=SUM(J2:J10))} <- J11用
{%SET_U(ExcelFormula,1,2,=SUM(K2:K10))} <- K11用

{%EXCEL_SET_CELL_FORMULAS_UD(Sheet1,J11-K11,ExcelFormula)}

#以下のように左上のセルだけを指定することも可能
{%EXCEL_SET_CELL_FORMULAS_UD(Sheet1,J11,ExcelFormula)}

xlsファイルには対応しておりません。