返回列表 上一主題 發帖

[發問] Userform最大化(且內容比例自動放大?)

回復 10# GBKEE
表單最大化
  1. Option Explicit
  2. Private Sub UserForm_Initialize()  '表單初始化的程式
  3.     Dim e As Control
  4.     For Each e In Me.Controls
  5.         e.Tag = e.Top & "," & e.Left & "," & e.Width & "," & e.Height & "," & e.Font.Size
  6.     Next
  7.     Form_xlMax
  8. End Sub
  9. Private Sub Form_xlMax() '表單最大化
  10.     Dim xlMax As Double, ylMax As Double, xZoom As Double
  11.     Dim e As Control
  12.     With Application
  13.         .WindowState = xlMaximized
  14.         xlMax = .Width
  15.         ylMax = .Height
  16.     End With
  17.     xZoom = 1
  18.     Do While Width < xlMax
  19.         Width = Width * xZoom
  20.         Height = Height * xZoom
  21.         For Each e In Controls
  22.             With e
  23.                 .Top = .Top * xZoom
  24.                 .Left = .Left * xZoom
  25.                 .Width = .Width * xZoom
  26.                 .Height = .Height * xZoom
  27.                 .Font.Size = .Font.Size * xZoom
  28.                Debug.Print xZoom, .Font.Size
  29.             End With
  30.         Next
  31.         xZoom = xZoom * 1.0000654
  32.     Loop
  33.     Top = 0
  34.     Left = 0
  35. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 PKKO 於 2015-5-19 19:01 編輯

回復 8# bobomi

javascript:;
    感謝大大,我測試過可以自動放大的userform 超酷的~跟網頁一樣自由奔放,但....放大效果不佳,以您的userfrom來放大之後會發現比例怪怪的
我想原因應該是跟妳說的一樣,zoom只能同時放大,無法只調整任何一邊的關係

至於13"電腦的部分,我測試過妳最後的程式碼,跟之前的一樣呢!會超出邊界(本身原本的大小是不會超過的)

附件是我的USERFORM的大小!

Documents.rar (2.29 KB)

USERFORM2

PKKO

TOP

回復 11# GBKEE


    超版大大,我放入表單內使用,並取代USERFORM的所有程式碼,但無論怎麼點滑鼠都無法反映?
PKKO

TOP

回復 13# PKKO

10# 的程式碼
放大: 鍵盤Ctrl 鍵 + 按下左滑鼠鍵
縮小: 鍵盤Ctrl 鍵 + 按下右滑鼠鍵
還原: 鍵盤Shift鍵 +按下滑鼠任一鍵
  1. If Shift = 2 Then           'Ctrl 鍵
  2.         Select Case Button      '滑鼠
  3.             Case 1              '按下左滑鼠鍵。: 放大
  4.                 xZoom = 1.2     '放大 %2
  5.             Case 2              '按下右滑鼠鍵。: 縮小
  6.                 xZoom = 0.8     '縮小 %2
  7.         End Select
  8.        Zoom_UserForm xZoom     '表單縮放程式
  9.     ElseIf Shift = 1 Then       'Shift 鍵 +任一滑鼠按鍵
  10.         Revert_UserForm         '表單還原原本大小
  11.     End If
複製代碼
11#的程式碼
表單開啟自動最大化
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 14# GBKEE


    感謝,已了解使用方式!
PKKO

TOP

UserForm.Zoom3.zip (15.19 KB)

TOP

回復 16# bobomi


    大大,裡面沒有userform = =
PKKO

TOP

回復 8# bobomi


    大大您好,
按照大大您的做法,可以手動拉大比率(大大您已經完成了!),但可否加上一個自動儲存Userform最後的調整狀況,如果沒有記憶,使用者每次都要調整實在辛苦(例如記憶在FormSize這個sheet名稱內),
下次打開始會自動抓取上次調整的大小!
PKKO

TOP

回復 10# GBKEE


    超版大大您好,您的這個方式可以保持表單以及內容比率的完整性,非常實用,也可讓小弟了解到底是如何放大及縮小的
但有沒有辦法可以直接放大
而且放大的比率是以寬或是高,任一邊的極限為極限
避免高已經到極限了,可是寬還沒,導致直接放到最大化之後,高會超過螢幕可視的位置
PKKO

TOP

1.zip (2.71 KB)
最大化時, 控件不會過大

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題