2016-12-16 3 views
0

私は、複数のユーザーが使用できるようにExcelでツールを設計しました。私は自分のモニター上でツールを開くと、画面に完全にフィットします。私は単に範囲にズームすることでこれをやった:誰もがこれを行うためのより良い方法を知っている場合ユーザーの画面アスペクト比を取得するvba excel

Sheets("sliders").Activate 
Range("A1:BA51").Select 
Range("A51").Activate 
ActiveWindow.Zoom = True 

私は思っていました。いくつかのユーザーは、ツールが側面と上部のセクションを切り取ったと言っていますか?私は、彼らのモニターのアスペクト比が私のものと違うからです。

ExcelのVBAを使用してこの種の情報にアクセスする方法はありますか?このような場合には、さまざまな種類の画面のケースを作成できます。

答えて

-1

autofittingのために、私は通常、これを使用する:ワークシート上の

は、あなたが挿入メニューに Go]を表示したいセルの範囲全体を選択し、「名前」を選択し、 名前範囲あなたの「定義」あなたはuはまた、あなたのように、など、すべてのリボンを削除することができ、さらにステップに行くことをwan't場合

Private Sub Workbook_Open() 
range("ResizeRange").select 
ActiveWindow.Zoom = True 
cells(1,1).select 
end sub 

:VBAで 『はThisWorkbook』を選択し、次のコードを貼り付け、 『ResizeRange』すると

を強調した」VEのビジュー同盟国はあなたのスプレッドヒートのみを見ることができます。その後はThisWorkbookでは、次の

の操作を行います。

Sub Workbook_Open() 
Application.EnableEvents = False 
Call masque 
Application.EnableEvents = True 
End Sub 

Sub Workbook_Activate() 
Application.EnableEvents = False 
Call masque 
Application.EnableEvents = True 
End Sub 

Sub Workbook_Deactivate() 
Application.EnableEvents = False 
Call normal 
Application.EnableEvents = True 
End Sub 

Sub Workbook_BeforeClose(Cancel As Boolean) 
Application.EnableEvents = False 
Call normal 
Application.EnableEvents = True 
ThisWorkbook.Saved = True 
End Sub 

のModule1で:

Sub masque() 
Application.ScreenUpdating = False 
Application.EnableEvents = False 
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 
ActiveWindow.DisplayHeadings = False 
ActiveWindow.DisplayGridlines = False 
Application.DisplayFullScreen = True 
Application.DisplayStatusBar = Not Application.DisplayStatusBar 
Application.WindowState = xlMaximized 
ActiveWindow.WindowState = xlMaximized 
Application.DisplayFormulaBar = False 
Application.EnableEvents = True 
Application.ScreenUpdating = True 
End Sub 

モジュール2の場合:各シートで

Sub normal() 
Application.ScreenUpdating = False 
ActiveWindow.View = xlNormalView 
ActiveWindow.DisplayHeadings = True 
ActiveWindow.DisplayGridlines = True 
Application.DisplayStatusBar = True 
ActiveWindow.DisplayHorizontalScrollBar = True 
ActiveWindow.DisplayVerticalScrollBar = True 
Application.DisplayFullScreen = False 
Application.DisplayFormulaBar = True 
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" 
'Curiously, if we put the previous line at the beginning of the module, it  is not taken into account each time ... 
Application.ScreenUpdating = True 
End Sub 

Sub Worksheet_Open() 
Call masque 
End Sub 

Sub Worksheet_Activate() 
Application.ScreenUpdating = False 
Call masque 
Application.ScreenUpdating = True 
End Sub 

これはすべてを削除し、終了時にすべて元に戻すので、Excelファイルを開くと再び正常に見えます。

workheet_activateとworksheet_openに次の行を追加して、スクロールせずに情報が常に画面に表示されるようにすることができます。

me.scrollarea = resizerange 
1

これを試してみてください:完璧に感謝作品

Declare Function GetSystemMetrics32 Lib "User32" _ 
    Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long 

Sub FindResolution() 
Dim w As Long, h As Long 
    w = GetSystemMetrics32(0) ' width in pixels 
    h = GetSystemMetrics32(1) ' height in pixels 
    MsgBox w & Chr(10) & h, vbOKOnly + vbInformation, "Monitor Size (width x height)" 


End Sub 
+1

を!あなたが64ビットユーザである場合、これを使用する他の人にとっては関数宣言で "PtrSafe"を覚えておいてください。 –

関連する問題