Avatar billede fagpoler Novice
16. januar 2006 - 13:11 Der er 7 kommentarer og
1 løsning

centreret vindue

Når man bruger følgende koder skifter vinduet størelse, men øverst venstre hjørne bliver samme sted på skærmen. Jeg vil gerne at vinduet altid er centreret, både på tværs og lodret.
Er det mugligt?

Sub lille()
Application.ScreenUpdating = False

    Application.DisplayFullScreen = False
    Application.WindowState = xlNormal
    Application.Width = 500
    Application.Height = 300

End Sub
Sub stor()
Application.ScreenUpdating = False

    Application.DisplayFullScreen = False
    Application.WindowState = xlNormal
    Application.Width = 800
    Application.Height = 600

End Sub
Avatar billede jkrons Professor
16. januar 2006 - 17:41 #1
Jeg kender ikke en metode, der cenrerer vinduet, men du kan placere venstre kant med

Application.Left = 600

og øverste kant med

Application.Left = 600


Så kan du pørve dig frem til det passer.
Avatar billede fagpoler Novice
16. januar 2006 - 19:17 #2
Desværre dur det ikke, fordi programmet skal køre på flere maskiner med skærmopløsninger jeg ikke kender.
Avatar billede jkrons Professor
16. januar 2006 - 19:19 #3
Så hjar desværre ikke nogen gode idéer - bortset fra at du evt med et api kan program kan teste skærmopløsningen og så sætte antal pixels i forhold til det.
Avatar billede bak Forsker
17. januar 2006 - 23:21 #4
prøv at køre denne makro (xl2000 -> )
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _
    ByVal nIndex As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
    ByVal hdc As Long) As Long

Const HORZRES = 8
Const VERTRES = 10

Function ScreenResolution()
  Dim lRval As Long
  Dim lDc As Long
  Dim lHSize As Long
  Dim lVSize As Long
  lDc = GetDC(0&)
  lHSize = GetDeviceCaps(lDc, HORZRES)
  lVSize = GetDeviceCaps(lDc, VERTRES)
  lRval = ReleaseDC(0, lDc)
  ScreenResolution = lHSize & "x" & lVSize
End Function

Sub test()

Dim lExcelVandret As Long
Dim lExcelLodret As Long
Dim vScreenVandret
Dim vScreenLodret
Dim temp
temp = Split(ScreenResolution(), "x")
lExcelVandret = Application.Width / 2
lExcelLodret = Application.Height / 2
vScreenVandret = (CLng(temp(0)) * 0.75) / 2
vScreenLodret = (CLng(temp(1)) * 0.75) / 2
Application.Left = vScreenVandret - lExcelVandret
Application.Top = vScreenLodret - lExcelLodret

End Sub
Avatar billede bak Forsker
17. januar 2006 - 23:30 #5
tror din gamle xl95 kan klare denne

Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _
                                            ByVal nIndex As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
                                        ByVal hdc As Long) As Long

Const HORZRES = 8
Const VERTRES = 10

Function ScreenResolution()
Dim lRval                  As Long
Dim lDc                    As Long
Dim lHSize                As Long
Dim lVSize                As Long
  lDc = GetDC(0&)
  lHSize = GetDeviceCaps(lDc, HORZRES)
  lVSize = GetDeviceCaps(lDc, VERTRES)
  lRval = ReleaseDC(0, lDc)
  ScreenResolution = lHSize & "x" & lVSize
End Function

Sub test()

Dim lExcelVandret          As Long
Dim lExcelLodret          As Long
Dim vScreenVandret        As Long
Dim vScreenLodret          As Long
Dim temp
  temp = ScreenResolution()
  lExcelVandret = Application.Width / 2
  lExcelLodret = Application.Height / 2
  vScreenVandret = (CLng(Left(temp, InStr(1, temp, "x") - 1)) * 0.75) / 2
  vScreenLodret = (CLng(Right(temp, Len(temp) - InStr(1, temp, "x"))) * 0.75) / 2
  Application.Left = vScreenVandret - lExcelVandret
  Application.Top = vScreenLodret - lExcelLodret

End Sub
Avatar billede fagpoler Novice
18. januar 2006 - 00:24 #6
Ja den sidste virker i Excel 95. Men ingen af dem kan jeg få til at virke i Excel 2003. Tusind tak Bak, hvis du ligger et svar, får du dine point
Avatar billede bak Forsker
18. januar 2006 - 00:40 #7
virker fint i xl2003 ved mig. Har du slået makroer til :-)
Avatar billede fagpoler Novice
18. januar 2006 - 08:34 #8
Jeg har prøvet igen, jag havde ikke lagt koden ind i et nyt modul, nu virker det tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester