私は現在、次のように動作しています。UIDを入力した後、メッセージボックスにタスクの余裕が表示されます。ただし、メッセージボックスが開いている間は、Microsoft Projectファイルを編集することはできません。MsgBoxではなくランタイムウィンドウを出力できますか?
同じ出力を表示するのにVBAで使用できる別のオブジェクトがありますが、出力を出している間にプロジェクトファイルを処理できますか?そして、出力をリアルタイムにすることは可能ですか?言い換えれば、スケジュールを変更した場合、アプリケーションを再実行しなくても変更が加えられた場合、出力が常に変化することはありますか?
Sub SlackFinder()
Dim User_UID, User_ID As Integer
Dim Slack As Variant
Dim NewSlack As Variant
User_UID = InputBox("Enter UID for slack:")
If User_UID = "" Then Exit Sub
On Error GoTo Error_Not_Found
User_ID = ActiveProject.Tasks.UniqueID(User_UID).ID
On Error GoTo Error_Collapsed
Slack = ActiveProject.Tasks.UniqueID(User_UID).TotalSlack
NewSlack = Slack/480
MsgBox "Total Slack: " & NewSlack
Exit Sub
Error_Not_Found:
MsgBox "UID " & User_UID & " not found in " & ActiveProject.Name
Exit Sub
Error_Collapsed:
MsgBox "UID is present but cannot be selected. Perhaps it is collapsed?", vbOKOnly, "COLLAPSED UID?"
Exit Sub
End Sub
ありがとうございます!これは非常に助けになりました! –
@AndreDavis素晴らしいその答えに合格とマークするようにしてください。 –
ほとんどのコードが正しく機能するようになった。ただし、スケジュールを変更しているときにスラック値を変更すると、スラック値は更新されません。プロジェクトがどのように変更を行ったかをプロジェクトで常に確認しているかどうかを説明できますか(Project_Changeメソッドと思いますか?)。私は同じコードを持っていますが、更新していません。ありがとう。 –