こんにちは。
 素朴な質問です。
 20年ほど前のPC-8001時代からBasicをときどき使っています。途中で、N系BASICからVisual Basicに変更しています。そして、ちょっとした仕事のツール作りにVBやVBAを使用しています。
 VBは結構本格的業務プログラムに利用できると思います。ただ、「業務ならVBではだめだ、C言語だな」という声もよく聞きます。VC++もいいとは思うのですが、VBに比べて面倒という印象が強く、なかなか本格的には手を出せません。ちなみに、VBでいくつかの業務用プログラムを制作しました。数年間問題なく、社内で動いたりもしている現状を考えると、なぜ、本格的プログラマーはVBを毛嫌いするのであろうと思ったりします。
 さて、みなさまがたは、VBで何をお作りになっているのでしょうか。
 規模などを含め、実際のこころをお話いただけないものでしょうか。

[過去の履歴も探しましたが、うまくは見つかりませんでした]

このQ&Aに関連する最新のQ&A

A 回答 (2件)

言語って業務やシステムに対して向き不向きがあると思うんですよ。



VBのメリットで言えば、
Windowsに特化している為相性がいい事とコーディングのしやすさ、フォームの作りやすさ等があげられます。

逆にデメリットとして、
Windows以外のOSでは動作しない。
マシンにインストールされているモジュールに動作が依存されてしまう。(IE等)
経験の浅い人(素人)でも作れる為バグが多い。(さらに仕事の単価が安い)
処理が遅い。(致命的ですね)

さらにWindowsの開発のデメリットとして、
開発者がMS(ゲイツ君?)の思うがままに振り回される!

等々デメリットの方が多い気がします…。

別にVBがだめだという訳ではなくて、
画面等のユーザインターフェースはVBで作ってC++で中身を書くなんてのは実際の業務でもよく行われてます。
要は使い分けですね。
⇒でも今後はJAVAにとって変わられるんだろうな…。
 VBの仕事ってなくなってきたし…。
 期待してたVisualStudio.NETもあんまり使い勝手よくないし…。(ぼそっ)

P.S.
面倒なんて少しでも思ったらこの業界では働けません。(^^ ;)
    • good
    • 0
この回答へのお礼

ありがとうございます。

> 面倒なんて少しでも思ったらこの業界では働けません。
 おっしゃるとおりです。
 面倒なのは、言語を覚えることそのものよりも、覚えている過程の生産性の低下のフォローかもしれないです。

> 開発者がMS(ゲイツ君?)の思うがままに振り回される
 うーん、それでなくともいろいろに振り回されるのですから、お○ゃくとか、し○○ょうとか。せめて間発環境くらいは、たしかに振り回されたくはないですね。

> VBの仕事ってなくなってきたし…。
 うーん、そうですか。VBの仕事って減っているのですか。他の言語が増えているのでしょうかねぇ。

お礼日時:2001/11/10 17:00

VBのみの機能(関数)だけであればメモリ操作を考えなくてもいいというところが大変便利なのですが、その分VB内部で独自のメモリ処理をしているために、同じ機能を持ったプログラムをCとVBで作成した場合には、Cで作成したソフトの方が、EXEの大きさも小さくまとまりますし、処理も高速です。



それとVBはバイト/ワードの扱いがし辛いです。上位8ワードと下位8ワードの&HFFFFFFFF&はロング型に納まらない長整数が存在するのですから・・・これじゃ長整数の変数も意味がありません。。。

#1の発言にもあったように、VBソフトには素人プログラマが関わっていることが多いです。メモリ消費量を考えることや、チャートを書くことができない人間がVBプログラマに多いという点が主にあります。
最近の会社は言語の勉強をVBから始める会社が多く、その勉強も「メッセージボックスの出し方(パラメータのあれこれ)」「印刷の方法(画面系)」などの機能から学習をする人間が多いからです。
Cから勉強をする人は、内部でどのような処理を行って、出力するかということから始めてたはずなのですが、VCが普及したために、VBと同じような勉強の仕方をする会社が多いのも事実です。

>VBを毛嫌い
ぼくもそうでした。ぼくは本来アセンブラやCでの開発を多くしてました。アセンブラの開発は命令一つ一つにどれだけの負荷がかかるかなどの計算をしながら、開発を行ってました。Cで開発する時も、混合モードでどれだけの負荷があるかを計算しながらしてます。銀行システムや航空システムなど、「落ちるなんてもってのほかだ」という世界では、ハードに負荷をかけるわけにはいきません。どれだけハードの性能がよくなっても、それに甘えて妥協してメモリを消費して落ちるということも許されません。開発者のプロジェクトのメンバ次第ではCだけで作成する場合がありますし、画面はVB/内部処理はCといった方法がとられる場合もあります。
でも試作品は変更しやすいVBで作成しますけどね・・・

それと税金にかかわるものもVBでの開発が多いです。これは試作品と共通する部分が多いですが、VBで作成したソフトはバージョンアップしやすい事も特徴です。VBプログラマはうちの会社も多いので、簡単にソースを読み取ることができるVB作成ソフトは、バージョンアップを他人に任せやすいです。
それに税金はコロコロ変わりますからね・・・

VC6/VB6が出た今は、それほどの信頼性を求めるソフトでなければ、(ハード次第で)製作者の得意な言語でよいと思います。Cでできなかった途中でのソースの変更もできるようになったし、VBでできなかったアドレス監視など、どちらも機能が歩み寄ってきてます。Cでできるならそれが一番だと思うけど、肝心なのはバグのない仕様を満たしたプログラムだと思います。

VBの開発は安い?
確かにそれは傾向としてあります。しかしそれは開発の実績次第だと思います。
1.客先にVBをちょっとだけ知っている人がいて、VB=素人プログラマの集団という目で見られている。
2.会社自体にVBの実績しかないので、安く仕事を引き受けている。
3.客先で機能設計がすでにできていて、設計自体に負荷回避が考慮されていない。(設計者自体がVBしかしらず、プロジェクト自体が安くなってる)

詳しくは言えませんが・・・
先輩SEの請け負った仕事で、VBで高額な受注を受けたこともあります。その先輩はCもVBも熟知しています。
    • good
    • 0
この回答へのお礼

 SEの生の声を聞かせていただき、ありがとうございます。
 気持ち的にとても参考になりました。

お礼日時:2001/11/21 18:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMio DigiWalker で Pocket Mapple Digital を使いたい

GPS機能付きのMio DigiWalker で Pocket Mapple Digital を使いたいのですが、対応しているMioの機種を教えて頂きたいです。

Pocket Mapple Digitalは

BBソフトダイレクト
http://bbsoft-direct.com/bbsoft/index.html

↑上記サイトの検索欄から、Pocket Mapple Digitalで検索すると出てきます。

mioとPocket Mapple Digitalを組み合わせて、さらに精度の高いGPSナビとして使う事が目的です。

Aベストアンサー

参考URLの「Pocket Mapple Digital Ver.9動作環境」に記載がありますね。

●Windows Mobile 5.0機器
* ・マイタック P350
●Pocket PC 2003/2003SE機器
* ・マイタック Mio168RS
●MioPND 機器
* ・マイタック C311、C325、C525
※Mio C311、C325、C525には、Pocket Mapple Digital Ver.7がインストールされていますが、SDカードへMioPND用に出力したVer.9の地図データを入れると、システムはVer.7のまま Ver.9の地図を表示するようになります(全域図、小域図は表示できません)。

参考URL:http://www.mapple.net/smd/move/index.html

QVB6でこのようなちょ~単純なプログラムの作り方を教えてください

何でもいいので全画面に広がるFrmを用意して、
その画面でマウスクリックとか、キーボードを
さわったりとか何もせずに、10秒間たつと、

別の全画面のFrmを上にかぶせて、
あるIDとパスワードをいれないと
元の画面に戻れないようにしたいのです。

簡単なVB版のスクリーンセーバーを作りたいのです。
Timerを使うのは分かるのですが、
どなたか詳しく教えていただけませんか?

また、忘れがちなこともあれば教えて下さい。

Aベストアンサー

初回画面をForm1,パスワード画面をForm2として
Form1に貼り付けたタイマーをTimer1としたときに
Form1に
---------------------------------------
Private Sub Form_Load()

' TimerのIntervalを10000ミリ秒(10秒)に設定
Timer1.Interval = 10000
' Timer起動
Timer1.Enabled = True

End Sub

'FormがLoadされてから10秒後に呼ばれる。
Private Sub Timer1_Timer()

'Form1を隠す。
Me.Hide
'Form2を表示
Form2.Visible = True

End Sub
--------------------------------------
とすれば、よいです。
あと、パスワードを入れて、戻るのは逆の要領でやればOKです。

QPocket PC 2002 IE 対応JavaScript は?

Pocket PC 2002 Pocket IE 対応の JavaScript の
対応表のようなものを探しています。
( Ver 1.1 のみ対応?)
ご存知の方は、なにとぞ情報をよろしくお願いします。
ちなみに今手元にあるのはNEC製 Pocket Gear です。

Aベストアンサー

参考URLをご覧下さい。

「PocketPC2002 / Handheld PCブラウザ比較表」

参考URL:http://www.microsoft.com/japan/mobile/pocketpc/techpapers/browser_comparison.asp

Q【VB2005】別のプログラムから別のプログラム起動

"A"というVB2005で、作成したプログラムがありまして、
メインのフォームがあり、
そこにボタンがあります。
Shellの関数を使って、クリックイベントで、
指定したExe"B"を立ち上げます。

そのExe"B"は、VB2005で作成したオリジナルのプログラムです。
プロジェクトは別で作った物と考えてください。

Exe"B"を起動した画面を[フォーム1]と考えて、
ボタンがあり、クリックすると
別の[フォーム2]が表示するはずなのですが、
特にエラーも掴まずに、Showで開くことができません。

しかし、Exe"B"からダイレクトに起動させて
ボタンをクリックしたら[フォーム2]が表示されます。

どうしたら、Exe"A"からExe"B"を起動して
Exe"B"からフォーム2を呼び出すことができるか、
考えられる要因などをアドヴァイスして頂けたら助かります。

Aベストアンサー

意味がよくわかりませんので、補足をお願いします。

A.EXE と B.EXE という実行ファイルがあり、それらは VB 2005 で
作ったもので……
A.EXE から Shell 関数で B.EXE を起動すると B.EXE が持っている
Form2 の表示が不可能となるが
A.EXE を起動していない状態で B.EXE を起動すると B.EXE が
持っている Form2 の表示が可能である。

という意味なのでしょうか?

A.EXE から B.EXE の起動と表示を行う箇所のコードも記述して
頂けると何かわかるかも知れません。

QGiga Pocket database error (14009)への対応法

Sony Vaio PCV-RZ61L7のユーザーですが、外付け250GのHDDをNTFSフォーマットして、そこに\GigaPocketというフォルダーを作成し、そこに外部からのアナログビデオを貯めていました。ところが突然、Giga Pocket database error (14009)」というエラーメッセージが出て、Giga Pocketエクスプローラーでそのフォルダーを保存先に指定できなくなりました。Dドライブの\Giga Pocketには正常に保存できます。
どうしたらよいのでしょうか?Giga Pocketのバージョンは、5.0です。その外付けのHDDの\Giga Pocketの内容を空にして、\Giga Pocektを削除して再度フォルダーを作成してやり直そうともしたのですが、その\Giga Pocketというフォルダーは削除できませんでした。

Aベストアンサー

データベースエラーが出た場合は、もう再インストール(ギガポのみ)しかないと思います。
SONYのサポートに相談しても多分そうなります。

>Giga Pocketというフォルダーは削除できません
時間を置いてもできませんか?
中身を他のフォルダにコピーしてはどうでしょう。
どの道その中の動画は再取り込みしないといけないでしょうから。

Ver5.0は使ったことないですが
キャビネット(保存先)の作成は[Giga Pocekt]でしか作れませんか?
他の名前で作れませんか?

Qvb(Visual Basic)でインターネットエクスプローラ(ver6.0)を起動させたい

vb(Visual Basic)でインターネットエクスプローラ(ver6.0)を起動させたいです。

Dim IE
Set IE = WScript.CreateObject("InternetExplorer.Application")

この記述では、

実行時エラー '424':
オブジェクトが必要です。

とエラーが発生します。
素人です、よろしくお願いいたします。

Aベストアンサー

Sub test02()
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.navigate2 ("http://www.yahoo.co.jp")
IE.Visible = True
End Sub
でYahooが開きましたが。
WScriptはいるのかな。

QPocket WiFiについて

Pocket WiFiについて

イーモバイルでPocket WiFiを契約しようと思っているのですが、
今使っているパソコンがPocket WiFiに対応しているか分からず困っています。
今使っているパソコンはFMV-BIBLO MG/D70です。↓
http://shop.tsukumo.co.jp/goods/4988618635004/
無線LAN機能は搭載しているのですが…。
無線LAN機能を搭載していればPocket WiFiにも対応しているということでしょうか?
よろしくお願いいたします。

Aベストアンサー

>無線LAN機能を搭載していればPocket WiFiにも対応しているということでしょうか?
そう考えて支障はありません
無線は a/b/g/n規格がありますが親機・子機で同じ規格に対応していれば通信可能です

QVB.NETとVisual Basic 2005

VB6からVB.NETに進化したのは知っていましたが、最近ネットを見ていたら、「Visual Basic 2005」と言う言語が目に付きました。

「VB.NET」がバージョンアップして「Visual Basic 2005」になったのですか?
それとも両者は全く違う言語ですか?

Aベストアンサー

Q/「VB.NET」がバージョンアップして「Visual Basic 2005」になったのですか?

A/そうです。正規バージョンは2005(8,0,5)となり、.Net Frameworks2,0(asp.NET2.0)に正式対応し、当初リリース候補であったRC版はVisualStudio2005ExpressEditionとして無償化されました。

http://www.atmarkit.co.jp/fdotnet/insiderseye/20040904vb2005/vb2005_01.html
http://www.atmarkit.co.jp/fdotnet/vblab/vb2005m_01/vb2005m_01_01.html

QGiga Pocketでビデオテープ→DVDを作りたい

Giga Pocketでビデオテープ→DVD-RWを作るために
台東区立図書館のマルチメディアコーナーへ行きました。
ここにはGiga Pocketが使えるVAIO、DVDとビデオのデッキがある装置が接続されており、ソフトはGiga Pocket と Adobe プレミア6がはいっていました。
(ちなみにこのブースで上記編集が可能と言われましたが操作は経験者でないと難しいという話でした。)
置いてある簡易マニュアルをみながら
1.アナログ/デジタルでアナログを選択
2.Giga Pocketビデオレコーダーでビデオを選択して
  録画(TVを録画するように)しようと思い
  外部入力をビデオに設定
3.そのあとDVDに書き込み
しようと思ったのですが2のところでビデオの録画(再生)ができません。どのようすればいいでしょうか
またGiga Pocketを使わずにこれらの操作をプレミア6で
できるものなのでしょうか
よろしくお願いします

Aベストアンサー

こんにちわ。

わたしは自宅で上に書かれているようなことを頻繁に作業しています。

1.まず、PCのR,L,VIDEO端子とビデオの音声、画像出力端子をつなぎます。
  (一般的には赤、白、黄の印のついたケーブルでつなぎます)
  もしかしたらこれはあらかじめつないであるかもしれません。それは確認してみてください。
2.Giga Pocketを起動します。TVが普通に放送されていますね。
  下のほうのCH(チャンネル)ボタンをクリックするとチャンネルが出てきますので、一番下の
  VIDEO INPUTをクリックします。
  無地の青いバックの画面が出ていますので(もちろん無音です)その状態からVIDEOデッキのほうの
  再生ボタンを押します。
3.自分の都合のいいところで今度はGiga Pocketの赤い●ボタンをクリックします。
  するとTVを見るようにVIDEOの映像が流れますのでそうなっていたら、録画されています。
  あとは録画を止めたい所で黒い■ボタンをクリックすると止まります。
※録画ボタンは素早くクリックするというよりも少し長めに押すくらいの気持ちでないと録画がうまく始まりません。
 また少し余裕を持ってから録画ボタンを押さないと最初の部分が切れる場合があります。
 それからGiga Pocketの設定→録画モードは標準以上がいいと思います。長時間では今のビデオよりも
 画質が落ちますので。しかし、高画質にしても今以上の画質にはなりませんので注意されてくださいね。

プレミア6というのは録画したMPEGソフトを編集するためのソフトだと思いますので、それだけでは
録画はできないはずです。
わたしはプレミア6ではなくTMPGEncというソフトを使っていますので、そのソフトの段階が違うだけで
あとの手順は同じだと思います。

ざっと説明しましたが、こんな感じでできると思います。参考まで。

こんにちわ。

わたしは自宅で上に書かれているようなことを頻繁に作業しています。

1.まず、PCのR,L,VIDEO端子とビデオの音声、画像出力端子をつなぎます。
  (一般的には赤、白、黄の印のついたケーブルでつなぎます)
  もしかしたらこれはあらかじめつないであるかもしれません。それは確認してみてください。
2.Giga Pocketを起動します。TVが普通に放送されていますね。
  下のほうのCH(チャンネル)ボタンをクリックするとチャンネルが出てきますので、一番下の
  VIDEO INPUTをク...続きを読む

QVisualBasicのよるBASICプログラムの実行の可否

初心者な質問ですが、VBでBASICのプログラムを動かすことは可能ですか?VC++でC言語は動かせるようなんですが今度BASICのプログラムを動かすことになってVBを買う予定なんですが、果たして動くのかわかりません。よろしくお願いします。

Aベストアンサー

#1の補足に関して。
DOS-Basicらしいですね。3行では判らないが、素朴な初期のものらしい。あるいは、旧い時代の教科書や解説書のようなものを見ているのかな。
幸い「数値計算して値を計算するというものです」ということなので、あまり入出力は使ってないように予測するので、置換を使って変更すれば、後は
手数的にはそんなに、変更しなくてもよいとおもう。
たとえばInput-->Inputbox()
Printーーー>Msgbox
など対応表を考えてやったことあり。SIN、COSや関数はそのまま使えるでしょう。
ただプログラムは1文字違っても、全く動かない不融通の世界なので、甘く考えないこと。上記はVB程度のことなのだが、VB.NETだと様子が
変わるかも。
それに「VBを買う予定」の私の質問に答えていませんね。これが大事ですよ。
エクセルが使える環境なら、エクセルVBAで、本件Basicプログラムを移植し、動かせるケースもあるかもしれない。
XX.BASはテキスト形式だと思うので、メモ帳に読み込めるか、読み込めるなら、コピーして、VBEの標準モジュールの画面に貼り付け、そこから、悪戦苦闘開始ですね。 

#1の補足に関して。
DOS-Basicらしいですね。3行では判らないが、素朴な初期のものらしい。あるいは、旧い時代の教科書や解説書のようなものを見ているのかな。
幸い「数値計算して値を計算するというものです」ということなので、あまり入出力は使ってないように予測するので、置換を使って変更すれば、後は
手数的にはそんなに、変更しなくてもよいとおもう。
たとえばInput-->Inputbox()
Printーーー>Msgbox
など対応表を考えてやったことあり。SIN、COS...続きを読む


人気Q&Aランキング

おすすめ情報