• ベストアンサー

Subステートメント と Subプロシージャ の違いは?

Subステートメント と Subプロシージャ は何が違うのですか? 例えば Sub test() MsgBox "a" End Sub これは、 Subステートメントですか? Subプロシージャですか?

  • 5tgbhy
  • お礼率96% (363/378)

質問者が選んだベストアンサー

  • ベストアンサー
  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.2

ステートメントは、個々の命令行(語)のことです。 プロシージャは、繰り返し使用される命令(ステートメント)で構成された処理単位です。 Subプロシージャ、Subルーチン、Subプログラム等とも呼ばれます。 Sub test()  MsgBox "a" End Sub の Sub test()、MsgBox "a"、End Subのそれぞれはステートメントで、 Sub test() ~ End Sub は、testという名前のSubプロシージャになります。  

5tgbhy
質問者

お礼

ご回答ありがとうございます。

その他の回答 (1)

  • t-aka
  • ベストアンサー率36% (114/314)
回答No.1

subステートメントを使用してプロシージャを作成するから subプロシージャといいます。 同様にfunctionステートメントを使用すると functionプロシージャになります。 例の話で言うと subプロシージャになります。 subプロシージャは戻り値がないためです。

5tgbhy
質問者

お礼

戻り値がない=プロシージャーですね。 どうもありがとうございました。

関連するQ&A

  • subプロシージャーですか?subステートメン

    ---------------- Sub test() End Sub ---------------- は、subプロシージャーですか?subステートメントですか? 上記のコードの「Sub」にカーソルをあて、F1を押すとヘルプが立ち上がり「Sub ステートメント」と表示されますが、 挿入(I)→プロシージャー(P)を見ると画像のように「Subプロシージャー」となっています。 どちらが正しいのでしょうか? どちらも正しいのでしょうか?

  • マクロ subプロシージャーは指定できない?

    accessのマクロの アクション:プロシージャの実行 は、 subプロシージャーは指定できないのでしょうか? 標準モジュールに Sub test1() MsgBox "プロシージャーの実行のテストです" End Sub Function test2() MsgBox "プロシージャーの実行のテストです" End Function と作り、 マクロのプロシージャの実行で プロシージャ名をtest2()にすると、うまく表示されますが、 test1()だと、失敗します。 subプロシージャーをマクロで呼び出す方法を教えてください。

  • vbs subプロシージャーにするべきなの?し

    vbs subプロシージャーにするべきなの?しないべきなの? call a sub a() msgbox "b" end sub vbsでこのコードを実行すると問題なく動くのですが、 call a をsubとend subで囲わなくていいのでしょうか?

  • ACCESSVBAからEXCELのSubステートメントの実行

    ACCESSの標準モジュールに Sub アクセス() Call エクセルのsubステートメント End Sub と書き、 EXCELの標準モジュールに Sub エクセルのsubステートメント() MsgBox "成功!" End Sub と書いています。 アクセス側からエクセルのマクロを実行するのはどうすればいいのでしょうか? ご教授よろしくお願いします。

  • 【VBA】SUBプロシージャーは標準モジュール以外に書いてもいい?

    ThisWorkbookのコードを書く場所や Sheetのイベントプロシージャーが実行されるところに Sub test() MsgBox "あああ" End Sub と書いて実行するとメッセージボックスが表示されます。 クラスモジュールとフォームのイベントプロシージャーを書くところではできませんでした。 ということはSUBプロシージャーは 標準モジュールでなくてもいいのでしょうか?

  • EndとExit Subの違い

    Sub test1() MsgBox "test1" Exit Sub End Sub Sub test2() MsgBox "test2" End End Sub の違いはありますか? 只の表現の違いなのでしょうか? よろしくお願いします。

  • 元のプロシージャーを取得するプロパティ

    Sub test1() Call test2 End Sub Sub test2() If ?? Then MsgBox "test1から実行されたマクロです。" End If End Sub 上記のコードで どこから実行されたプロシージャ化を取得する方法はありますか? 現在は、 Dim bl_test1_yes As Boolean Sub test1() bl_test1_yes = True Call test2(bl_test1_yes) End Sub Sub test2(bl_test1_yes) If bl_test1_yes = True Then MsgBox "test1から実行されたマクロです。" End If End Sub としていますが、 元のプロシージャーを取得するプロパティがあれば教えてください。

  • プロシージャー名を変数にはできない?

    シートに test1 test2 test3 として、 -------------------------------- Sub Sample() Dim myRow As Long Dim procedure As String For myRow = 1 To Cells(Rows.Count, "A").End(xlUp).Row procedure = Cells(myRow, 1) Call procedure Next myRow End Sub Sub test1() End Sub Sub test2() End Sub Sub test3() End Sub -------------------------------- こういう事ってできないのでしょうか? シートの文字を読み取ってプロシージャーを実行できれば、順番変えたり、要らないプロシージャーを消したりを、シート上で管理できるから楽なのになと思ったのですが。 これをやろうとすると、procedureというプロシージャーがないから Sub、Function、または Property が必要です。 になってしまいます。

  • subプロシージャ

    2次方程式a*x^2+bx+c=0えお解くプログラムを考える。メインプロシージャmain1がsubプロシージャread1,solve1,display1を1回ずつ呼び出す。プロシージャread1で変数a,b,cにinputboxで整数値を入力する。プロシージャsolve1では、まず判別式D=b^2-4*a*cを計算して、D>0の場合にはx1、x2に実数解x1=(-b+sqr(D)/(2*a)、x2=(-b-sqr(d)/(2*a)を求める。D<0の場合はx1に実部-b/(2*a)を、x2に虚部sqr(-D)/(2*a)を求める。プロシージャdisplay1は入力された3つの整数値とsolve1で得られた2つの変数x1.x2の値を判別式Dの符号に応じてMsgbox関数で表示する。 以上のプログラムをモジュールレベル変数を用いてつくりなさい。 Sub read1() '問10(1) Dim a As Integer, b As Integer, c As Integer a = InputBox(" aの値を入力して") b = InputBox(" bの値を入力して") Sub solve1() D = b ^ 2 - 4 * a * c If D > 0 Then x1 = (-b + Sqr(D)) / (2 * a) x2 = (-b - Sqr(D)) / (2 * a) Else x1 = -b / (2 * a) x2 = Sqr(-D) / (2 * a) Sub display1() End Sub ここまでやったのですがこの先どうやるかわかりません。 おしえてください。 あとモジュールレベル変数ってなんですか?

  • マクロ Publicでの配列定義

    Excelマクロで、Publicステートメントで配列を定義し、 プロシージャ内で配列要素を増やすことはできないのでしょうか? 下記ロジックで2つのMsbBoxが表示されるようにしたいです。 よろしくお願いします。 Public pubTMP Sub test() pubTMP(2,2)="aaa" test222 Msgbox pubTMP(2,2) Msgbox pubTMP(3,3) End Sub Sub test222() pubTMP(3,3)="bbb" End Sub

専門家に質問してみよう