
画像のように特定のファイル(Book1)のみ、開いたときにリボンの非表示、
ウィンドウサイズの固定をしたい場合、どのようにすればよいでしょうか。
Book1のVBAでThisWorkbookに以下のコードを入れると、別のファイルを開いたときに
開いたファイルも同じ設定が有効になってしまうので、回避できる方法があれば
教示頂きたい思います。
Private Sub Workbook_Open()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
With Application
.WindowState = xlNormal '標準
.Width = XXX
.Height = XXX
End With
End Sub

No.1ベストアンサー
- 回答日時:
こんにちは、
>特定のファイル(Book1)のみ、開いたときにリボンの非表示、
>ウィンドウサイズの固定をしたい場合、どのようにすればよいでしょうか。
Application.~で設定するとApplicationの設定を変える事になるのですべてのExcelに影響してしまいます。
なので、リボンに関しては、customUIのxmlファイルでブックのインスタンス時に設定します。
Office Ribbon Editor などのソフトをお持ちであれば、比較的容易ですが、zipを介して行うなどの場合、少し面倒です。
CustomUIの導入方法など少し古いですが、下記を参考にしてください。
https://thom.hateblo.jp/entry/2018/06/13/043244
ちなみに、サイト内のCustomUI.xml は、 Excel2010以降であれば、customUI14.xml としてください。
簡単な設定内容は、
.rels の内容
<Relationship Type="h ttp://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target="/customUI/customUI14.xml"/>
</Relationships> ’現存します
を追加してください。
customUI14.xmlの内容
<customUI xmlns="h ttp://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="true">
<tabs>
<tab idMso="TabHome" visible="false"></tab>
</tabs>
</ribbon>
</customUI>
注意:実際には h ttp: のスペースを消してください。
設定すると、このブックでユーザーはリボンの設定を含め使えません。
(VBAでカスタマイズする事は出来ます)
新規ブックなどでテストしてください。
次にウィンドウサイズの固定ですが やはりApplication.~ではダメなので
WindowsAPIを使います。
この辺りは、OSバージョンやofficeバージョンが不明なのでご自身で調べる必要があります。
一応サンプルを書きますが、(使用目的など不明の為)期待する結果かどうかは、分かりません。
先ず、ThisWorkbook モジュールに
Private Sub Workbook_Open()
flag = True
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
If flag = True Then
Call Module1.Test_Sample(Wn) ’モジュール名は適時変更
flag = False
Else
End If
End Sub
Private Sub Workbook_WindowResize(ByVal Wn As Window)での制御も可能か?
標準モジュールModule1へ
'Win32API
Private Declare Function _
MoveWindow Lib "user32" ( _
ByVal hWnd As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal bRepaint As Long) As Long
Private Declare Function _
SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
ByVal uAction As Long, _
ByVal uParam As Long, _
ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Sub Test_Sample(myWn As Window)
Dim Ret As Long
Dim hWnd As Long
Dim typRect As RECT
Call SystemParametersInfo(48, 0, typRect, 0)
Ret = MoveWindow(myWn.hWnd, typRect.Right - 600, 50, 500, 500, 1)
End Sub
幅500高さ500のwindowが画面上から50の、画面の右側から600に
サイズ(境界線での)変更、移動が共に出来ないWindowが表示されます。
ボタンの表示変更で解けます。
MoveWindowでない方が色々設定できると思いますが、何かと分かり難くなると思いますので
とりあえず。。
No.3
- 回答日時:
リボンの方だけ。
「開く時」のイベントではなく
アクティブ時、非アクティブ時のイベントで制御すればよろしいかと。
Private Sub Workbook_Activate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
Private Sub Workbook_Deactivate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",TRUE)"
End Sub
No.2
- 回答日時:
#1です
入力忘れ
Option Explicit
Dim flag As Boolean ’忘れました
Private Sub Workbook_Open()
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) Excel VBA マクロ 先頭行の固定とオートフィルター設定を全てのシートに適用したいです 1 2022/11/12 15:32
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル:特定のブックのみ、ツールバーの設定をしたい
Excel(エクセル)
-
エクセルVBAのメニューバー&リボンを再表示させる方法について
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
EXCELマクロ 保護されているシートのダイアログを表示させない方法
Visual Basic(VBA)
-
7
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
12
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
13
開いたとき常に同じ大きさ・位置で表示したい
Windows 7
-
14
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
15
エクセルVBAで画面の大きさを取得する方法!
Excel(エクセル)
-
16
Excelの入力規則で2列表示したい
Excel(エクセル)
-
17
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
18
【VBA】Worksheet_changeイベントで特定のキーが押されたときだけ無効にしたい
Visual Basic(VBA)
-
19
UserForm1.Showでエラーになります。
工学
-
20
ExcelVBAで今開いているユーザ情報を取得できますか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MacのExcleですが ”Excelのオプ...
-
ファイル検索ソフト「Locate32」
-
Irvineで登録済みアダルト動画...
-
i_view425jについて
-
秀丸の行番号について
-
特定のファイルのみリボンの非...
-
ハイパーターミナルのEnterがき...
-
RealDownloaderでの保存フォル...
-
Excel ページ設定-ヘッダーの...
-
FFFTPの設定ログは残るもの?
-
受信メールのPDFファイルがワー...
-
携帯からPDF内リンク先へクリッ...
-
PDFファイルを開く前に、開いて...
-
iTunes8でmp3変換
-
Photoshop 画像解像度単位のデ...
-
LaTeX 数式が表示されない
-
秀丸でローカルパスをリンクと...
-
ネットスケープの「ホーム」ペ...
-
Allway Syncの自動同期が出来な...
-
iTunes→『デジカメde!!ムービー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MacのExcleですが ”Excelのオプ...
-
「古いアイテムの整理」が出て...
-
秀丸の行番号について
-
受信メールのPDFファイルがワー...
-
特定のファイルのみリボンの非...
-
サクラエディタの設定項目が保...
-
携帯からPDF内リンク先へクリッ...
-
IrfanViewの画像のみの再生の仕方
-
サクラエディタのgrepのデフォ...
-
エクセルを起動するとグレーな...
-
AUTO CAD は、使いやすいか?...
-
VLCプレイヤーでプレイリストか...
-
Excel ページ設定-ヘッダーの...
-
秀丸エディター カーソル行に色...
-
プロファイルが無視される設定...
-
Word2013を開いたときに、英数...
-
PowerPointのオプションの設定...
-
テキストファイルをPDFでひらい...
-
秀丸でローカルパスをリンクと...
-
PDFをパソコンで閲覧する時に、...
おすすめ情報