• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UsableHeight シート名が消える)

Excel VBAでリボンを非表示にし、ウィンドウの最大化と微調整を行う方法

このQ&Aのポイント
  • Excel VBAを使用して、シート名が消える問題について質問があります。具体的には、リボンを非表示にし、ブックを最大化し、ウィンドウの微調整を行いたいのですが、Workbook_Openイベントで実行するとシート名が見えない状態になってしまいます。同じコードなのに結果が異なるのはなぜでしょうか?
  • Excel VBAを利用して、リボンを非表示にし、ウィンドウを最大化し、微調整を行いたいと考えています。しかし、Workbook_Openイベントで上記のコードを実行すると、シート名が見えない状態になってしまいます。なぜ同じコードなのに結果が異なるのでしょうか?
  • Excel VBAを使って、リボンを非表示にし、ウィンドウを最大化し、微調整を行いたいです。しかし、上記のコードをWorkbook_Openイベントで実行すると、シート名が見えない状態になってしまいます。同じコードなのに結果が異なる理由が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

#2、cjです。 訂正です。 誤)タスクバー 正)ステータスバー 以上1件、2か所、用語を間違えてしまいました。 失礼しました。

EHHOSINGXEW
質問者

お礼

回答頂きありがとうございました。

その他の回答 (2)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。 こんな感じのことでしょうか? ' ' /// Private Sub Workbook_Open()   Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'リボンを非表示にする '  ActiveWindow.WindowState = xlMaximized 'ウィンドウを最大化する   Application.WindowState = xlMaximized 'アプリケーションのウィンドウを最大化する?   With ActiveWindow     .WindowState = xlNormal     DoEvents  '  タイミングを取る。     DoEvents  '  念の為、もう一回。     .Top = 0     .Left = 0     .Width = Application.UsableWidth     .Height = Application.UsableHeight ' ウィンドウが使うことのできる範囲の最大限の高さにする   End With End Sub ' ' /// > なぜ同じコードなのに結果が違うのでしょうか? > 横幅に関しては1回目も2回目も同じです。 記憶が曖昧なので、確度の低い説明になりますが、 アプリケーション起動直後、ウィンドウサイズを変更する時に 数式バーだったか、タスクバーだったか、 遅れて表示されること が原因なのではないかと考えています。 "2回目"、というより、一旦アプリケーション起動が済んでいれば、 期待通りの結果が得られる筈です。     .WindowState = xlNormal の直後、瞬間的(一時的)に Application.UsableHeightが[数式バーorタスクバー]の分だけ余分に大きな数字を返す、 というような現象(昔からの仕様?)、と、私は考えています。 実行後の実際のActiveWindow.Heightで比較してみましたが、 ほぼ、数式バーの高さ分だけ大きい高さになっています、が、 誤差があるので(誤差=糊代がないということもあり得ないのですが)、 こちらもあまり自信はないのです。 対策としては、今のところ、DoEvents、しか試せていません。 ところで、 #1さんのご回答を見て疑問に思ったのですが、求める結果は、 ' ' /// Private Sub Workbook_Open()   Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'リボンを非表示にする   Application.WindowState = xlMaximized 'アプリケーションのウィンドウを最大化する?   ActiveWindow.WindowState = xlMaximized End Sub ' ' /// ということではないですよね? もし、そちらの方向でシートを大きく表示するのが目的でしたら、 Application.DisplayStatusBar Application.DisplayFormulaBar Application.DisplayFullScreen などについても、試してみるといいと思います。(※元に戻す術を確認してから試してください) ここら辺を弄ってみれば、色々不思議な仕様が見えてくるので、 私が上のように類推した理由が解って貰えるかも、です。 なんかスッキリしないかも知れませんが、私としてはこんなんで限界です。

EHHOSINGXEW
質問者

お礼

回答頂きありがとうございました。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

私ノン環境では、以下でうまくいきました。 Private Sub Workbook_Open() Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'リボンを非表示にする With ActiveWindow .WindowState = xlNormal .Top = 1 .Left = 1 .Width = Application.UsableWidth .Height = Application.UsableHeight ' ウィンドウが使うことのできる範囲の最大限の高さにする End With ActiveWindow.WindowState = xlMaximized End Sub

EHHOSINGXEW
質問者

お礼

回答頂きありがとうございました。