Excelを使ってSheet間の参照で作って便利なものは色々あります。あるBookではひとつのSheetをもとに多くのSheetを使って名簿(通常用、受付用、集計用)、胸につける名札、卓上に立てるネームプレート、封筒の宛名などを作っています。
一番簡単な使い方というと、1件1行ずつ入っている名簿を、1件につき2行使うように編集するなど。
では作り方を説明します。
(1)データを並べる順番を知るための準備
まずはひとつのシートに、できあがりのフォームのデータ1件でできる分を編集します。支払調書の場合フォーム1枚分です。とりあえずここで必要なのはセル配置の順番ですから、完璧に編集する必要はありません。位置がきちんと合ってさえいればいいです。このシートは最後に削除します。
参照するデータが入るセルには項目名を入れ、色を着けておきます。タイトルや見出しなど固定した内容には参照データとは違う色を。また、最後のセルにも特有の色をつけておくといいです。
使用するのがx列y行とわかったところで、このデータ1件分を横に長く1行(x*y)列に並べ替えます。並べ替え前に、セルの結合があれば解除しておくのをお忘れなく。これで参照先データを並べる順番がわかりました。
(2)参照先シートの作成
ひとつのセルに"="を入れ、参照元のセルをクリック、エンター。これを内容全体分コピーして参照元をまるごと、或は必要分表示させます。そして使わない分を消します。それから(1)で出した順番の通りに全体の列を手作業で並べ替えます。使用する列の数はx*yです。多分空白の列も幾つかあることでしょう。
参照元のデータの場所には仮に内容を入れておくと出来上がりを確認しやすいです。例えば、氏名1~氏名N、住所1~住所Nというように。
(3)並べ替え
列を整えた参照先シートの内容を「「
セル並べ替えマクロ」を使って目的のフォームになるように並べ替えます。操作前の行数はデータ件数、列数は(x*y)。操作後の行数は(データ件数*y)、列数はx。
(4)編集
フォーム1枚分或は名簿みたいなのなら1明細分を編集します。
参照元に内容が入ってない場合は参照先に"0"が表示されます。これを防ぐには参照元にスペースを1桁でも入れておくか、編集の最初に全部のセルの書式設定をユーザー設定にして"#"を入れておくといいです。
編集が済んだ分をコピー、全体に書式のみのペーストをして出来上がり。
出来上がったものは、内容に間違いがないのを確認して使ってください。
ちょっと手が当たっていつどこを壊してしまうかわかりませんから、要注意です。参照先は入力できないようにロックしておけますけど。
ついでに…
セルに内容が入ってない時に"0"を表示したい時、例えば値が"1"の時に、"001"と表示したいならばセルの書式設定のユーザー設定で"000"に設定するのです。また、ユーザー設定は印刷してある枠に数字をおさめるテクニックのひとつです。数字の間に隙間を作りたいならスペースを入れて"# # #"、"0 0 0"、"# # 0"などできます。支払調書みたいに3桁毎に線が引いてある場合"### ### ###"こういうふうにするといいです。
私は、支払調書の金額は3桁ごとにセルを変えて、使わない桁を切り捨てた数字を表示しようかなんて思っていたのですが、セルの枠の点線があまりに太いので、金額は1つのセルで表示して上から画像としての点線を貼り付けることにしました。