I found a nonideal solution to this, but I'd still like a cleaner solution.
I found I can use this MATLAB object to ask it where the MATLAB root is using the matlabroot command. Then, I format a string and use a VBA shell command:
Sub RunMATLABGUI()
Dim MatLab As Object
Dim MATLABROOT As String
Dim Flocation As String
Flocation = ThisWorkbook.Path
Dim hMatlab As Object
Set hMatlab = CreateObject("Matlab.Application")
MATLABROOT = hMatlab.Execute("matlabroot")
MATLABROOT = Mid(MATLABROOT, 13, Len(MATLABROOT) - 12) 'This is to get rid of the ans = part of the MATLAB returned string
MATLABROOT = Replace(MATLABROOT, "'", "") 'MATLAB returns this in apostrophe quotes
MATLABROOT = Replace(MATLABROOT, Chr(10), "") 'There are carriage returns in the string that shouldnt be there
MATLABROOT = MATLABROOT & "\bin\matlab.exe"
MATLABROOT = Chr(34) & MATLABROOT & Chr(34)
MATLABROOT = MATLABROOT & " -nodisplay -nosplash -nodesktop -r run('ResultsGUI_For_MultiYrs_Sheet.m')"
ChDir Application.ActiveWorkbook.Path
Shell (MATLABROOT)
End Sub