こちらの続きです。
カレントビューの角度や生成スタイルの取得 - C#ATIA
前回「IDやSuffixが関係してくると、もうちょっとややこしいです。」と書いた
ビュー名辺りのお話です。
こんな状態のデータです。
ここでこちらのコードを実行します。
'vba Sub CATMain() Dim msg As String 'ドキュメント Dim dwDoc As DrawingDocument Set dwDoc = CATIA.ActiveDocument 'カレントビュー Dim actVi As DrawingView Set actVi = dwDoc.Sheets.ActiveSheet.views.ActiveView 'ビュー名変更 actVi.Name = "HOGE" msg = "ビュー名 : " & actVi.Name MsgBox msg, , "** カレントビュー情報 **" End Sub
ビュー名が変わり、ビュー内のテキストも変更されます。
ビューのプロパティを見ると、式が利用されているようです。
(ビュー内のテキストの「1:1」は属性リンクかな?)
御質問頂いた内容は、Prefix・ID・Suffixを扱うと言う内容だと
思いましたので、これからが本題です。
IDとSuffixが空欄では味気ないので、こんな感じにして見ました。
こちらのマクロを実行します。
'vba Sub CATMain() Dim msg As String 'ドキュメント Dim dwDoc As DrawingDocument Set dwDoc = CATIA.ActiveDocument 'カレントビュー Dim actVi As DrawingView Set actVi = dwDoc.Sheets.ActiveSheet.views.ActiveView 'ビュー名の取得 Dim prefix As String, ident As String, suffix As String actVi.GetViewName prefix, ident, suffix MsgBox "Prefix:" & prefix & vbCrLf & _ "Ident:" & ident & vbCrLf & _ "Suffix:" & suffix 'ビュー名の変更 prefix = "PIYO" ident = " HUGA" suffix = " POYO" actVi.SetViewName prefix, ident, suffix MsgBox "Prefix:" & prefix & vbCrLf & _ "Ident:" & ident & vbCrLf & _ "Suffix:" & suffix End Sub
一度Get~して、修正時はSet~です。実行後がこちら。
ん?Tree側のビュー名が変更されていません。 手動でビューのプロパティ
開いたり何らかのアクションを起こせば、正しく表示されるのですが・・・。
ビューのUpdateもダメ、RefreshDisplayもダメ、強制更新すれば良いのかも
知れませんが、重いデータで行うのは気が引けます。
イロイロとお手軽そうな操作で探すと、アクティブなビューを変更すると
正しい表示になったので、一時的にバックグラウンドをアクティブにし
再度元のビューをアクティブにするように変更しました。
・・・ actVi.SetViewName prefix, ident, suffix '追加 Dim vis As DrawingViews Set vis = dwDoc.Sheets.ActiveSheet.views vis.Item(2).Activate actVi.Activate 'ここまで MsgBox "Prefix:" & prefix & vbCrLf & _ "Ident:" & ident & vbCrLf & _ "Suffix:" & suffix End Sub
上手く行きました。