C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

寸法の下側文字

寸法の下側文字を編集したい時が、チョロチョロ出てきました。
f:id:kandennti:20181026192317p:plain

前後はマニピュレータで表示させると便利だと、知り合いの方に
以前教わりました。
f:id:kandennti:20181026192453p:plain

設定に無いって事は、寸法の下側の文字を利用する機会が
少ないって事でしょうか?

そればっかりやるのであれば、Ait + Enter で済ませるのですが
ナカナカそればかりの作業でもないので、マクロを作りました。

'vba Modify_Dimension_LowerText ver0.0.1  using-'KCL0.0.12'  by Kantoku

Option Explicit

Private Enum Dimension_Value
    Main_Value = 1
    Dual_Value = 2
End Enum

Sub CATMain()
    'ドキュメントのチェック
    If Not CanExecute("DrawingDocument") Then Exit Sub
    
    Dim msg1$: msg1 = "下側テキストを修正する寸法を選択 // [Esc]=Cancel"
    Dim msg2$: msg2 = "修正文字を入力して下さい"
    Dim DrwDim As DrawingDimension
    Dim DimVal As Variant 'DrawingDimValue
    Dim Bfr$, Afr$, Upr$, Lwr$
    Dim txt '$
    
    Do
        Set DrwDim = KCL.SelectItem(msg1, "DrawingDimension")
        If DrwDim Is Nothing Then Exit Sub
        
        Set DimVal = DrwDim.GetValue
        Call DimVal.GetBaultText(Dimension_Value.Main_Value, _
                                 Bfr, Afr, Upr, Lwr)
        
        txt = InputBox(msg2, msg2, Lwr)
        
        If StrPtr(txt) = 0 Then Exit Sub
        
        Call DimVal.SetBaultText(Dimension_Value.Main_Value, _
                                Bfr, _
                                Afr, _
                                Upr, txt)
    Loop
    
End Sub

任意の寸法をクリックしたら、インプットBoxが出てきて文字を修正
を連続で出来ます。

あまりInputBoxを使わないので、キャンセルボタンの判断のやり方を
迷いました。
キャンセルボタンは vbnullsting が返って来るものかと思っていたのですが
違うんですね。調べた所こちらがHit
Office TANAKA - Excel VBA Tips[実は奥が深いInputBox]

試したところ・・・ん 違う。Application.InputBoxだからかな?
まぁ何となく、試す前から違うような香りはしていたのですが。

もっと調べるとこちらがHit
InputBox関数でキャンセルされたときの処理-StrPtr関数:エクセルマクロ・Excel VBAの使い方-VBA関数

あまり使わないから覚書です。