You could try this code which would run your macro if the workbook is opened on the first of a month (adapt it to your own needs): -
Private Sub Workbook_Open()
If Day(Now) = 1 Then Call YourMacro
End Sub
To enter it, go into the VB editor, click on the 'Workbook' entry in the Project Explorer in the left pane and paste in the above.