2017-03-16 3 views
0

リビジョンを確認するためのカスタムユーザーダイアログを作成しています(そのうちの私の質問に関連するコードのみを掲載しています)。 コマンドボタン "FindNextRevision_Click"で次のリビジョンにジャンプし、リビジョンのプロパティを表示します。コマンドボタン "AcceptRevision_Click"で、選択したリビジョンを受け入れます。Word VBA:ユーザーダイアログウィンドウ内で操作しているときに変化する選択オブジェクトを表示するにはどうすればよいですか?

コードはうまく動作しますが、次のリビジョンに移動すると、ダイアログボックスを終了するまで選択オブジェクトがテキスト内にマークされません。これは私の目的を全滅させます。私が操作しているリビジョンはテキストの中にあります。

選択オブジェクトを、ダイアログボックスを離れずにユーザーダイアログボックス内から変更するときに、そのオブジェクトを表示するにはどうすればよいですか?

Public Rev_Selected As Revision 

Private Sub FindNextRevision_Click() 
    Set Rev_Selected = Selection.NextRevision 
    With Rev_Selected 
     strRevType = .Type 
     strRevAuth = .Author 
     strRevDate = .Date 
     strRevR = .Range 
    End With 
    Call MTF_DisplayRevisionProperties(strRevType, strRevAuth, strRevDate, strRevR) 
    ActiveWindow.ScrollIntoView Selection.Range 
end sub 

Private Sub AcceptRevision_Click() 
    Rev_Selected.Accept 
End Sub 

Sub MTF_DisplayRevisionProperties(strRevType, strRevAuth, strRevDate, strRevR) 
    'some code which is not important for my question 
end sub 
+1

フォームの表示コマンドは、デフォルトでモーダルです。つまり、フォームが終了するまで何も実行できないことを意味します。 .show vbModeless – Variatus

+0

を使用してフォームに電話をかけてみましょう。「Selection.HighlightColorIndex = wdGray50' – Slai

答えて

0

これは今(上記参照)Variatusのコメントによって廃止された部分的な答え(です:行の前に

ActiveWindow.ScrollIntoView Selection.Range 

私はラインを追加しました:

Word.Application.Activate 

他のアプリケーションにフォーカスを移動しない限り、私は変更対象の選択オブジェクトに従うことができます 画面上。しかし、フォーカスを別のアプリケーション、つまりAcrobat Readerに切り替えてからWinWordに戻すと、ユーザーのダイアログを閉じない限り、選択オブジェクトは表示されなくなります。

関連する問題