こちらのサイトを参考に、WebBrowser1内のクリックを検出しています。
http://homepage1.nifty.com/yasunari/VB/VBTips001 …
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Obj As Object = New ExtObj
WebBrowser1.ObjectForScripting = Obj
~ナビゲート処理~
End Sub
End Class
<Runtime.InteropServices.ComVisible(True)> _
Public Class ExtObj
Public Sub MsgBoxShow(ByVal Msg As String)
~呼び出し処理~
End Sub
End Class
思い通りにブラウザ上のクリックを取得できています。
次のステップとして、「form1を閉じる」をしようとしてます。
ブラウザ上でのクリックで目的達成なので、form1を閉じようとしています。
しかし、うまくいきません。
以下のようなことを試しました。
ExtObj 内で、Me.Close() → 「closeはメンバではありません」
ExtObj 内で、Form1.close() → 無反応。エラー無し
Form1内に次のような関数を作って、
Public Sub closeForm()
Me.Close()
End Sub
ExtObj 内から、Form1.closeFormを呼び出し → 無反応
呼び出されたオブジェクト側から、親(?)を制御する方法が必要なのかなと感じています。
良い方法がありましたらよろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
開発環境がVB2005以降なのであるなら
Application.OpenFormsから親フォームを取得できると思いますよ
dim oForm as Windows.Forms.Form
oForm = Application.OpenForms(0)
oForm.Close()
で出来そうです
ExtObj側のコンストラクタ(New)に Form型を引数にとるようにして
この引数を クラス変数に設定しておくという手もありますよ
<Runtime.InteropServices.ComVisible(True)> _
Public Class ExtObj
private objForm as Windows.Forms.Form
public Sub New( Optional oForm as Windows.Forms.Form = Nothing )
objForm = oForm
end Sub
Public Sub MsgBoxShow(ByVal Msg As String)
~呼び出し処理~
if objForm is nothing then
objForm = Application.OpenForms(0)
end if
objForm.close()
End Sub
End Class
といった具合で
呼び出し側を
Dim Obj As Object = New ExtObj(Me)
といった具合にしてみてはいかがでしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
For ~ Next文
-
SubとFunctionの使い分け方。(...
-
VBAでBook読み込み時の非表示方...
-
private subモジュールを他のモ...
-
タイマーの使い方
-
シェルスクリプトでファイル内...
-
【C#】Page_Loadさせない方法に...
-
【Vb.net】プリンタジョブの取得
-
シグナル 6(SIGABRT)とは?
-
途中で処理を中断させたい (ア...
-
どうやってもFor文を抜けてしま...
-
ドリブン??
-
【VBA】エラー処理で別プロシー...
-
特定の名前のオートシェイプの...
-
VB6にてネットワーク上にある共...
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
vbaのエラー対応(実行時エラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
Functionで戻り値を複数返す方法
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
VBA 複数の行を高速で削除する...
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
どうやってもFor文を抜けてしま...
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
シェルスクリプトでファイル内...
-
【Vb.net】プリンタジョブの取得
-
vbaのエラー対応(実行時エラー...
-
VBAでBook読み込み時の非表示方...
おすすめ情報