次のページへワークシートの構造をそのまま利用する最も簡単なのは、ワークシートから生成したページの構造をそのままテーブルに落とし込んで、Webアプリ化する方法だ。簡単だし、多くの場合はこれで済ませて問題はないかもしれない。これにはリボンの[作成]タブにある[ページからテーブルの生成]ボタンを利用する(これについては前回説明した)。その前にテーブルのフィールドとなる部分をページ上で特定のセル型に指定してやる必要があるのだ。ここでイヤな予感がした人は正解だ(後述)。以下に作業途中のForguncyの作業スペースを示す。これは[日付]カラムのセル型を「日付」型に変更したところだ。全てのセルのセル型を手作業で指定するのは煩雑なので、先頭行のセルのセル型を指定したら、フィルハンドル(=選択範囲を示すカーソル枠の右下に表示される小さな正方形型の取っ手)を活用したい。先頭行のセルのセル型を指定する▼フィルハンドルを必要な部分までドラッグ▼[日付]カラムのセル型が全て「日付」に設定された作業中の画面また、セル型を指定すると書式設定がキャンセルされてしまうので、同時にセルの書式設定も行っていくのがよい。これにはリボンの[ホーム]タブにある[書式のコピー/貼り付け]ボタンが利用できる。上でセル型を変更した[日付]カラムに対して[単価]カラムから書式をコピー&ペーストする手順は以下のようになる([内容]カラムはセル結合をしているため、うまく書式のコピー&ペーストが行えない。これは[内容]カラムがコピー元となる場合も、ペースト先となる場合も同様だ)。書式がペーストされた書式のコピー&ペーストセル型の指定はこのようにフィルハンドルを使えば簡単だ。[日付]カラムを「日付」型に、[内容]カラムを「テキストボックス」型に、[単価]カラムと[数量]カラムを「数値」型に指定し、実行すると、以下のような画面になる([内容]カラムの書式は上述の通り、手作業で指定している)。入力するセルについてもセル型を指定している。[日付]カラムでは日付ピッカーが利用でき、単価と数量を入力すると、請求金額が計算され、右下にはその合計が表示されているのが分かる。前準備は取りあえずここまでだ。これでそれなりに動くようにはなったが、テーブルを利用して、これをデータとして保存したり、後から参照したりできるようにはなっていない。リボンの[作成]タブにある[ページからテーブルの生成]ボタンの出番がここだ。[ページからテーブルの生成]ボタンをクリックして、[ページからテーブルの生成]ダイアログの最初の画面ではテーブル名に「請求書明細」を指定し、一覧/詳細/登録/編集の各ページは自動的に生成することにして、[次へ]ボタンをクリックする。これにより、以下のような画面が表示される。頑張ってフィールド名を指定する▼よく頑張りましたテーブルのフィールドを指定する画面フィールド名の指定で気が遠くなりそうだ。フィルハンドルを使って、ダダーッとセル型を指定した自分を怒ってやりたくなる画面が表示された。100個近いフィールドの名前を指定しなければならないのだ。この方法だと、ページの生成はお手軽だが、フィールド名の指定は非常に煩雑なものになる(1つのレコードに多くのフィールドが作成されるので、効率も悪くなりそうだ)。後述する方法とこの方法とで、お手軽さと煩雑さのバランスをどう取るかは、作成するアプリ次第といえるだろう。入力項目が少なければ、ここで紹介している方法で十分だし、そうでなければ自分でテーブルをある程度設計して、ワークシートから生成したページとのすりあわせを行っていくことになると思われる。フィールド名を指定して、[完了]ボタンをクリックすると、テーブルとページが生成される。作成されたテーブルと一覧ページワークシートから生成されたページの構造をそのまま流用したため、このテーブルは1レコードが100個近いフィールドを持つことになる。この結果、デフォルトで生成される一覧ページは横に非常に長いものになる。サイズを変更したり、表示するフィールドを取捨選択して見やすいものにしたりする必要があるだろう。請求書番号/会社名/部門名/担当者名だけを表示するように変更し、実行した画面を以下に示す。中段の画像を見れば分かるように、Excelで作成したフォームが入力ページとしてそのままの形で活用されている。これはやはりテーブルの構造に問題があるからと思われる。請求書の全てのフィールドにデータが入力されるのならともかく、そうではないので無駄も多い。そこで次ページではテーブルの設計を別なものにしてみよう(ただし、Excel資産の活用という観点からはちょっと外れたものになる)。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。