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

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

新規登録して質問してみよう
ただいま回答率
85.50%
VB.NET

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

Q&A

1回答

1032閲覧

VB.NETで参照先のプロジェクト(名前空間)を動的に変更したい

kuro226

総合スコア0

VB.NET

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

0グッド

0クリップ

投稿2022/09/02 08:31

編集2022/09/06 15:20

vb.netでプロジェクトA
及び、プロジェクトAから参照しているプロジェクトB~プロジェクトGがあります。

プロジェクトAーーープロジェクトB
ーーープロジェクトC
ーーープロジェクトD
ーーープロジェクトE
ーーープロジェクトF
ーーープロジェクトG

プロジェクトB~Gには同じ名前のActiveReportsが存在します。

プロジェクトAからプロジェクトB~GのActiveReportsを参照する際に
条件によって切り分けたい。
単純にIF文やCase文で分岐すれば良い話しかもしれませんが、
できる事ならプロジェクトの名前空間を動的にするような作りにしたいです。

例えば
Dim 変数A as Object
If 条件=B Then
変数A = プロジェクトB.クラスAのインスタンス生成
ElseIf 条件=C Then
変数A = プロジェクトC.クラスAのインスタンス生成
ElseIf 条件=D Then
変数A = プロジェクトD.クラスAのインスタンス生成
ElseIf 条件=E Then
変数A = プロジェクトE.クラスAのインスタンス生成
ElseIf 条件=F Then
変数A = プロジェクトF.クラスAのインスタンス生成
ElseIf 条件=G Then
変数A = プロジェクトG.クラスAのインスタンス生成
End If

これを
変数A = (名前空間が動的に変化する).クラスAのインスタンス生成
のような感じでインスタンス生成を1行にしたい。

良い方法があれば、ご教授願います。

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

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

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

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

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

guest

回答1

0

vb

1Dim projectName As String = "プロジェクトB" 2Dim 変数A As Object = Activator.CreateInstance(Type.GetType(projectName & ”.クラスA”)

あるいはプロジェクトとクラスをセットにして

vb

1Dim reportType As Type = GetType(プロジェクトB.クラスA) 2Dim 変数B As Object = Activator.CreateInstance(reportType)

投稿2022/09/02 10:04

KOZ6.0

総合スコア2622

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

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

kuro226

2022/09/06 06:20 編集

ありがとうございます! そのまま実装したところ「値を Null にすることはできません。" & vbCrLf & "パラメーター名:type"」のエラーが発生したので、少し調べてDLLを指定してみたら上手く行きました! Dim projectName As String = "プロジェクトB" Dim 変数A As Object = Activator.CreateInstance(Type.GetType(projectName & ”.クラスA”,projectName))
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問