人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

A.xlsとB.xlsという2つのファイルがあります。

A.xlsというファイルにマクロを設定したいです。

行いたい一連の操作は下記の通りです。
A.xlsのSheet1をB.xls(場所はC:\)のSheet1にコピーする。
B.xlsのSheet2をプリントアウトする。
B.xlsを閉じてA.xlsに戻る。

こんなことってできますでしょうか?

どうぞよろしくお願いいたします。

●質問者: ohtsu6
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:xls コピー ファイル プリントアウト マクロ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●60ポイント

こんな感じでどうでしょうか。

A.XLSの標準モジュールにおいて試してみてください。

'--- 操作対象ファイル
Const dstExcelName = "C:\B.xls"

Sub CopyAndPrint()
'--- 操作対象ファイルを開く
 Dim dstWB As Workbook
 Dim dstWS As Worksheet
 If Dir(dstExcelName) = "" Then
 MsgBox dstExcelName & "がありません。"
 Exit Sub
 End If
 
 On Error Resume Next
 Set dstWB = Workbooks.Open(dstExcelName)
 On Error GoTo 0
 
 If dstWB Is Nothing Then
 MsgBox dstExcelName & "が開けませんでした。"
 Exit Sub
 End If

'--- 警告を無効
 Application.DisplayAlerts = False

'--- 操作対象ファイルのSheets1を削除
 dstWB.Worksheets("Sheet1").Delete

'--- 自シートをコピー
 ThisWorkbook.Worksheets("Sheet1").Copy Before:=dstWB.Worksheets(1)
 
'--- Sheet2 を印刷
 dstWB.Worksheets("Sheet2").PrintOut
 
'--- もし保存するなる次を実行
 ' dstwb.save

'--- 捜査対象ファイルを閉じる
 dstWB.Close
 
'--- 警告を有効
 Application.DisplayAlerts = True
End Sub
◎質問者からの返答

Mookさま

どうもありがとうございます。

出来ました。

ただ、1点だけ問題があります。

「dstWB.Worksheets("Sheet1").Delete」で

シートを削除してしまうと、

Sheet2からSheet1に「=Sheet1!A1」という感じで

設定しているところがあり、

「=#REF!」とエラーになってしまいます。

このエラーにしない方法はありますでしょうか?

どうぞよろしくお願いいたします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ