タグ差込と;htmltag識別子

 XCuteでは、ExcelのHTML変換を利用していますが、限界があります。例えば、ExcelのVBAのボタンはブラウザでは機能しません。
Excelが作成したHTMLファイルにフォームやボタンなどの機能を追加するのが「タグ差込」なのです。「タグ差込」を行うには、ひな型の印刷範囲の右上に;htmltagという識別子を明示する必要があります。
Excelはセルの集まりで、HTMLタグに変換されると、<body>タグの直後に<table>タグがおかれ、印刷範囲は1つのテーブルになります。
 タグを何処に差し込むかは、重要な問題です。タグの差込位置の列方向位置を明示するためにも;htmltagが利用されます。
;htmltagは、このシートはタグ差込が行われることを宣言するもので、印刷範囲(HTML変換範囲)の右上に指定します。

;htmltagとタグ差込の位置関係
 ;htmltag
の右下に、差込タグは記述しますが、つぎのルールで差し込み位置が決まります。
・差し込みタグが印刷範囲の上の時は、<body>タグと<table>タグの間
・差し込みタグが印刷範囲の下の時は、</table>タグと</body>タグの間
・差し込みタグが印刷範囲の間の時は、同じ行で列方向は;htmltagからのオフセット位置のセル
 (例えば、印刷範囲の右から2列目にタグ差込を行うなら、;htmltagの列から2列目にタグを記述します)

タグ差込位置の例を示します。

Name=Valueを;で区切ってNameに複数指定
 HTMLに指定した1つのInputタグからは、Name=Valueの値が1つXCuteに返されます。これでは、不便な場合もあります。
XCuteでは、InputタグのValueは無視し、NameName=Value;Name=Value;のようにName=Valueをセミコロンで区切り複数指定できるように拡張されています。最後のセミコロンは省略できないので注意してください。

<Input Type='submit' Name='Next=20,10;WriteReport=Meibo;' Value='表示'>
上記の指定では、Next=20,10とWriteReport=Meibo の2つのName=ValueをXCuteが受け取ります。ただし、Valueの値に =; を含む場合は誤動作しますのでこの指定は使えません。
参照
 ○
SubmitボタンのNameにコマンドを設定

連結されたセルにはタグ差込は行えない
 Excelでセルを連結した場合、連結されたセル(先頭を除いた右下のセル)には、タグ差込は行えません。また、後述する入力規則も設定してはいけません。

タグ差込と特殊文字列処理
 HTMLタグは、<,>,&,"らの特殊文字を区切り文字として使用します。これらの特殊文字を、データとしてブラウザに表示させるには、それぞれ、&lt;,&gt;,&amp;,&quot;に変換することがセキュリティ上必要です。この変換処理は、入力規則でタグを生成させる場合を含め、内部的に実行されます。すなわち、セキュリティの安全は確保されます。
しかし、開発者がタグを直接記述し、タグ差込を使ってタグを差し込んだ場合には、この特殊文字列処理は内部的に行われません。開発者の責任でセキュリティを確保してください。
これらの特殊文字の処理を簡易に避ける手段も用意されています。それには、NoSetCharを使います。また、本格的に無害化(サニタイジング)するなら、XCuteで起動したExcelからは、ProLesWeb.xls!Sanitizing なるユーザ定義関数を使います。
参照
 ○
入力規則によるフォーム要素の作成
 ○NoSetCharスイッチ


タグ差込の実例
 メニューの例で、タグ差込の実例を示します。両方とも名簿画面を表示するものですが、リンクの例では、Name=Value&で区切って繋げられています。<Formの例では、Hiddenが多く長文になっています。


なお、Name=Value;で区切りNameに複数指定するXC
uteの拡張機能を使うと、つぎのように簡潔に記述できます。

<Form Method='Post' Action='procgi.exe'><Input Type='Submit' Name='P=SampleApp;WriteReport=MeiboSearch;Next=1,20;Set_R4C1=123456789;' Value='名簿データへ'></Form>

入力規則を無視(;htmltag_novalidと|NoValid)
 入力規則を設定したひな型シートのブラウザへの表示で、最初からあるいは途中の行から入力規則のタグ変換を止めたい場合もあります。;htmltag_novalid を使うとValidation(入力規則)はその行以降から無視せよと解釈され、この行以降では入力規則は評価されません。印刷範囲の右側に設定されたタグについては、印刷範囲の上下を含めてタグ差込は有効に機能します。
 ;htmltag_novalid は、;htmltagと同じ列に指定して使います。
 |NoValidは、個々の入力規則を無視する時に使い、右側のタグ差込エリアに指定します。|NoValidは 属性差し込みの一種です。

便利なXCuteナビ機能
 ;htmltagや、<form>タグなど、formを作る際に必要なこれらの指示子、タグは、XCuteナビ機能から挿入することができます。
 作成する画面の印刷範囲内で右クリック、メニューより、「XCuteナビゲーション->ひな型ナビ」を選択します。
 以下のようなダイアログが表示されますので、「OK」を選択。適切な位置に;htmltagが設定されます。



 さらにもう一度、「XCuteナビゲーション->ひな型ナビ」を選択を選択すると、以下のようなダイアログが表示されます。



 「OK」をクリックしていくと、<form>タグが適切に設定されます。

参照
 ○
WEB機能について
 ○入力フォームの仕組みについて
 ○入力エリアの属性差込
 ○入力規則によるフォーム要素の作成