[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロでリンク解除後の印刷』(公務員)
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.