If you include a non-optional reference to bD, you need to use it. I assume that you are running this code from Access? That being the case you need to tell Access to use Word and which document to process (hence bD). If you open a document in Word that is already open the open version will take focus e.g.
Sub InsertImageExample()
Dim wdapp As Object
Dim wdDoc As Object
Set wdapp = GetObject(, "Word.Application")
If Err Then
Set wdapp = CreateObject("Word.Application")
End If
wdapp.Visible = True
Set wdDoc = wdapp.documents.Open("C:\Path\Big Document.docx")
imageInsert imgPath:="C:\image path\image name.jpg", _
txt:="This is the text to insert", _
bD:=wdDoc
Set wdDoc = Nothing
Set wdapp = Nothing
End Sub
Public Sub imageInsert(imgPath As String, txt As String, bD As Object)
Dim oRng As Object
Const wdAlignParagraphCenter As Long = 1
Const wdAlignParagraphLeft As Long = 0
bD.Range.insertparagraphafter 'ensure that the image will go on a new line
Set oRng = bD.Range 'set a range to the document
With oRng
.collapse 0 'collapse the range to its end
.InlineShapes.AddPicture imgPath, False, True, oRng 'insert the image
.Paragraphs(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter 'align the image
.End = bD.Range.End ' move the end of the range after the image
.collapse 0 'collapse the range
.Text = vbCr & txt & vbCr & vbCr 'type the text after the image (paragraph spacing would be better than empty paragraphs)
.collapse 0 ' collapse the range
.Paragraphs(1).Range.ParagraphFormat.Alignment = wdAlignParagraphLeft 'format the last paragraph
.Select 'select the end of the document
End With
Set oRng = Nothing
End Sub