2012-02-07 4 views
0

アドインを使用しているスプレッドシートをいくつか持っています(Addin2003と呼ぶことにします)。新しいバージョンのExcelへの移行のために、私は新しいアドインを使用するためにスプレッドシートのいくつかを必要とします(それをAddin2010と呼ぼう)。Excel:ファイルを開かずにアドインリファレンスを変更する

スプレッドシートを開いていなくても、スプレッドシートで使用されている参照を確認したり変更したりする簡単な方法はありますか?

だから、(擬似コード)のようなもの:それをより明確にするために

For each wbk in aListOfWorkbooks 
    If wbk.containsReference("Addin2003") And someOtherCriteria Then 
    wbk.removeReference("Addin2003") 
    wbk.addReference("Addin2010") 
    End If 
Next 

EDIT

、エクセル2003と2010は同じアドインがロードされていないので、私は依存しているいくつかのスプレッドシートを変更したいです2003年のAddinで、代わりに2010年のAddinを使用させてください。言い換えれば、これはワークブックを開いてVBAエディタを開き、Tools/Referencesメニューに行き、Addin 2003(Addisin 2003)からAddin 2010にリファレンスを変更するのと同じです。 もし私がExcel 2010のこれらのブック(2003年のAddinを持たない)では、Excelが2003年のAddinを見つけることができないという事実のために、さまざまなエラーが発生します。 そのため、ワークブックを開いて参照を変更しないほうが簡単かもしれないと思ったのです。

FINAL WORD

それを行うことはできないようだと私は物理的に参照を変更し、ファイルを開く必要があります。皆さん、ありがとうございました。おそらく、これに似た何かをしたいと思う

+1

を、私は400の2.4MB Excelブックの開閉をタイムアウトしました。それは188秒かかりました。 1回限りの作業では、400件のワークブックごとに3分のオーバーヘッドを気にする必要はありません。 –

+0

2つのバージョンのExcelに2つのAddinsはインストールされていませんが、試してみます。したがって、2003年にブックを開くと、2010のアドインが好きではなくなります。逆の場合も同様です... – assylias

+0

ブックを開き、ブックを開くExcelアドインマクロとExcel 2003マクロを開くExcel 2003マクロがあります新しいアドインを追加します。 –

答えて

2

:別の質問に応えて

Sub ChangeAddins() 

    Dim oAddin As AddIn 
    Dim sFullNameOfAddin As String, sThisAddinName As String 

    sFullNameOfAddin = ThisWorkbook.Path & "\" & "NewAddin.xlam" 
    'Add in name of xla 
    sThisAddinName = "Add-in Name" 

    If Application.Version > 11 Then 
     Set oAddin = AddIns.Add(sFullNameOfAddin, True) 
     oAddin.Installed = True 
     For Each oAddin In Application.AddIns 
      If oAddin.Name = sThisAddinName Then 
       If oAddin.Installed Then 
        oAddin.Installed = False 
       End If 
      End If 
     Next oAddin 
    End If 

End Sub 
+0

まだブックを開く必要があります。しかし、コードのおかげで。 – assylias

+0

ブックを開かずにどのようにしたらいいのか分かりませんが、実際にExcelアプリケーションの隠れたインスタンスを開いて実行することができます。実際のワークブックを開く必要はありません。ブックのオープンイベントにコードを実装して、古いアドインが削除されている場合は、そのアドインがまだ存在するかどうかを確認することもできます。ワークブック自体が削除されている可能性があります。 – Jon49