2016-12-11 5 views
1

VBAには次のコードがあります。ExcelプロジェクトをコールするMS Project内で作成しています。私は、Project、Excel、Officeinの順番でv15ランタイムライブラリを再整理しました。438オブジェクトは、このプロパティまたはメソッドをサポートしていません。MS ProjectおよびExcelマクロ

私はそれがなど....ライン

strFileToOpen = Application.GetOpenFilename _

に、このプロパティまたはメソッドをサポートdoes notの原因エラー438オブジェクトへのコンパイルに失敗して実行します。

これは私に正しく構文されているように見える場所を示唆することができます。

Dim strFileToOpen As Variant 

strFileToOpen = Application.GetOpenFilename _ 
    (Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),") 
Workbooks.Open FileName:=strFileToOpen 
'# Open Workbook 
MsgBox strFileToOpen 

答えて

2

プロジェクトとExcelの両方には、「アプリケーション」という名前で直接参照できるApplicationオブジェクトがあります。マクロがProjectで実行されているので、Applicationへの未修飾の参照は、プロジェクト自身のApplication objectを参照します。

GetOpenFilename methodは、Excelアプリケーションオブジェクトの一部であり、プロジェクトアプリケーションオブジェクトではありません。このメソッドを呼び出すには、次のようにExcelアプリケーションオブジェクトへの参照で呼び出しを修飾する必要があります。

Dim xl As Excel.Application 
Set xl = New Excel.Application 
xl.Visible = True 

Dim strFileToOpen As Variant 

strFileToOpen = xl.GetOpenFilename _ 
    (Title:="Please choose a file to open", FileFilter:="Excel Files *.xls* (*.xls*),") 
xl.Workbooks.Open FileName:=strFileToOpen 
'# Open Workbook 
MsgBox strFileToOpen 
関連する問題