• ベストアンサー

excelのindex関数

中学校の卒業生に、小中学校を通してどれだけ身長などが成長したかを一覧にしたプリントを渡すための準備をしています。 sheet1に3年生全員の名前、身長体重の遍歴を打ち込み、 index関数を用いて欄外の小さな表に通し番号を 入力すればその通し番号の生徒のデータが一覧で出るようにしました。 sheet2にその小さな表のデータが反映するように して、飾りなどを付け、生徒に渡す分にしたいのですが、sheet2のデータを全生徒分、 一括で印刷することはできないでしょうか? また、もっとわかりやすい方法があれば、ご教授 いただければと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

指定した生徒通番が印刷できるようマクロを作ってみました。 話を簡単にするため、「sheet1の欄外の通し番号を入力するセル」に"SeitoNo"(半角です)の名前を付けてください。 1.VBA画面で標準モジュールを挿入し、 2.下記のコードを貼り付けます。 3.シート2からマクロinsatuを実行します。 印刷したい通番を自動セットして印刷(プレビュー)しています。 今は1から3番が画面表示されます。 startNo、endNoを印刷したい通番に変えてください。 PrintPreviewをPrintOutに変えればプリンタ出力されます。 家の子も卒業式でした・・・・ Option Explicit Public Sub insatu() Dim p As Integer 'カウンタ Dim startNo As Integer '印刷する生徒通番の最初 Dim endNo As Integer '印刷する生徒通番の最後 startNo = 1 endNo = 3 For p = startNo To endNo Range("SeitoNo") = p Worksheets("Sheet2").PrintPreview Next End Sub

rt-fonce
質問者

お礼

丁寧なご回答を頂き、ありがとうございました。 VBAはじつは初めてで、成功するのに 少し時間がかかりましたが、おかげさまで 卒業式に間に合いました。 お子さまのご卒業、おめでとうございます。