• 締切済み

エクセルのスクロールバー

エクセルで「ツール」>「オプション」>「表示」で、各種の表示の設定を変更できますが、スクロールバーだけは当該シートだけじゃなくそのブックの全てのシートに適用されてしまいます。 一部のシートだけスクロールバーを表示しない方法があるんでしょうか。その方法があればご指導ください。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

エクセルのVBAの解説書やヘルプによると、 DisplayHorizontalScrollBar はWINDOWオブジェクトに対しての、プロパテイです。 「これはウインドウ内の水平スクロールバーの・・・」 となっています。 DisplayScrollBarと言うのもありますが、こちらはApplication即ちエクセルに対してのプロパテイです。 こちらは「全てのブックのスクロールバー・・」となっています。 「当該シートだけじゃなく」はそういう意味です。 これらのプロパティのオブジェクトが何かが決定します。 あるシートだけのスクロールバーを出さないなら 例えば問題のシートがSheet4として、 Sheet4にコマンドボタンを1つ貼りつけ、ダブルクリック するとVBE画面になるので Private Sub CommandButton1_Click() ActiveWindow.DisplayHorizontalScrollBar = False End Sub を貼りつける。 そしてその下に Private Sub Worksheet_Deactivate() ActiveWindow.DisplayHorizontalScrollBar = True End Sub を貼りつける。 デザインモードを脱して、Sheet4でボタンをクリックすると水平スクロールバーは消える。 他のシートに移ると他のシートの水平スクロールバーは現れる。Sheet4に戻っても水平スクロールバーは現れるので ボタンをクリックして消す。

miwaki
質問者

お礼

ご指導ありがとうございます。マクロは自分でいろいろ作って楽しんでいます。しかし今回の疑問は、マクロを使わずツール>オプション>表示 から他の例えば行列番号や0値のように、簡単にそのときアクティブなシートのスクロールバーだけが消せないかと思ったんですが無理でしょうか。

回答No.1

ExcelVBAをご存知でしょうか。 以下は 対象のシートに対して水平スクロールバーを表示 対象以外のシートに対して水平スクロールバーを非表示にするVBAです。 対象のシートに貼り付けてください。 '----------------------------------ここから 'シートが表示される時 Private Sub Worksheet_Activate() ActiveWindow.DisplayHorizontalScrollBar = True End Sub '別シートに移動した時 Private Sub Worksheet_Deactivate() ActiveWindow.DisplayHorizontalScrollBar = False End Sub '----------------------------------ここまで ちなみに水平スクロールバーの非表示は ActiveWindow.DisplayHorizontalScrollBar = False です。

miwaki
質問者

お礼

ご指導ありがとうございます。マクロは自分でいろいろ作って楽しんでいます。しかし今回の疑問は、マクロを使わずツール>オプション>表示 から他の例えば行列番号や0値のように、簡単にそのときアクティブなシートのスクロールバーだけが消せないかと思ったんですが無理でしょうか。

関連するQ&A

専門家に質問してみよう