まず、コミュニティに参加できてとてもうれしいです。頻繁にアドバイスを交換できればと思います。私はフランス人なので、文章の間違いをお許しください。
私は自分の問題を説明しようとします:
Excel ファイルの Backstage を使用して小さなダッシュボードを作成するという "良い" アイデアがありました。それは非常にうまく機能します。
このファイルは、Excel の同じインスタンスで別のファイルと同時に開かれると、問題が発生します。2 番目のファイルは、ワークブックの関数 "Backstage_OnShow" および "Backstage_OnHide" にアクセスしようとしているため、「マクロ 'Backstage_OnShow' (または 'Backstage_OnHide') を実行できません。このマクロでは使用できない可能性があります」というメッセージが表示されます。 workbook ..." <-これは、フランス語のエラー メッセージの翻訳です。
このメッセージが表示されないようにするには、またはバックステージが Excel のインスタンスではなくファイルに固有のものであることを確認するにはどうすればよいですか?
コードスニペットで示します。より明確になります。
私のXMLには、これがあります:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad ="Ribbon_Load">
<ribbon startFromScratch="false"/>
<backstage onShow="Backstage_onShow" onHide="Backstage_onHide">
...
</backstage>
</customUI>
私のExcelファイルには、これがあります:
Public Sub Ribbon_Load(ribbon As IRibbonUI)
Set Ruban = ribbon
End Sub
Public Sub Backstage_onShow(ByVal contextObject As Object)
'Rafraichissement du ruban
Ruban.Invalidate
End Sub
Public Sub Backstage_onHide(ByVal contextObject As Object)
End Sub
これはすべて通常の Excel ファイルに含まれています。Excel 2010 では、Excel ファイルは既定で同じインスタンスで開かれますが、これは気になりませんが、カスタマイズしたバックステージ ファイルと同じインスタンスで「通常の」ファイルを開くと、通常のファイルが試行されます。 Backstage_onShow Backstage_onHide 関数にアクセスし、その舞台裏を表示するとすぐに、なんという奇跡でしょう。ただし、これらの関数は報告されないため、このファイルはこれらの関数が存在することさえ知らないはずです。
前もって感謝します。
心から、
パトリス。
PS : これは、私のファイルを表示したい場合のリンクです。もちろん、安全なコード スニペットです。