プロが教えるわが家の防犯対策術!

一行に1レコードのデータが入った100行くらいのエクセルの表があります。(これはアンケート結果の表です。)1レコードには数10個のフィールド(アンケートの質問番号Q1~Q.XXに対する回答)があり、右に送っていかなければ、最後まで見えません。またフィールドによっては比較的長い文章もあります。
そこで、カード型データベースのように、1レコードを例えば1画面に収まるように(または例えばA4サイズに印刷できるように)、レイアウトしたいのですが、どのようにすればよいでしょうか。(1画面やA4サイズは例であって、長文がある場合には、縦に長くなったり、A4が複数枚になったりするのはかまいません)

ワードの差し込み印刷でできるのかなぁと想像していますが、やったことがないので、もっといい方法があれば、または差し込み印刷でできるよ、といったアドバイスでもいいのでお願いします。

A 回答 (3件)

たとえば


Sheet1にデータがあって
別シートのA1に表示したい行番号(例えば3)を入れたとして
B2に  =INDEX(Sheet1!$1:$65536,A$1,ROW(A1))
下フィルしておくと
3行目のデータが縦に表示されますが、この様なことでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
縦にならべるのでなく、できるだけ自由なレイアウトで構成したいのです。
実例はアンケート結果なのですが、3行目のデータ一覧
------------------
| (Q1) (Q2) (Q3)
| (Q4)
| (Q5) (Q6)
|
|
| (Q7)

のようなかんじで、4行目、5行目・・・100枚目を
紙をめくるように画面で見えるか、印刷をしたいのです。

お礼日時:2008/05/24 19:28

補足を見ると判るが、シート上の表示だけか、印刷をしたいのかはっきりしない。

前半は表示、後半は印刷とテーマがわかり難い。
かく言うのも、表示だけならVBAを使わなくても関数で(下記のように)何とかできるから。
しかし全般的にはVBAが必要で、その技術が伴ってない、課題ではないかな。
>DBから
エクセルではDBは大げさです。エクセルの「表」や「リスト」と表現します。レコードも「行」です。
---
データベースのあるシート  Sheet1
1葉といっているシート   Sheet2
とする。

Sheet1の空きセルに 1セル使い、そこにデータの行番号を入れます。
そしてSheet2でシート上の配置は自由なセルに
Sheet1での列名と 内容を =INDIRECT("Sheet1!B"&(Sheet1!G1+1)) のように関数式を出したい項目数だけ入れていく。
すると
Sheet1 のデータ例が
連番氏名問1問2自動車保有
1山田はいいいえ3
2鈴木いいえいいえ1
とすると
Sheet2
(Sheet1のG1に連番1を入れると)
結果見た目(レイアウトは例示)
     B列       d列
B3とD3氏名山田

B5とD5問1はい

B7とD7問2いいえ

B9とD9自動車保有台数3
ーー
B列は値が固定なので手入力する
D3の式は =INDIRECT("Sheet1!B"&(Sheet1!G1+1))
D5の式は ==INDIRECT("Sheet1!C"&(Sheet1!G1+1))
以下同様。
ーー
G1を2に変えると
氏名鈴木

問1いいえ

問2いいえ

自動車保有台数1
に変わる。
ーー
印刷は
手作業か
VBAで無いと出来ない。関数では出来ない。
ボタンでも作ってクリックすると
Range("A1:F20".PrintOut
を実行するようにする。
==
VBAを本格的に使えば、クリックした行の明細を上記のように出したりできる。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘の通り、画面に見えたら、印刷できるだろうくらいに考えておりましたので、曖昧だったと反省します。
表示はご教示いただいた方法でできそうです。ありがとうございました。

お礼日時:2008/05/25 22:12

B2に  =INDEX(Sheet1!$1:$65536,A$1,ROW(A1))


の式を利用してみてください
3行目の
1列を表示したいセルには
=INDEX(Sheet1!$1:$65536,A$1,1)
2列目を表示したいセルに
=INDEX(Sheet1!$1:$65536,A$1,2)
3列目を評したいセルに
=INDEX(Sheet1!$1:$65536,A$1,3)
・・・・
と入れていきます。
INDEX関数のHELPを参考にしてみてください。
もしA列に管理番号などありましたら、
入力規則のリストとVLOOKUP関数も応用できます。
    • good
    • 0
この回答へのお礼

改めてありがとうございます。
ご教示の方法でできそうですね。理解できました。

お礼日時:2008/05/25 22:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!