すぐに役立つエクセルVBAマクロ集 - すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
FAQ
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile   500連発・組み方講座フォロー

Big Color Pallet

[広告]
 
Excel VBA Macro
Excel DownLoad
© 1997 - 2007
Yoshioh Nagai.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Excel VBA Macro ・ 印刷 ・ FAQ
セルで示されたシート名のシートを順に印刷するには?
Question 5304 印刷 拙著「Excel VBA そのまま使える実用マクロ 500連発」 Previous Next
詳細は こちら サンプルNo.363 ◆ 環境・・ Excel 2003 & Windows XP

このマクロが一番近いのかなと思いますが、お尋ねします。
50行の表があります。A2から順に名前を入れ、その人のデータを入れていきます。
印刷する様式は何枚かあり、その人によって入るシートが異なります。選択するシート名は順に"J1"に出てきます。
    Dim Num As Integer
    For Num = 1 To 入力されている行数
        Range("H1").Value = Num
        Sheets(Range("J1").Value).PrintOut
    Next Num
A2〜A51に入力されている行数にしたいのです。よろしくお願いします。
Answer   Copyright (C) 2007.3.28 Yoshioh Nagai
拙著 「Excel VBA そのまま使える実用マクロ 500連発」 を お求めいただき、ありがとうございます。
363番は「印刷の開始ページ・終了ページ・印刷部数を変数で指定して印刷する」と題するサンプルで、マクロコードは次のとおりです。
Sub 印刷の開始ページ終了ページ印刷部数を変数で指定して印刷する()
    開始ページ = 1
    終了ページ = 1
    印刷部数 = 1
    ActiveSheet.PrintOut From:=開始ページ, To:=終了ページ, Copies:=印刷部数
End Sub
このマクロと、あなたがお知りになりたいこととは、それほど近いように思えませんが、一応、お答えします。

ご質問文から右図のように、ワークシートを再現してみました。
・赤色のH1セル … ご質問の主旨とは無関係のようです。
・緑色のJ1セル … 「その人に対応するシート名が順に出てく
 る」ということですが、ご提示いただいたマクロの中には該当
 するコードが見当たりません。
・このシートとJ1セルで指定されたシートとのデータのつながりが、はっきりしてません。

が、ご質問主旨とは無関係のため説明を省略されたと解釈して、以下に回答をお示しします。
    Dim Num As Integer
    入力されている行数 = Range("A" & Rows.Count).End(xlUp).Row - 1 '下端行を取得し件数算出
    For Num = 1 To 入力されている行数
        Range("H1").Value = Num                 '(直接は関係なさそうなコード)
        Sheets(Range("J1").Value).PrintOut
    Next Num
データの下端行が 51 で固定ならば、2行目のコードを下記のようにズバリにできます。
   入力されている行数 = 51 - 1
蛇足ですが、51 - 1 としたのは、50人分入っているということだからです。

以上で回答を終わりますが、主旨の取り違いなどがありましたら、ご連絡ください。