2017-10-11 7 views
0

私はMS-Projectファイルの作成と自動化を自動化するVisual Studio上でWinFormプログラムを実行しています。C#InteropでMS-Projectの列を非表示

私は、これらの参照を使用します。私のMS-Projectファイルの中でいくつかの点で

Microsoft Office 16.0 Object Library 
Microsoft Office Project 16.0 Object Library 
Microsoft Project Task Launch Control 

を、私は、テーブル内の列の表示をカスタマイズしたいです。

この目的のために、私はTableEditEx関数を使用します。私はすでに次のような新しいカスタマイズされたコラムを作っています:

Microsoft.Office.Interop.MSProject.Application projApp = new Microsoft.Office.Interop.MSProject.Application(); 
projApp.Application.SelectTaskColumn(Column: "Add New Column"); 
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, NewName: "Progression", NewFieldName: "Text1", Title: "Completion", ShowInMenu: true, Width: 12); 
projApp.Application.TableApply(Name: "&Entry"); 

そして今私は列 "リソース名"を隠したいと思います。そうするために、私は次のコードを試しました:

projApp.Application.SelectTaskColumn(Column: "Resource Names"); 
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, Create: false, ShowInMenu: false); 
projApp.Application.TableApply(Name: "&Entry"); 

しかし、それは列を選択する以外何もしないようです。

私はここに調査しました:

Documentation : TableEditEx

答えて

1

は、列幅= 0を設定:

projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, FieldName: "Resource Names", Width: 0); 
projApp.Application.TableApply(Name: "&Entry"); 

にそのように、ユーザは、それを挿入するテーブルを編集することなく、後で列を再表示することができます。

1

さて、

は、私は自分自身で解決策を見つけました。 、自分の感謝を

projApp.Application.SelectTaskColumn(Column: "Resource Names"); 
projApp.Application.ColumnDelete(); 

そして、それは働いていた:私は、列を非表示にするVBAコードを取得するには、マクロをやってみました、私はこれを得た:

SelectTaskColumn Column:="Resource Names" 
ColumnDelete 

そして私はC#のコードでそれを変換しました! (それを削除しない)列を非表示にする

関連する問題