我的VBA宏正在格式化USB驱动器,然后再在其上复制数据。
整个过程已经相当好了。
因此,问题在于Windows格式工具窗口正在屏幕左上角的某个地方打开,而不是像我想要的那样在屏幕中间居中且漂亮。
那么有可能将它们居中打开吗?如果没有,那么以后有什么东西可以居中吗?
这是窗口启动的方式:
Private Sub format_drive(selected_volume)
Dim Result&, Drive&
varray = Split(selected_volume, ":")
Drive = Asc(varray(0)) - 65
Result = SHFormatDrive(0, Drive, SHFD_CAPACITY_DEFAULT, SHFD_FORMAT_QUICK)
End Sub
答案 0 :(得分:-1)
如果它是一个宏,则必须有一个父应用程序,很可能是Excel。从Excel下启动用户窗体时,该窗体将放置在活动窗口中(可以最大化)。如果要更改表格的位置,请根据需要选择以下示例:
Private Sub UserForm_initialize()
Me.Show vbModeless
With Me ' this must come after .Show
.Top = (Abs(Application.Top) + Application.Height - .Height)/2
.Left = (Abs(Application.Left) + ActiveWindow.Width - .Width)/2
End With
Application.Top
可以否定,可以应用Abs()
来处理。它不是最正确的,但是很安全。或者,您可以使用ActiveWindows
:
With Me
.Top = (Application.ActiveWindow.Height - .Height)/2
.Left = (Application.ActiveWindow.Width - .Width)/2
End With
在高级级别上,您可以使用GetDeviceCaps(HDC hdc, HORZRES)
和GetDeviceCaps(HDC hdc, VERTRES)
来获取屏幕的像素数。详情请参见:GetDeviceCaps