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

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

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

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

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

Q&A

解決済

1回答

9950閲覧

Option Strict On:遅延バインディングを使用できません。を解決したい

xxx8

総合スコア41

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

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

0グッド

0クリップ

投稿2018/11/13 02:41

前提・実現したいこと

下記サンプルコードを使用して、エラー時の分岐処理を行いたい。

発生している問題・エラーメッセージ

Option Strict Onにすることで
iRet = objLbl.lsdForm.FileName(LblFile)
部分でエラーが発生します。

Option Strict Onでは、遅延バインディングを使用できません。

該当のソースコード

Private obj As Object = Nothing ・ ・ ・ obj = CreateObject("xxxxxx.xxx") ・ ・ ・ Dim iRet As Integer iRet = obj.lsdForm.FileName(LblFile) If iRet <> 0 Then SelectForm = -1 Select Case iRet Case -1 : MsgBox("Err1", MsgBoxStyle.OKOnly Or MsgBoxStyle.Critical, "Title") Case -2 : MsgBox("Err2", MsgBoxStyle.OKOnly Or MsgBoxStyle.Critical, "Title") Case -3 : MsgBox("Err3", MsgBoxStyle.OKOnly Or MsgBoxStyle.Critical, "Title") End Select End If

試したこと

lsdFormに対しての型宣言が足りないと思い、下記のように宣言しましたが
状況は変わりません。

Dim lsdForm As System.Object

また、Option Strict Onがない状態で、「lsdForm」の宣言部分をオブジェクトブラウザーで見ると

.NET Framework クラス階層のすべてのクラスをサポートし、派生クラスに下位レベルのサービスを提供します。これは、.NET Framework の全クラスの基本クラスであり、型階層のルートです。

となっていました。

補足情報(FW/ツールのバージョンなど)

VisualStudio2010
VB.NET

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

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

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

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

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

guest

回答1

0

ベストアンサー

遅延バインディングは、以下コードの部分で使用されています。

obj = CreateObject("xxxxxx.xxx")

残念ながら、Option Strict Onを宣言した場合、この方法(遅延バインディング)を使えません。

CreateObject("xxxxxx.xxx")が何かは分かりませんが、COM参照等ができればその方法で、そうでなければOption Strict Onをやめるしかないでしょう。

投稿2018/11/13 04:10

kenshirou

総合スコア772

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

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

xxx8

2018/11/13 04:22

ご回答ありがとうございます。 CreateObject("xxxxxx.xxx")の「x」部は LsdServerN.LabelStudioです。
kenshirou

2018/11/13 07:59

"LsdServerN.LabelStudio"でググるとNittoのLabel Studio.NETというものがヒットしますが、これでしょうか?(これ関連しかヒットしない) もし違ったら申し訳ないのですが、この商品のことは良く分かりません。 どこかの会社の商品であれば、そこに確認するのが一番かと思います。 (ただし、古い商品だと、サポートが終了している恐れあり。)
xxx8

2018/11/13 08:16

ご丁寧にありがとうございます。 引き続き調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問