プログラマとして仕事を始めて2年になるのですが(VB6は半年くらい)
分かったようなふりをして、実はちゃんと理解できていないことがあります
会社で見るようなプログラムには、.frmだけでなく.basや.clsがいっぱいあったり、
関数や定数だけが宣言してあるものがあったりするので、混乱してしまいます
.basとか.clsのものは、べつに.frmにしてもいいんじゃないかとも思いますし
ファイルが別れすぎていて、変数や関数の宣言の仕方にも迷ってしまいます
このあたりのことを丁寧にわかりやすく書いてあるサイトはないでしょうか
初心者・VBなどで見つけたHPは、ボタンの置き方などの説明ばかりで参考になりません
有る程度実用的な例を上げてあるサイトがあればいいのですが・・
.basや.clsはそのまま他のプログラムでも使えるという利点があります
Aのプログラムでつくった(使った)「a.bas」というのがあったとしたら、次につくるBというプログラムでもa.basを取り入れればコードを書き直したりコピーしてきたりする手間が必要ありませんよね
そういうことだと思えばいいかと
※.clsはクラスモジュールだから若干意味合いが変わってくるけど・・・面倒だからパス
>.basとか.clsのものは、べつに.frmにしてもいいんじゃないかとも思いますし
プログラマとして仕事を始めて2年間の間、
いつも一人で開発していたりしてたのかなぁ〜。
#ちょっとかわいそうだなぁ
他の人と一緒に、開発をしたりするときに、
複数のプログラムで共通化できるものなどが出てきますよね?
そういった共通化できるものを個人個人が作ったりしてたら
動作も不統一ですし、無駄な作業ですし・・・。
いざ、その関数にバグがあったら、
全部のプログラムを開いて修正してコンパイルなどという手間もかかりますし・・・・。
まぁ、その他いろいろなメリットがあるんだろうけど、面倒だからパス
Tinaさん、
2年間の間、いつも一人で開発していた仲間??
場所は除いて・・・・・
VB6のことはあまり、分かりませんが、
.frmにソースを記述していたら、その中から目的のソースを探して、
抜き出して、記述するのが大変ですよね。
ところが、.basとか.clsにソースをサブルーチンで記述していた場合、
そのファイルを現在、作成しているフォームに取り込んで、そのサブルーチン
をCallすれば、記述する手間が省けるということです。
つまり、.basか.clsをあらかじめ作成しておき、そのファイルのみを取っておき、
必要なときに取り込ませ、サブルーチンをCallさせるということです。
通ってみたさん、いなさん、マグさん、ありがとうございます
完全に一人ではないのですが、3ヶ月の新人研修でC言語をやったあとすぐに
同じ会社の先輩と2人でとても忙しい仕事にほりこまれてしまったうえに
客先で作業をしているので、基本的なことを気軽に質問できる方がいなくて・・
1.
みなさんのおっしゃることを考えてみましたが、そうすると
.frmには、ボタンをクリックする、とかテキストボックスに値が記入される
などのイベント系のことばかり書くものなんでしょうか
2.
.basに書かれている関数を.frmから使おうと思ったら、
.basではPublicで宣言されていないとダメということですよね?
ということは、.basの中でPrivateで宣言されている関数はその.basの中でしか
使われていないという認識であっているでしょうか?
こうやって質問に答えていただくと、次から次へと疑問が出てきて
何回も答えてもらうことになり、ご迷惑かと思ったので
参考になりそうな解説サイトを教えていただきたかったのですが・・
初めまして。聖と申します。
>.frmには、ボタンをクリックする、とかテキストボックスに値が記入される
などのイベント系のことばかり書くものなんでしょうか
例えば、form1.frm と form2.frm に同じ処理がある場合、
.bas などに書いておいたほうが、修正が入ったときに1箇所を直すだけで
すみますよね。これが両方に書いてあったら、両方修正する羽目に。
つまり、共通部分を抜き出して、別モジュールにまとめよう、というのが
.bas や .cls の使い方ですから(クラスは本来別の意味がありますが)、
.frm にはイベントプロシージャしか残らない、というわけではなく、
.frm にはそのフォームでしか使わないプロシージャが残り、
他でも使うプロシージャが .bas などに集められる、というほうが
一番正しい解釈ではないかと思います。
>.basに書かれている関数を.frmから使おうと思ったら、
>.basではPublicで宣言されていないとダメということですよね?
>ということは、.basの中でPrivateで宣言されている関数はその.basの中でしか
>使われていないという認識であっているでしょうか?
あっています。共通関数は確かに .bas で Public で宣言する必要がありますが、
その関数自体が処理が長い場合など、別プロシージャに分けてすっきりさせたい場合があると思います。
その場合、共通関数からしか呼ぶことが出来ないようにするため、
.bas の中で、あえて Private で宣言する関数も当然出てきます。
ここら辺は使い方に併せてうまく使い分けて下さい。
> 参考になりそうな解説サイトを教えていただきたかったのですが・・
確かにこういう疑問を解説しているサイトはあまり見かけませんね。
おそらく解釈の方法や考え方に、あまり統一性がないせいではないかと
思うのですが・・・
何回も聞くことはおそらく迷惑ではないと思いますが、
内容が変わる際には別スレッドにするほうがいいかと思います。
横からすみませんでした。
数日前,私もクラスとは何ぞやとあっちこっち探しまわりました。
結局難しくて理解できませんでしたが,その時見たサイトを書きます。
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
http://homepage1.nifty.com/rucio/main/shokyu/index_sho.htm 第5章
VBリンク集 (参考まで)
http://www.mitene.or.jp/~sugisita/lnk_vbjp.html
>>.frmには、ボタンをクリックする、とかテキストボックスに値が記入される
>>などのイベント系のことばかり書くものなんでしょうか
私含め皆さんが言っているように、「そうしたら後々便利」というわけですよ
フォームに書きたければそれでもいいんじゃないですか
今のこと、自分のことだけ考えるなら
聖 羅樹さん、HSさん、通ってみたさん、ありがとうございます
聖 羅樹が教えてくださった
>.frm にはそのフォームでしか使わないプロシージャが残り、
>他でも使うプロシージャが .bas などに集められる、というほうが
というところで、今回の疑問はすっきりしました
HSさんの教えてくださったHPは、少し見たところ難しそうでしたので
週末の勉強時間に、ゆっくりと読んできます
子供のような質問に答えてくださって、ありがとうございました
あきらめずに少しずつ勉強していきたいと思います
ツイート | ![]() |