create a variable to store the value in and then pass it assuming, of course, your batch file can "catch" it. Something like.
Private Sub CreateDir_Click()
On Error GoTo Err_CreateDir_Click
Dim stAppName As String
Dim stValue as String
stValue = me.text1
stAppName = "P:\ZNewProject.bat" & " " & stValue
Call Shell(stAppName, 1)
Exit_CreateDir_Click:
Exit Sub
Err_CreateDir_Click:
MsgBox Err.Description
Resume Exit_CreateDir_Click
End Sub
The value is then concatenated onto stAppName in your case.
Gary