Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12084 / 13645 ツリー ←次へ | 前へ→

【12333】ウインドウのクローズで表示設定がクリアされる問題の回避 Excel大好きちゃん 04/3/31(水) 9:27 質問
【12343】Re:ウインドウのクローズで表示設定がクリ... IROC 04/3/31(水) 13:08 回答
【12398】Re:ウインドウのクローズで表示設定がクリ... Excel大好きちゃん 04/4/2(金) 13:26 お礼
【12391】Re:ウインドウのクローズで表示設定がクリ... ichinose 04/4/2(金) 8:04 発言
【12399】Re:ウインドウのクローズで表示設定がクリ... Excel大好きちゃん 04/4/2(金) 13:29 お礼
【12400】Re:ウインドウのクローズで表示設定がクリ... IROC 04/4/2(金) 13:34 回答
【12431】Re:ウインドウのクローズで表示設定がクリ... ichinose 04/4/3(土) 1:23 発言
【12457】Re:ウインドウのクローズで表示設定がクリ... Excel大好きちゃん 04/4/5(月) 9:21 お礼
【12477】こんなの作ってみました。 Excel大好きちゃん 04/4/5(月) 17:35 発言

【12333】ウインドウのクローズで表示設定がクリア...
質問  Excel大好きちゃん  - 04/3/31(水) 9:27 -

引用なし
パスワード
   みなさん、こんにちはー (^^♪
ご存知の方がおられましたら、是非 教えて下さーい。

例えば、Book1.xlsをアクティブにした状態で
「新しいウインドウを開く」を実行すると
Book1.xls:1
Book1.xls:2
が同時に表示されます。
この状態で、間違ってBook1.xls:1を先に閉じてしまうと
Book1.xlsで元々設定していた表示関係の情報が
クリアされてしまいます。
表示の倍率、ウインドウ枠の固定 等の設定です。
多数のシートが含まれるブックで、これをやってしまうと
泣きたくなってしまいます。
これまでにも何度か失敗したことがあり、急いでいるときに
限ってやってしって、泣き寝入りしていました。(>_<)
みなさんは、こんな経験がないでしょうか?
わたしは、Excel大好きっ子なんですが、
Excelのこの「おバカ?」なところと、最近バージョンアップされても
一向に改善されない「グラフ関係の機能」がイマイチだと思っています。
さて、ここからがお願いなのですが、
「間違ってBook1.xls:1を先に閉じようとしたときに
警告するようにできないでしょうか?」
特定のブックに対してではなく、任意のブックに対して
いつでもこのチェックが効くようにしたいです。

どうか、よろしくお願い致します。

【12343】Re:ウインドウのクローズで表示設定がク...
回答  IROC  - 04/3/31(水) 13:08 -

引用なし
パスワード
   >「間違ってBook1.xls:1を先に閉じようとしたときに
>警告するようにできないでしょうか?」

Closeイベントが動かないので、厳しいように思えます。

【12391】Re:ウインドウのクローズで表示設定がク...
発言  ichinose  - 04/4/2(金) 8:04 -

引用なし
パスワード
   ▼Excel大好きちゃんさん、IROCさん、おはようございます。

>>
>例えば、Book1.xlsをアクティブにした状態で
>「新しいウインドウを開く」を実行すると
>Book1.xls:1
>Book1.xls:2
>が同時に表示されます。
>この状態で、間違ってBook1.xls:1を先に閉じてしまうと
>Book1.xlsで元々設定していた表示関係の情報が
>クリアされてしまいます。

>表示の倍率、ウインドウ枠の固定 等の設定です。
>「間違ってBook1.xls:1を先に閉じようとしたときに
>警告するようにできないでしょうか?」
>特定のブックに対してではなく、任意のブックに対して
>いつでもこのチェックが効くようにしたいです。

ウインドウを閉じる時に警告する方法はわかりませんが、
閉じても復元すると言う方法はどうでしょうか?
「ユーザー設定のビュー」を使用しました。
例えば、新規ブックに以下のコードを貼り付けて実行して下さい。
'=====================================================
Sub sample1()
  With ActiveWindow
   .Zoom = 200
   .SplitColumn = 0
   .SplitRow = 2
   .Parent.CustomViews.Add ViewName:="sample", PrintSettings:=True, _
    RowColSettings:=True
   .NewWindow
   End With
End Sub

↑で、倍率200の2行目で分割されたウインドウと通常のウインドウの二つが
できあがります。

倍率200のウインドウを閉じて下さい。

次に以下のコード実行
'====================================================
Sub 復元()
  ActiveWindow.NewWindow
  ActiveWorkbook.CustomViews("sample").Show
End Sub

CustomViewオブジェクトを探ってみて下さい。

【12398】Re:ウインドウのクローズで表示設定がク...
お礼  Excel大好きちゃん  - 04/4/2(金) 13:26 -

引用なし
パスワード
   ▼IROC さん:
>>「間違ってBook1.xls:1を先に閉じようとしたときに
>>警告するようにできないでしょうか?」
>
>Closeイベントが動かないので、厳しいように思えます。

ありがとうございました。
やっぱり、ハードル高いんですね。
どちらかというと、Excelのバグだと、
わたしは思うんですけど。。。

【12399】Re:ウインドウのクローズで表示設定がク...
お礼  Excel大好きちゃん  - 04/4/2(金) 13:29 -

引用なし
パスワード
   ▼ichinose さん:
ありがとうございました。

早速、やってみました。
但し、マクロを組み込んでいない任意のブックに対しての復元は
できない相談ですよね。
何か良い方法がございましたら、いつでも結構ですので
教えて下さいませ。 (^^♪

【12400】Re:ウインドウのクローズで表示設定がク...
回答  IROC  - 04/4/2(金) 13:34 -

引用なし
パスワード
   >但し、マクロを組み込んでいない任意のブックに対しての復元は
>できない相談ですよね。

ichinose さんのコードは、
ActiveWindow で対象を指定してるので、
個人用マクロブックに、マクロを書いておけば
好きなブック(Activeなブック)に利用できますよ。

【12431】Re:ウインドウのクローズで表示設定がク...
発言  ichinose  - 04/4/3(土) 1:23 -

引用なし
パスワード
   ▼Excel大好きちゃん さん、IROCさん、こんばんは。
>早速、やってみました。
>但し、マクロを組み込んでいない任意のブックに対しての復元は
>できない相談ですよね。
>何か良い方法がございましたら、いつでも結構ですので
>教えて下さいませ。 (^^♪
マクロにしたのは、ウインドウの設定条件を説明上統一しただけで
マクロで設定しなくても手動操作だけで可能ですよ。
提示させていただいたコードは、殆どマクロの記録でやってますから・・。

例えば、前回の投稿のマクロで作成される倍率200で2行目で分割された
ウインドウがありますよね。
これを「Excel大好きちゃん さん」が閉じても復元できるウインドウだとします。

このウインドウがアクティブな状態で

・「表示」----「ユーザー設定ビュー」をクリックします。

・ユーザー設定ビューのダイアログが表示されますから、「追加ボタン」を
 押して下さい。

・「ビューの追加」というダイアログが表示されますから、名前を指定して
 「OK」ボタンを押して下さい。これで登録完了です。一旦、保存して下さい。

・これで二つのウインドウを表示させての作業中に誤って、このウインドウを閉じてしまっても復元できます。

・「ウィンドウ」---「新しいウィンドウを開く」でまず、新しいウインドウを
 作成して下さい。

・次に又、表示」----「ユーザー設定ビュー」をクリックします。

・ここで、復元用に登録したビュー名を選択して「表示」ボタンをクリックして下さい。

これで復元が可能です。


もっとも作成した後、保存してるから、開きなおせば復元は出来ますけどね。

【12457】Re:ウインドウのクローズで表示設定がク...
お礼  Excel大好きちゃん  - 04/4/5(月) 9:21 -

引用なし
パスワード
   ▼ichinose さん、IROCさん
おはようございます。(^^♪

「ユーザー設定ビュー」を使用する方法で、やってみました。
確かにできました。ありがとうございます。
わたしがやりたかったのは、保存直後の状態に戻すのではなく、
任意のタイミングで間違ってWindowを閉じてしまった直後なので、
この方法は有効のようです。
あとは、この「ユーザー設定ビュー」をどの時点で登録するかの
タイミングをうまく制御できれば いけそうです。
でも、このタイミングが実際には難しいですね。
例えば、1分毎に自動で登録してくれるように設定できれば。。。
ちょっと、無理でしょうか? ^_^;

>>早速、やってみました。
>>但し、マクロを組み込んでいない任意のブックに対しての復元は
>>できない相談ですよね。
>>何か良い方法がございましたら、いつでも結構ですので
>>教えて下さいませ。 (^^♪
>マクロにしたのは、ウインドウの設定条件を説明上統一しただけで
>マクロで設定しなくても手動操作だけで可能ですよ。
>提示させていただいたコードは、殆どマクロの記録でやってますから・・。
>
>例えば、前回の投稿のマクロで作成される倍率200で2行目で分割された
>ウインドウがありますよね。
>これを「Excel大好きちゃん さん」が閉じても復元できるウインドウだとします。
>
>このウインドウがアクティブな状態で
>
>・「表示」----「ユーザー設定ビュー」をクリックします。
>
>・ユーザー設定ビューのダイアログが表示されますから、「追加ボタン」を
> 押して下さい。
>
>・「ビューの追加」というダイアログが表示されますから、名前を指定して
> 「OK」ボタンを押して下さい。これで登録完了です。一旦、保存して下さい。
>
>・これで二つのウインドウを表示させての作業中に誤って、このウインドウを閉じてしまっても復元できます。
>
>・「ウィンドウ」---「新しいウィンドウを開く」でまず、新しいウインドウを
> 作成して下さい。
>
>・次に又、表示」----「ユーザー設定ビュー」をクリックします。
>
>・ここで、復元用に登録したビュー名を選択して「表示」ボタンをクリックして下さい。
>
>これで復元が可能です。
>
>
>もっとも作成した後、保存してるから、開きなおせば復元は出来ますけどね。

【12477】こんなの作ってみました。
発言  Excel大好きちゃん  - 04/4/5(月) 17:35 -

引用なし
パスワード
   複数画面表示をしたいときに、以下のマクロで
必ず実行するようにすれば、このタイミングで
「ユーザー設定ビュー」を強制的に登録可能ですよね。
昔、どこかで頂いたマクロの一部流用ですが、
作成者様、ごめんなさい。
とりあえず、これで問題解決です。
ありがとうございました。(^^♪

Sub 同一Sheetの複数画面表示()
  Dim sBookName As String
  Dim nLen As Integer
    ActiveWorkbook.CustomViews.add ViewName:="dummyView", PrintSettings:=True, _
    RowColSettings:=True
  sBookName = ActiveWindow.Caption
  nLen = Len(sBookName)
  ActiveWindow.NewWindow
  ActiveWorkbook.CustomViews("dummyView").Show  
  If Mid(sBookName, nLen - 1, 1) <> ":" Then
     Windows(sBookName & ":1").Activate
  End If
  Windows.Arrange ArrangeStyle:=xlHorizontal
End Sub

>
>「ユーザー設定ビュー」を使用する方法で、やってみました。
>確かにできました。ありがとうございます。
>わたしがやりたかったのは、保存直後の状態に戻すのではなく、
>任意のタイミングで間違ってWindowを閉じてしまった直後なので、
>この方法は有効のようです。
>あとは、この「ユーザー設定ビュー」をどの時点で登録するかの
>タイミングをうまく制御できれば いけそうです。
>でも、このタイミングが実際には難しいですね。
>例えば、1分毎に自動で登録してくれるように設定できれば。。。
>ちょっと、無理でしょうか? ^_^;
>
>>>早速、やってみました。
>>>但し、マクロを組み込んでいない任意のブックに対しての復元は
>>>できない相談ですよね。
>>>何か良い方法がございましたら、いつでも結構ですので
>>>教えて下さいませ。 (^^♪
>>マクロにしたのは、ウインドウの設定条件を説明上統一しただけで
>>マクロで設定しなくても手動操作だけで可能ですよ。
>>提示させていただいたコードは、殆どマクロの記録でやってますから・・。
>>
>>例えば、前回の投稿のマクロで作成される倍率200で2行目で分割された
>>ウインドウがありますよね。
>>これを「Excel大好きちゃん さん」が閉じても復元できるウインドウだとします。
>>
>>このウインドウがアクティブな状態で
>>
>>・「表示」----「ユーザー設定ビュー」をクリックします。
>>
>>・ユーザー設定ビューのダイアログが表示されますから、「追加ボタン」を
>> 押して下さい。
>>
>>・「ビューの追加」というダイアログが表示されますから、名前を指定して
>> 「OK」ボタンを押して下さい。これで登録完了です。一旦、保存して下さい。
>>
>>・これで二つのウインドウを表示させての作業中に誤って、このウインドウを閉じてしまっても復元できます。
>>
>>・「ウィンドウ」---「新しいウィンドウを開く」でまず、新しいウインドウを
>> 作成して下さい。
>>
>>・次に又、表示」----「ユーザー設定ビュー」をクリックします。
>>
>>・ここで、復元用に登録したビュー名を選択して「表示」ボタンをクリックして下さい。
>>
>>これで復元が可能です。
>>
>>
>>もっとも作成した後、保存してるから、開きなおせば復元は出来ますけどね。

12084 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free