2016-03-23 8 views
1

私は、フォームに入力するためにExcelファイルからデータを取得する単語テンプレートファイルを用意しています。2013年にWord VBAコードをアップグレードする

Dim myXL As Object 
Set myXL = Getobject("myfile.xls") 
myXL.Application.Visible = True 
myXL.Parent.Windows(1).Visible = True 

このコードは、Office 2010および2007で正常に動作しますが、私は2013年にそれをしようとすると、それは、array subscript errorあるrun time error 9を与える:

コードは次のようになります。私はWindows配列をチェックするとき、それはゼロ要素を持っているので、エラーは正しいです。

2013年に同じ結果を達成するにはどうすればよいですか?

コードの次のビットは、Worksheets("mysheet")にアクセスしようと私は、ワークシートにアクセス可視=真行をスキップする場合runtime error 1004.

大幅に理解されるであろうこの固定持つ任意の助けを与えます。エクセル

からのデータの例を取得するために

答えて

1

オフィス2013のコードを動作させることであろう私は、ウィンドウが表示されるようにしようとする前にラインmyXL.Activateを追加しました。だから、コードは次のようになります。

Dim myXL As Object 
Set myXL = Getobject("myfile.xls") 
myXL.Application.Visible = True 
myXL.Activate 
myXL.Parent.Windows(1).Visible = True 

この

は、実行時エラーを修正し、コードがうまく機能に戻って行きました。

+0

クール私はあなたのために働いてうれしい – 0m3r

1

が...

Option Explicit 
Sub ExcelData() 
    Dim xlApp As Object ' Application 
    Dim xlBook As Object ' Workbook 
    Dim xlSht As Object ' Worksheet 
    Dim FilePath As String 

    FilePath = "C:\Temp\Book1.xlsx" 

    Set xlApp = CreateObject("Excel.Application") 
    Set xlBook = xlApp.Workbooks.Open(FilePath) 
    Set xlSht = xlBook.Sheets("Sheet1") 

    With ActiveDocument 
     .Content = xlSht.Range("A1").Value 
    End With 

    xlApp.Visible = True 

    Set xlApp = Nothing 
    Set xlBook = Nothing 
End Sub 
+1

コードサンプルをいただきありがとうございます。面白いのは、私が使いこなすコードとはどう違うのですか? myWS = myXL.Application.Worksheets( "Sheet1")を設定し、その後は同様の表示になりますが、視認性を変更するのではなく最後にmyXL.Quitを実行します。 – Jules

関連する問題