第5講 サブプロシージャを理解しよう

第1話 サブプロシージャって何?
サブプロシジャってなんでしょうか。
前に、サブプロシージャとファンクションプロシージャは、
C言語などでは関数と呼び、
関数は数学の関数ではなく、
ただの部品=パーツという意味しかないと申し上げましたこと、
ご記憶にあるでしょうか。
ファンクションはそもそも関数でしたよね。
サブプロシージャをSubプロシージャと書き換えれば、
皆さん、実はサブプロシージャとは知らずにサブプロシージャを扱っていたことに、
お気づきになるのではないでしょうか。
第4講の最終話第8話のプログラムコードを再掲しますと、
Private
Sub CommandButton1_Click()

  Rows("3:2000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  Dim i As Long, w As Long
  w = Int(10000 * Rnd) + 2
  For i = 0 To 100000
    Cells(3 + Int(i / 10), 2 + ((2 * i) Mod 20)) = w
    If w > 1 Then Cells(3 + Int(i / 10), 3 + ((2 * i) Mod 20)) = "→"
    If w = 1 Then Exit For
    If w Mod 2 = 0 Then w = Int(w / 2) Else w = 3 * w + 1
  Next
  
End Sub

Private
Sub CommandButton2_Click()
  
  Rows("3:2000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  
End Sub

そうです。実は、CommandButton1_Click()もCommandButton2_Click()も
サブプロシージャです。
つまり、今まで扱ってきたすべてのプログラムは、
2つの部品=2つのサブプロシージャによって構成されていたのです。
私は、様々なプログラミングの講義を行ってきましたが、
(そして、ほとんどのプログラミングの講義で、幸いなことに、
Googleでダントツのトップか、上位を占めてきたのです。
これは、自慢話ではありません。
いかに世の人達が、カタカナ専門用語を乱発する
他サイトや書籍の講義に苦戦してきていたかを示しています。
本講義の特徴は、専門用語を乱発しない、
長い英単語の変数名、配列名、関数名を使用しない、
です。たった、これだけのことなのに非常に多くの方が、
私の講義にたどり着いて、プログラミングを始めて理解できたと、
おっしゃっているのです。)
最初の頃は、関数は第9講や第10講辺りにもってきていましたが、
最近は、早めに関数の学習を配置するようにしています。
どうしてかと申しますと、
1つの部品を大きくしないで、
なるべく小さめにして、
その部品を組み立ててプログラミングする習慣を身につけて頂きたいと思うからです。
部品を組み立ててプログラミングすることを、構造化プログラミングといいます。

部品をどうして小さめにする必要があるのでしょうか。
それは、汎用性のある部品にするためにです。
汎用性のある部品を作れば、
いろいろなプログラムの部品として使えます。
専門に特化した部品は、
特殊なプログラムでしか使用する機会がありません。
いかなるプログラムでも使える部品にすることが大切なのです。
電気製品などの工業製品は、
規格化されています。
この規格化によって、異なる会社で作った部品がいろいろな会社で使えるようになるのです。
自動車産業が今でも世界ナンバーワンクラスであるのに対して、
かつてのお家芸であった電気産業が、
韓国や中国などに苦戦を強いられている大きな原因の1つは、
規格化にあります。
部品をかき集めてきて、
プラモデルのように組み立てれば、テレビやパソコンやスマホが出来てしまうのです。
車の場合も部品は、ある程度規格化されていますが、
単純に部品を組み合わせれば、
車が完成するというものではなく、
高度な摺り合わせをする必要がありますので、
高度な技術力を必要としているのですが、
電化製品の場合は、単純に組み立てれば出来てしまうのです。
ですから、労賃コストの安い韓国や中国には太刀打ちできないわけです。
もっとも韓国の場合は、労賃は大部日本のレベルに近づいてきてはいますね。
電化製品のように自由に使える規格化された部品のように、
サブプロシージャを作れれば、
プログラミングもかなり楽になるのです。
一度開発した部品をいろいろなところで再利用できるようになるわけです。
そのためには専門に特化しないサブプロシージャやファンクションプロシージャを作る必要があります。
ですから、小さめに作る必要があるのです。



第4講第8話へ 第2話へ

004


eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ第2部へ
小学生からエンジニアまでのRuby入門へ
小学生からエンジニアまでのC言語入門 基礎から応用まで
本サイトトップへ