Dim swApp As SldWorks.SldWorks Dim swDoc As ModelDoc2 Dim swSketchMgr As SketchManager Dim swSketch As Sketch
Set swApp = Application.SldWorks Set swDoc = swApp.ActiveDoc
If swDoc Is Nothing Then Exit Sub
Set swSketchMgr = swDoc.SketchManager Set swSketch = swSketchMgr.ActiveSketch If swSketch Is Nothing Then Exit Sub 'スケッチがアクティブでないと終了
Dim vSkSegArr As Variant Dim vSkSeg As Variant Dim swSkSeg As SketchSegment Dim swSkText As SketchText Dim swTextFormat As TextFormat Dim bRet As Boolean
vSkSegArr = swSketch.GetSketchSegments 'スケッチセグメントを取得 For Each vSkSeg In vSkSegArr Set swSkSeg = vSkSeg If swSkSeg.GetType = 4 Then 'TypeがswSketchTEXTのみ Set swSkText = swSkSeg Set swTextFormat = swSkText.GetTextFormat swTextFormat.CharHeight = 0.005 '文字高さを指定 swTextFormat.TypeFaceName = "MS UI Gothic" 'Fontを指定
'他にも指定するならここで
bRet = swSkText.SetTextFormat(False, swTextFormat) End If Next vSkSeg
コメント
横綱代様
どうもありがとうございます。
ゴールデンウィークもあり返事遅れましてすみません。
さっそく検証させていただいておりますが、なかなか時間も取れずに四苦八苦しておりますが
何とかやってみようと思っています
どうもありがとうございました
南部様
初めまして、横網代@三協です。
流れとしてはSketchTextを取得、TextFormatを取得、TextFormatを変更、SketchTextに反映 となります。
参考となるのはAPI Helpの「Change Text Format Example (VBA)」や「ITextFormat Interface Members 」等かな?
以下のコードをお試しください。(スケッチ編集モードで実行、すべてのスケッチテキストを高さ5mm/"MS UI Gothic"に変更します)
あとはお好きなようにいじってみて下さい。(エラー処理は微妙かも)
あじろのブログもよろしくです(宣伝)こんなものもSOLIDWORKS API 覚書 その9「スケッチテキスト一括編集」
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swDoc As ModelDoc2
Dim swSketchMgr As SketchManager
Dim swSketch As Sketch
Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
If swDoc Is Nothing Then Exit Sub
Set swSketchMgr = swDoc.SketchManager
Set swSketch = swSketchMgr.ActiveSketch
If swSketch Is Nothing Then Exit Sub 'スケッチがアクティブでないと終了
Dim vSkSegArr As Variant
Dim vSkSeg As Variant
Dim swSkSeg As SketchSegment
Dim swSkText As SketchText
Dim swTextFormat As TextFormat
Dim bRet As Boolean
vSkSegArr = swSketch.GetSketchSegments 'スケッチセグメントを取得
For Each vSkSeg In vSkSegArr
Set swSkSeg = vSkSeg
If swSkSeg.GetType = 4 Then 'TypeがswSketchTEXTのみ
Set swSkText = swSkSeg
Set swTextFormat = swSkText.GetTextFormat
swTextFormat.CharHeight = 0.005 '文字高さを指定
swTextFormat.TypeFaceName = "MS UI Gothic" 'Fontを指定
'他にも指定するならここで
bRet = swSkText.SetTextFormat(False, swTextFormat)
End If
Next vSkSeg
End Sub