0

定義済みのモジュールをアクティブなワークブックに自動的に追加する Excel アドインを作成しようとしています。

「定義済みモジュール」は、次の 2 つの要件を満たす必要があります。

  1. これらのモジュールは、Excel VBA エディターから .bas 形式でエクスポートされます。
  2. これらの .bas ファイルは、ユーザーには表示されません。

MSDN を検索した後、同様のことを行うこのトリックを見つけました。

void load_module(EXCEL.Workbook oBook){ 
     VBIDE.VBComponent oModule;
     oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
     oModule.Name = "module_name";
     sCode = "vba script content";
     oModule.CodeModule.AddFromString(sCode);
     //oModule.CodeModule.AddFromFile(file_name);
}

「AddFromFile」メソッドは機能しますが、ファイルに vba コードのみが含まれ、ファイルがディスク上にある必要がある場合のみです。

問題は次のとおりです。

  1. Excel vba エディターによって生成された .bas ファイルには、最初の数行にいくつかの「META」データが含まれています。以前の方法では、これらの「META」データは解析されず、すべてのコードが新しいモジュールに出力されますが、これは予期されていません。

  2. 以前の方法を使用すると、.bas ファイルがユーザーに表示されます。しかし、それらを目に見えないようにする必要があります。

それで、この混乱を解決するアイデアはありますか?: )

4

1 に答える 1

0

私は次のようにします:

  1. ネットワークの場所からローカル ディスクにファイルをコピーします。
  2. ファイルから不要な「META」データを削除します。
  3. エクセルに読み込みます。
  4. ディスクからローカル コピーを削除します。

もちろん、ネットワーク上のファイルにもアクセスできますが、見つけにくくなるはずです。

于 2012-09-18T01:51:45.403 に答える