原寸入門(プログラミング編)


プログラミング(パソコンのソフトを作る)と言うのは、原寸とはまったく無関係な作業ですね。
橋梁一貫システムであれ、Xセルであれ、誰かが”ソフト”を作ったからパソコンで利用出来るのですが…。
そのような大それた事を自分でやってみよう!なんて大抵の人は思わないし、あれれ^^;も思いません。
かつて、CAD・CAMを作った人とお話した事が有りますが、私達”凡人”とは世界が違っていた?
私も同じ技術の道を歩むなら、こんな人になりたい!って密かに憧れたものです。

原寸でパソコンが認知されたと言っても、”プログラミング”なんて会社で言うと、”変人”扱いされます。
”そんなことは電算課に任せてさっさと仕事をしろ!”といった罵声を浴びるのが普通です。
この仕事を効率的に片付けるには、こんなソフトが有ったらいいのに…って思っても、実現出来ないものです。
ソフトを作る事が自分で出来ない場合、それはお金を払って誰かに作って貰うしか無いからです。
東京辺りの有名なソフトウェア会社のSEともなると、その費用は1時間1万円とか言いますものね。


ところで最近は、”フリーソフト”という言葉を見聞きする事が増えました。
基本的に”ただ(無料)”だけど、動作の保障は出来ません、という類のソフトです。
その様なソフトを使うのは怖いと思っている人も多いと思いますが、最近パソコンを買ってみたら、
最初からフリーソフトが付いていました。
パソコンに最初から付いていれば安心で、雑誌に付いていれば危険…と思うのは何か変ですよね。


フリーソフトと言えども、誰かがプログラミングをして、ソフトにしている訳です。
無料だから何らの見返りも無いけれど、作った人は何かの必要に迫られて作っています。
(単に”趣味”にしては、出来過ぎたソフトが沢山有りますもの。)
あれれ^^;は思うのですが、私のように個人で仕事をする場合は、”電算課”なんて有りません。
(勿論、お金を払って誰かにソフトを作って貰う余裕も有りません。)
だけどビジネスである以上、客先の要望が簡単な訳が無いのです。
自分で効率化しなければ、生き残れない!って考えたら、何でもやれると思うのです。


エンジニアが営業を出来なきゃ、これからの企業は生き残れない!とか以前は言われたものです。
エンジニアの定義なんて無いから、原寸だけ出来てもエンジニアと呼ばれます。
原寸だけじゃダメだよ!っていう意味ならば、営業以外に出来ることも有るでしょう?
自分でソフトを作れないまでも、フリーソフトを探す事で効率化も出来るはずです。
”ソフトアレルギー”を払拭する意味でも、このページが役に立ってくれれば幸いです。


プログラムって難しいの?

これは確かに簡単とは言えないと思います。
一般に”ソフト”は、コンピュータプログラムの集合体だと言われますが、どうやって作るのかですね。
実は、プログラムを作るだけなら、ワードでもワードパットでも作れます。
解説書(VBとかCとかJAVAとか)を買って来て、サンプル通りに入力するだけです。
ところが、ここからが問題…というのか、実は、プログラムを動かすには道具が必要なのです。
あれれ^^;の年代の人ならば”コンパイラ”と言えば分り易いのですが、簡単に言うと、
”人間が作成したプログラムを、パソコンが理解出来るように翻訳する道具”です。

Xセルの説明で、”=TAN(30*(PI()/180))*SQRT(3)”といった難解な計算式を紹介しましたが、
Xセルはこの計算式をパソコンが理解出来るように翻訳して計算結果を表示しているのです。
ワードやワードパットには、その機能(翻訳機能)がないので、別個の道具(ツール)が必要なのです。
巷では、”ビジュアル・ベーシック”とか”ビジュアルC++”とかいう名称で販売されています。
(価格は、ウン万円…そんなに安くないし、個人の力で慣れるには努力が必要。)
以前、どこかのHPで、”C言語のコンパイラ”が無償配布されていましたが、それなら無料です。
いずれにしても、その道具に合わせた”言語”で作ったプログラムを”翻訳”しないとダメ!
”翻訳”されたプログラムは、”EXE(エグゼ)ファイル”一般には”ソフト”と呼ばれます。
その状態になると、ウン万円のコンパイラが入っていないパソコンでも、プログラムが動く訳です。
要するに”EXE”の拡張子が有るファイルは、パソコン用の言葉で書かれた”指令書”なのです。


実際には、この翻訳作業が大変…っていうのが、パソコンはプログラム通りに動きます。
そのプログラムを作る人間が間違った指令を出せば、計算結果は自ずから意図したものになりません。
一般的なプログラムは100行以上になるので、概ね5000以上の文字を一字一句正確に入力します。
入力文字を間違うと、”翻訳が出来ません!”ってコンパイラがエラーメッセージを出しますが、
どの文字が間違いなのかを探すのも、結構大変な作業です。

…とまぁ、パソコンの初心者の方がプログラミングをこなせるようになるには、それなりの勉強が必要?
だけど、仮にそれが1年かかったとしても、あなたの人生の長さに比較したら、ほんの一コマです。
誰にでも最初が有ります。
それに、今までは原寸作業者には無縁だった知識が、今は必要になっている時代です。
10年前に、誰がXセルを原寸の必需品と考えたでしょうか?
20年後にまだ現役の可能性が有る人ならば、プログラミングにも挑戦してみては如何でしょうか?


エクセルとプログラムの違い

Xセルにsin、cos、tanの関数が有ったように、一般的なプログラム言語にも関数が有ります。
(COBOL:コボル言語には関数が無かったように記憶していますが…。)
あれれ^^;は、ビジュアル・ベーシック(以下VB)を使っていますが、それなりに関数は装備されています。
数を勘定したことは無いのですが、必要とした関数が無かった事も有りません。
(ちなみに、VBの三角関数も”ラジアン”対応なので要注意です。)

Xセルの説明の中で、Xセルにはマクロ機能が有ると書きました。
実は、Xセルのマクロもビジュアル・ベーシックが基礎になっているようです。
(プロパティだのメソッドだの、同じ概念でプログラミングが出来る。)
実際のところ、Xセルのマクロで出来る事と、VBで出来る事の差は、あまり無いはずです。
それ位Xセルのマクロ機能が凄い!という事なのですが、どういう訳かメジャーじゃ無いです。
プログラマーと呼ばれる人達は、VBとかVCとかいうツールを好みます。
(多分、翻訳の時にVBやVCの方が便利な機能が多くて、使い勝手が良いのです。)


いずれにしてもXセルでマクロを使わないのならば、VBとの違いは、かなり大きいです。

一般に、プログラム言語には、制御文と呼ばれる書式が有ります。
これは、Xセルの論理関数で説明した、条件分岐(判断)とセットで使用されます。
計算した値が100以上ならば…という関数ですが、100以上なら同じ処理を10回行え!という制御。
この機能が、プログラム独特の制御構造です。
何故そのような制御文が必要か?ですよね。



例えば、橋梁でいう線形データを例にしましょうか。
長大橋ともなれば、座標値は100や200では無いでしょう。
おまけに、X,Y,Zが有るから、Xセルのセルが数千個必要になる場合も有る訳です。
その座標値を何らかの原因で、移動させるとします。
(製作座標や仮組み座標の計算と同じイメージです。)
Xセルだと、悩みますよね。
一定の値を付加するだけなら、一つの計算式をコピーすれば良いのですが、キャンバーは一定では無いです。
増して、格点のキャンバー値は数値が与えられていますが、横リブ位置の値は、比例計算でしょ?
座標数分だけ足し算の処理を繰り返しながら、足し込む値を変化出来たら良い訳ですが、簡単では有りません。

ところが、プログラムを組めば色々な条件で足し込む値を計算して、座標毎に付加出来るのです。
より、人間の計算方法に近い計算の流れが作れる…という訳です。

そんな訳で、あれれ^^;は、計算式が一律ならばXセルで充分と考えています。
色々な条件で、計算式の一律化が困難…って思ったら、少し遠回りでも、VBのお世話になってます。
どんなに単純なプログラムでも、1から作れば最低1日はかかるものです。
(翻訳の作業は、慣れた人でも頭を抱えているものですから…。)
何事も、時と場合を考えて最善の処置を行わないと…だたの趣味になってしまいます。


実際のプログラム

単純に角度が30度で距離が√3のタンジェントを求めるに、電卓は7回ボタンを押すだけでした。
Xセルでやると、これが27回になったので、一回だけの処理ならば誰が考えても電卓を使います。
Xセルが有利なのは、一律の計算を一度に沢山行う場合です。
じゃ、これをプログラムにしたらどうなのでしょうか?
ちなみに、VBでこの処理を行って画面に表示する処理を考えると、




Private Sub cmdCul1_Click()
txtDis.Text = Tan(30*4*Atn(1)/180) * Sqr(3)
End Sub


”cmdCul1_Click”というボタンの定義や”txtDis”という画面の定義は省略しました。
このように難解そうな文章を、何行にも渡って順序良く入力する訳で…。
とても効率の良い作業とは言えないですよね。


確かにプログラムを作れば、沢山の条件に応じたパソコン計算が出来ます。
その事は時に技術革新をもたらす位、画期的なもので有る場合が有ります。
だからと言って明日が納期の仕事を効率化する手段として、プログラムを1から作るのは間違いです。

だけど、何か1つでもプログラムを自分で作っておけば!!

何事も1から取り組めば大変です。
でも、自分専用の道具箱を持っていれば、応用は簡単でしょう。
出来ない、分らない、という前に誰かの作ったプログラムを理解してみましょう。
その努力が10年後のあなたを支えてくれると思います。



プログラミングというのは、本当に地道な作業です。^^;
あれれ^^;もプログラミング中は陰にコモる傾向が有って、気が付くと使い物にならない物を作っていたりします。
それって大抵は、思い付きで作ろう!とした時に多いような傾向が有ります。
本腰を入れて良いソフトを作るには、それなりのシステム設計も大切です。
そして、システム設計が出来るという事こそ、本当の意味での改良・改善につながります。
食わず嫌いをせず、LET’S CHALLENGE!!


初心に戻る メニューに戻る