タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらのお願いをご覧になってください。
1 右上の_□×ボタンを非表示にするには
2 エクセルを隠す方法
3 ウィンドウ枠の固定と解除
4 マクロの動きを見せたくない
5 画面全体をセル領域にするには
6 シートを開いたとき、常に今日の日付の入力されたセルを端に表示するには?
7 Excelを最小化するには
8 Excelを最大化するには
1 | 右上の_□×ボタンを非表示にするには http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200101/01010029.txt 「画面制御するには?」 【VBAラウンジ】 |
タイトルバーの右端の最大化・最小化・閉じる等のボタンを消すと右クリックも使えなくなります。 Private Const GWL_STYLE = (-16) Private Const WS_SYSMENU = &H80000 Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" _ (ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" _ (ByVal hWnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Declare Function GetActiveWindow Lib "user32" () As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long Public Sub HideSysMenu() Dim Ret As Long Dim hWnd As Long Dim Wnd_STYLE As Long hWnd = GetActiveWindow() Wnd_STYLE = GetWindowLong(hWnd, GWL_STYLE) Wnd_STYLE = Wnd_STYLE And (Not WS_SYSMENU) Ret = SetWindowLong(hWnd, GWL_STYLE, Wnd_STYLE) Ret = DrawMenuBar(hWnd) End Sub Public Sub RestoreSysMenu() Dim Ret As Long Dim hWnd As Long Dim Wnd_STYLE As Long hWnd = GetActiveWindow() Wnd_STYLE = GetWindowLong(hWnd, GWL_STYLE) Wnd_STYLE = Wnd_STYLE Or WS_SYSMENU Ret = SetWindowLong(hWnd, GWL_STYLE, Wnd_STYLE) Ret = DrawMenuBar(hWnd) End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 HideSysMenu でボタン削除、RestoreSysMenu で復活します。 |
|
ブックの保護で、シートの_□×ボタンのみを非表示にします。 Sub test1() ThisWorkbook.Protect Windows:=True End Sub これで、元に戻ります Sub test2() ThisWorkbook.Protect Windows:=False End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
2 | エクセルを隠す方法 |
Application
オブジェクトの Visible プロパティの設定を False に設定すると Excel が非表示になります。 Sub Test() Application.Visible = False 'Excel を見えなくする Application.Wait Now() + TimeValue("00:00:03") '3秒間待機 Application.Visible = True '復帰する End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
3 | ウィンドウ枠の固定と解除 |
ウインドウ枠の固定(指定行をすべて選択しているため最後にA1を選択) Sub test() Rows("2:2").Select ActiveWindow.FreezePanes = True Range("A1").Activate End Sub ウインドウ枠の解除 Sub test() ActiveWindow.FreezePanes = False End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
4 | マクロの動きを見せたくない・・・ http://www.keep-on.com/~excelyou/2000lng4/200007/00070177.txt 「セルチェック時の処理を表示されなくするには??」 【VBA】 |
Application.ScreenUpdating
= False とコードの最初に書けばOKです。 また動きを見せたい場合は Application.ScreenUpdating = True |
|
5 | 画面全体をセル領域にするには |
画面全体をセル領域にするには Sub Opening() With ActiveWindow .DisplayGridlines = False .DisplayHeadings = False .DisplayOutline = False .DisplayHorizontalScrollBar = False .DisplayWorkbookTabs = False End With With Application .DisplayFullScreen = True .DisplayFormulaBar = False .DisplayStatusBar = False End With Application.CommandBars("Full Screen").Visible = False Set oldMbar = CommandBars.ActiveMenuBar Set newMbar = CommandBars.Add(Name:="newMenubar", Position:=msoBarFloating, MenuBar:=True, Temporary:=True) Set newMenu = newMbar.Controls.Add(Type:=msoControlButton, Temporary:=True) newMenu.Caption = "終了" newMenu.Style = msoButtonCaption newMenu.OnAction = "Ending" newMbar.Visible = True End Sub 画面を元に戻す |
|
6 | シートを開いたとき、常に今日の日付の入力されたセルを端に表示するには? |
シートを開く都度、1行目を検索し、今日の日付のセルを左端に表示します。 Private Sub Worksheet_Activate() Dim MyD As Range Set MyD = Rows(1).Find(What:=Date) '1行目で今日の日付が入力されたセルを変数に格納 If Not MyD Is Nothing Then '今日の日付のセルがあれば ActiveWindow.ScrollColumn = MyD.Column '今日の日付の入ったセルの列を、左端にする Set MyD = Nothing End If End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|
シートを開く都度、1列目を検索し、今日の日付のセルを上端に表示します。 Private Sub Worksheet_Activate() Dim MyD As Range Set MyD = Columns(3).Find(What:=Date) '1列目で今日の日付が入力されたセルを変数に格納 If Not MyD Is Nothing Then '今日の日付のセルがあれば ActiveWindow.ScrollRow = MyD.Row '今日の日付の入ったセルの行を、上端にする Set MyD = Nothing End If End Sub このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。 |
|
7 | Excelを最小化するには |
Sub
test() Application.WindowState = xlMinimized End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |
|
8 | Excelを最大化するには |
Sub
test() Application.WindowState = xlMaximized End Sub このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 |