यह पूछे जाने के बाद कुछ समय हो गया था, लेकिन मैं आज समस्या में चला गया, इसलिए एक त्वरित और गंदी स्क्रिप्ट को एक साथ फेंक दिया जो वर्तमान पृष्ठ के बाईं ओर एक आयत बनाता है (अन्य समाधानों के समान जो मैंने देखा है) फिर सभी टिप्पणियों को संलग्न करता है नई वस्तु के लिए सक्रिय पृष्ठ। मुझे लगता है कि मुद्दा यह है क्योंकि Visio 2016 में टिप्पणियों के लिए मॉडल पहले की तुलना में पूरी तरह से अलग है।
यदि यह किसी को भी इसका उपयोग करने में संकोच न करने में मदद करता है, तो कृपया मुझे ईमेल करें यदि यह आपकी मदद करता है
धन्यवाद,
माइकल
टेचीस्टफ @dreich.net
'This is in no way comprehensive and is not intended to be production quality
'It does what it does
'techiestuff@dreich.net July 2018
Public Sub ShowComments()
Dim oPage As Visio.Page
Dim oShape As Visio.Shape
Dim oComments As Visio.Comment
Dim sText As String
Set oPage = Visio.ActivePage
sText = "Initials" & vbTab & "Date" & vbTab & "Comment"
'Loop through comments creating a string containing them all
For Each oComment In oPage.Comments
sText = sText & vbCrLf & oComment.AuthorInitials
sText = sText & vbTab & oComment.EditDate
sText = sText & vbTab & oComment.Text
Next oComment
'Create a new shape with all the comments attached as visible text
'Save the current value of autosize, create a rectangle using autosize=0 then restore autosize to its orignal value
'The rectangle is created as the same size as the current page but immediately to the left of it
Dim iAutoSize As Integer
iAutoSize = oPage.AutoSize
oPage.AutoSize = 0
Set oShape = oPage.DrawRectangle(-oPage.PageSheet.Cells("PageWidth").ResultIU, 0, 0, oPage.PageSheet.Cells("PageHeight").ResultIU)
oPage.AutoSize = iAutoSize
'Set the text alignment for the rectangle to Top/Left
oShape.Cells("Para.HorzAlign").Formula = "0"
oShape.Cells("VerticalAlign").Formula = "0"
'Give it a name and add the comments to it
oShape.Name = "Review Comments"
oShape.Text = sText
End Sub