• ベストアンサー

【エクセル】プロシージャとは

VBAを学習する中で、プロシージャ という用語があります。 調べると ●処理単位の1つ ●VBAの中で、プログラミングを実行する最少単位 この【単位】とういう言葉が、引っ掛かり、よくわかりません。 単位とは、【長さ:センチ】や【重さ:グラム】などの事を言うと思います。 Subから始まる、記述された、VBAの事をイメージしていますが ピンときません。 ご存知の方、いらっしゃいましたら、具体例とともに、教えて下さい。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.3

「ひと固まりのモノ」を表す良い言い方が無いんで「単位」と言ってるだけで、ぶっちゃけた言い方をするなら「SUB-END/Function-Endで記述されるVBAのプログラム一本」と言っても良いですから、「Subから始まる、記述された、VBAの事」というイメージでオッケーです。 ただ「プロシージャ」と言うと私は、Functionで記述して結果をリターンコードとして与えるもの、ってイメージがありますねえ・・・。

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

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

プログラムを(コンパイラーやインタープリタが)解釈して、実行は、形式的に行われる。 だから形式的(プログラムコードの見た目といっても良い)に言えば プロシージャ はGoogleででも検索すると http://excelvba.pc-users.net/fol5/5_4.html (1)SUBプロシージャ (2)Functionプロシージャ の2つがあると載っているだろう(本にもそう書いてあるだろう) そしてこれはコード上で (1)Subの行 から、次にはじめて現れるEnd Subの行まで (2)FinctionからEndFunctionの行まで の意味だ。 ここでめざす処理は、コンピュター的に「ひとまとまり」のもので、どういうのが適当かは、プログラムに習熟しないと 立派なものは出来ない。出来るだけ短くしておくと、テストや使い回しに便利だが複雑化す津要素もある。。 実感して判るのは、学が進んでから。 >単位とは、【長さ:センチ】や【重さ:グラム】などの事を言うと思います 閉ざされたあなたの世界だけで言う話でしょう。 色んなところで使われる。ユニットなどは ウイキペディアでさえ http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88 でその他の意味の解説をしている。アーチストのユニットなど私らの若いころは新聞などでも見なかった。 (1)WEB照会を出来るだけ使え(こういうコーナーを用語定義の質問に使うのはよほどの場合にする) (2)学習途中で定義などで判らないもの、自分の語感と違うものが頻出するが、とりあえず横に置いといて 、まえに進まないと。プログラムは新しい世界なのでしょうから。 語源はPro 前、Ced 行く==>手続 手順==>コンピュター用語(COBOL言語時代からあり、まずはじめに出てくる用語) コンピュタには「Bug」 「Sort」「Compile]など特殊な意味を与えてしまっている用語も多い。 何処の業界でもそれはあると思う。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

単位とは 一定の組織を構成している要素 例 班単位で行動してください 100g単位で販売します 単位面積当たりの価格です

参考URL:
http://kotobank.jp/word/%E5%8D%98%E4%BD%8D
全文を見る
すると、全ての回答が全文表示されます。
回答No.1

VBAでプログラムを書くときメインルーチンの中に全部をまとめて書くと使いづらい物です。 色々なところで色々に呼び出されるルーチンは一つにまとめてそれをコールした方がメインルーチンがすっきりします。 このボタンを押したらこの機能が実行されると言う場合、ボタンを表示しクリックする場面すべてで同じプログラムコードを記述するより、プロシージャとして一つにまとめて記述し、その機能を必要とする度に呼び出すようにした方が記述が簡略化出来ます。 同じプログラムコードをコピー&ペースとして書いても良いのですけど、あとで読み返しやすいので。

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

関連するQ&A

  • プロシージャが大きすぎます!

    Excel2000のVBAでフィルターオプションの連続操作をマクロで作成しているのですが、60回以上フィルターオプションを実行できるように記述したのですが、 長すぎてしまい、マクロを実行すると 「プロシージャが大きすぎます」と表示され実行できなくなります。ヘルプやHPを参考にして調べてみると、プロシージャを短くすればよいことはわかったのですが、SUBでプロシージャを短くし、その後、そのSUBで区切ったものを連続実行するためにはどのようにすればよいのでしょうか? VBAを勉強したばかりで、見当違いの質問かもしれませんが、補足いたしますので、よろしくお願いいたします。

  • access vbaで、変数を含んだプロシージャ

    access vbaで、変数を含んだプロシージャを実行したい。 【やりたい事】 下記の矢印の部分で「msg1」「msg2」「msg3」を実行したい。 Public Sub test() For i = 1 To 3 msg & i ←ここを、どのように記述すればいいのでしょうか? Next End Sub Public Sub msg1() MsgBox "ok1" End Sub Public Sub msg2() MsgBox "ok2" End Sub PublicSub msg3() MsgBox "ok3" End Sub よろしくお願いします。

  • Functionプロシージャではなぜプロシージャ名=○○という文章が多いのか

    VBAを初めて使っています。 勉強してはいるのですが、混乱していて あまり理解できていません。 「Functionプロシージャとsubプロシージャの違いは、戻り値を返すか返さないか」という事までは知識としてわかったのですが、 ・・・サンプルプログラムをながめてみても、どう使えば良いのかまだわかりません。 大変愚問かと思われ申し訳ないのですが、Functionプロシージャの中で、 プロシージャ名=○○ というかたちがよく見られるのはなぜでしょうか。 Function abc abc="hello" というような。 多分これがわかればFunctionプロシージャの使い方が わかってくるのでは、と思っているのですが・・・。

  • Excel VBA プロシージャの種類の使い分け

    VBAを勉強中です。 最初に読んだ参考書には、 プロシージャにはsubとfunctionの2種類があると書かれていたので 鵜呑みにしていたのですが、 また違う切り口から、privateとpublicが存在していることを わかり始めて来たところです。 シートにコマンドボタンなどをつけてコードを登録しようとすると 自動的にprivate subになるので、 ひとつのシートにくっついているものはprivate subで あまり他シートから使う必要がないんだなぁという認識なのですが、 まずこれが合っているのか不安なのと、 あと、たとえばまったく同じコマンドボタンを 2枚以上のシートにつける時、 各シートに同じVBAをひとつずつ記述するより、 標準モジュールにprivate subを記述したほうが良いのか、という事が 気になっています。 好き好きなのかも知れませんが、私がつくったものに 他の人が変更を加える可能性があり、できる限り見やすくしたいので、 一般的にはどうされているものなのかお教えくだされば幸いです。

  • 初歩的な質問なのですが、サブルーチン、プロシージャについて

    初めてプログラミングを行おうと思っています。 そこで、VBを使って行おうと思っているのですが、 全てが初めてなので、まずは本を読んでいるところです。 本の中で、サブルーチンやプロシージャという言葉がよく出てくるのですが、サブルーチンは処理のかたまり、プロシージャは処理の命令と軽く考えていたのですが、本の中に、『サブルーチンにはFunctionプロシージャとSubプロシージャの2種類がある』と書いてあり、それ以来、私にはサブルーチンもプロシージャも同じものに思えてしまいます。人に聞いたところ、『全然別ものだよ』という答えしかありませんでした。これは、どう違うのでしょうか?? また、SubプロシージャのSubはサブルーチンを示すとあり、益々、理解できなくなりました。 恐れ入りますが、サブルーチン、プロシージャ、Functionプロシージャ、Subプロシージャとは何かについて、おわかりの方がいらっしゃいましたらご教授ください。 宜しくお願い致します。

  • ユーザーフォームのイベントプロシージャについて

    いつもお世話になっております。 VBAを勉強中の初心者です。 最近ユーザーフォームの作成について学習しております。 ユーザーフォームモジュールにコードを記述しているのですが、何かの拍子?ブックをオープンした場合などに、自動で空のプロシージャが作成されてしまいます。 ユーザーフォームモジュールを作成した時点で(例)にある空のプロシージャが初めから作成されていると思いますが。その後も何かの拍子にからのプロシージャが作成されてます。 (例) Private Sub UserForm_Click() End Sub (1)どのタイミングでプロシージャが作成されるのでしょうか? (2)何故自動で作成されるのでしょうか? (3)自動でプロシージャが作成されないようにすることはできるのでしょうか? 以上についてご教授ください。 よろしくお願いします。

  • Excel97のVBAで、出てくるPublic(プロージャ)とPrivate(プロシージャ)の違い

    最近、ExcelのVBAを勉強してるのですが、そこで書籍の中に、 >《挿入》→《プロシージャ》を実行すると、 >作成するプロシージャがPublicかPrivateかを選択します。 >Privateにすると、そのプロシージャは >そのモジュール内でしか実行できません。 とあるのですが、「そのモジュール内でしか実行できません」っていうのがよくわからないのですけど、具体的にはどういった使い分けが出来るのでしょうか?

  • エクセルVBAにおけるプロシージャ引数について

    いつもお世話になっております。 VBAを学習しているものですが、現在プロシージャの引数について学習しています。 引数に指定する項目にOptional、ParamArrayキーワードがありますが、使い方がイマイチ理解できません。私持っている参考書等には Optional:省略可能な引数にするにはOptionalキーワードを付ける? ParamArray:引数の数が不定のとき・・・ なんて事が記載してあるのですが・・・、私の周りにはVBAに習熟した方が居ないため、こちらに質問させていただきました。 よろしくお願いいたします。

  • VBE上の任意の行のVBAコードを実行する

    こんにちは。 現在、Word2007およびExcel2007で、VBAの勉強をしています。 VBE上にSubプロシージャの定義を記述し、それのどこかにカーソルがある状態でF8キーを押すと、 Subプロシージャの先頭行から順に、VBAコードが実行されます。 では、カーソルがある行のVBAコードを、いきなり実行する事ってできないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。 では、よろしくお願い致します。

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

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

片思いを吹っ切る方法
このQ&Aのポイント
  • 半年ほど、とある事情で成就しないことがわかっている片思いをしています。
  • 最近ではその方のことがなにをしていても頭から離れず、とても困っています。
  • こういうのは、やはり時間が経てばその内冷めてくるものでしょうか? なにか効果的な対策があれば、教えていただきたいです。
回答を見る

専門家に質問してみよう