3

全員が手動でダウンロードしてインストールする必要がないように、スタッフ間で共有されている Excel アドインを更新する方法が必要です。

Google で検索したところ、ファイルを OS ファイル システムに書き込めることがわかったので、新しいバージョンのアドイン、つまり .xlam ファイルを書き込んで自分自身を上書きすることになります。

これを行う方法がわかりません。持っている場合は、共有してください!ありがとうございました!

4

3 に答える 3

4

それを行うためのより粗雑な方法があるかどうかはわかりませんが、SendKeys. ええ、私は知っています。他の誰かがより良い解決策を持っていることを願っています。

思い出すと、.xla(m) ファイルを上書きする前にアドインをアンインストールする必要がありますが、組み込みオブジェクトだけを使用してこれを行う方法が見つかりませんでした。

以下のコードは、基本的にアドインをアンインストールし、[アドイン] ダイアログ ボックスを呼び出してSendKeys、リストからアドインを削除してから、新しいファイルをコピーしてアドインを再インストールします。

状況に合わせて修正してください。もちろん、ユーザーのセキュリティ設定が十分に低く、実行できるかどうかによって異なります。

Sub UpdateAddIn()          
    Dim fs As Object
    Dim Profile As String

    If Workbooks.Count = 0 Then Workbooks.Add
    Profile = Environ("userprofile")
    Set fs = CreateObject("Scripting.FileSystemObject")
    AddIns("MyAddIn").Installed = False
    Call ClearAddinList
    fs.CopyFile "\\SourceOfLatestAddIn\MyAddIn.xla", Profile & "\Application Data\Microsoft\AddIns\", True
    AddIns.Add Profile & "\Application Data\Microsoft\AddIns\MyAddIn.xla"
    AddIns("MyAddIn").Installed = True
End Sub

Sub ClearAddinList()        
    Dim MyCount As Long
    Dim GoUpandDown As String

    'Turn display alerts off so user is not prompted to remove Addin from list
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    Do
        'Get Count of all AddIns
        MyCount = Application.AddIns.Count    

        'Create string for SendKeys that will move up & down AddIn Manager List
        'Any invalid AddIn listed will be removed
        GoUpandDown = "{Up " & MyCount & "}{DOWN " & MyCount & "}"    
        Application.SendKeys GoUpandDown & "~", False
        Application.Dialogs(xlDialogAddinManager).Show    
    Loop While MyCount <> Application.AddIns.Count    

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True    
End Sub
于 2012-07-20T10:28:45.190 に答える
4

私はこれを行うために、アドイン マネージャーを元に戻すを使用します。基本的には、各ユーザーのマシンにインストールされているものを決して変更しない小さな xla/xlam です。ネットワーク共有で実際のアドインの最新バージョンをチェックし、それを通常のワークブックのように開きます。これにより、ユーザーの実際のアドインをロードする効果があります。

ここでカスタマイズできるダウンロード可能な実用的な例があります

于 2012-07-20T11:15:40.043 に答える