[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでリンク解除後の印刷』(公務員)
AAファイルとBBファイルがあって,AAファイルはBBファイルからリンク しています。 それで,リンクを解除して,AAファイルのシートを印刷するのに
Sub Macro1()
ActiveWorkbook.BreakLink Name:= _
ThisWorkbook.Path & "\BB.xls", Type:= _
xlExcelLinks
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
のようなコードを作りました。
そうして,マクロを実行すると,初めはリンクが解除されて,うまく印刷されます。 しかし,ファイルを上書き保存後,もう一度マクロを実行して,シートを印刷しよう とするとエラーになってしまいます。 たぶん,最初にリンクを解除するコードが書かれてあるのに,上書き保存後は, 既にリンクが解除されているので,マクロを実行する対象がなくてエラーになって しまうのだと思います。
「リンク解除→印刷」というマクロをボタンに登録し,上書き保存後も同じボタンで エラーが出ることなく印刷できるようにしたいのですが,できますでしょうか?
リンク解除 何のために????
乱暴ですが でリンク解除を失敗しても無条件で処理を継続させるとか?
On Error Resume Next
ActiveWorkbook.BreakLink Name:= _
ThisWorkbook.Path & "\BB.xls", Type:= xlExcelLinks
Err_No = Err.Number
On error goto 0
if Err_No <> 0 then msgbox "リンク解除に失敗しました"
等ですか?
(力技)
ありがとうございます。 訳も分からず,下のようなコードを作ってみましたが, 前半の「リンク解除→印刷」はうまくいきましたが 後半の「リンク解除失敗しても→印刷」の部分がうまくいきませんでした。
Sub Macro1()
ActiveWorkbook.BreakLink Name:= _
ThisWorkbook.Path & "\BB.xls", Type:= _
xlExcelLinks
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
On Error Resume Next
ActiveWorkbook.BreakLink Name:= _
ThisWorkbook.Path & "\BB.xls", Type:=xlExcelLinks
Err_No = Err.Number
On Error GoTo 0
If Err_No <> 0 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If End Sub
たぶん,前半の「リンク解除→印刷」と後半の「リンク解除失敗しても→印刷」 をIF関数みたいにつなげればうまくいくと思うのですが,つなげ方がよく分からない ので教えてください。
(公務員)
Sub Macro1()
'エラーになっても無視」を宣言
On Error Resume Next
'リンクの解除
ActiveWorkbook.BreakLink Name:= _
ThisWorkbook.Path & "\BB.xls", Type:=xlExcelLinks
'リンク解除がエラーになったかどうか
Err_No = Err.Number
'エラーになっても無視を取り消し」を宣言
On Error GoTo 0
'このIF文はエラーになったらなので不要と思われますね
>'If Err_No <> 0 Then
'IF文から外れていれば有無を言わずに印刷
'IF文内ならエラー発生時のみ印刷
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
>'End If
End Sub
でどうでしょうか?
あ、検証はしてません
(力技)
うまくできました。 力技さん,ご丁寧に教えていただき,どうもありがとうございました。
(公務員)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.