C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

ファイルを最小化でオープンしつつ、オープン前のウィンドウをアクティブ化

「パワーコピーのPartファイルを最小化で開きつつ、開く前のアクティブな'ウィンドウをアクティブ状態にする」
と言う内容のご相談を頂きました。

正直な所、どのような操作を想定されているのかが、把握できていない為
目的の状態になっていない可能性もありますが・・・

'vba
Sub CATMain()
    'パワーコピーファイル パス
    Dim PowerCopy_path As String
    PowerCopy_path = "C:\temp\powercopy_part.CATPart"
    
    'パワーコピーファイル オープン前に現在のアクティブな
    'ウィンドウを取得
    Dim BeforeActWin As Window
    Set BeforeActWin = CATIA.ActiveWindow
    
    'パワーコピーファイル オープン
    Dim objPspDoc As PartDocument
    Set objPspDoc = CATIA.Documents.Open(PowerCopy_path)
    
    'パワーコピーファイル のウィンドウ
    Dim ActiveWin As Window
    'Set ActiveWin = CATIA.ActiveWindow
    Set ActiveWin = CATIA.Windows.Item(CATIA.Windows.count)
    
    '最小化
    ActiveWin.WindowState = catWindowStateMinimized
    
    '最初のアクティブなウィンドウをアクティブ
    BeforeActWin.Activate
    
    'ここで何かしらの処理
    Stop
    
    'パワーコピーファイル クローズ
    objPspDoc.Close
End Sub

・ファイルをオープンする前に、現状のアクティブウィンドウを取得しておきます。
  (Set BeforeActWin = CATIA.ActiveWindow)
・ウィンドウの最小化はWindowStateプロパティで可能です。
  (ActiveWin.WindowState = catWindowStateMinimized)