これが何を意味するか知っている人はいますか
Set oProjTasks = ActiveSelection.Tasks
MS プロジェクトからステータス レポートを生成し、MS Word に直接エクスポートするマクロがあります。それが機能するとき、それは滑らかなツールです。
今実行すると、この時点で「実行時エラー '424': オブジェクトが必要です」がスローされます。
これを修正するにはどうすればよいですか?
これが何を意味するか知っている人はいますか
Set oProjTasks = ActiveSelection.Tasks
MS プロジェクトからステータス レポートを生成し、MS Word に直接エクスポートするマクロがあります。それが機能するとき、それは滑らかなツールです。
今実行すると、この時点で「実行時エラー '424': オブジェクトが必要です」がスローされます。
これを修正するにはどうすればよいですか?
表示しているコードは set ステートメントです。つまり、オブジェクト ProjTasks をメッセージ ボックスで選択されたタスクと等しく設定しています。ActiveSelection プロパティは、アクティブな選択を表す選択オブジェクトを返します。アイテムが選択されていないという問題が発生している可能性があります。その場合、トラップ可能なエラー コード 424 がスローされます。発生しています。
MSDN の記事へのリンクは次のとおりです。このコードをそのまま使用するのではなく、マクロで動作するように変更することを忘れないでください。
http://msdn.microsoft.com/en-us/library/aa169315%28v=office.11%29.aspx
エラーチェックを set ステートメントの周りにラップするだけで試すことができます。空ではないプロジェクト ファイルに小さなマクロを作成しました。
Sub Testing()
On Error GoTo ActiveSelectionErrHandler:
Set oProjTasks = ActiveSelection.Tasks
If oProjTasks Is Nothing Then
MsgBox "No tasks in current project"
End If
ActiveSelectionErrHandler:
Set oProjTasks = ThisProject.Tasks 'or something like that
Resume Next
End Sub
これでエラーは処理されますが、Steve がすでに述べているように、コードを統合するにはさらに作業が必要です。
oProjTasks がいくつかの値を持つと予想される場所で空であることを処理するように変更するには、コードに従う必要があります。そうしないと、おそらく oProjTasks が空であることが判明した場合に、さらに多くのエラーが表示されます。
別の代替ソリューションは、プロジェクトを選択した後にマクロを起動することです。何かを選択すると、引用したコードが正常に機能するためです。