Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim X As Worksheet
For Each X In Sheets
X.Select
ActiveWindow.View = xlNormalView
ActiveWindow.Zoom = 100
Next
Sheets(1).Select
End Sub
ブックAのマクロで、上記マクロが記述されているブックBを呼び出し
名前を付けて保存をしています。
ブックBの各シートの改ページを直した後に保存ボタンで標準表示に戻そうと思っているのですが
その流れだと最初のシートしか標準に戻りません。
2度保存すると全てのシートが標準に戻るのですが・・・。
させたい動作
・ブックAのマクロで、ブックBを開く
・ブックAの情報をブックBに貼り付ける
・データの量によって改ページが崩れるため、ブックBの改ページを手動で直す
・保存ボタンを押すことにより、ブックBの全てのシートを標準に戻す
どうしてこういう事が起こるのか、お分かりの方いらっしゃいましたら
どうか教えて下さい。
解りづらい説明で申し訳ございませんが、よろしくお願いします。
こんにちは。
「Private Sub Workbook_BeforeSave」
>ブックAのマクロで、上記マクロが記述されているブックBを呼び出し
>名前を付けて保存をしています。
こちらの解釈が間違っているかもしれませんが、何度か読み直してみると、何か、すごい高度なことをしようとされているように思いますね。ブックのBイベントの呼び出しは出来るとは思うのですが、技術的に複雑になると、内容が不自然だと思います。
イベント・ドリブン型は、あくまでも、「自ブック」の動作(Action)を起動にするものです。
・ブックAのマクロで、ブックBを開く
・ブックAの情報をブックBに貼り付ける
・データの量によって改ページが崩れるため、ブックBの改ページを手動で直す
*・保存ボタンを押すことにより、ブックBの全てのシートを標準に戻す
今のところ、* の部分だけだとは思いますが、
ブックAから、ActiveWorkbook または、WorkBooks("B.xls") と、単に操作すればよいのではありませんか?
Private Sub CommandButton1_Click()
Dim ws As Worksheet
'シートの標準化
For Each ws In ActiveWorkbook.Worksheets '開いているブックのシート
ws.Activate
ActiveWindow.View = xlNormalView
ActiveWindow.Zoom = 100
Next
With Application.Dialogs(xlDialogSaveAs) '保存
.Show ActiveWorkbook.Name
End With
End Sub
ただ、もしかして、「保存ボタン」というのは、既存のコマンド・ボタンのことでしょうか?
ツールボタンなら、「個人用マクロブック」に登録すればよいのですが、既存のボタンですと、インスタンスを作らないていけないのです。
お礼
さらにアドバイスをありがとうございます。 お礼が遅くなってしまってすみません。 状況は改善できていないのですが、大変勉強になります。 背伸びせず、出来ることからやってみます。