文件-另存爲-HTML格式,你可以找到所有圖片文件。作者: tmtony 时间: 2011-9-30 09:35
好像是批注中的背景图。
找小妖来试试?作者: tmtony 时间: 2011-9-30 10:14
只找到加图片,没有找到导出方法,估计要用API
Sub InsertComment()
Dim cmt As Comment
Set cmt = Range("A20").AddComment
With cmt
.Text Text:=""
.Shape.Fill.UserPicture ("C:\Images\test.jpg")
.Visible = True
End With
End Sub作者: joyark 时间: 2011-9-30 10:39
tmtony 发表于 2011-9-30 10:14
只找到加图片,没有找到导出方法,估计要用API
Sub InsertComment()
Dim cmt As Comment
难度也没有大家所想像的那么大,不过也调试了我两小时左右(主要在于没有把默认隐藏的批注显示出来)。
Comment对象的Shape属性有个CopyPicture方法对付的就是joyark这种懒人的(详见附件)。{:soso_e128:}
[attach]46807[/attach]
复制出来的图片属于OLE对象,这里直接粘贴到其它活动单元格了。因此,如果joyark和我较真,非要导出到本地盘路径,或许真要像站长说的那样,要写API函数了(当然,一切需要进一步调试)。{:soso_e135:}作者: tmtony 时间: 2011-10-1 00:20
PICTURE OLE转文件, API应可实现的。 以前有写过 VB的PICTURE 转成文件。网上这方面的内容比较多。
看来程序就是这样,每人想一步。众人拾柴火焰高,每个人都有别人学习的地方。作者: yehf 时间: 2011-10-10 17:34
由于HTML文件夹生成的image文件存在编号的规律,从001开始,所以可以通过循环单元格对image001进行根据单元格内容改名并移动到桌面
如果有10个批注有图片,其中1张照片重复,那么HTML文件夹里面只会有9张image,001到009,没办法解决
Sub Macro2()
Dim i As Integer
Dim str As String
Dim oldname As String
Dim newname As String
Dim x As String
With ThisWorkbook
For i = 1 To ActiveSheet.UsedRange.Rows.Count
x = i * 10
x = IIf(i < 100, Choose(Len(x), "", "00", "0") & i, i) '生成html文件夹的图片命名是顺序是001,002...需要对序号进行转换
oldname = .Path & "\" & Left(.Name, Len(.Name) - 4) & ".files\image" & x & ".jpg" '测试方便,当前workbook为另存为html的文件,如果直接对xls文件进行操作,需要先另存.
newname = .Path & "\" & Cells(i, 1) & ".jpg" ''默认当前路径是桌面
Debug.Print oldname, newname
Name oldname As newname
Next
End With
End Sub 作者: 余方方 时间: 2011-12-12 21:27
学习了