range.SetComment...給單元格添加批註 Excel_Obj.WorkSheets[1].Cells[1, 3].AddComment(Str);是否存在批註if ExcelWS.Cells.Item[11,6].Comment <> nil then PZ:=ExcelWS.Cells.Item[11,6].Comment.Text(EmptyParam,EmptyParam,EmptyParam); 至於寬度和長度,你看下有沒有width\height等屬性VBA中有的,VB設定其格式如下Sub InsertComment(rMyCells As Range, sCommentTxt As String) With rMyCells '如果單元格已有批注則清除已有批注 If Not .Comment Is Nothing Then .ClearComments End If '插入批注並設置其格式 With .AddComment .Visible = True .Text Text:=sCommentTxt End With With .Comment.Shape With .TextFrame With .Characters.Font .Name = "宋體" .FontStyle = "常規" .Size = 9 .ColorIndex = 49 End With .AutoSize = True End With .Fill.ForeColor.RGB = RGB(255, 255, 204) .Placement = xlMove End With End With End Sub
Excel_Obj.WorkSheets[1].Cells[1, 3].AddComment(Str);是否存在批註if ExcelWS.Cells.Item[11,6].Comment <> nil then
PZ:=ExcelWS.Cells.Item[11,6].Comment.Text(EmptyParam,EmptyParam,EmptyParam); 至於寬度和長度,你看下有沒有width\height等屬性VBA中有的,VB設定其格式如下Sub InsertComment(rMyCells As Range, sCommentTxt As String)
With rMyCells
'如果單元格已有批注則清除已有批注
If Not .Comment Is Nothing Then
.ClearComments
End If
'插入批注並設置其格式
With .AddComment
.Visible = True
.Text Text:=sCommentTxt
End With
With .Comment.Shape
With .TextFrame
With .Characters.Font
.Name = "宋體"
.FontStyle = "常規"
.Size = 9
.ColorIndex = 49
End With
.AutoSize = True
End With
.Fill.ForeColor.RGB = RGB(255, 255, 204)
.Placement = xlMove
End With
End With
End Sub
Sub Macro1()
'
' Macro1 Macro
''
Range("E9").AddComment
Range("E9").Comment.Visible = False
Range("E9").Comment.Text Text:= _
"KYE:" & Chr(10) & "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
//width
Selection.ShapeRange.ScaleWidth 2.44, msoFalse, msoScaleFromTopLeft
//height
Selection.ShapeRange.ScaleHeight 2.32, msoFalse, msoScaleFromTopLeft
Range("E9").Comment.Shape.Select True
Range("E9").Comment.Text Text:= _
"KYE:" & Chr(10) & "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Range("E9").Select
ActiveCell.Comment.Visible = True
Range("E9").Select
End Sub
因为用的是delphi封装的OLE操作。这个和简单的转换VB,delphi语法不是一回事啊。
width\height这两个属性貌似没有。大侠,能帮我在本地试试吗?
叩谢,叩谢啊~~~
顺便说一个思路:
做一个Excel模板,用VBA在里面设置批注大小。
在Delphi中启动,问题是:如何将数据传到VBA代码中?另外,我也不太想这样做。维护VBA是非常痛苦的事情。