如何最大化由 VBA 使用 SHDocVw.InternetExplorer 命令创建的 IE window?
How can I maximize an IE window created by VBA with SHDocVw.InternetExplorer command?
正如标题所说,我正在尝试最大化使用以下命令创建的 Internet Explorer window:
Set ie = New SHDocVw.InternetExplorer
而不是:
Set ie = CreateObject("InternetExplorer.Application")
完整代码如下:
Sub wpieautologin()
Dim ie As SHDocVw.InternetExplorer
Dim NOME_EMPRESA, CNPJ, CPF, COD_ACESSO As String
Dim Lookup_Range As Range
Set ie = New SHDocVw.InternetExplorer
ie.Visible = False
ie.Navigate "http://www8.receita.fazenda.gov.br/simplesnacional/controleacesso/autentica.aspx?id=6"
NOME_EMPRESA = Range("B8").Value
Set Lookup_Range = Range("B12:E500")
CNPJ = Application.WorksheetFunction.VLookup(NOME_EMPRESA, Lookup_Range, 2, False)
CPF = Application.WorksheetFunction.VLookup(NOME_EMPRESA, Lookup_Range, 3, False)
COD_ACESSO = Application.WorksheetFunction.VLookup(NOME_EMPRESA, Lookup_Range, 4, False)
Do
Loop Until ie.readystate = 4
Call ie.Document.GetElementByID("ctl00_ContentPlaceHolder_txtCNPJ").SetAttribute("value", CNPJ)
Call ie.Document.GetElementByID("ctl00_ContentPlaceHolder_txtCPFResponsavel").SetAttribute("value", CPF)
Call ie.Document.GetElementByID("ctl00_ContentPlaceHolder_txtCodigoAcesso").SetAttribute("value", COD_ACESSO)
ie.Visible = True
>'What should I write here to maximize my IE Window?
>'Already tried a few solutions, but they works only when the IE is created by the command
>'Set ie = CreateObject("InternetExplorer.Application")
#INSERT COMMAND TO MAXIMIZE WINDOW HERE
End Sub
那么,我该如何实现呢?
对于 Internet 控制,没有固有的 Window
属性。您需要使用 WinAPI。
此代码有效:
'/ Win API declaration
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdSHow As Long) As Long
Const SW_SHOWMAXIMIZED = 3
Sub wpieautologin()
Dim ie As SHDocVw.InternetExplorer
Dim NOME_EMPRESA, CNPJ, CPF, COD_ACESSO As String
Dim Lookup_Range As Range
Set ie = New SHDocVw.InternetExplorer
ie.Visible = False
ie.Navigate "http://www8.receita.fazenda.gov.br/simplesnacional/controleacesso/autentica.aspx?id=6"
'// rest of your code....
'/ Win API to maximize it.
'/ Visible prop not required anymore
ShowWindow ie.hwnd, SW_SHOWMAXIMIZED
End Sub
检查其他 window 状态:http://www.techrepublic.com/blog/10-things/10-plus-of-my-favorite-windows-api-functions-to-use-in-office-applications/
也可以这样做。
ie.FullScreen = True
或
ie.TheaterMode = True
那你就不用声明函数了。
正如标题所说,我正在尝试最大化使用以下命令创建的 Internet Explorer window:
Set ie = New SHDocVw.InternetExplorer
而不是:
Set ie = CreateObject("InternetExplorer.Application")
完整代码如下:
Sub wpieautologin()
Dim ie As SHDocVw.InternetExplorer
Dim NOME_EMPRESA, CNPJ, CPF, COD_ACESSO As String
Dim Lookup_Range As Range
Set ie = New SHDocVw.InternetExplorer
ie.Visible = False
ie.Navigate "http://www8.receita.fazenda.gov.br/simplesnacional/controleacesso/autentica.aspx?id=6"
NOME_EMPRESA = Range("B8").Value
Set Lookup_Range = Range("B12:E500")
CNPJ = Application.WorksheetFunction.VLookup(NOME_EMPRESA, Lookup_Range, 2, False)
CPF = Application.WorksheetFunction.VLookup(NOME_EMPRESA, Lookup_Range, 3, False)
COD_ACESSO = Application.WorksheetFunction.VLookup(NOME_EMPRESA, Lookup_Range, 4, False)
Do
Loop Until ie.readystate = 4
Call ie.Document.GetElementByID("ctl00_ContentPlaceHolder_txtCNPJ").SetAttribute("value", CNPJ)
Call ie.Document.GetElementByID("ctl00_ContentPlaceHolder_txtCPFResponsavel").SetAttribute("value", CPF)
Call ie.Document.GetElementByID("ctl00_ContentPlaceHolder_txtCodigoAcesso").SetAttribute("value", COD_ACESSO)
ie.Visible = True
>'What should I write here to maximize my IE Window?
>'Already tried a few solutions, but they works only when the IE is created by the command
>'Set ie = CreateObject("InternetExplorer.Application")
#INSERT COMMAND TO MAXIMIZE WINDOW HERE
End Sub
那么,我该如何实现呢?
对于 Internet 控制,没有固有的 Window
属性。您需要使用 WinAPI。
此代码有效:
'/ Win API declaration
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdSHow As Long) As Long
Const SW_SHOWMAXIMIZED = 3
Sub wpieautologin()
Dim ie As SHDocVw.InternetExplorer
Dim NOME_EMPRESA, CNPJ, CPF, COD_ACESSO As String
Dim Lookup_Range As Range
Set ie = New SHDocVw.InternetExplorer
ie.Visible = False
ie.Navigate "http://www8.receita.fazenda.gov.br/simplesnacional/controleacesso/autentica.aspx?id=6"
'// rest of your code....
'/ Win API to maximize it.
'/ Visible prop not required anymore
ShowWindow ie.hwnd, SW_SHOWMAXIMIZED
End Sub
检查其他 window 状态:http://www.techrepublic.com/blog/10-things/10-plus-of-my-favorite-windows-api-functions-to-use-in-office-applications/
也可以这样做。
ie.FullScreen = True
或
ie.TheaterMode = True
那你就不用声明函数了。