My vba script in myMacro.xls Workbooks.Open Method work well as below,
Workbooks.Open Filename:=\"D:\\ExcelMacroProj\\myTest.xl
Filename is relative to the current Excel directory (which is different from the directory in which an opened document is).
You change the current directory by using ChDir "x:\new\path".
But what you actually want to do is:
Workbooks.Open Filename:=EnsureSlash(ThisWorkbook.Path) & "myTest.xls", ReadOnly:=True
, where EnsureSlash is your custom function that appends a backslash (\) to the end of the string, if it's not already there (because ThisWorkbook.Path ends with a slash when the path is the root directory, and doesn't otherwise).
You might try using ThisWorkbook.Path to make an absolute path. It returns the folder path of the workbook running the macro (excluding the filename). Something like this should work:
Workbooks.Open Filename:=ThisWorkbook.Path & "\myTest.xls", ReadOnly:=True
Make sure to include a backslash, since the workbook path doesn't end with one.