2016-11-16 7 views
1

Outlookから実行されるVBAスクリプトを使用してExcel範囲をテーブルに変換しようとしています。OutlookでVBAを使用すると、Excelの範囲をテーブルに変換するにはどうすればよいですか?

ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "myTable" 

私はOutlookのこの次のコードを試してみましたが、それは失敗しました::

Dim excApp As Excel.Application 
Set excApp = GetObject(, "Excel.Application")  
excApp.ListObjects.Add(xlSrcRange, Range("A1:D10"), , xlYes).Name = "myTable" 

このコードは実行時エラー「1004」を投げたエクセルからではなく、Outlookから実行すると

これは働いていましたオブジェクト '_Global'のメソッド 'Range'が失敗しました。

コードをどのように動作させるかを知りたいのですが、私のコードが失敗した理由を理解して、それから学ぶこともできます。私は何か提案を感謝します。ありがとう!

答えて

2

Excelでは既にシートが開いているためです。範囲が存在するシート、ブック、またはExcelアプリケーションオブジェクトを指定せずにRange("somerange")を貼り付けるだけで、ActiveSheetがデフォルトになります。Outlookではactivesheetというようなものがないので、その範囲の意味が分かりません。

あなたがより明確にする必要があります。これらの行要するに

に沿っ

Dim excApp As Excel.Application 
Set excApp = GetObject(, "Excel.Application") 
Dim excWB as Object 
Set excWB = excApp.Workbooks.Add 
excApp.ListObjects.Add(xlSrcRange, excWB.sheets("sheet1").Range("A1:D10"), , xlYes).Name = "myTable" 

か何か、Excelアプリケーションがワークブックを持って、ワークブックには、シートを持っている、とシートが範囲を有します。

関連する問題