ExcelVBfAorm窗体随机调用图片.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel VBA随机调用图片时的几个细节 (2009-01-02 18:56:05) 转载标签:excelvba图片随机调用 分类:EXCEL及其VBA 载自:/s/blog_58260f420100bv9t.html 假如: 在Excel工作簿里有一个名为“关机画面”的表,在VBA里插入一个窗体,窗体里有一个Image1图片控件,在该工作簿所在目录下有一个\系统工具\图片\关机画面的子目录,里面放一些图片。 那么,在窗体的UserForm_Activate事件里编辑后面所述的代码,则窗体运行时会从图片目录里随机选择一张图片,显示在窗体上,然后再随机选择一张图片,显示在sheet表里。 初始程序编好之后,反复调试很长时间才彻底成功,其中几个非常耗时的细节: 1、在sheet表里直接插入的图片是pictures集合,而不是shapes集合。 这个图片只能用.Pictures.Insert(图片文件的含路径的全名) .Name = ……创建, 不能用:.Shapes.Addshape(Type:=msopicture,Left:=……)创建 但是这个pictures集合里的图片却可以用.Shapes(……).Delete删除。挺奇怪! 这是调试耗时很长的一个主要原因。 2、用 .Shapes.Addshape(Type:=msopicture,Left:=……)也可以在Sheet里创建图片,但是如何命名,又如何调整大小,由于资料有限,我无法做深入的分析。 3、窗体里的图片控件用Image1.Picture = LoadPicture(文件名)装载图片。 4、j = Int((n * Rnd) + 1),生成的是1~n之间的一个随机整数。 5、用with……end with语句编辑代码时,我忘记在 Width 前加点“.” ,这给调试代码带来很大的困惑。 6、窗体里的图片尺寸调整起来很容易,只需要把图片的PictureSizeMode属性设置为3,即fmPictureModeRoom(图片自动适应控件)即可,不必再单独编写代码。 7、需要特别注意的是,仅仅用Rnd()函数生成的并不是真正的随机数,这些数会有固定的序列,因此,从打开文件开始,如果没有重复调用图片,显示的会总是那几张图片。必须要用 Randomize 初始化一下随机数的种子,如此调用的图片才是真正随机的。 ---------------------------------------------------------------- Private Sub UserForm_Activate() 查找图片 Dim 查找图片 As FileSearch Dim 图片路径 As String Dim i As Long, n As Long, j As Long Set 查找图片 = Application.FileSearch 图片路径 = ThisWorkbook.Path \系统工具\图片\关机画面 With 查找图片 .NewSearch .LookIn = 图片路径 .FileType = msoFileTypeAllFiles .Filename = *.* .SearchSubFolders = True 随机选择一张图片,抽取出来读入窗体、读入关机画面 If .Execute(SortBy:=msoSortByFileName) 0 Then n = .FoundFiles.Count ReDim 图集(1 To n) As String j = Int((n * Rnd) + 1) 调入图片到窗体 Image1.Picture = LoadPicture(.FoundFiles(j)) 调入图片到表(关机画面) Randomize j = Int((n * Rnd) + 1) Sheets(关机画面).Visible = 1 On Error Resume Next Sheets(关机画面).Shapes(关机画面).Delete With Sheets(关机画面).Pictures.Insert(.FoundFiles(j)) .Name = 关机画面 .LockAspectRatio = msoTrue .Left = 0 .Top = 0 .Width = .Width * 425 / .Height .Height = 425 .Left = 380 - .Width / 2 End With Else MsgBox 图片保存位置: Chr(10) Chr(10) 图片路径 _ Chr(10) Chr(10) 里面没有图片,请导入要随机显示的图片集。 End If End With Set 查找图片 = Nothing DoEve

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档