A 回答 (10件)
- 最新から表示
- 回答順に表示
No.10
- 回答日時:
>#4のみのコードよだと条件により何回も点滅するから、今回の#8にあるコードのみのほうが良い。
という事でしょうか?そんなことを書いていませんが。
ご質問者さんが、ひとつずつ、試してみてみればよいのでは?
ただ、シートをループルして、その都度、Activate したら、Workbook_SheetActivateのイベントが起動するということです。しかし私の#8のマクロは、シートをActivate していませんから、#4で書いたコードは起動しませんが、別に、共有して使ってもらうとか、別々に使ってもらうということを目的として書いていません。単に、merlionXXさんのコードで、ご質問者さんが、不具合があると続けて書いているから書いたまでです。
それと、こちらが#8で聞いた事は、前のログを読めということですね。そうすると、少し話しが違ってくるけれども、実際に、改ページプレビューというものがあるのにも関わらず、それを好まず仕様自体を変更するような話は、一般性がありませんから、概ね、解決は難しいと思います。あちらを直せば、こちらが問題だと次から次に問題が出てきてしまいます。出来れば、改ページプレビューに慣れて使いこなせば、それはそれでよいのではないかと思います。それに、本来、全シートではなく、その都度、ActiveSheet だけが分かれば良いし、その時に、画面が一回程度の点滅で、どんな問題があるのか、私個人としては理解できません。それは、もうMS側の仕様そのものの問題になるのではないか、というのが、あえて答えれば、前の質問の回答となってしまいます。
なお、
ActiveSheet.DisplayAutomaticPageBreaks = True
の、DisplayAutomaticPageBreaksは、Excel Ver.5 のプロパティで、Excel97 以上では隠しプロパティです。不具合はないにしても、ヘルプでは出てこないはずです。
だから、改ページブレイクを入れるために、現在のプロパティのDisplayPageBreaks を試してみたらどうでしょうか。
違う環境やそのシートの内容によって、挙動は変わります。こちらが、どれがどうとか指図する話ではありません。もともと、印刷プレビューや印刷の後に現れる改ページブレイクです。私なら、まず、印刷プレビューで見てみます。それをせず、改ページブレイクを人為的に出すというわけであるわけですが、また、同時に、シートを複数みるわけではありませんから、また、一気に設定するという必要性を感じていません。
ともかく、それぞれを試していただくのが良いと思うのですが。ただ、期待はしないほうがよいと思います。
この回答への補足
DisplayAutomaticPageBreaksで何十回も点滅して使い物にならない
以下のようにして試してみたらどうでしょうか
と言っているので#8のほうが良いのかと聞いたのです。
> 画面が一回程度の点滅で、どんな問題があるのか
問題あるとは言ってません。
#4の方法にしようと思ったのですが#8のコードが出てきたので、
#8のほうが良いのかと聞いたのです。
#4の時点で、「望む事ができました」と書いていて、#3のコードは
起動時に動作するとあるのに、こちらでは#4と同じシートごとに動作するという話をしていたら、#8のコードが出てきたのです。
No.9
- 回答日時:
> だけ記述しているのに、起動後のシート切り替えで動いているのです。
それでしたら、わたしの2000では再現できませんので原因がわかりません。
澄みませんがお役に立てません。
No.8
- 回答日時:
こんにちは。
#4の回答者です。
やり取りをみていて、一体、本来の目的は何のためだったのでしょうか?分かりきったつもりで、読んでいたのてずが、良く考えてみると、最初の質問のコードは、記録マクロで取ったものからではありませんか?
それは、印刷や印刷プレビュー後に改ページブレイクを表示するためのものですが、本来、オプションの表示で設定するものです。オプションで入れていれば、あえて、マクロの必要はないとは思うのです。DisplayAutomaticPageBreaks ActiveSheet の画面を再取得して、改ページブレイクを表示しています。とうぜん、画面を再取得しているから、画面が点滅はしますが、それは、一回とは限りません。取得以後は、変化しません。
こちらで、特殊な数式を入れたシートのあるブックで、DisplayAutomaticPageBreaks を入れて、ループでブックのシート全体を試してみましたが、何十回も点滅して使えるものではありませんでした。
もし、単に、改ページブレイクを入れるためでしたら、DisplayPageBreaks を以下のようにして試してみたらどうでしょうか。
'-------------------------------------------
Sub Auto_Open()
Dim sh As Object
For Each sh In ThisWorkbook.Worksheets
sh.DisplayPageBreaks = True
Next
End Sub
'-------------------------------------------
>Wendy02さんのコードも同じBOOKに書いてあるのではないですか?
なお、#4 のWorkbook_SheetActivateの私のコードは、コメントブロックするか削除してください。melionXXさんのコードとは、共有するものではありません。
この回答への補足
オプションで改ページにチェックを入れて保存終了しても、次の起動時には
チェックが外れてしまいます。
それでマクロで起動時に入れていました。
http://okwave.jp/qa5086876.html
それで今回は複数のシートも含めて行いたいという事です。
#3と#4のコードは共有していません。
それぞれで試しています。
#4のみのコードよだと条件により何回も点滅するから、今回の#8にあるコードのみのほうが良い。という事でしょうか?
No.7
- 回答日時:
> Auto_Openなら起動時だけですよね?
はいそうです。
それ以外に働いているとしたら、Wendy02さんのコードも同じBOOKに書いてあるのではないですか?
この回答への補足
Sub Auto_Open()
Set ac = ActiveSheet
Application.ScreenUpdating = False
For Each ws In Worksheets
ws.DisplayAutomaticPageBreaks = True
Next
ac.Activate
Application.ScreenUpdating = True
End Sub
だけ記述しているのに、起動後のシート切り替えで動いているのです。
#4のほうは、
Sub Auto_Open()
ActiveSheet.DisplayAutomaticPageBreaks = True
End Sub
と、ThisWorkBookに
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.DisplayAutomaticPageBreaks = True
End Sub
を記述しています。
どちらも全く同じ動作をしています。
No.6
- 回答日時:
> シートを開くと再表示されたように画面が1回点滅します。
はい、Application.ScreenUpdating = True の段階でそうなると思います。
> 別のシートに移って同じシートに戻ると何も起きません。
これは、再起動ではなく単に他のシートを選択してから戻ったという意味でしょうか?
ならば、もうAuto_Open時のマクロは関係ないので何もおきないです。
この回答への補足
> シートを開くと再表示されたように画面が1回点滅します。
これは起動したあとにアクティブ以外のシートを選択した時です。
Auto_Openなら起動時だけですよね?
No.5
- 回答日時:
merlionXXです。
> 起動時に全てではなくシートを開くごとに動いているようですね。
Wendy02さんのはそのとおりですが、わたしのは起動時にすべて行っています。初めて開くときと2回目に開くときでどう挙動が違うのか知りたいです。
ただ、最初にアクティブシートを取得し、一巡して最後にまたそのアクティブシートを選択させてますので開いたときのアクティブシートが違えば挙動も変わるでしょうけど。
この回答への補足
シートを開くと再表示されたように画面が1回点滅します。
別のシートに移って同じシートに戻ると何も起きません。
#4のコードを書いた方法と動作が一緒です。
もしかしたら、最初の件のようにバージョンで違うのでしょうか。
No.4
- 回答日時:
こんにちは。
>画面表示でシートが変わっていくのですが、アクティブシートを表示したまま
>他のシートに適用することは可能でしょうか?
確認しました。
画面を止めておく方法では、
#3のmerlionXX さんの
Application.ScreenUpdating = False
ループするしかないようですね。
ただ、こんな方法もあるかと思います。
Auto_Open で、
ActiveSheet.DisplayAutomaticPageBreaks = True
とだけにしておいて、他は、
ThisWorkbook モジュールで、シートを開くたびに、改ページブレークを入れるようにする方法もあると思います。
'-------------------------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.DisplayAutomaticPageBreaks = True
End Sub
'-------------------------------------------
このようにする方法もあるかと思います。シートを増やしても同様につくはずです。
No.3
- 回答日時:
変ですね、わたしの2000ではそうならないのですが・・・。
ではこのようにしてみてください。
Sub Auto_Open()
Set ac = ActiveSheet
Application.ScreenUpdating = False
For Each ws In Worksheets
ws.DisplayAutomaticPageBreaks = True
Next
ac.Activate
Application.ScreenUpdating = True
End Sub
1つのシートを初めて開くときと2回目に開くときで少し挙動が違っているので、
起動時に全てではなくシートを開くごとに動いているようですね。
これで望む事が出来ました。
ありがとうございました。
No.2
- 回答日時:
> 画面表示でシートが変わっていくのですが、アクティブシートを表示したまま
> 他のシートに適用することは可能でしょうか?
わたしが回答したコードだけではそんなことは起きないと思います。
コードに何か書き加えてないですか?
この回答への補足
1シート目から順番に表示されていき、最後は保存時のアクティブシートに
表示が戻って止まります。
下記の記述になっています。
Sub Auto_Open()
For Each ws In Worksheets
ws.DisplayAutomaticPageBreaks = True
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 2 2022/11/18 15:34
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックスへ降順に表示す...
-
エクセルVBAでオブジェクトが必...
-
エクセルのVBAについて教えてく...
-
エクセルマクロ 変数をワーク...
-
ExcelVBAにシートに名をつけて...
-
Excel UserForm の表示位置
-
VBA シートをコピーする際に Co...
-
エクセルで複数のシートのクリ...
-
エクセルで離れた列を選択して...
-
VBAマクロ実行時エラーの修正に...
-
あああ..ああい..ああう とい...
-
エクセル マクロ オートフィ...
-
[EXCEL]ボタン押す→時刻が表に...
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
【Excel関数】UNIQUE関数で"0"...
-
VBAでの SendKeysの変数指定方法
-
マクロの「SaveAs」でエラーが...
-
Cellsのかっこの中はどっちが行...
-
罫線の斜線を自動で引くマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access-VBAでExcelファイ...
-
コンボボックスへ降順に表示す...
-
エクセルVBAでオブジェクトが必...
-
マクロのコマンドボタン《Activ...
-
複数シートを一括で保護を掛け...
-
エクセルで品番を入れると、そ...
-
マクロ実行後、画面がちかちか...
-
エクセルのVBAについて教えてく...
-
エクセルマクロ 変数をワーク...
-
VBAでVlookup機能を使うときに...
-
エクセルマクロ(超初心者)
-
Excelに関数使用を調べる方法
-
エクセルを共有にすると、シー...
-
Excell VBA にて配列に定数を代...
-
エクセルVBA 別シートの最終セ...
-
Excelの各シートの一覧シートの...
-
マクロのイベントトリガー
-
マクロでフォルダ内のExcelを全...
-
エクセルVBAでフォームの無効化...
-
エクセル マクロについて、 Inp...
おすすめ情報