|
▼やまと さん:
おはようございます。
>作って頂いたものをコピーし、貼り付けたのですが最初のファイルのみしか印刷されません。なぜでしょうか?
私の方ではハイパーリンクを設定したものについては印刷されていますが・・。
ひとつひとつチェックしていきましょう!!
>
>
>>私は、こんな風にしてみました。
>>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)
Debug.Print これは変数 & "--" & .Cells(これは変数, 31).Hyperlinks(1).Address & _
"---" & .Cells(これは変数, 31).Hyperlinks(1).Name
'↑これを入れてイミディエイトウインドウに何が表示されますか?
>> 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
私が作成したサンプルにはae10〜ae12までにリンクを設定しましたが、
イミディエイトウィンドウには、
10--D:\My Documents\TESTエリア\印刷Samp1.xls---aaaa
11--TESTエリア\印刷Samp2.xls---bbbb
12--TESTエリア\印刷Samp3.xls---cccc
のように
行番号---相対パス----リンク文字列 が表示されます。
確認してみて下さい。
|
|