[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/09/12(Tue) 15:28
投稿者名:ダンボ
Eメール:
URL :
タイトル:
ワークシートだけ表示させる
Excel2000のVBAです。
定められた操作しかできないようにワークシートだけを表示させたいのです。
    With Application
        .DisplayFullScreen = True
        .DisplayAlerts = False
        .DisplayFormulaBar = False
        .ScreenUpdating = False
    End With
    With ActiveWindow
        .DisplayHorizontalScrollBar = False         '水平スクロールバーを消す
        .DisplayVerticalScrollBar = False         '垂直スクロールバーを消す
        .DisplayWorkbookTabs = False         'シート見出しを消す
        .DisplayGridlines = False         '枠線を消す
        .DisplayHeadings = False         '行列番号を消す
    End With
これで大分望みに近いのですが、
(1)システムメニュー(FileからHelpまでの奴)が消せない。
(2)DisplayFullScreen=True で「全画面表示を閉じます」ダイアログボックスが出てしまう。
の2点が不満です。対策はありますか?

投稿時間:2006/09/12(Tue) 16:16
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ワークシートだけ表示させる
>  (1)システムメニュー(FileからHelpまでの奴)が消せない。

こちらは、下記ではだめですか?
http://support.microsoft.com/default.aspx?scid=kb;ja;408057

>(2)DisplayFullScreen=True で「全画面表示を閉じます」ダイアログボックスが出てしまう。

VBから試したのではそのダイアログはでないですね。(Excel 2002)

投稿時間:2006/09/12(Tue) 18:17
投稿者名:ダンボ
Eメール:
URL :
タイトル:
Re^2: ワークシートだけ表示させる
花ちゃん さん、どうも有り難うございます。

>  (1)システムメニュー(FileからHelpまでの奴)が消せない。

Application.CommandBars("Worksheet Menu Bar").Enabled = False
Application.CommandBars("Standard").Visible = False
で、システムメニュー消えました。標準ツールバー消えました。
あうぅ編集ツールバーが残っています。

ということは、CommandBarsのコレクションを全部調べて、Enabled = FalseなりVisible = False
なりしてやれば良いですね。現状を覚えておいて復帰もしなければならないし。
Application.DisplayFormulaBar = False
のように一発で切り替えができると楽だったですが。
しょうがないので汎用サブルーチン作っておきます。60〜100ステップ位になるかな


> >(2)DisplayFullScreen=True で「全画面表示を閉じます」ダイアログボックスが出てしまう。
> VBから試したのではそのダイアログはでないですね。(Excel 2002)

VBAでApplication.DisplayFullScreen発行時に出たんですがね。
そのダイアログボックス内のOKボタンを押していた時期は必ず再現していました。
その後、ダイアログボックス自体の×ボタンを押したら2度と出なくなりました。
他人に提供したときに再現すると思うとちょっと解明しておきたいところ。

投稿時間:2006/09/13(Wed) 13:46
投稿者名:ダンボ
Eメール:
URL :
タイトル:
【解決】ワークシートだけ表示させる
> >  (1)システムメニュー(FileからHelpまでの奴)が消せない。
> しょうがないので汎用サブルーチン作っておきます。60〜100ステップ位になるかな


62ステップでした。ポイントだけフィードバックです。
    Static FLG() As Boolean, i As Integer
    With Application
        ReDim FLG(.CommandBars.Count)
        For i = 1 To .CommandBars.Count
            FLG(i) = .CommandBars(i).Enabled
            .CommandBars(i).Enabled = False
        Next i
    End With

#CommandBars.Countって90位になっている。フォローティングダイアローグボックスなども
すべてCommandBarsに属しているんですね。

> >(2)DisplayFullScreen=True で「全画面表示を閉じます」ダイアログボックスが出てしまう。

EXCEL「オプション」で「全画面表示を閉じる」ダイアログボックスの表示/非表示を設定
できるんですわ。最初は非表示設定でもマクロからDisplayFullScreenを発行すると表示に
なるんでしょうね。で×を押せば非表示設定に戻り、以後出ないと。。

投稿時間:2006/09/13(Wed) 15:45
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 【解決】ワークシートだけ表示させる
> 62ステップでした。ポイントだけフィードバックです。

私は、下記の方法でテストしておりました。

    For i = 2 To xlApp.CommandBars.Count - 1
        If xlApp.CommandBars(i).Visible = True Then
            n = n + 1
            ReDim Preserve bars(n)
            '表示しているツールバー名を取得し保存しておきます
            bars(n) = xlApp.CommandBars(i).Name
            'ツールバーを非表示に設定
            xlApp.CommandBars(i).Visible = False
        End If
    Next i
  

    For i = 0 To n
        'ツールバーを元の状態に戻します
        xlApp.CommandBars(bars(i)).Visible = True
    Next i

>(2)DisplayFullScreen=True で「全画面表示を閉じます」ダイアログボックスが出てしまう。
こんなところにあったのですね。 ダイアログボックスではなく ただのツールバー
だったようですね。

投稿時間:2006/09/13(Wed) 16:10
投稿者名:ダンボ
Eメール:
URL :
タイトル:
Re^2: 【解決】ワークシートだけ表示させる
>   xlApp.CommandBars(i).Visible = False

当初はVisibleが良いと思っていたのですが、Visible属性が無いCommandBars()があるみたいです。
それが何かも確かめずに速攻でEnabledを試して結果オーライだったので深く追求していません。

Visibleを下手にいじるとExcelツールバーの配置が変わるので、それもEnabled有利です。
(多分Visibleだけではなくツールバーの現在位置も記憶して復元しないといけないのかも)