• ベストアンサー

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

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

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

Sub~という構文が「Subステートメント」。プログラミング言語では、ステートメントは「文」とも訳されます。 そのSub~End Subで定義した一連のものが「Subプロシージャ」。プロシージャは「手続き」とか言う意味。 だから、Subのヘルプを見ると、Subステートメントの書式などになってるし、 挿入→プロシージャでは、「手続き」とての一かたまりを挿入するから、End Subまでになる。

f2sa6sdfa
質問者

お礼

覚えます。ありがとうございました。

その他の回答 (1)

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

そのヘルプの内容はちゃんと読みましたか? 冒頭にsubステートメントとsubプロシージャーとの関係がちゃんと書いてありましたよ。

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc392466.aspx
f2sa6sdfa
質問者

お礼

ヘルプをよく読んでみます。ありがとうございました。

関連するQ&A

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

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

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

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

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

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

  • subプロシージャーは標準モジュールではなくフォームのコードを書く部分

    subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? それともエラーにならなくても標準モジュールに書いた方がいいですか?

  • Functionプロシージャの便利さがわかりません

    私はVBAコードを作る時は、もっぱらsubプロシージャーを使ってしまうのですが、 http://excelvba.pc-users.net/fol5/5_4.html を参考に、 Functionプロシージャとsubプロシージャの違いを確認してみたのですが、 Functionプロシージャの便利さがわかりません。 *********************************** Sub Test() SubプロシージャとFunctionプロシージャのテスト i = 1 Call Subプロシージャ(i) i = Functionプロシージャ(i) MsgBox "Functionプロシージャ結果:" + CStr(i) End Sub Sub Subプロシージャ(ByVal i As Integer) MsgBox "Subプロシージャ結果:" + CStr(i) End Sub Function Functionプロシージャ(ByVal i As Integer) As Integer i = i + 1 Functionプロシージャ = i End Function *********************************** Functionプロシージャは、 (ByVal i As Integer) As Integer のように、、二回もデータ型(Integer)の指定をしなくてはいけないのでしょうか? リンク先の説明には、 「SubプロシージャとFunctionプロシージャの違いは Subプロシージャが引数を受け取るのみに対して Functionプロシージャは引数を受け取り、 戻り値を返すという関数としての役割を果たすことができる点です。」 と記載されてますが、 それはSubプロシージャでも出来てますよね? サンプルコードにおいてのFunctionプロシージャの便利さを教えてください。

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

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

  • VBAのプロシージャのことで

    TEST1のプロシージャ内に使用している readfileという変数の中にテストという文字列を代入し、 文字列が代入された状態で Callによって別のプロシージャを読みにいったとき TEST(変数)に入った文字列ごと持っていくには どの様に記述すればよいかどなたか教えていただけませんでしょうか・・・。。 ----------------------------------------------------------- Sub TEST () Dim readfile As String readfile = "テスト" Call TEST2 End Sub ----------------------------------------------------------- Sub TEST2() readfile ←テストという文字列をTESTプロシージャから持ってきたい 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 が必要です。 になってしまいます。

  • プロシージャをまたいて変数を扱いたい!

    こんばんは! プロシージャ間での変数の取り扱いについて読んでいてよく分からないので教えて頂きたいです。 現在、ユーザーフォームにて下記のコードを記述していますが、テキストボックス1に表示するiの値を初めは50として、正解ならiに1を加算、不正解ならi から1を減算して、テキストボックス1の内容を更新するようにしたいのですが、どのように記述すればよろしいでしょうか。 ----------------------------------------------- private sub userform_initialize() Textbox1 = int(i) end sub ----------------------------------------------- private sub commandbutton1_click() If 条件式 then "正解" else "不正解" end if call userform_initialize() end sub ------------------------------------------------- commandbutton2 以降省略

専門家に質問してみよう