1. vb窗口关闭的代码
在该按纽的单击事件编写代码:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickMe.Close()EndSub在VB6的时候,使用:Unloadme在VB.NET里使用:Me.Close()
2. vb 关闭窗口
1、先打开Visualbasic6.0软件并新建一个工程并在图片中小框框处找到选项“Picture”。
2、再点击红色小框框里面有三个点的图标进入背景图片选择。
3、然后就会弹出背景图片选择窗口。
4、选择自己需要显示的图片后点击打开即可。
5、可以看到窗体里面出现了背景图片。
6、点击“启动”运行好的最后效果。由此设置完成。
3. vbs窗口怎么关闭
Run WshShell 对象在新过程中运行程序。object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 参数object WshShell 对象。 strCommand 表示要运行的命令行的字符串值。必须包括要传递到可执行文件的所有参数。 intWindowStyle 可选。表示程序窗口外观的整数值。请注意,并非所有程序都使用此信息。 bWaitOnReturn 可选。布尔值,表示在继续执行脚本中的下一条语句之前,脚本是否等待执行完程序。如果设为 true,则在执行完程序后才执行脚本,Run 方法返回由程序返回的任何错误代码。如果设为 false(默认值),则 Run 方法将自动在启动程序后立即返回 0(不是错误代码)。 说明Run 方法返回一个整数。Run 方法启动在新 Windows 进程中运行的程序。可以让脚本等到程序执行完后再继续执行。这允许您同步运行脚本和程序。strCommand 参数内的环境变量自动扩展。如果某个文件类型已正确注册到某个程序中,则对该类型的文件调用 Run 方法时将执行该程序。例如,如果您的计算机系统中装有 Word,则对 *.doc 文件调用 Run 方法时将启动 Word 并加载该文档。下表列出了 intWindowStyle 的可用设置。intWindowStyle 说明 0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。 示例 1下面的 VBScript 代码用记事本打开当前运行脚本的副本。Set WshShell = WScript.CreateObject("WScript.Shell")WshShell.Run "%windir%\notepad " & WScript.ScriptFullName下面的 VBScript 代码与上述代码完成的操作相同,不同之处在于,它指定窗口类型,等待用户关闭记事本,关闭记事本时保存从记事本返回的错误代码。Set WshShell = WScript.CreateObject("WScript.Shell")Return = WshShell.Run("notepad " & WScript.ScriptFullName, 1, true)示例 2下面的 VBScript 代码打开一个命令窗口,将路径改为 C:\,并执行 DIR 命令。Dim oShellSet oShell = WScript.CreateObject ("WSCript.shell")oShell.run "cmd /K CD C:\ & Dir"Set oShell = Nothing
4. vbs关不掉的窗口代码
1.首先你可以利用键盘上的快捷键Ctrl+Alt+Delete打开任务管理器。当然也可以通过鼠标移动到任务栏中,点击右键就会出现也会任务管理器。
2.打开任务管理器之后,我们就会看到你电脑中所有的软件进程。
3.这时候我们就要找到相对应vbs的进程。wbs的名称一般是是wscript.exe。所以我们只需要找到这个进程。
4.接下来只需要点击wscript.exe进程,然后点击右下角的结束进程。
5.点击结束进程后,任务栏里的vbs窗口也随之消失了。
5. vb里关闭某个程序代码
单击窗口右上角“关闭”按钮
2.双击Excel窗口左上角的程序图标
3.使用快捷键 “ALT+F4”
这个快捷键针对当前的窗口不同可退出不同的程序,当前屏幕窗口是Excel,按ALT+F4退出Excel程序,当前屏幕是Windows窗口,将关闭窗口;当前屏幕如显示是Windows的桌面将会弹出询问窗口,是否关闭电脑。
4.单击窗口左上角Excel图标,下拉菜单中选择“关闭”
6. 在vb中不能关闭的窗口是什么
1、首先打开visual basic,进入到操作界面中。
2、然后在操作首页中,找到主菜单栏上面的“视图”设置选项,鼠标左键单击该选项。3、然后就可以看到弹出一个菜单栏窗口,找到“立即窗口”,鼠标左键单击“立即窗口”。4、或者按下快捷键“Ctrl+G”,也可以打开立即窗口,结果如下:
7. vbs代码关闭
vbs可以调用BAT的语句来关闭进程,例如:DimWshShell,FileObj,TextObj,OpenNoSetWshShell=WScript.CreateObject("WScript.Shell")WshShell.Run"taskkill/imnotepad.exe"
8. vb关闭程序窗体的代码
一、增加模块
1.增加一个模块,命名为“我的模块”
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "我的模块"
系统常量vbext_ct_StdModule=1
2.增加一个类模块,命名为“我的类”
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name = "我的类"
vbext_ct_ClassModule=2
3.增加一个窗体,命名为“我的窗体”
ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "我的窗体"
vbext_ct_MSForm=3
二、删除模块
1.删除“模块1”
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("模块1")
2.删除窗体“UserForm1”
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("UserForm1")
3.删除类模块“类1”
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("类1")
4.删除所有的窗体
Sub RmvForms()
Dim vbCmp As VBComponent
For Each vbCmp In ThisWorkbook.VBProject.VBComponents
If vbCmp.Type = vbext_ct_MSForm Then ThisWorkbook.VBProject.VBComponents.Remove vbCmp
Next vbCmp
End Sub
相关:
工作表和ThisWorkbook的模块类型为vbext_ct_Document=100
三、增加代码
1.在“模块1”中插入代码
如果需要在“Sheet1”、“Thisworkbook”、或“Userform1”中操作,用只需将下面的“模块1”换成相应的名称即可。
方法1:
在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。
Sub AddCode1()
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.AddFromString _
"sub aTest()" & Chr(10) & _
"msgbox ""Hello""" & Chr(10) & _
"end sub"
End Sub
方法2:
在模块指定行处增加代码,原代码后移。增加代码不理会和判断插入处代码的内容。当指定行大于最后一行行号时,在最后一行的后面插入。
Sub AddCode2()
With ThisWorkbook.VBProject.VBComponents("模块1").CodeModule
.InsertLines 1, "sub aTest()"
.InsertLines 2, "msgbox ""Hello"""
.InsertLines 3, "end sub"
End With
End Sub
相关语句:
(1)“模块1”中代码总行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfLines
(2)“模块1”中代码公共声明部分的行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfDeclarationLines
(3)显示“模块1”中第1行起的3行代码内容:
Sub ShowCodes()
Dim s$
s = ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.Lines(1, 3)
Debug.Print s
End Sub
(4)过程aTest的起始行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcBodyLine("aTest", vbext_pk_Proc)
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcStartLine("aTest", 0)
系统常量vbext_pk_Proc=0
二者的区别是ProcBodyLine返回sub aTest或Function aTest所在的行号,如果sub前面有空行,ProcStartLine返回空行的行号。
(5)过程aTest的总行数:
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcCountLines("aTest", vbext_pk_Proc)
2.建立事件过程
建立事件过程除了使用上面的代码如下面的AddEventsCode1外,还可以使用CreateEventProc方法,如AddEventsCode2所示。
一般方法:
Sub AddEventsCode1()
ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromString _
"Private Sub Workbook_Open()" & Chr(13) & _
"MsgBox ""Hello""" & Chr(13) & _
"End Sub"
End Sub
'CreateEventProc方法:
Sub AddEventsCode2()
Dim i%
With ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule
i = .CreateEventProc("SelectionChange", "Worksheet") + 1
.InsertLines i, "Msgbox ""Hello"""
End With
End Sub
上面CreateEventProc的两个参数建立的事件过程为Worksheet_SelectionChange,分别是下划线两边的内容。
相关:
测试是否存在SelectionChange事件
下面函数测试模块modulname是否存在过程subname,如果存在,则返回起始行号,否则返回0。
debug.print HasSub("Worksheet_SelectionChange","Sheet1")
Function HasSub(ByVal subname As String, ByVal modulname As String) As Long
On Error Resume Next
Dim i&
i = ThisWorkbook.VBProject.VBComponents(modulname).CodeModule.ProcBodyLine(subname, 0)
If Err.Number = 35 Then
Err.Clear
HasSub = 0
Else
HasSub = i
End If
End Function
如果存在,则返回起始行号,否则返回0。
四、删除代码
1.删除Sheet1中第2行起的三行代码:
如果只删除1行代码,第二个参数可省略。
Sub DelCodes()
ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule.DeleteLines 2, 3
End Sub
2.删除“模块1”的所有代码:
Sub DelCodes()
With ThisWorkbook.VBProject.VBComponents("模块1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End Sub
3.删除过程aTest:
Sub DelCodes()
With ThisWorkbook.VBProject.VBComponents("模块1").CodeModule
.DeleteLines .ProcStartLine("aTest", 0), .ProcCountLines("aTest", 0)
End With
End Sub
4.将“模块1”的第5行代码替换为“x=3”
ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ReplaceLine 5, "x=3"
五、引用项目
1.增加引用
ThisWorkbook.VBProject.References.AddFromFile "C:\Windows\System32\asctrls.ocx"
2.取消引用
ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("ASControls")
这里ASControls是引用的名字,即后面的rf.Name。
3.显示当前所有引用
Sub ShowRefs()
Dim rf As VBIDE.Reference
For Each rf In ThisWorkbook.VBProject.References
Debug.Print rf.Name, rf.FullPath
Next
End Sub
六、信任及密码
上面所有操作都基于这样的前题:
(1)EXCEL已设置:
工具(T)-宏(M)-安全性(M)-可靠发行商(T)-勾选了“信任对于VB项目的访问(V)”
(2)工程没有设置密码
如果不能满足它们中的任何一个,代码运行就会出错。因为微软不希望我们对VBProject进行操作,我们无从知道这种操作的直接方法被藏到了什么地方。幸运的是,微软在关起正门的同时,还是为我们留了一道门:SendKeys。借助于这道后门和“错误陷阱”,我们仍可以完成我们所要做的事。
下面给出绕开这两道门的示意代码,如果你要运行它们,请记得切回EXCEL主界面,而不是在VBE中直接运行。
1.信任对于VB项目的访问
Sub SetAllowableVbe()
On Error Resume Next
Dim Chgset As Boolean
'陷阱测试,VBProject.Protection在这儿并无实际的意义
Debug.Print ThisWorkbook.VBProject.Protection
If Err.Number = 1004 Then
Err.Clear
Application.SendKeys "%TMS%T%V{ENTER}"
Chgset = True
DoEvents
End If
'要执行的操作....
'.....
'操作完成后还原操作前的状态
If Chgset Then Application.SendKeys "%TMS%T%V{ENTER}"
End Sub
2.操作密码工程
Sub AllowPass()
Dim pw$
pw = "Password"
If ThisWorkbook.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars(1).Controls("工具(T)").Controls("VBAProject 属性(&E)...").Execute
Application.SendKeys pw & "{ENTER}{ENTER}"
DoEvents
End If
'要执行的操作….
'.....
End Sub
Protection属性返回工程的受保护状态,vbext_pp_locked(1)为受保护,vbext_pp_none(0)表示没有保护。
- 相关评论
- 我要评论
-