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

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

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

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Basic 6.0

Microsoft Visual Basic 6.0(VB6)とはCOMプログラミングのためにMicrosoftが提供したプログラミング言語とintegrated develpment enviornment(IDE)のことです。

Q&A

解決済

2回答

3241閲覧

VB.NETの「Handles句」に相当するVB6.0の記述は何か?

AGadget

総合スコア60

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Visual Basic 6.0

Microsoft Visual Basic 6.0(VB6)とはCOMプログラミングのためにMicrosoftが提供したプログラミング言語とintegrated develpment enviornment(IDE)のことです。

0グッド

1クリップ

投稿2019/04/15 22:15

VB.NETのHandles句に相当する、VB6.0の記述……といいますか機能は何にあたるのでしょうか?

VB.NETにおいては、コントロールとプロシージャを結び付けて発火タイミングを指定するのにはHandles句を用いるものと認識しているのですが、会社にあったVB6.0のコードを読んでいるとHandles句が使われていないことに気付きました。
VB6.0とVB.NETの文法はかなり異なるそうですが、VB6.0で発火イベントを指定するのにはどのような機能――もといコードを書くのでしょうか?

ご回答のほど、よろしくお願い申し上げます。

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

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

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

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

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

guest

回答2

0

※先の回答者であるmaisumakunさんが書かれているとおりですので、フォロー的な回答となります:

VB6.0で発火イベントを指定するのにはどのような機能――もといコードを書くのでしょうか?

フォーム上のボタンやその他のコントロールは、それらのオブジェクト名に縛られたイベントハンドラー名で勝手に結び付けられます。下図はVisual Basic 6.0(SP6) 上でCommand1と言うオブジェクト名のボタンをフォームに貼り付けた例ですが、これをIDE上でクリックすると、ご存知のようにCommand1と結びついたCommand1_Clickと言う関数が勝手に生成され、ボタンクリック用のイベントハンドラーになります。

VB6IDE

コードウィンドウ上でCommand1_Click関数を別の名前にすればイベントハンドラーからは外れますし、名前を元に戻せばまたイベントハンドラーに戻ります。フォームに関してはForm_Loadなどと固定です。これらコントロールのオブジェクト名とイベントハンドラー名の結び付けは、コンパイル時に自動で解決されます。

実際、上記例のVisual Basic 6.0 (SP6)のプロジェクトファイル(Form1.frm, Project1.vbp)を見ると、イベントハンドラーとの結び付きを想起させる部分はありません。
(1) ファイル「Form1.frm」の内容

VB

1VERSION 5.00 2Begin VB.Form Form1 3 Caption = "Form1" 4 ClientHeight = 1140 5 ClientLeft = 60 6 ClientTop = 345 7 ClientWidth = 4680 8 LinkTopic = "Form1" 9 ScaleHeight = 1140 10 ScaleWidth = 4680 11 StartUpPosition = 3 'Windows の既定値 12 Begin VB.CommandButton Command1 13 Caption = "Command1" 14 Height = 495 15 Left = 120 16 TabIndex = 0 17 Top = 240 18 Width = 2655 19 End 20End 21Attribute VB_Name = "Form1" 22Attribute VB_GlobalNameSpace = False 23Attribute VB_Creatable = False 24Attribute VB_PredeclaredId = True 25Attribute VB_Exposed = False 26' フォームロード時のハンドラー 27' 本フォームのオブジェクト名は "Form1"だが、 28' 本フォームのデフォルトのハンドラーなので"Form_Load" 29Private Sub Form_Load() 30 Debug.Print "Form_Load" 31End Sub 32 33' ボタンクリック時のハンドラー 34' ボタンのオブジェクト名は "Command1" 35Private Sub Command1_Click() 36 Debug.Print "Command1_Click" 37End Sub

(2) ファイル「Project1.vbp」の内容

Plain

1Type=Exe 2Form=Form1.frm 3Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#......\WINDOWS\System32\stdole2.tlb#OLE Automation 4Startup="Form1" 5Command32="" 6Name="Project1" 7HelpContextID="0" 8CompatibleMode="0" 9MajorVer=1 10MinorVer=0 11RevisionVer=0 12AutoIncrementVer=0 13ServerSupportFiles=0 14VersionCompanyName="somewhere" 15CompilationType=0 16OptimizationType=0 17FavorPentiumPro(tm)=0 18CodeViewDebugInfo=0 19NoAliasing=0 20BoundsCheck=0 21OverflowCheck=0 22FlPointCheck=0 23FDIVCheck=0 24UnroundedFP=0 25StartMode=0 26Unattended=0 27Retained=0 28ThreadPerObject=0 29MaxNumberOfThreads=1 30 31[MS Transaction Server] 32AutoRefresh=1

投稿2019/04/16 02:44

dodox86

総合スコア9369

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

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

AGadget

2019/04/16 09:57

ご回答ありがとうございます。 画像・コードで補足頂き、より理解が進みました。 これでVB6.0の勉強が捗ります。 重ねて、ご回答ありがとうございました!
guest

0

ベストアンサー

VB6.0で発火イベントを指定するのにはどのような機能――もといコードを書くのでしょうか?

VB6の場合、たとえばPrivate Sub Button1_Clickのように特定の名前のサブルーチンがハンドラとなります。この結びつきを変える方法はなかったはずです。

投稿2019/04/15 22:21

maisumakun

総合スコア146544

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

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

AGadget

2019/04/16 09:50

ご回答ありがとうございます。 VB6.0にはHandles句に直接対応するものは無いのですね。 しかし、プロシージャ名が発火イベントを兼ねるとは……何だか異文化に遭遇した気分です。 重ねて、ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問