MS Projectでは、タスクを、個別の(外部)プロジェクトファイルに常駐できる他の複数のタスクにリンクできます。これらの外部リンクされたタスクへの参照を取得する唯一の方法は、リンクのコンマ区切りリストである「先行」フィールドを解析することです。残念ながら、これらの外部リンクではパスにコンマが含まれている可能性があるため、単純な分割は機能しません。
これは3つのリンクの例で、2つ目は外部です。
123FS + 5d、\\ server \ folder、カンマ付き\ project1.mpp \ 456,789
内部リンクの場合、形式は次のいずれかになります。
- #tk
- #tk +#d
- #tk-#d
最初の数値がIDの場合、プレースホルダーtkはFS、FF、SS、またはSFであり、オプションの最後の部分(ラグ)は+/-#日です。
外部リンクの場合、リンク情報の前にパスを含むファイル名が続き、その後に円記号が続きます。パスは、UNC(例:\\)またはマップされたドライブ文字(例:L:\)の場合があります。
フィールドには1つ以上のリンクがあり、すべて、一部、またはなしが外部にある可能性があります。
これらのリンクのリストに一致する正規表現パターンが必要です。
助けてくれてありがとう!
編集
後世のために、Project Server( "<> \ file name \ 123")からのパスにも一致するため、最も効果的なパターンを次に示します。
(((<>\\[^\\]+\\)+)|([A-Z]:|\\)\\([^\\]+\\)+)?\d+([FS]{2}([+-]\d+d)?)?(?=,|$)
また、外部依存関係タスクの一意のIDを取得するにはどうすればよいですか?も参照してください。この正規表現パターンをさらに強化するため。