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

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

ただいまの
回答率

90.45%

  • Visual Studio

    2434questions

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

VS Community

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,652

TaruOrder

score 40

VB.NETの開発でVS Communityを使っています。
slnソリューションファイル?を立ち上げてからデバッグをすると普通にエラーなく通るのですが、

フォルダ内の'デバッグ リリース'フォルダから exeで起動するとエラーがでてしまいます。
このような場合はどすればよいのでしょうか??

--追加
エラー内容
アプリケーションのコンポーネントで、ハンドルされない例外が発生しました。
[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。
[終了]をクリックすると、アプリケーションは直ちに終了します。

オブジェクト参照がオブジェクトインスタンスに設定されていません。
[詳細]
Just-In-Time (JIT) デバッグを呼び出すための詳細については、
ダイアログ ボックスではなく、このメッセージの最後を参照してください。

**** 例外テキスト ****
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
   場所 ラクスル.Form1.Button2_Click(Object sender, EventArgs e) 場所 E:\ラクスル\ラクスル\Form1.vb:行 31
   場所 System.Windows.Forms.Control.OnClick(EventArgs e)
   場所 System.Windows.Forms.Button.OnClick(EventArgs e)
   場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   場所 System.Windows.Forms.Button.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


**** 読み込まれたアセンブリ ****
mscorlib
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.100.0 built by: NETFXREL2STAGE
    コードベース:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ラクスル
    アセンブリ バージョン:1.0.0.0
    Win32 バージョン:1.0.0.0
    コードベース:file:///E:/%E3%83%A9%E3%82%AF%E3%82%B9%E3%83%AB/%E3%83%A9%E3%82%AF%E3%82%B9%E3%83%AB/bin/Debug/%E3%83%A9%E3%82%AF%E3%82%B9%E3%83%AB.exe
----------------------------------------
Microsoft.VisualBasic
    アセンブリ バージョン:10.0.0.0
    Win32 バージョン:14.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.91.0 built by: NETFXREL2STAGE
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
mscorlib.resources
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ja_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
Microsoft.mshtml
    アセンブリ バージョン:7.0.3300.0
    Win32 バージョン:7.0.3300.0
    コードベース:file:///C:/Windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll
----------------------------------------
System.Windows.Forms.resources
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.6.81.0 built by: NETFXREL2
    コードベース:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

**** JIT デバッグ ****
Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、
またはコンピューター (machine.config) の構成ファイルの jitDebugging 
値を system.windows.forms セクションで設定しなければなりません。
アプリケーションはまた、デバッグを有効にしてコンパイルされなければ
なりません。

例:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、
ハンドルされていない例外はすべてコンピューターに登録された
JIT デバッガーに設定されなければなりません。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Tak1wa

    2015/12/01 17:44

    エラーの内容を追加してください。

    キャンセル

  • TaruOrder

    2015/12/01 17:50

    修正の依頼ありがとうございます!
    エラー内容を書かせていただきました!

    キャンセル

回答 3

+2

31行目がどこかわからないのでエスパーすると、
Dim htmlDoc As HtmlDocument = WebBrowser1.Document
これ、WebBrowser1で中身の読み込みが完了していないタイミングだとNULLで返って来たはずなので、
htmlDoc.GetElementsByTagName("TABLE")をしてもNULL参照だからプロパティもメソッドもないよって例外エラーのような気がします

DocumentCompletedイベントハンドラを使うなどして読み込み完了かどうかの確認をしたほうが良いのでは?

なお、他の処理もわかりませんし31行目がどこかわからない為見当外れの指摘である可能性があります

追記:質問のタグがVisualStudioとなっていますが、これってVB.NETの質問ですよね?
VBを長らく触っていない僕よりもよく触っている人の意見があった方が良いのではありませんか?
タグは複数付けることができますので関係ありそうなタグは付けておきましょう

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/02 09:35

    解答ありがとうございます!
    31行目は、上から数えて2番目にTry Catchでした!
    DocmentCompletedイベントハンドラを使ってみます!
    タグのことまで教えていただきありがとうございます!!!!

    キャンセル

  • 2015/12/02 22:27

    一つ目が通っているのであれば、Convt_Type()が悪さをしているのかも?
    軽く検索したけれど拾えない例外もあるらしい
    とはいえ、webブラウザコントロールだから裏でなんか動いててその影響で例外が起きているのかもしれないし、断言は難しいかな・・・
    単純に一つ目を拾うタイミングはブラウザコントロールが読み込むほうが早かったけど、二つ目のところはまだかもしれないし(JSでコントロールを作り出していてサーバーから情報を取得中だとか色々可能性はある)
    なのでブラウザコントロールで取得しているwebページのID=pidのinputがどういうものなのか、Convt_Type関数が何をしているのかどんな例外が起きそうなのかその辺を確認しないと何ともわからない

    キャンセル

0

こんにちは。

こういうときは、まずはエラーメッセージの通りであると疑って調べたほうが良いのかな。
Form1.Button2_Clickメソッド(ソースファイル31行目)でNULL参照が起きているようです。
思い当たる点はないですか?

もし、全く見当がつかないようであれば、該当メソッドを掲示してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/01 17:57

    31行目あたりをチェックしました!
    31行目あたりの処理にはすべてTryで囲んでいるですがだめなのでしょうか...

    --処理内容
    Dim htmlDoc As HtmlDocument = WebBrowser1.Document

    Dim Elements As HtmlElementCollection = htmlDoc.GetElementsByTagName("TABLE")

    ListBox1.Items.Clear()

    Try
    If Not htmlDoc.GetElementsByTagName("input")("sid").Equals(Nothing) Then
    'サイズ
    TextBox1.Text = Conv_Size(htmlDoc.GetElementsByTagName("input")("sid").GetAttribute("value"))
    End If
    Catch ex As Exception
    TextBox1.Text = "Empty"
    End Try

    Try
    If Not htmlDoc.GetElementsByTagName("input")("pid").Equals(Nothing) Then
    '種類
    TextBox2.Text = Convt_Type(htmlDoc.GetElementsByTagName("input")("pid").GetAttribute("value"))
    End If
    Catch ex As Exception
    TextBox2.Text = "Empty"
    End Try

    Try
    If Not htmlDoc.GetElementsByTagName("input")("weight").Equals(Nothing) Then
    '暑さ
    TextBox3.Text = Convt_AT(htmlDoc.GetElementsByTagName("input")("weight").GetAttribute("value"))
    End If
    Catch ex As Exception
    TextBox3.Text = "Empty"
    End Try

    Try
    If Not htmlDoc.GetElementsByTagName("input")("color").Equals(Nothing) Then
    '印刷方法
    TextBox4.Text = Convt_Output(htmlDoc.GetElementsByTagName("input")("color").GetAttribute("value"))
    End If
    Catch ex As Exception
    TextBox4.Text = "Empty"
    End Try

    Try
    If Not htmlDoc.GetElementsByTagName("input")("option-14").Equals(Nothing) Then
    '加工
    TextBox5.Text = Convt_Kakou(htmlDoc.GetElementsByTagName("input")("option-14").GetAttribute("value"))
    End If
    Catch ex As Exception
    TextBox5.Text = "Empty"
    End Try

    Dim TD_Doc As HtmlElementCollection = Elements.Item(0).Document.GetElementsByTagName("TD")


    For i = 0 To TD_Doc.Count - 1

    If String.IsNullOrEmpty(TD_Doc.Item(i).InnerText) Then

    ListBox1.Items.Add("")

    Else

    ListBox1.Items.Add(TD_Doc.Item(i).InnerText)

    End If


    Next
    Dim Ar2 As New ArrayList


    For i = 0 To ListBox1.Items.Count - 1
    TextBox6.AppendText(i & "番目:" & ListBox1.Items(i).ToString.Replace(Chr(10), "").Replace(Chr(13), "") & vbCrLf)

    If ListBox1.Items(i).ToString Like "*m*" Or ListBox1.Items(i).ToString Like "*各*" Then
    Ar2.Add(ListBox1.Items(i).ToString)
    End If

    Next

    For i = 0 To Ar2.Count - 1
    ListBox1.Items.Remove(Ar2(i))
    Next



    Dim Column_Count As Integer = InputBox("列数を指定指定してください!")

    Dim Items As Integer = ListBox1.Items.Count

    Dim Gyou As Integer = Items / Column_Count

    Dim Form3 As New プレビュー

    Dim Grid As DataGridView = Form3.DataGridView1



    '列追加
    For i = 1 To Column_Count
    Grid.Columns.Add(i & "COL", i & "COL")
    Next

    '行追加
    For s = 0 To Gyou
    Grid.Rows.Add(1)
    Next

    Form3.Show()

    Dim Cl As Integer = 0
    Dim Rw As Integer = 0
    For ss = 0 To Items - 1

    Grid.Rows(Rw).Cells(Cl).Value = ListBox1.Items(ss).ToString


    '列制御
    If Cl = Column_Count - 1 Then
    Rw += 1
    Cl = 0
    Else
    Cl += 1
    End If

    Next

    キャンセル

  • 2015/12/01 18:00

    31行目なのか私にはわかりません。

    キャンセル

  • 2015/12/02 09:37

    解答ありがとうございます!
    上から二番目のTry Catchでした!
    説明不足ですみません...

    キャンセル

0

エスパーすると、WebBrowser1.Document がNULLなんじゃないですかね。
原因はカレントディレクトリの違いかなんかじゃないかと。
IDEから、起動するとカレントディレクトリは、プロジェクトのトップディレクトリになります。
EXEを起動するとカレントディレクトリは、EXEのある場所になります。
ファイルを読み込んだりする場合は、ちゃんとフルパスで指定するか、プログラム自身が、EXEのある場所を
取得して、そこからの相対パスで読むようにしないと、ちゃんと動かないですよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/12/02 09:33

    解答ありがとうございます!
    やっぱり読み込めていなかったということなんですかね...
    いろいろなイベントを調べて工夫してみます!

    キャンセル

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

  • ただいまの回答率 90.45%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Visual Studio

    2434questions

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