1

VBAで作成したExcelアドインがあります。これを呼び出しましょうMyAddin.xlam
プロジェクト名をに設定しましたMyAddin

2番目のプロジェクトを開いてを選択するTools->References...と、MyAddInは問題なく表示されます。すべてが機能します。それは素晴らしいことです。

しかし..純粋に審美的な理由から、私はMy Addinリストを参考文献のリストのように表示したいと思います。潜在的なレファレンスのリストで利用可能なほとんどすべてのものは、名前にスペースがあります。
しかし、プロジェクトの名前を変更して名前にスペースを入れようとすると、VBAではそれができなくなります。

それで、質問が聞こえるかもしれませんが、「参照」リストのVBAアドインの表示名にスペースを入れる方法はありますか?

「これはVBAでは不可能です。別の言語でアドインを作成する場合にのみ参照名にスペースを入れることができます」という答えを完全に受け入れますが、単純なものが欠けているのではないかと思います。 。

ありがとう!

編集、補遺:基本的に、私の質問は次のとおりです。「表示名」を、ファイル名/オブジェクト名の制限を気にしないプロジェクト名とは異なるものにする方法はありますか?

4

2 に答える 2

2

うん、あなたは正しい。VBAでは、[プロパティ]ウィンドウの[プロジェクト名]にスペースを挿入することはできません。

しようとすると、エラーが発生します(スナップショットを参照)

ここに画像の説明を入力してください

VB.netでも幸運はありません。スペースを追加すると、Excelでアンダースコアに変換されました。もっとテストして、あなたに返事をさせてください...

スナップショット

ここに画像の説明を入力してください

ファローアップ

いよいよふぅ!はい、VB.Netで可能です。詳細が必要な場合はお知らせください。

ここに画像の説明を入力してください

于 2012-05-18T16:07:26.040 に答える
1

Titleビルトインドキュメントプロパティを編集することで、[アドイン]ウィンドウに表示される表示名を変更できますが、[参照]ウィンドウの名前には役立ちません。

VBEでは、モジュール名のプロジェクト名に不正な文字を使用することはできませんが、それができないという意味ではありません。

たとえば、Analysis Toolpak-VBAアドインATPVBAEN.XLAMのプロジェクト名には、違法と思われるatpvbaen.xls文字が含まれています.

同様に、同じプロジェクトにVBA Functions and Subsは、不正な (スペース)文字を含むというモジュールがあります。

ただし、Analysis Toolpakのパブリックプロシージャは、角かっこを使用して呼び出すことができます。

Sub test()

  'Run the auto_open macro in Analysis Toolpak
  [atpvbaen.xls].[VBA Functions and Subs].auto_open

End Sub

したがって、Microsoftは、プロジェクト名とモジュール名で不正な文字を使用する方法を知っています。これは、おそらくバイナリで、またはVBEの特別なビルドで行われます。

編集

VBAプロジェクトのバイナリを編集したところ、VBAプロジェクト名にスペースを入れることができました。

興味深いことに、VBEはインポート時に命名規則を適用しているため、AnalysisToolpakからモジュールをエクスポートしてから再インポートすることはできません。それをソース管理で機能させるために頑張ってください。

編集:2017 年2月3日VBAファイル形式の仕様から:[MS-OVBA]

[モジュール名]は識別子である必要があります...任意の文字列である可能性があります... 31文字以下の長さである必要があります。

[プロジェクト名]識別子である必要があります...任意の文字列である可能性があります... 128文字以下の長さである必要があります。

したがって、VBEはSHOULDルールを課しているように見えますが、プロジェクトバイナリを編集できる場合、VBAは実際にはより寛容です。

于 2016-10-18T03:43:19.670 に答える