Excelノート 3-1 画面

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

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

画面を元に戻す
Sub Ending()
  On Error Resume Next
  Application.CommandBars("newMenubar").Visible = False
  Application.CommandBars("newMenubar").Delete
  With ActiveWindow
    .DisplayGridlines = True
    .DisplayHeadings = True
    .DisplayOutline = True
    .DisplayHorizontalScrollBar = True
    .DisplayWorkbookTabs = True
  End With
  With Application
    .DisplayFullScreen = False
    .DisplayFormulaBar = True
    .DisplayStatusBar = True
  End With
End Sub

このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

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)標準モジュールにあります。

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

このページのTOPへ

 

 

inserted by FC2 system