
エクセルvbaでリボンを非表示にして、ブックを最大化して、微調整したいのですが
Workbook_Openイベントで実行すると、シート名が見えない状態になります。
コードはこれです。
Private Sub Workbook_Open()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'リボンを非表示にする
ActiveWindow.WindowState = xlMaximized 'ウィンドウを最大化する
With ActiveWindow
.WindowState = xlNormal
.Top = 0
.Left = 0
.Width = Application.UsableWidth
.Height = Application.UsableHeight ' ウィンドウが使うことのできる範囲の最大限の高さにする
End With
End Sub
ブックを開いた時はシート名が見えないサイズになってしまうのですが
もう一度手動でWorkbook_Openイベントを実行すると、ちゃんとシート名まで表示されます。
なぜ同じコードなのに結果が違うのでしょうか?
横幅に関しては1回目も2回目も同じです。
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
などについても、試してみるといいと思います。(※元に戻す術を確認してから試してください)
ここら辺を弄ってみれば、色々不思議な仕様が見えてくるので、
私が上のように類推した理由が解って貰えるかも、です。
なんかスッキリしないかも知れませんが、私としてはこんなんで限界です。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報