Forgive me, since I already read your draft code before you removing it (^_^)
It is not really look like VBA (VB.net interop, perhaps I guess)
*
Here is your VBA code with some changes & comments by me. I only edit codes for the first 2 PViewports, some variables declaration must be changed for the code to work as expected.
Public Sub Add_PViewPort_Text()
Dim My_Adding_Text As AcadMText
Dim My_TextPoint(2) As Double
Dim PViewPort_CP(0 To 2) As Double 'Explicitly declaration as array of double
'Dim Object_ZP1(2) As Double
'Dim Object_ZP2(2) As Double
Dim Object_ZP1 As Variant '==> Changed to Variant
Dim Object_ZP2 As Variant '==> Changed to Variant
Dim PViewPort_Width As Double
Dim PViewPort_Height As Double
Dim My_PViewPort As AcadPViewport
My_TextPoint(0) = 0
My_TextPoint(1) = 0
' Revision ViewPort
My_TextPoint(0) = -3895
My_TextPoint(1) = 500: My_TextPoint(2) = 0
Set My_Adding_Text = ThisDrawing.ModelSpace.AddMText(My_TextPoint, 500, "My_Rev")
My_Adding_Text.Height = 50
My_Adding_Text.color = acBlue
My_Adding_Text.GetBoundingBox Object_ZP1, Object_ZP2
PViewPort_CP(0) = 10
PViewPort_CP(1) = 15
PViewPort_CP(2) = 0
PViewPort_Width = 28.73
PViewPort_Height = 11.56
ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Item(0) '==> Move to Layout to process PViewport
Set My_PViewPort = ThisDrawing.PaperSpace.AddPViewport(PViewPort_CP, PViewPort_Width, PViewPort_Height)
My_PViewPort.Display (True)
My_PViewPort.CustomScale = 0.01 '==> Set PViewport scale, manually
Application.ZoomCenter My_PViewPort.Center, 5 '==> In Layout, zoom to that PViewport
ThisDrawing.MSpace = True
ThisDrawing.ActivePViewport = My_PViewPort '==>Set active PViewport before zoom, must come after ThisDrawing.MSpace = True
ThisDrawing.Application.ZoomWindow Object_ZP1, Object_ZP2 '==> Zoom the active PViewport
ThisDrawing.ActivePViewport.DisplayLocked = True
My_PViewPort.Layer = "0"
ThisDrawing.MSpace = False '==> Must Return to Layout (paper space) before processing next PViewport.
'Otherwise, the next command "Application.ZoomCenter My_PViewPort.Center, 5 " will not work in layout
' User ViewPort
My_TextPoint(0) = -3895
My_TextPoint(1) = 300: My_TextPoint(2) = 0
Set My_Adding_Text = ThisDrawing.ModelSpace.AddMText(My_TextPoint, 500, "CurrentUser")
My_Adding_Text.Height = 50
My_Adding_Text.color = acBlue
My_Adding_Text.GetBoundingBox Object_ZP1, Object_ZP2
PViewPort_CP(0) = 50
PViewPort_CP(1) = 15
PViewPort_CP(2) = 0
PViewPort_Width = 25 '28.11
PViewPort_Height = 10.55
Set My_PViewPort = ThisDrawing.PaperSpace.AddPViewport(PViewPort_CP, PViewPort_Width, PViewPort_Height)
My_PViewPort.Display (True)
My_PViewPort.CustomScale = 0.01 '==> Set PViewport scale, manually
Application.ZoomCenter My_PViewPort.Center, 5 '==> In Layout, zoom to that Viewport
ThisDrawing.MSpace = True
ThisDrawing.ActivePViewport = My_PViewPort
ThisDrawing.Application.ZoomWindow Object_ZP1, Object_ZP2 '==> Zoom the active PViewport
ThisDrawing.ActivePViewport.DisplayLocked = True
My_PViewPort.Layer = "0"
ThisDrawing.MSpace = False '==> Must Return to Layout (paper space) before processing next PViewport
End sub