• 締切済み

Subプロシージャとクラスの違い

こんにちは。 VB初心者で、本やネットで勉強しています。 現在VB入門編レベルの本を読んでいるのですが、Subプロシージャとクラスの違いがよくわかりません。 どちらも関数のような感じ?何がどう違ってどう便利なの?って悩んでます。 勉強し始めたばかりで、あまり専門的な用語は分からないので、出来ましたら 初心者でも分かるようにご回答いただけると嬉しいです。 よろしくお願いします。

みんなの回答

回答No.1

1、Subプロシージャ・・・・・・・・・・・・   ある処理を行うコードのまとまり。   戻り値なし。 2、Functionプロシージャ・・・・・・・・   ある処理を行うコードのまとまり。   処理結果を戻り値として返す。 3、クラスモジュール・・・・・・・・・・・・   幾つかの複雑な処理をコードのまとまり。   プログラマは、そのインスタンスを利用してプログラムを簡便化する。   例えば、次はフォームに配置したテキストボックスに独自イベントを発生させて、それに対応した処理を行うクラスモジュール Class1 です。標準モジュールはCallして利用しますが、【サブフォームのコード】を見て判るようにクラスモジュールの場合は         Set myClass1(i) = New Class1         myClass1(i).Cmd = ctr   とインスタンスを宣言して活用しています。 【クラスモジュール Class1】 Option Compare Database Option Explicit Private WithEvents myCmd As TextBox Private m_intIndex As Integer Public Property Get Cmd() As TextBox   Set Cmd = myCmd End Property Public Property Let Cmd(ByVal cmdNewValue As TextBox)   Set myCmd = cmdNewValue   myCmd.OnEnter = "[イベント プロシージャ]"   myCmd.OnExit = "[イベント プロシージャ]" End Property Public Property Get Index() As Integer   Index = m_intIndex End Property Public Property Let Index(ByVal intNewValue As Integer)   m_intIndex = intNewValue End Property Private Sub myCmd_Change()   MsgBox "" End Sub Private Sub myCmd_Click()   MsgBox "" End Sub ************************************** 【サブフォームのコード】 ************************************** Option Compare Database Private myClass1(100) As Class1 Private Sub Form_Open(Cancel As Integer)   Dim ctr As Object   Dim i As Integer   i = -1   For Each ctr In Me.Controls     If ctr.ControlType = 109 Then       i = i + 1       If i > 2 Then         Set myClass1(i) = New Class1         myClass1(i).Cmd = ctr       End If     End If   Next End Sub PS、やっぱり、JavaかC#をやらないと実感できないかも・・・。

Marine888
質問者

お礼

ありがとうございます。 本当に初心者で、やっぱり難しいです。。。

すると、全ての回答が全文表示されます。

関連するQ&A