VB打印和打印预览功能
- 格式:docx
- 大小:31.76 KB
- 文档页数:4
VB打印条码极简单的方法公司接到一个医院病案的软件升级改造任务,在客户的程序中增加打印条码功能,因为客户的程序是VB开发的,因为客户提出需要自行调整打印参数等,一开始就调用word来打印,文字等信息都能够正常打印出,打印参数也能够调整,打印效果很好,但是打印的条码不能识别;于是寻求万能的Internet,搜索后发现网上的许多资料都是于code39为例,要不就是复杂,使用code39的条码原理,使用画图控件画图来实现;要不就是看不懂,不能实现;要不就是很简单,也下载了相关的代码,也有在word中调用barcode控件,但是我一直到没有找到可行或者说看明白的(代码都是没有注释的),也下载多个代码,但是使用barcode在word打印的都没有成功,最后在绿竹小龙的博客中找到可行的方法,并且是说的很明白的(有些细节不详,需要认真思考后才明白!),也是使用mocrosoft的barcode控件,打印form,在这总结了我的经验,给大家参考,避免大家走弯路,在这里特别感谢绿竹小龙,也感谢各位的无私奉献,大家如果不明白可以****************联系。
1、注册mocrosoft的barcode控件,网上可以找到并下载;2、使用新form来显示打印的内容,调整form的大小与打印纸的大小一样3、添加picture控件,为什么要使用picture控件,是在打印后发现,没有picture控件打印的效果很差,字体看不清;在picture控件上添加barcode的控件,在picture控件上添加barcode的控件,STYLE属性控制条形码的类形,当值为6时为CODE39码(仅包含最简单的数值和字符,零售流通领域常用),当值为7时为CODE128码(字符比较齐全,目前比较通用),结合客户的要求,编程中使用CODE128码4、添加其他的需要打印的控件,设置好字体等,5、激活from时将需要打印的内容赋值给对应控件,6、等待1秒后(因为picture控件的关系,赋值后马上打印经常会出现空白内容)7、打印form8、关闭form具体的代码见下:使用条码机打印,条码纸规格是6cm*6cm打印的内容有住院号、住院号+住院次数的条码、姓名、性别、出院日期、入院日期、出院科室所以form的内容是:picture控件、text控件、label控件的背景色设为与条码纸一样的颜色(白色),条码是用barcode控件,其他使用text控件。
打印设置打印预览和预览控制器的实例效果图1:效果图2:提示:调试环境为vs2005 + windows2003 / windows2008 / xp / vista 代码如下:Public Class PrintFormDim pageset As Printing.PageSettings = New Printing.PageSettings()Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.ClickPageSetupDialog1.Document = PrintDocument1 ''设置Document属性=文档对象或者与PageSettings类关联就可以使用该控件PageSetupDialog1.AllowMargins = TruePageSetupDialog1.PageSettings = PrintDocument1.DefaultPageSettingsDim re As DialogResult = PageSetupDialog1.ShowDialog()If re = Windows.Forms.DialogResult.OK Thenpageset = PageSetupDialog1.PageSettingsEnd IfEnd SubPrivate Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e AsSystem.Drawing.Printing.PrintPageEventArgs)Dim mypen As Pen = New Pen(Color.Blue, 2)PrintDocument1.DefaultPageSettings = pagesete.Graphics.DrawString(RichTextBox1.Text, New Font("黑体", 15), mypen.Brush, 10, 10)End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton3.ClickPrintDialog1.Document = PrintDocument1PrintDialog1.PrinterSettings.Copies = 5 ''打印的份数PrintDialog1.PrinterSettings.FromPage = 1 ''第一页的页码PrintDialog1.PrinterSettings.ToPage = 5 ''最后一页页码Dim re As DialogResult = PrintDialog1.ShowDialog()If re = Windows.Forms.DialogResult.OK ThenAddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPagePrintDocument1.Print()End IfEnd Sub '更多.net源码和教程,来自[乐博网]Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton4.ClickPrintPreviewDialog1.Document = PrintDocument1AddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPagePrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0PrintPreviewDialog1.WindowState = FormWindowState.NormalPrintPreviewDialog1.ShowDialog()End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickDim PrintPreviewControl1 As PrintPreviewControl = New PrintPreviewControl = "PrintPreviewControl1"PrintPreviewControl1.Dock = DockStyle.FillPrintPreviewControl1.Document = PrintDocument1eAntiAlias = TrueAddHandler PrintDocument1.PrintPage, AddressOf Me.PrintDocument1_PrintPageForm1.Controls.Add(PrintPreviewControl1)PrintPreviewControl1.Show()Form1.Show()End SubEnd Class。
vb操作(cāozuò)word详解vb操作(cāozuò)word详解vb操作(cāozuò)word详解Visual Basic支持一个对象集合,该集合中的对象直接对应于Microsoft Word 97中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。
例如,Document 对象代表了一个打开的文档,Bookmark对象代表了一个文档中的书签,而Selection对象则代表了在一个文档窗口窗格(chuānɡ ɡé)中的选定内容。
在Word中,每一类元素-文档、表格、段落、书签、域等等-都可以用Visual Basic的对象来表示。
要在Word中自动执行任务,可以使用这些对象的方法和属性。
关于理解和使用Microsoft Office 97对象模型的一般性内容,请参阅本书的第二章“理解对象模型”。
在Microsoft Office 97中的对象模型相当丰富(fēngfù),其中包含了大约180个对象。
要查看Word对象模型的层次关系图,请参阅“帮助”中的“Microsoft Word 对象”。
要获得对某种特定对象的详细描述,可以在此图中单击该对象的名字,或是在“帮助”的索引中对特定对象进行搜索。
怎样(zěnyàng)显示Word Visual Basic帮助要使用Word Visual Basic帮助,必须在安装过程中选择“自定义”的安装方式,并且为Word选中“Visual Basic在线(zàixiàn)帮助”复选框。
否则,安装程序不会安装Visual Basic帮助。
如果用户已经安装好了Word,那么可以再次运行Setup程序来安装Visual Basic帮助。
要查看Word Visual Basic 帮助,可以在“Visual Basic 编辑器里的“帮助”菜单中点击“目录和索引(suǒyǐn)”一项。
首先要将“工程-引用”中的Mic… Excel…选中'Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件'xlApp.Visible = True '设置EXCEL对象可见(或不可见)'Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表'Range("K12").Select 设置活动单元格'xlSheet.Cells(Row, col) = 值'给单元格(row,col)赋值'xlSheet.PrintOut '打印工作表'xlBook.Close (True) '关闭工作簿'xlApp.Quit '结束EXCEL对象'Set xlApp = Nothing '释放xlApp对象.'xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏'xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏'xlBook.Worksheets.Count '工作簿标签总数Private Sub Command1_Click()Dim xlApp As Excel.ApplicationSet xlApp = New Excel.ApplicationSet xlApp = CreateObject("Excel.Application") '创建EXCEL对象On Error Resume NextWorkbooks.Add '新建工作簿MkDir "C:\123"ChDir "C:\123" '在桌面上建“123”文件夹'以下是将文件保存到“C:\\模板.xls”ActiveWorkbook.SaveAs FileName:= _"C:\123\模板.xls", FileFormat:=xlNormal, _Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _CreateBackup:=False'Windows("模板.xls").ActivatexlApp.Visible = True'Sheets("Sheet1").SelectSheets.Add '新建工作表Sheets("Sheet2").Name = "新建工作表"'Sheets("Sheet3").Name = "Sheet"ActiveWorkbook.Sheets("新建工作表").Tab.ColorIndex = 7 '给工作表标签指定颜色xlApp.Worksheets("新建工作表").Range("A1").Cells(3, 2) = "添加数据"'xlApp.Worksheets(Sheets(i).Name).Range("A1").Cells(j, 2) = "@"'ActiveWorkbook.Sheets("考评").Tab.ColorIndex = 7'ActiveWorkbook.Sheets("教师任课").Tab.ColorIndex = 7'ActiveWorkbook.Sheets("班级设置").Tab.ColorIndex = 7'ActiveWorkbook.Sheets("Zxmd").Tab.ColorIndex = 32xlBook.SavexlApp.SaveActiveWorkbook.ClosexlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象.Set xlApp = Nothing '释放xlApp对象End Sub利用通用对话框:'首先要将“工程-引用”中的Mic… Excel…选中'将“工程-部件”中的MIcrosoft Comman Dialog Control6.0 (SP3)选中Private Sub Cdjssj_Click()On Error Resume NextCommonDialog1.CancelError = TrueCommonDialog1.DialogTitle = "指定要打开的Excel文件" CommonDialog1.Filter = "文本文件(*.xls)|*.xls|所有文件(*.*)|*.*" CommonDialog1.InitDir = App.PathCommonDialog1.ShowOpenDim xlApp As Excel.ApplicationSet xlApp = New Excel.ApplicationSet xlApp = CreateObject("Excel.Application") '创建EXCEL对象If Err ThenMsgBox "你选择了“取消”按钮。
ResetPrinterOrientation Me'设为默认值Printer.Orientation=VbPRORPortrait'纵向打印Printer.Orientation=VbPRORLandscape'横向打印Printer.PaperSize=vbPRPSA4'定义纸张大小为A4设置打印页边距'你可以使用打印机的Scale属性来设置打印页边距。
下面的代码设置左边距为1/2英寸。
右边距为3/4英寸。
乘以1440是将英尺转换成twips。
Printer.ScaleLeft=-0.75*1440Printer.ScaleTop=-0.5*1440Printer.CurrentX=0Printer.CurrentY=0打印多页Rich Text打印对象在处理RichTextBox时由于忽视了Rich Text代码将不会工作得很好。
为了打印RichTextBox,要使用SelPrint命令,但是SelPrint不是非常得友好,它按照自己的方式打印然后产生退纸动作。
为了打印多页Rich Text,要找到每一页的开始和结束点,然后依此设置SelStart和SelLength,最后使用SelPrint打印出每一页。
以下是工作的每一个步骤:1、使用SaveFile命令保存编辑版本的文件。
2、转换编辑版本为打印版本:遍历这个文档,修改SelIndent和SelRightIndent的数值,使之适合于打印机(注意:编辑时的缩进数值对于屏幕是合适的,但不适用于打印机)。
做些其他的修改,比如:添加页眉,消除行号。
3、使用SelPrint循环一次打印一个页面。
这里,计算行数是一个技巧,找到LFCRs 是容易的,但是,也必须要计算一下行缠绕,它也算在了行统计中,以及绝对不允许发生的页面溢出情况。
4、使用SelRTF=""删除打印版本。
5、使用LoadFile重新启动编辑版本。
VBNET使用EXCEL常见操作2009-12-01 09:05:44| 分类:技术类|举报|字号订阅先添加引用->Com->Microsoft Excel 9.0 Object Library (这是EXCEL2000)1 打开Excel:dim myexcel as new Excel.Application() myexcel.visible=true2 添加新的工作簿:myexcel.Workbooks.add()3 设定第二个工作表为活动工作表:myexcel.worksheets(2).Acivate()4 打开指定的Excel文件:myexcel.workbooks.open("c:\my.xls")5 显示Excel窗口:myexcel.visible=true6 更改Excel的标题栏:myexcel.caption="欢迎,欢迎!"7 为Excel的单元格赋值:myexcel.cells(1,4).value=100 此语句使Excel当前工作表的第一行第四列,即D1单元格等于100, 也可以这样写: myexcel.Range("D1").value=1008 设置指定列的宽度(单位:字符个数):myexcel.ActiveSheet.colums(1).columnwidth=20 设定当前工作表第1列的宽度为209 设置指定行的高度(单位:磅):myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅=0.035厘米设置第1行的高度为1CM10 插入分页符:myexcel.Activesheet.rows(20).pagebreak=1 在第20行前插入分页符11 删除分页符:myexcel.Activesheet.columns(20).pagebreak=0 在第20列前删除分页符12 指定边框线的宽度:myexcel.Activesheet.range("B3:D3").borders(1).weight=3 其中borders 参数指定单元格边框的位置: 1:左2:右3:顶4:底5:斜\ 6:斜/13 指定边框线条的类型:myexcel.Activesheet.range("B1:D3").borders(2).linestyle=1 此语句将当前工作表的B1:D3单元格的右边框设置为实线linestyle参数: 1:细实线2:细虚线3:点虚线4:双细实线14 设置页脚:myexcel.activesheet.pagesetup.centerfooter="第&p页" 注意:设置页眉页脚时要保证计算机上装有打印机,否则出错!15 设置页眉:myexcel.activesheet.pagesetup.centerfooter="第&p页"16 设置页眉到顶断距离为2cm:myexcel.Activesheet.pagesetup.Headermargin=2/0.03517 设置页脚到底端距离为2cm:myexcel.Activesheet.pagesetup.Footermargin=2/0.03518 设置顶边边距为2cm:myexcel.Activesheet.pagesetup.topmargin=2/0.03519 设置底边边距为2cm:myexcel.Activesheet.pagesetup.Bottommargin=2/0.03520 设置左边边距为2cm:myexcel.Activesheet.pagesetup.Leftmargin=2/0.03521 设置右边边距为2cm:myexcel.Activesheet.pagesetup.Rightmargin=2/0.03522 设置页面水平居中:myexcel.activesheet.pagesetup.CenterHorizontally=true23 设置页面垂直居中:myexcel.activesheet.pagesetup.Centervertically=true24 设置页面纸张大小(1,窄行8.5*11 ;39 ,宽行14*11):myexcel.activesheet.pagesetup.papersize=125 打印单元格网格线:myexcel.activesheet.pagesetup.PrintGridlines=true26 复制整个工作表:edrange.Copy27 复制指定区域:myexcel.activesheet.range("a1:b5").Copy28 粘贴:myexcel.worksheets("sheet2").range("A1").PasteSpecial29 在第2行前插入一行:myexcel.activesheet.rows(2).Insert30 在第2列前插入一列:myexcel.Activesheet.Columns(2).Insert31 合并C4:D4 单元格:myexcel.Activesheet.Range("C4:D4").Merge()32 自动调整第2列列宽:myexcel.activesheet.Columns(2).AutoFit33 设置字体:myexcel.Activesheet.cells(2,1)="黑体"34 设置字体大小:myexcel.Activesheet.cells(2,1).font.size=2535 设置字体为斜体:myexcel.Activesheet.cells(2,1).font.Italic=true36 设置字体为粗体:myexcel.Activesheet.cells(2,1).font.Bold=true37 清除单元格内容:myexcel.activesheet.cells(2,1).ClearContents38 打印预览工作表:myexcel.Activesheet.PrintPreview39 打印工作表:myexcel.Activesheet.Printout40 工作表另存为:myexcel.ActiveWorkbook.saveas("C:\book2.xls")41 放弃存盘:myexcel.ActiveWorkbook.saved=false42 关闭工作簿:myexcel.Workbooks.close43 退出Excel:myexcel.quit。
vb 打印实例-概述说明以及解释1.引言1.1 概述在VB中,打印是一项常见的功能需求,通过打印可以将软件中的数据输出到纸张上,使得用户能够方便地查看和保存信息。
本文将介绍VB 中的打印功能,并通过实例演示和分析来帮助读者更好地理解和应用这一功能。
在VB中,打印功能的实现主要通过使用PrintDocument组件来完成,PrintDocument组件可以方便地控制打印输出的内容和样式。
通过设置PrintDocument的PageSettings属性和PrintPage事件来指定打印页面的设置和内容。
另外,也可以使用PrintPreviewDialog组件来提供打印预览的功能,使得用户可以在打印前预览输出的效果,从而调整需要打印的内容和格式。
本文将通过实例演示和分析来介绍如何在VB中实现打印功能,希望能帮助读者更加深入地了解和掌握这一重要的功能。
文章结构部分主要包括文章的大致组织和内容安排,旨在帮助读者更好地理解整篇文章的逻辑结构。
本文的文章结构如下:1. 引言1.1 概述:介绍VB打印功能的重要性和应用背景1.2 文章结构:介绍本文的大纲和各部分内容安排1.3 目的:阐明撰写本文的意义和目的2. 正文2.1 VB打印功能介绍:详细介绍VB语言中的打印功能的基本原理和特点2.2 VB打印实例演示:通过具体的实例演示,展示VB打印功能的具体应用和使用方法2.3 VB打印实例分析:对演示的实例进行分析和总结,深入探讨其应用场景和优势特点3. 结论3.1 总结:对整篇文章进行总结,强调VB打印功能的重要性和价值3.2 应用推广:探讨VB打印功能在实际应用中的推广和发展前景3.3 展望:展望未来VB打印功能的发展方向和潜力通过以上结构,读者可以清晰地了解本文的逻辑结构和内容安排,有助于他们更好地理解和消化文章所传达的信息。
1.3 目的:本文的目的在于介绍如何在VB(Visual Basic)中使用打印功能,并通过实例演示和分析,帮助读者更好地了解如何在自己的程序中实现打印功能。
用VB操作Excel详解一、VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表xlSheet.Cells(row, col) =值'给单元格(row,col)赋值xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
#标题#:EXCEL VB常用宏代码集教你玩转EXCEL的VBA阻止另存为命令的使用本示例将阻止在工作簿中选择菜单“文件——另存为”命令的使用。
当您选择“另存为”命令后,将会弹出一个消息框,告诉您不能使用另存为命令更改工作簿的名称。
但您可以对该工作簿进行重命名。
下面的代码放置在ThisWorkbook代码模块中:‘*****************************************************Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)Dim lReply As LongIf SaveAsUI = True ThenlReply = MsgBox("对不起,您不能用其它名称保存本工作簿. ", vbQuestion + vbOKCancel)Cancel = (lReply = vbCancel)If Cancel = False Then Me.SaveCancel = TrueEnd IfEnd Sub阻止用户打印工作簿本示例演示当用户试图进行"打印预览"或"打印"时,将弹出不能打印本工作簿的消息框,因而不能对该工作簿进行打印预览或打印操作。
下面的代码放置在ThisWorkbook代码模块中:‘*****************************************************Private Sub workbook_BeforePrint(Cancel As Boolean)Cancel = TrueMsgBox "对不起,您不能打印本工作簿.", vbInformationEnd Sub阻止打印工作簿中的部分工作表本程序将阻止用户打印工作簿中的部分工作表,即在这些工作表中(如工作表Sheet1和Sheet2)使用“打印预览”和”打印”功能时,将弹出不能打印的消息框。
用VB操作Excel(VB6.0)(整理)全面控制Excel:首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1)显示当前窗口:ExcelID.Visible:=True;2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel';3)添加新工作簿:ExcelID.WorkBooks.Add;4)打开已存在的工作簿:ExcelID.WorkBooks.Open('C:\Excel\Demo.xls');5)设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或ExcelID.WorkSheets['Sheet2'].Activate;6)给单元格赋值:ExcelID.Cells[1,4].Value:='第一行第四列';7)设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5;8)设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米9)在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak:=1;10)在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak:=0;11)指定边框线宽度:ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3;1-左2-右3-顶4-底5-斜(\) 6-斜(/)12)清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;13)设置第一行字体属性:ExcelID.ActiveSheet.Rows[1]:='隶书';ExcelID.ActiveSheet.Rows[1].Font.Color :=clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold :=True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True;14)进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader:='报表演示'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter:='第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin:=3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin:=2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin:=2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin:=2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin:=2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally:=2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically:=2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines:=True;15)拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range['A1:E2'].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.['A1'].PasteSpecial;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16)插入一行或一列:a.ExcelID.ActiveSheet.Rows[2].Insert;b.ExcelID.ActiveSheet.Columns[1].Insert;17)删除一行或一列:a.ExcelID.ActiveSheet.Rows[2].Delete;b.ExcelID.ActiveSheet.Columns[1].Delete;18)打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19)打印输出工作表:ExcelID.ActiveSheet.PrintOut;20)工作表保存:IfnotExcelID.ActiveWorkBook.SavedthenExcelID.ActiveSheet.PrintPreviewEndif21)工作表另存为:ExcelID.SaveAs('C:\Excel\Demo1.xls');22)放弃存盘:ExcelID.ActiveWorkBook.Saved:=True;23)关闭工作簿:ExcelID.WorkBooks.Close;24)退出Excel:ExcelID.Quit;25)设置工作表密码:ExcelID.ActiveSheet.Protect"123",DrawingObjects:=True,Contents:=True,Scena rios:=True26)EXCEL的显示方式为最大化ExcelID.Application.WindowState=xlMaximized27)工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState=xlMaximized28)设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook=329)'关闭时是否提示保存(true保存;false不保存)ExcelID.DisplayAlerts=False30)设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow=1ExcelID.ActiveWindow.FreezePanes=True31)设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows="$1:$1"32)设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns=""33)设置显示方式(分页方式显示)ExcelID.ActiveWindow.View=xlPageBreakPreview34)设置显示比例ExcelID.ActiveWindow.Zoom=10035)让Excel响应DDE请求Ex.Application.IgnoreRemoteRequests=False用VB操作EXCEL示例代码Private Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer=11 '改变鼠标样式Set objExl=New Excel.Application'初始化对象变量objExl.SheetsInNewWorkbook=1 '将新建的工作薄数量设为1objExl.Workbooks.Add'增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name="book1" '修改工作薄名称objExl.Sheets.Add,objExl.Sheets("book1")‘增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name="book2"objExl.Sheets.Add,objExl.Sheets("book2")‘增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name="book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i=1 To 50'循环写入数据For j=1 To 5If i=1 ThenobjExl.Selection.NumberFormatLocal="@" '设置格式为文本objExl.Cells(i,j)="E"&i&jElseobjExl.Cells(i,j)=i&jEndIfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold=True '设为粗体objExl.Selection.Font.Size=24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow=1 '拆分第一行objExl.ActiveWindow.SplitColumn=0 '拆分列objExl.ActiveWindow.FreezePanes=True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns=""'打印标题objExl.ActiveSheet.PageSetup.RightFooter="打印时间:"&_Format(Now,"yyyy年mm月dd日hh:MM:ss")objExl.ActiveWindow.View=xlPageBreakPreview'设置显示方式objExl.ActiveWindow.Zoom=100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect"123",DrawingObjects:=True, _ Contents:=True,Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests=FalseobjExl.Visible=True '使EXCEL可见objExl.Application.WindowState=xlMaximized'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState=xlMaximized'工作薄显示方式为最大化objExl.SheetsInNewWorkbook=3 '将默认新工作薄数量改回3个Set objExl=Nothing'清除对象Me.MousePointer=0 '修改鼠标ExitSuberr1:objExl.SheetsInNewWorkbook=3objExl.DisplayAlerts=False '关闭时不提示保存objExl.Quit'关闭EXCELobjExl.DisplayAlerts=True '关闭时提示保存Set objExl=NothingMe.MousePointer=0End SubPrivate Sub Command3_Click()On Error GoTo err1Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer = 11 '改变鼠标样式Set objExl = New Excel.Application '初始化对象变量objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1objExl.Workbooks.Add '增加一个工作薄objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后objExl.Sheets(objExl.Sheets.Count).Name = "book2"objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后objExl.Sheets(objExl.Sheets.Count).Name = "book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i = 1 To 50 '循环写入数据For j = 1 To 5If i = 1 ThenobjExl.Selection.NumberFormatLocal = "@" '设置格式为文本objExl.Cells(i, j) = " E " & i & jElseobjExl.Cells(i, j) = i & jEnd IfNextNextobjExl.Rows("1:1").Select '选中第一行objExl.Selection.Font.Bold = True '设为粗体objExl.Selection.Font.Size = 24 '设置字体大小objExl.Cells.EntireColumn.AutoFit '自动调整列宽objExl.ActiveWindow.SplitRow = 1 '拆分第一行objExl.ActiveWindow.SplitColumn = 0 '拆分列objExl.ActiveWindow.FreezePanes = True '固定拆分objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _Format(Now, "yyyy年mm 月dd日 hh:MM:ss")objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式objExl.ActiveWindow.Zoom = 100 '设置显示大小'给工作表加密码objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _Contents:=True, Scenarios:=TrueobjExl.Application.IgnoreRemoteRequests = FalseobjExl.Visible = True '使EXCEL可见objExl.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化objExl.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化objExl.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个Set objExl = Nothing '清除对象Me.MousePointer = 0 '修改鼠标Exit Suberr1:objExl.SheetsInNewWorkbook = 3objExl.DisplayAlerts = False '关闭时不提示保存objExl.Quit '关闭EXCELobjExl.DisplayAlerts = True '关闭时提示保存Set objExl = NothingMe.MousePointer = 0End Sub=====================================全面控制 Excel首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1) 显示当前窗口:ExcelID.Visible := True;2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Exce l';3) 添加新工作簿:ExcelID.WorkBooks.Add;4) 打开已存在的工作簿:ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:ExcelID.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符:ExcelID.ActiveSheet.Columns[4].PageBreak := 0;11) 指定边框线宽度:ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3; 1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearC ontents;13) 设置第一行字体属性:ExcelID.ActiveSheet.Rows[1] := '隶书';ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue;ExcelID.ActiveSheet.Rows[1].Font.Bold := True;ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;14) 进行页面设置:a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically := 2 /0.035;k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines := T rue;15) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy;b.拷贝指定区域:ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecia l;d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;16) 插入一行或一列:a. ExcelID.ActiveSheet.Rows[2].Insert;b. ExcelID.ActiveSheet.Columns[1].Insert;17) 删除一行或一列:a. ExcelID.ActiveSheet.Rows[2].Delete;b. ExcelID.ActiveSheet.Columns[1].Delete;18) 打印预览工作表:ExcelID.ActiveSheet.PrintPreview;19) 打印输出工作表:ExcelID.ActiveSheet.PrintOut;20) 工作表保存:If not ExcelID.ActiveWorkBook.Saved thenExcelID.ActiveSheet.PrintPreviewEnd if21) 工作表另存为:ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );22) 放弃存盘:ExcelID.ActiveWorkBook.Saved := True;23) 关闭工作簿:ExcelID.WorkBooks.Close;24) 退出 Excel:ExcelID.Quit;25) 设置工作表密码:ExcelID.ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=Tr ue, Scenarios:=True26) EXCEL的显示方式为最大化ExcelID.Application.WindowState = xlMaximized27) 工作薄显示方式为最大化ExcelID.ActiveWindow.WindowState = xlMaximized28) 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 329) '关闭时是否提示保存(true 保存;false 不保存) ExcelID.DisplayAlerts = False30) 设置拆分窗口,及固定行位置ExcelID.ActiveWindow.SplitRow = 1ExcelID.ActiveWindow.FreezePanes = True31) 设置打印时固定打印内容ExcelID.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"32) 设置打印标题ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = ""33) 设置显示方式(分页方式显示)ExcelID.ActiveWindow.View = xlPageBreakPreview34) 设置显示比例ExcelID.ActiveWindow.Zoom = 10035) 让Excel 响应 DDE 请求Ex.Application.IgnoreRemoteRequests = False。
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
一、 VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:1、在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。
表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet3、在程序中操作EXCEL表常用命令:Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表xlApp.Cells(row, col) =值 '给单元格(row,col)赋值XLApp.Cells(i, 1).Interior.ColorIndex = i'设计单元格颜色i=1--56xlSheet.PrintOut '打印工作表xlBook.Close (True) '关闭工作簿xlApp.Quit '结束EXCEL对象Set xlApp = Nothing '释放xlApp对象xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏自己用代码就可以获取颜色列表了Sub yansecode()For i = 1 To 56XlApp.Cells(i, 1) = ixlapp.Cells(i, 1).Interior.ColorIndex = iNextEnd Sub4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。
打印和打印预览功能今天,我们将制作一个能实现打印和打印预览功能的应用程序。
程序运行结果如图所示。
运行结果技术要点●打印预览功能的实现●打印功能的实现实现过程■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“PrintExample”,然后选择保存路径。
单击“确认”。
■添加控件和设置属性向当前窗体上添加三个Button控件,将他们的Text属性改为和界面一致。
■添加组件类和要打印的文件通过菜单“项目|添加组件”为当前项目添加一个组件类,并添加一个需要打印的文件。
■添加代码'组件类中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class TextFilePrintDocumentInherits PrintDocumentPrivate printFont As FontPrivate streamToPrint As StreamReaderPublic Sub New(streamToPrint As StreamReader)MyBase.NewMe.streamToPrint = streamToPrintEnd SubOverrides Protected Sub OnBeginPrint(ev As PrintEventArgs)MyBase.OnBeginPrint(ev)printFont = new Font("Arial", 10)End Sub'Override the OnPrintPage to provide the printing logic for the documentOverrides Protected Sub OnPrintPage(ev As PrintPageEventArgs)MyBase.OnPrintPage(ev)Dim lpp As Single = 0Dim yPos As Single = 0Dim count As Integer = 0Dim leftMargin As Single = ev.MarginBounds.LeftDim topMargin As Single = ev.MarginBounds.TopDim line as String'Work out the number of lines per page'Use the MarginBounds on the event to do thislpp = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)'Check count first so that we don't read line that we won't printline=streamToPrint.ReadLine()While ((count < lpp) And Not(line Is Nothing))yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))ev.Graphics.DrawString (line, printFont, Brushes.Black, leftMargin,yPos, new StringFormat())count = count + 1if (count < lpp) thenline=streamToPrint.ReadLine()end ifEnd WhileIf (line <> Nothing) Thenev.HasMorePages = TrueElseev.HasMorePages = FalseEnd IfEnd SubEnd ClassEnd Namespace'主窗体中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class PrintFormInherits System.Windows.Forms.FormPrivate storedPageSettings As PageSettingsPublic Sub New ()MyBase.NewPrintForm = MeInitializeComponent()AddHandler printButton.Click, AddressOf printButton_ClickAddHandler pageSetupButton.Click, AddressOf pageSetupButton_ClickAddHandler printPreviewButton.Click, AddressOfprintPreviewButton_ClickEnd Sub'页面设置Private Sub pageSetupButton_Click(sender As object, e As System.EventArgs)Dim psDlg As New PageSetupDialogIf (storedPageSettings Is Nothing) ThenstoredPageSettings = new PageSettings()End IfpsDlg.PageSettings = storedPageSettingspsDlg.ShowDialogCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryEnd Sub'开始打印Private Sub printButton_Click(sender As object, e As System.EventArgs) TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")Try'使用缺省打印机Dim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintDialog()dlg.Document = pdDim result As DialogResult = dlg.ShowDialog()If (result = System.Windows.Forms.DialogResult.OK) Thenpd.Print()End IfFinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred printing the file - " +ex.Message)End TryEnd Sub'打印预览Private Sub printPreviewButton_Click(sender As object, e AsSystem.EventArgs)TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")TryDim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintPreviewDialog()dlg.Document = pddlg.ShowDialog()FinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryPublic Overloads Overrides Sub Dispose()MyBase.Dispose()components.Dispose()End Sub<STAThread()> Shared Sub Main()System.Windows.Forms.Application.Run(New PrintForm())End SubEnd ClassEnd Namespace■运行程序单击菜单“调试|启动”或单击图标运行程序。
初中VB程序设计精选教案优秀范文第一章:VB编程入门1.1 VB简介了解VB的发展历程和特点熟悉VB的集成开发环境(IDE)1.2 第一个VB程序学习VB的基本语法和结构编写并运行一个简单的“Hello World”程序1.3 VB变量和数据类型掌握VB中变量的声明和使用学习基本的数据类型及其取值范围第二章:VB控制结构2.1 顺序结构熟悉VB的输入输出语句掌握顺序结构中的常用函数和方法2.2 选择结构学习if条件语句的嵌套使用了解switch语句的编写和应用2.3 循环结构学习For循环和Next循环的使用掌握While循环和Wend循环的编写第三章:VB数组和过程3.1 数组的使用了解数组的声明和初始化学习数组的遍历和操作3.2 函数过程掌握自定义函数的声明和调用学习函数过程的参数传递和返回值3.3 Sub过程了解Sub过程的声明和调用掌握Sub过程中的变量作用域和传参方式第四章:VB常用控件4.1 基本控件熟悉Label、TextBox、Button等常用控件的使用学习控件的属性和事件4.2 容器控件了解Frame、Panel等容器控件的使用掌握容器控件中控件的布局和管理4.3 数据绑定控件学习DataGrid、ListBox等数据绑定控件的使用掌握数据绑定控件的数据显示和数据操作第五章:VB数据库应用5.1 数据库基础了解数据库的概念和分类学习数据库的连接和操作5.2 VB数据库访问技术掌握ADO对象模型和Connection、Recordset对象的使用学习数据库的增删改查操作5.3 数据库应用实例编写一个简单的数据库应用程序实现数据的录入、查询、修改和删除功能第六章:VB界面设计6.1 菜单设计学习菜单栏的创建与使用掌握菜单项的添加、删除和事件处理6.2 工具栏设计了解工具栏的概念和创建方法掌握工具栏按钮的添加和事件处理6.3 状态栏设计学习状态栏的创建和显示掌握状态栏中的消息显示和更新第七章:VB事件处理7.1 事件的概念了解事件的概念和作用熟悉事件驱动编程思想7.2 事件处理机制学习事件订阅和触发掌握事件处理函数的编写和调用7.3 常用事件解析分析常用控件事件的含义和应用掌握事件的重载和取消第八章:VB文件操作8.1 文件读写操作学习文件的打开、关闭和读写掌握文件流的概念和用法8.2 文件权限与安全性了解文件权限的设置和管理学习文件安全性的保障措施8.3 文件操作实例编写一个文件管理器应用程序实现文件的创建、复制、移动和删除功能第九章:VB网络编程9.1 网络通信基础了解网络通信的基本概念和协议熟悉VB中的网络通信类和函数9.2 基于TCP的网络编程学习TCP协议的客户端和服务端实现掌握网络数据传输的加密和压缩9.3 基于UDP的网络编程了解UDP协议的特点和应用编写基于UDP协议的网络应用程序第十章:VB程序调试与优化10.1 程序调试技术学习调试工具的使用和调试方法掌握常见错误类型和解决办法10.2 性能优化分析程序性能的影响因素学习程序性能的监控和优化技巧10.3 代码重构了解代码重构的概念和意义掌握重构工具的使用和重构方法第十一章:VB与数据库高级应用11.1 事务处理了解事务的概念和重要性学习使用VB进行事务的提交和回滚11.2 数据库连接池掌握数据库连接池的概念和用途学习如何使用连接池提高数据库访问性能11.3 数据集(DataSet)熟悉数据集的概念和特点掌握数据集的创建和使用方法第十二章:VB GUI设计进阶12.1 绘制图形和图像学习VB中的图形绘制方法掌握图像的显示和处理技术12.2 打印与打印预览了解打印的基本概念和流程掌握VB中的打印和打印预览实现方法12.3 界面布局与美化学习界面布局的技巧和原则掌握界面美化的方法和工具第十三章:VB组件开发13.1 组件的概念了解组件的作用和类型熟悉组件的创建和注册过程13.2 ActiveX组件学习ActiveX组件的创建和使用掌握ActiveX组件的部署和分布13.3 标准对话框组件熟悉标准对话框组件的功能和用法掌握自定义对话框组件的创建和实现第十四章:VB网络编程进阶14.1 网页爬虫与数据抽取学习网页爬虫的基本原理掌握VB中网页爬虫的实现方法14.3 网络文件共享掌握网络文件共享的实现机制开发一个简单的网络文件共享系统第十五章:VB项目实战与案例分析15.1 项目规划与管理学习项目规划和管理的方法掌握项目进度控制和团队协作15.2 案例分析:学生信息管理系统分析学生信息管理系统的需求使用VB开发一个学生信息管理系统15.3 案例分析:电子商务网站分析电子商务网站的需求和功能使用VB开发一个简单的电子商务网站重点和难点解析本文主要介绍了初中VB程序设计的基本知识和实践应用,重点包括VB编程入门、控制结构、数组和过程、常用控件、数据库应用、界面设计、事件处理、文件操作、网络编程、程序调试与优化、数据库高级应用、GUI设计进阶、组件开发、网络编程进阶以及项目实战与案例分析。
用VB操作excel方法汇总Private Sub Command3_Click()Dim i As LongDim j As LongDim objExl As Excel.Application '声明对象变量Me.MousePointer = 11 '改变鼠标样式Set objExl = New Excel.Application '初始化对象变量objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1'增加一个工作薄objExl.Sheets( = "book1" '修改工作薄名称, objExl.Sheets("book1") '增加第二个工作薄在第一个之后objExl.Sheets( = "book2", objExl.Sheets("book2") '增加第三个工作薄在第二个之后objExl.Sheets( = "book3"objExl.Sheets("book1").Select '选中工作薄<book1>For i = 1 To 50 '循环写入数据For j = 1 To 5If i = 1 Then= "@" '设置格式为文本objExl.Cells(i, j) = " E " & i & jElseobjExl.Cells(i, j) = i & jEnd IfNextNextobjExl.Rows("1:1").Select '选中第一行= True '设为粗体= 24 '设置字体大小'自动调整列宽= 1 '拆分第一行= 0 '拆分列= True '固定拆分= "$1:$1" '设置打印固定行= "" '打印标题= "打印时间: " & _For mat(Now, "yyyy年mm月dd日 hh:MM:ss")= xlPageBreakPreview '设置显示方式= 100 '设置显示大小'给工作表加密码"123", DrawingObjects:=True, _Contents:=True, Scenarios:=True = FalseobjExl.Visible = True '使EXCEL可见= xlMaximized 'EXCEL的显示方式为最大化= xlMaximized '工作薄显示方式为最大化objExl.SheetsInNewWorkbook = 3 '将默认新工作薄数量改回3个 Set objExl = Nothing '清除对象Me.MousePointer = 0 '修改鼠标Exit SubEnd Sub全面控制 Excel首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application1) 显示当前窗口:ExcelID.Visible := True;2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Excel';3) 添加新工作簿:;4) 打开已存在的工作簿: 'C:\Excel\Demo.xls' );5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate;或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;6) 给单元格赋值:ExcelID.Cells[1,4].Value := '第一行第四列';7) 设置指定列的宽度(单位:字符个数),以第一列为例::= 5;8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例::= 1/0.035; // 1厘米9) 在第8行之前插入分页符:ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;10) 在第8列之前删除分页符::= 0;11) 指定边框线宽度:'B3:D4' ].Borders[2].Weight := 3;1-左 2-右3-顶 4-底5-斜( \ ) 6-斜( / )12) 清除第一行第四列单元格公式:,4].ClearContents;13) 设置第一行字体属性::= '隶书';:= clBlue;:= True;:= True;14) 进行页面设置:a.页眉: := '报表演示';b.页脚: := '第&P页';c.页眉到顶端边距2cm: := 2/0.035;d.页脚到底端边距3cm: := 3/0.035;e.顶边距2cm: := 2/0.035;f.底边距2cm: := 2/0.035;g.左边距2cm: := 2/0.035;h.右边距2cm: := 2/0.035;i.页面水平居中: := 2/0.035;j.页面垂直居中: := 2/0.035;k.打印单元格网线: := True;15) 拷贝操作:a.拷贝整个工作表:;b.拷贝指定区域: 'A1:E2' ].Copy;c.从A1位置开始粘贴: 'A1' ].PasteSpecial;d.从文件尾部开始粘贴:;16) 插入一行或一列:a. ;b. ;17) 删除一行或一列:a. ;b. ;18) 打印预览工作表:;19) 打印输出工作表:;20) 工作表保存:If not thenEnd if21) 工作表另存为:FileName:="C:\Excel\Demo1.xls"22) 放弃存盘::= True;23) 关闭工作簿:;24) 退出 Excel:ExcelID.Quit;25) 设置工作表密码:"123", DrawingObjects:=True, Contents:=True, Scenarios:=True26) EXCEL的显示方式为最大化= xlMaximized27) 工作薄显示方式为最大化= xlMaximized28) 设置打开默认工作薄数量ExcelID.SheetsInNewWorkbook = 329) '关闭时是否提示保存(true 保存;false 不保存)ExcelID.DisplayAlerts = False30) 设置拆分窗口,及固定行位置= 1= True31) 设置打印时固定打印内容= "$1:$1"32) 设置打印标题= ""33) 设置显示方式(分页方式显示)= xlPageBreakPreview34) 设置显示比例= 100Excel 语句集300定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示Option Compare Text '字符串不区分大小写Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置(4) On Error GoTo 0 '恢复正常的错误提示(5) Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示(6) Application.ScreenUpdating=False '关闭屏幕刷新Application.ScreenUpdating=True '打开屏幕刷新(7) '禁用Ctrl+Break中止宏运行的功能工作簿(8) Workbooks.Add() '创建一个新的工作簿(9) Workbooks(“book1.xls”).Activate '激活名为book1的工作簿(10) ThisWorkbook.Save '保存工作簿(11) ThisWorkbook.close '关闭当前工作簿(12) '获取活动工作薄中工作表数(13) '返回活动工作薄的名称(14) ‘返回当前工作簿名称ThisWorkbook.FullName ‘返回当前工作簿路径和名称(15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小(16) xlArrangeSt yleTiled ‘将工作簿以平铺方式排列(17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化工作表(18) ‘当前工作表中已使用的行数(19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性)(20) Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum(21) Before:=Worksheets(1) '添加一个新工作表在第一工作表前(22) ActiveSheet.Move After:=ActiveWorkbook. _Sheets( '将当前工作表移至工作表的最后(23) Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2(24) Sheets(“sheet1”).Delete或 Sheets(1).Delete '删除工作表1(25) ActiveWorkbook.Sheets(i).Name '获取工作表i的名称(26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示(28) ‘删除当前工作表中所有的条件格式(29) ‘取消当前工作表所有超链接(30)或 '将页面设置更改为横向(31) ‘在页面设置的表尾中输入文件路径‘将用户名放置在活动工作表的页脚单元格/单元格区域(32)或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select'选择当前活动单元格所包含的范围,上下左右无空行(33) Cells.Select ‘选定当前工作表的所有单元格(34) Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容Selection.ClearContents '清除选定区域内容Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式(35) Cells.Clear '清除工作表中所有单元格的内容(36) ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ‘偏移一列Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ‘向上偏移一行(38) Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列(39) '将值XX输入到所选单元格区域中(40) '活动窗口中选择的单元格数(41) Selection.Count '当前选中区域的单元格数(42) GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,””) ‘返回单元格中超级链接的地址并赋值(43) TextColor=Range(“A1”).Font.ColorIndex ‘检查单元格A1的文本颜色并返回颜色索引Range(“A1”).Interior.ColorIndex ‘获取单元格A1背景色(44) cells.count ‘返回当前工作表的单元格数(45) Selection.Range(“E4”).Select ‘激活当前活动单元格下方3行,向右4列的单元格(46) Cells.Item(5,”C”) ‘引单元格C5Cells.Item(5,3) ‘引单元格C5(47) Range(“A1”).Offset(RowOffset:=4,ColumnOffset:=5)或Range(“A1”).Offset(4,5) ‘指定单元格F5(48) Range(“B3”).Resize(RowSize:=11,ColumnSize:=3)Rnage(“B3”).Resize(11,3) ‘创建B3:D13区域(49) Range(“Data”).Resize(,2) ‘将Data区域扩充2列(50) Union(Range(“Data1”),Range(“Data2”)) ‘将Data1和Data2区域连接(51) Intersect(Range(“Data1”),Range(“Data2”)) ‘返回Data1和Data2区域的交叉区域(52) Range(“Data”).Count ‘单元格区域Data中的单元格数Range(“Data”). Columns.Count ‘单元格区域Data中的列数Range(“Data”). Rows.Count ‘单元格区域Data中的行数(53) ‘当前选中的单元格区域中的列数‘当前选中的单元格区域中的行数(54) ‘选中的单元格区域所包含的区域数(55) ‘获取单元格区域中使用的第一行的行号(56) Rng.C olumn ‘获取单元格区域Rng左上角单元格所在列编号(57) ‘在活动工作表中返回所有符合条件格式设置的区域(58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘关闭由于执行自动筛选命令产生的第3个字段的下拉列表名称(59) Range(“A1:C3”).Name=“computer” ‘命名A1:C3区域为computer或Range(“D1:E6”).Name=“Sheet1!book” ‘命名局部变量,即Sheet1上区域D1:E6为book或Names(“computer”).Name=“robot” ‘将区域computer重命名为robot(60) Names(“book”).Delete ‘删除名称(61) Names.Add Name:=“ContentList”,_RefersTo:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))” ‘动态命名列(62) Names.Add Name:=“Company”,RefersTo:=“CompanyCar” ‘命名字符串CompanyCar(63) Names.Add Name:=“Total”,RefersTo:=123456 ‘将数字123456命名为Total。
VB6.0控制EXCEL进行报表设计及打印!在工控程序的开发中,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表打印输出。
在Visual Basic中制作报表,通常是用数据环境设计器(DataEnvironment Designer)与数据报表设计器(Data Report Designer),或者使用第三方产品来完成。
但对于大多数习惯于Excel报表的用户而言,用以上方法生成的报表在格式和功能等方面往往不能满足他们的要求。
由于Excel具有自己的对象库,在Visual Basic工程中可以加以引用,通过对Excel使用OLE自动化,可以创建一些外观整洁的报表,然后打印输出。
这样实现了Visual Basic应用程序对Excel的控制。
本文将针对一个具体实例,阐述基于VB和EXCEL的报表设计及打印过程。
1)创建Excel对象Excel对象模型包括了128个不同的对象,从矩形、文本框等简单的对象到透视表,图表等复杂的对象。
下面简单介绍一下其中最重要,也是用得最多的五个对象。
(1)Application对象:Application对象处于Excel对象层次结构的顶层,表示 Excel自身的运行环境。
(2)Workbook对象:Workbook对象直接地处于Application 对象的下层,表示一个Excel工作薄文件。
(3)Worksheet对象:Worksheet对象包含于Workbook对象,表示一个Excel工作表。
(4)Range对象:Range对象包含于Worksheet对象,表示Excel工作表中的一个或多个单元格。
(5)Cells对象:Cells对象包含于Worksheet对象,表示Excel 工作表中的一个单元格。
如果要启动一个Excel,使用Workbook和Worksheet对象,下面的代码启动了Excel并创建了一个新的包含一个工作表的工作薄:Dim zsbexcel As Excel.ApplicationSet zsbexcel = New Excel.Applicationzsbexcel.Visible = True如要Excel不可见,可使zsbexcel.Visible = Falsezsbexcel.SheetsInNewWorkbook = 1Set zsbworkbook = zsbexcel.Workbooks.Add2)设置单元格和区域值要设置一张工作表中每个单元格的值,可以使用Worksheet对象的Range属性或Cells属性。
描述:open按钮打开⼀个对话框,选择⼀个⽂件,并将⽂本反映到richtextbox上。
同时激活print,再按,就执⾏打印。
[vb]view plain copy01. Imports System.IO02. Imports System.Drawing.Printing03.04. Public Class Form105. Private PrintPageSettings As New PageSettings06. Private StringToPrint As String07. Private PrintFont As New Font("Arial", 10)08.09. Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click10. Dim FilePath As String11. OpenFileDialog1.Filter = "Text files (*.txt)|*.txt"12. OpenFileDialog1.ShowDialog()13. If OpenFileDialog1.FileName <> ""Then14. FilePath = OpenFileDialog1.FileName15. Try16. Dim MyFileStream As New FileStream(FilePath, FileMode.Open)17. RichTextBox1.LoadFile(MyFileStream, RichTextBoxStreamType.PlainText)18. MyFileStream.Close()19. StringToPrint = RichTextBox1.Text '初始化打印字符串20. btnPrint.Enabled = True21. Catch ex As Exception22. MessageBox.Show(ex.Message)23. End Try24. End If25. End Sub26.27. Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click28. Try29. '指定当前页设置30. PrintDocument1.DefaultPageSettings = PrintPageSettings31. '指定“打印”对话框的⽂档并显⽰32. StringToPrint = RichTextBox1.Text33. PrintDialog1.Document = PrintDocument134. Dim result As DialogResult = PrintDialog1.ShowDialog()35. If result = DialogResult.OK Then36. PrintDocument1.Print() '打印,并⾮由“打印”对话框控制.正如OpenFileDialog表现的形式⼀样。
打印和打印预览功能今天,我们将制作一个能实现打印和打印预览功能的应用程序。
程序运行结果如图所示。
运行结果技术要点●打印预览功能的实现●打印功能的实现实现过程■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中选择“Windows应用程序”,在名称域中输入“PrintExample”,然后选择保存路径。
单击“确认”。
■添加控件和设置属性向当前窗体上添加三个Button控件,将他们的Text属性改为和界面一致。
■添加组件类和要打印的文件通过菜单“项目|添加组件”为当前项目添加一个组件类,并添加一个需要打印的文件。
■添加代码'组件类中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class TextFilePrintDocumentInherits PrintDocumentPrivate printFont As FontPrivate streamToPrint As StreamReaderPublic Sub New(streamToPrint As StreamReader)MyBase.NewMe.streamToPrint = streamToPrintEnd SubOverrides Protected Sub OnBeginPrint(ev As PrintEventArgs)MyBase.OnBeginPrint(ev)printFont = new Font("Arial", 10)End Sub'Override the OnPrintPage to provide the printing logic for the documentOverrides Protected Sub OnPrintPage(ev As PrintPageEventArgs)MyBase.OnPrintPage(ev)Dim lpp As Single = 0Dim yPos As Single = 0Dim count As Integer = 0Dim leftMargin As Single = ev.MarginBounds.LeftDim topMargin As Single = ev.MarginBounds.TopDim line as String'Work out the number of lines per page'Use the MarginBounds on the event to do thislpp = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)'Check count first so that we don't read line that we won't printline=streamToPrint.ReadLine()While ((count < lpp) And Not(line Is Nothing))yPos = topMargin + (count * printFont.GetHeight(ev.Graphics))ev.Graphics.DrawString (line, printFont, Brushes.Black, leftMargin,yPos, new StringFormat())count = count + 1if (count < lpp) thenline=streamToPrint.ReadLine()end ifEnd WhileIf (line <> Nothing) Thenev.HasMorePages = TrueElseev.HasMorePages = FalseEnd IfEnd SubEnd ClassEnd Namespace'主窗体中的代码Imports SystemImports ponentModelImports System.Windows.FormsImports System.DrawingImports System.Drawing.PrintingImports System.IONamespace Microsoft.Samples.WinForms.VB.PrintingExample5Public Class PrintFormInherits System.Windows.Forms.FormPrivate storedPageSettings As PageSettingsPublic Sub New ()MyBase.NewPrintForm = MeInitializeComponent()AddHandler printButton.Click, AddressOf printButton_ClickAddHandler pageSetupButton.Click, AddressOf pageSetupButton_ClickAddHandler printPreviewButton.Click, AddressOfprintPreviewButton_ClickEnd Sub'页面设置Private Sub pageSetupButton_Click(sender As object, e As System.EventArgs)Dim psDlg As New PageSetupDialogIf (storedPageSettings Is Nothing) ThenstoredPageSettings = new PageSettings()End IfpsDlg.PageSettings = storedPageSettingspsDlg.ShowDialogCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryEnd Sub'开始打印Private Sub printButton_Click(sender As object, e As System.EventArgs) TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")Try'使用缺省打印机Dim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintDialog()dlg.Document = pdDim result As DialogResult = dlg.ShowDialog()If (result = System.Windows.Forms.DialogResult.OK) Thenpd.Print()End IfFinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred printing the file - " +ex.Message)End TryEnd Sub'打印预览Private Sub printPreviewButton_Click(sender As object, e AsSystem.EventArgs)TryDim streamToPrint As StreamReader = new StreamReader("PrintMe.Txt")TryDim pd As TextFilePrintDocument = newTextFilePrintDocument(streamToPrint)If Not (storedPageSettings Is Nothing) Thenpd.DefaultPageSettings = storedPageSettingsEnd IfDim dlg As New PrintPreviewDialog()dlg.Document = pddlg.ShowDialog()FinallystreamToPrint.Close()End TryCatch ex As ExceptionMessageBox.Show("An error occurred - " + ex.Message) End TryPublic Overloads Overrides Sub Dispose()MyBase.Dispose()components.Dispose()End Sub<STAThread()> Shared Sub Main()System.Windows.Forms.Application.Run(New PrintForm())End SubEnd ClassEnd Namespace■运行程序单击菜单“调试|启动”或单击图标运行程序。
小结在打印和打印预览时,我们可以使用PrintPreviewDialog,PrintPreviewControl控件和PrintDocument控件来实现。