アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2002を使用しています

ブック(A)をコピーして名前(B)をつけて別ブックで保存しました
ブック(A)を呼び出し後、ブック(B)を閉じてブック(A)のVBAを継続したいのですが
継続しません

作成したモジュールは以下です

  Application.DisplayAlerts = False

  '【不要なシートを削除する】
Sheets(Array("注文書入手差異表", "入手予定履歴", "main", "営C")).Select
ActiveWindow.SelectedSheets.Delete

  '【ThisWorkbook.Pathの『注文書確認フォルダ』の中に、名前をつけて別ブックで保存する
  '   …ユーザーフォームを使用するのでマクロごと保存】
Dim myFolder As String
Dim Filename As String

myFolder = ThisWorkbook.Path & "\注文書確認フォルダ"

Filename = Format(Date, "yyyymmdd") & "注文書入手予定表"

If Dir$(myFolder, vbDirectory) = "" Then
MkDir myFolder
End If

ActiveWorkbook.SaveAs Filename:= _
myFolder & "\" & Filename

Application.DisplayAlerts = True

'【保存した別ブック名を再取得】
Dim myName0 As String
myName0 = ThisWorkbook.Name

  '【コピー元のファイルを開く】
Dim myPath As String
myPath = Application.Substitute(ThisWorkbook.Path, "\注文書確認フォルダ", "")
Workbooks.Open (myPath & "\" & "注文書入手予定表")

  MsgBox "【注文書確認フォルダ】の中に別ブックが作成されました"  

  '【保存した別ブックを閉じる】
Workbooks(myName0).Activate
Windows(myName0).Activate
ActiveWorkbook.Close

'******下のマクロが続かない*****************
'======================
Call Macro6
'======================

  VBA ステップインで原因を探ろうとしたのでですが

  「中断モードでは入力できません」のメッセージがでて
  デバッグができません

  八方ふさがりの状態です。助けていただけませんか。

A 回答 (2件)

Call Macro6



これはブックの操作がなければ動作するのですよね?

クローズをアクティブブックではなく、該当のブックを明示的にしなければいけないかも。

> Workbooks(Filename & ".xls").Activate
> Windows(Filename & ".xls").Activate
> ActiveWorkbook.Close

ここを、単純に

Workbooks(Filename & ".xls").Close

と、してみた場合、どうでしょう?
    • good
    • 0
この回答へのお礼

再三の回答ありがとうございました。

Closeしたらマクロが実行されない件は残念ながら解消できませんでした。
続けるマクロの問題ではありません。

回答いただいた Workbooks(Filename & ".xls").Close でブックを閉じることが
できました。

Closeの後にmsgboxを表示させるようにしてみたのですが
CloseでVBAが終了してしまいmsgboxは表示されませんでした

続けようとしたマクロはCloseの前に実行するようVBAを組みなおしました

お礼日時:2011/08/11 08:38

単純に



ActiveWorkbookが自分自身になってしまっているというだけでは?

前に

myName0 = ThisWorkbook.Name

と、してますよね。ThisWorkbookって「自分自身」って意味ですが。
なので、クローズする前に自分自身をアクティブにしていますから、
アクティブブックを閉じるということは、自分自身を閉じるということになりますよ。

このVBAがブックAにあるのかブックBにあるのか等でも書き方は変わって来ますかと。
    • good
    • 0
この回答へのお礼

ご指摘の通り

'【保存した別ブック名を再取得】
Dim myName0 As String
myName0 = ThisWorkbook.Name

としたら

'【保存した別ブックを閉じる】でmyName0を使ってはいけませんよね
Workbooks(myName0).Activate
Windows(myName0).Activate
ActiveWorkbook.Close

そこで

【保存した別ブックを閉じる】で名前をダイレクトにいれたら別ブックを閉じることができました
Workbooks(Filename & ".xls").Activate
Windows(Filename & ".xls").Activate
ActiveWorkbook.Close


それでもCloseで終了となり
次のマクロが実行されません

マクロを保存したまま別ブックとして保存することがいけないんでしょうかね?

お礼日時:2011/08/10 15:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!