are you adding the actual excel file as a resource, or a string that points to the excel file somewhere else on disk?

If it is that you are adding the whole excel file, then it will be stored as a byte array inside your exe file. When you access it with My.Resources.acceso, you are getting an array of bytes, which you would need to write to disk (perhaps to the users temp folder) and then call workbooks.open() passing in the string path to the file on the drive. Excel is only going to open a file on disk, so you can't get around needing to extract it somewhere on the users drive. Look at My.Computer.FileSystem.WriteAllBytes() method, which would be useful to write the byte array of the file out to a place on the disk so you can open it.