zxj_76 发表于 2006-7-13 16:19:00

[VBA] 块属性定义与修改

<P>在AUTOCAD开发手册里,读取BLOCK的属性(ATTRIBUTE)的命令是GetAttributes,但没有找到修改属性的命令,哪位高手知道吗?</P>

霹雳啪啦啦 发表于 2006-7-14 11:23:00

<PRE class=prog_in>    ' 获取块参照的属性</PRE><PRE class=prog_in>    Dim varAttributes As Variant</PRE><PRE class=prog_in>    varAttributes = blockRefObj.GetAttributes</PRE><PRE class=prog_in></PRE><PRE class=prog_in>    ' 将属性标记和值移至</PRE><PRE class=prog_in>    ' 要在 Msgbox 中显示的字符串中</PRE><PRE class=prog_in>    Dim strAttributes As String</PRE><PRE class=prog_in>    strAttributes = ""</PRE><PRE class=prog_in>    Dim I As Integer</PRE><PRE class=prog_in>    For I = LBound(varAttributes) To UBound(varAttributes)</PRE><PRE class=prog_in>      strAttributes = strAttributes + " Tag: " + _</PRE><PRE class=prog_in>                  varAttributes(I).TagString + vbCrLf + _</PRE><PRE class=prog_in>                  " Value: " + varAttributes(I).textString</PRE><PRE class=prog_in>    Next</PRE><PRE class=prog_in>    MsgBox "The attributes for blockReference " + _</PRE><PRE class=prog_in>                   blockRefObj.Name &amp; " are: " &amp; vbCrLf _</PRE><PRE class=prog_in>                   &amp; strAttributes</PRE><PRE class=prog_in></PRE><PRE class=prog_in>    ' 更改属性值</PRE><PRE class=prog_in>    ' 注意:没有 SetAttributes。 一旦包含</PRE><PRE class=prog_in>    ' 变量数组,就拥有了对象。</PRE><PRE class=prog_in>    ' 更改这些对象就会改变图形中的对象。</PRE><PRE class=prog_in>    varAttributes(0).textString = "NEW VALUE!"</PRE><PRE class=prog_in></PRE><PRE class=prog_in>    ' 再次获取属性</PRE><PRE class=prog_in>    Dim newvarAttributes As Variant</PRE><PRE class=prog_in>    newvarAttributes = blockRefObj.GetAttributes</PRE><PRE class=prog_in></PRE><PRE class=prog_in>    ' 再次显示标记和值</PRE><PRE class=prog_in>    strAttributes = ""</PRE><PRE class=prog_in>    For I = LBound(varAttributes) To UBound(varAttributes)</PRE><PRE class=prog_in>      strAttributes = strAttributes + " Tag: " + _</PRE><PRE class=prog_in>                  newvarAttributes(I).TagString + vbCrLf + _</PRE><PRE class=prog_in>                  " Value: " + newvarAttributes(I).textString</PRE><PRE class=prog_in>    Next</PRE><PRE class=prog_in>    MsgBox "The attributes for blockReference " &amp; _</PRE><PRE class=prog_in>                  blockRefObj.Name &amp; " are: " &amp; vbCrLf _</PRE><PRE class=prog_in>                  &amp; strAttributes</PRE><PRE class=prog_in> </PRE><PRE class=prog_in>注意其中这句话:<PRE class=prog_in>    ' 注意:没有 SetAttributes。 一旦包含</PRE><PRE class=prog_in>    ' 变量数组,就拥有了对象。</PRE><PRE class=prog_in>    ' 更改这些对象就会改变图形中的对象。</PRE></PRE>

zxj_76 发表于 2006-7-17 15:45:00

谢谢,我试试!

palagon 发表于 2006-12-22 14:01:00

<p>代码好复杂,去掉显示用的那些其实很少(我可以手工查看属性是否已经改变)</p><p>不过我还是搞不定啊,没有变化啊</p>

leo_zp_yang 发表于 2007-10-16 18:07:00

试试先!
页: [1]
查看完整版本: [VBA] 块属性定义与修改