質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

7730閲覧

VB.NETでのVBAのDLLライブラリ作成について(COM相互運用機能の登録がグレー表示)

yakar

総合スコア1

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2021/04/27 12:30

VB.NETにて、クラスライブラリ(dll, tbl)を作成し、Excel VBAの参照設定に登録して使用したいと考えていますが、
VisualStudio2019のCOM相互運用機能の登録がグレー表示でチェックをすることができないため、解決方法を
ご教授いただければ幸いです。
(まずは最小構成でのExcelのライブラリとして登録可能なDLLファイルを作成したいと考えています。)

OSはWindows10、VisualStudio 2019、ExcelはMicrosoft365版を使用。
作業手順は下記の通りです。

VisualStudio2019インストール後に、
・VisualBasicのクラスライブラリを選択して、新しいプロジェクトを作成。
・実際のコードは、下記HPを参照して、サンプルコード(WebPage.vb)を
使用して作成。

「VBAで独自の.NETライブラリを使うには」
https://www.atmarkit.co.jp/fdotnet/dotnettips/1063vbausedotnet/vbausedotnet.html

・GUIDの生成もでき、コードに埋め込みましたが、
その後のコンパイル-COM相互運用機能の登録の部分で、
グレー表示となっており、チェックができない状態です。
(VisualStudio2019のため、画面構成は異なりますが)

・チェックを入れないまま、ビルド(B)-ソリューションのビルド(B)を実行してDLLを作成し、
ExcelのVBEのツール(T)-参照設定(R)で参照設定を開き、参照(B)ボタンから、
作成したDLLを登録しても「指定されたファイルへの参照は登録できません。」
のエラーが表示されてしまいます。

初心者のため、設定などでおかしな部分があるかもしれませんが、
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

.NET Frameworkのクラスライブラリではなく.NET Coreや.NET Standardのクラスライブラリだったりしませんか?

投稿2021/04/27 13:54

YAmaGNZ

総合スコア10251

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yakar

2021/04/28 03:45 編集

ご回答ありがとうございます。確認したところ、アプリケーションのターゲットフレームワーク(T)が「.NET Core 3.1」となっていたため、「.NET 5.0」に変更し保存後に、VisualStudioを再起動しましたが、グレー表示は変わらない状況でした。 ちなみに、下記コマンドで確認したところ、.NET Frameworkのバージョンは,5.0.202と思います。 >dotnet --list-sdks 5.0.202 [C:\Program Files\dotnet\sdk] (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\FullのReleaseの値は「528372」) ターゲットフレームワーク(T)より「別のフレームワークをインストールします…」を選択し、.NET Framework4.8のRuntimeをD/Lして、ndp48-web.exeを実行しましたが 「このコンピューターには .NET Framework 4.8 またはそれ以降の更新プログラムが既にインストールされています。」 が表示され、インストールができませんでした。 一旦、.NET5.0をアンインストールして.NET Framework 4.8をインストールした方がよろしいでしょうか? 分かりましたら、ご教授いただければ幸いです。よろしくお願いいたします。
YAmaGNZ

2021/04/28 03:48

プロジェクトを作り直してください。 プロジェクトテンプレートには「クラスライブラリ (.NET Framework)」と「クラスライブラリ (.NET Core)」と「クラスライブラリ (.NET Standard)」がありますので、「クラスライブラリ (.NET Framework)」を選んでください。
yakar

2021/04/28 23:09

YAmaGNZ様 ご指摘のプロジェクトを作り直したところ、COM相互運用機能の登録が選択できるようになりました。ありがとうございました。 (ビルド時にエラーが出ていますが、別問題のため本件については、解決済としたいと思います)
guest

0

その後のコンパイル-COM相互運用機能の登録の部分で、
グレー表示となっており、チェックができない状態です。

プロジェクトの種類がクラスライブラリになっていないのでは。

投稿2021/04/27 13:41

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yakar

2021/04/28 03:04

ご回答ありがとうございます。確認しましたが、新しいプロジェクト作成時に、「クラスライブラリ Visual Basic」を選択しており、プロパティ-アプリケーションの種類もクラスライブラリの表示になっていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問