2021年10月22日金曜日

GOSUB~RETURNコマンドで、N80ベーシックでプログラムを組んでいた頃を懐かしく思い出した ― エクセルVBA(コンピュータ言語)

      
自分が、月給一ヶ月をはたいて、NECPC8001mkIIを買ったのは三十数年前。
あの頃はパソコンの黎明期で、個人で8ビットのPCを買う若者が大勢いました。

プログラムをカセットテープに保存したりして、フロッピーはまだ高価な時代。
現代の子供達は、フロッピーディスクすら知らずとも、カセットは分かるかな。

そんな懐旧の時代には、遊ぶのにも自分でプログラムを組む必要がありました。
それがN80ベーシックという言語で、エクセルで使うVBAの原始版みたいな物。

言語的には、今から考えれば非常に構造が簡単で、メモリーの貴重だった時代。
そのため、メモリーに展開する長大なプログラムを書く必要がなかったのか。

それでも結構、当時としては役に立ったのかもしれないという言語なのでした。
それで、自分も勉強して100行ほどのプログラムは、書けるようになったんだ。

仕事につかえるような代物ではありませんでしtが、趣味の範囲で遊んでいたな。
ただ、プログラムコマンドで、GOSUB~RETURNの使い方が分からなかった。


利用方法も理解できずに、この言語を卒業してMS-DOSのOSに移行した思い出。
当時、一太郎とかロータス1-2-3とか、ビジネスアプリが続々と生まれていた。

なので、ベーシックは卒業してしまい、アプリの操作を覚えるのが必死でした。
まあ、VBAを五十の手習いで習得したから、今や高級化ベーシックも扱えます。

Sub Sample()
Dim i As Long
 For i = 1 To 10
  GoSub SubCode
 Next i
Exit Sub
   
 SubCode:
  Debug.Print i
 Return
    
End Sub

それで、VBAの中にGOSUB~RETURNコマンドを知ったのは、つい最近の話。
記述も使い方もほぼ同じですが、あまり推奨された使い方ではなさそうな感じ。

VBAのプロシージャでは、変数渡しで別のプロシージャに作業が橋渡しできる。
だから、今さら古臭いコマンドを使うのは、マイクロソフトも面白くないはず。

一方、N80ベーシックは、GOSUBで飛んでも宣言された変数は共通で使える。
これは、VBAでも同じですが、変数がそのまま使える点を分かっていなかった。

というより、そこまで複雑なプログラムを組んでいなかったのが、本当の事情。
というわけで、GOSUB~RETURNのコマンドは、VBAでも使わないだろうな。

今や、オブジェクト指向による構造化プログラミングの御利益で、1つのサブルーチンを別のプログラム内でも共用できる部品化が可能になっている分けですから、長いコード記述で分かりやすくする目的で、このコードを使うことぐらいが関の山だろうと思うのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿