| 
    
     |  | ▼やまと さん: こんばんは。
 
 >お世話になっております。
 >
 >ファイルが200こあります。
 >特定の複数シートを200こ一括で印刷したいのですがよろしくお願いします。
 >ファイルは全て同じ様式になっています。
 >
 >ファイル名をae10:ae210を入力し、そのセルにハイパーリンクでジャンプするようにしました。そこで、1.ae10をクリック、2.そのファイル上で複数シートを選択、3.印刷、4.ファイルを閉じる という作業を自動記録でとりました。
 
 ということは、ae10〜ae210のセルにはファイル名が入っていない可能性もありますね?
 
 
 >それを、繰り返し次のファイルを印刷するためにfor..nextをくわえたのですが
 >うまく動きません。
 >2日前からVBAを勉強し始めた素人なのですがよろしくお願いいたします。
 >
 >Sub Macro2()
 >
 >Dim これは変数 As Long
 >For これは変数 = 1 To 200
 >
 >  Cells(39, これは変数 + 9).Select
 '  ちなみに↑だとae10〜ae210を取得しませんよ!!
 >  Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
 >  Sheets(Array("表紙", "様式1-1", "様式2-1")).Select
 >  Sheets("様式2-1").Activate
 >  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
 >  ActiveWindow.Close
 >Next これは変数
 >End Sub
 
 
 私は、こんな風にしてみました。
 ae10〜ae210のセルにリンクされたブックを 開いて、印刷、閉じる
 を繰り返します。
 一覧シートをアクティブにした状態でmainを実行してみてください
 
 
 '==============================================================
 Sub main()
 Dim 一覧表シート As Worksheet
 Dim 印刷ブック As Workbook
 Dim これは変数 As Long
 Application.ScreenUpdating = False
 Set 一覧表シート = ActiveSheet
 With 一覧表シート
 For これは変数 = 10 To 210
 If .Cells(これは変数, 31).Hyperlinks.Count > 0 Then
 Set 印刷ブック = bk_open(.Cells(これは変数, 31).Hyperlinks(1).Address)
 If Not 印刷ブック Is Nothing Then
 Call bk_print(印刷ブック, Array("表紙", "様式1-1", "様式2-1"))
 印刷ブック.Close False
 End If
 End If
 DoEvents
 Next
 End With
 Application.ScreenUpdating = True
 End Sub
 '==================================================
 Function bk_open(flnm) As Workbook
 '指定されたブックをオープン
 On Error Resume Next
 Set bk_open = Workbooks.Open(flnm)
 If Err.Number <> 0 Then
 Set bk_open = Nothing
 End If
 On Error GoTo 0
 End Function
 '==================================================
 Function bk_print(bk As Workbook, pr_sheets) As Long
 '指定ブックの指定されたシートを印刷
 On Error Resume Next
 bk.Sheets(pr_sheets).PrintOut
 bk_print = Err.Number
 On Error GoTo 0
 End Function
 
 
 200ファイルではテストしてませんが・・・。
 
 |  |