There is no macro in your document. DOCX does not support macros.
The following will do what you ask. Put the code in the ThisDocument module of the document and save as macro enabled.
Code:
Option Explicit
Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
Dim oTable As Table
Dim oCC As ContentControl
Dim oRng As Range
Dim i As Integer
Set oTable = ActiveDocument.Tables(1)
If ContentControl.Title = "Protocol Type" Then
If Not ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Unprotect
End If
If ContentControl.Range.Text = "D" Then
Set oRng = oTable.Range.Cells(38).Range
oRng.End = oRng.End - 1
oRng.Text = "Stability timepoint"
Set oRng = oTable.Range.Cells(39).Range
oRng.End = oRng.End - 1
Set oCC = oRng.ContentControls.Add(wdContentControlText)
With oCC
.Title = "Timepoint"
.Tag = "Timepoint"
.SetPlaceholderText , , "Timepoint"
.Range.Editors.Add (wdEditorEveryone)
End With
Set oRng = oTable.Range.Cells(40).Range
oRng.End = oRng.End - 1
Set oCC = oRng.ContentControls.Add(wdContentControlDropdownList)
With oCC
.Title = "Temperature"
.Tag = "Temperature"
.SetPlaceholderText , , "Select Temperature"
.DropdownListEntries.Add .PlaceholderText, ""
.DropdownListEntries.Add "ACC", "ACC"
.DropdownListEntries.Add "Long Term", "Long Term"
.DropdownListEntries.Add "Ambient", "Ambient"
.Range.Editors.Add (wdEditorEveryone)
End With
Else
For i = 38 To 40
Set oRng = oTable.Range.Cells(i).Range
oRng.End = oRng.End - 1
oRng.Text = ""
Next i
End If
ContentControl.Range.Editors.Add (wdEditorEveryone)
ActiveDocument.Protect (wdAllowOnlyReading)
End If
lbl_Exit:
Set oCC = Nothing
Set oRng = Nothing
Set oTable = Nothing
Exit Sub
End Sub