• ベストアンサー

VBのアプリケーションって...

時々、ちょっとしたプログラムをテキストで作って、拡張子を.vbsに変更して、実行させたりしてます。 VisualBasicって、色んなバージョンのアプリケーションがありますが、私がよくするこの方法で作ったものと、コーディングの中身とか、その他どう違いが出てくるんでしょう? ちなみに私はAccessVBAが得意な、駆け出しのPGなんで、プログラムの中身をコーディングする事以外は、ドシロート程度の知識しか無いんで、どなたか教えて下さい!

質問者が選んだベストアンサー

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

確かにVBには、兄弟が多くてそれぞれ住み分けが微妙なんですよね。 大元に近い順に、こんな感じかと。 VisualBasic>VisualBasic For Application(VBA)>Visual Basic ScriptingEdition(VBS) 文法的には、ほぼ同じ。 VBSには、変数に型が無いってところが大きな違いですかね。 機能的には、それぞれ微妙に出来る事できない事あるわけですけど。 しかし、一番大きな違いは、実行環境では無いでしょうか。 コンパイルして作ったVBアプリは、(新しい.NETのフレームワークで無ければ)動かすのにランタイムが必要です。 VBAはOffice等のアプリケーションへの実装なので、当然そのアプリ自体が必要です。 VBSは、IE、ASP、WSHなどの実行プラットフォーム+スクリプトエンジンがインストールされている必要があります。 現在、最新のVBスクリプトエンジンは、5.6ですね。 コーディングの基本的な部分は、さほど違いは無いのではと思いますが、そもそも用途が異なるため、その前段階でのアプリケーションデザインとも言うべき部分がかなり変わってきます。 例えば、独自の入力フォームが必要なアプリをWSH+VBSで組もうとするのは、ありていに言って無茶でしょうが、VBで作れば容易いでしょうし、AccessやExcel+VBAという選択肢でも、入力する内容によっては現実的な解でしょう。 また単純に、ちょっとしたテキスト処理をしたいが為にVBやVBAを持ってくるのは、ちょっと重装備かなと言う気がします。この場合はWSHがよさそうですよね。 それぞれ一長一短あると思うので、場面をわきまえて使い分ける事になるのでは無いでしょうか。

Kalen_F
質問者

補足

詳しいご返答、有難うございます! あのぅ~、ちなみに、WSHってどういうものなんでしょう? 以前に仕事でASPは日々関わってきて理解出来ているんですが。。。アスキーデジタル辞典で調べたんですが分からなかったんで、教えて頂けませんでしょうか?(^^ゞ それと別件になるんですが、言語がCでのプログラミングを勉強していこうと考えているんですが、何かオススメのサイトをご存知ないでしょうか?

その他の回答 (2)

  • you-m
  • ベストアンサー率58% (190/327)
回答No.3

Kalen_Fさん曰く、 >時々、ちょっとしたプログラムをテキストで作って、拡張子を.vbsに変更して、実行させたりしてます。 これが、まさにWSH上で実行されています。 WSHの最初のバージョンはIIS4と共にインストールされたか、Win98に標準搭載されたものだったと思います。 単純に言えば、スクリプトを実行するためのコンテナと言った所でしょうか。 IE上でのVBSは基本はWebページ上での動作です。 ASP上でのVBSは、サーバサイドスクリプトです。 これに対して、WSHはOS上のバッチ処理の強化というのが最大の目的として世に出ました。 従来のWin上での標準のバッチ処理は、シェルにCOMMAND.COMやCMD.EXEを用いたバッチファイルでしたが、機能が貧弱なうえに、柔軟性にもかけるため、あまり高度な処理はできませんでした。 CMD.EXEベースのスクリプトは、それなりに多機能ではありましたが、文法が非常に変則的であるため、使いこなすにはこの特殊な文法になれる必要がありました。 しかし、WSHを用いる事によってVBS・JS使いならば極めて簡単に複雑なバッチ処理を記述できるようになりました。 また、スクリプトエンジンさえ用意すれば、ASP等と同様、Perlスクリプト等も使用することが出来ます。 また、COMサーバを呼び出す事も可能であるため、様々な拡張性が見込めます。 実際、ログオンスクリプト等に応用すると極めて柔軟で保守性の高いスクリプトを作成することができます。 別途アプリケーションをインストールすることなく、ほぼ標準の環境でこういったスクリプトを作成・実行する事ができるようになったため、UNIXのシェルスクリプト並に強力なバッチ処理が、簡単に記述できるというのがWSHの売りです。 WSHが使えるようになったおかげで、それまでPerlをインストールして書いていたこまごまとしたテキスト処理用のスクリプト等は、Perl無しでもかけるようになりましたし、システム管理用に設定変更用のスクリプト等も、実行環境に必要な物が特殊でなくなったため、簡単に配布できるようになりました。 逆に、これは一歩間違えるとすぐセキュリティホールになりうるという弱点も抱えてしまったのですが・・・。 とまあ、こんな感じで分かっていただけたでしょうか。

Kalen_F
質問者

お礼

お礼が遅くなってしまって、スミマセン! とても分かりやすい説明有難う御座います。 もっと知識を磨いて、早く一人前のフリーのPGとしてバリバリ仕事出来るように、頑張っていきます(^^)

  • qwedesu
  • ベストアンサー率31% (6/19)
回答No.1

コーディングシーケンスはまったく同じです。 開発ツールが違うとか、使える部品とか、 移植等のコンパイルとかですかね~

Kalen_F
質問者

お礼

ご返答、有難う御座います。

関連するQ&A

  • VBSの勉強をしたいのですが、よいテキストがみつかりません。

    VBSの勉強をしたいのですが、よいテキストがみつかりません。 先輩諸氏はどんなテキストを使用しましたか? 書店に行くとVisualBasicのテキストはたくさんあるのですが、 私が覚えたいのはVBでスクリプト(.vbs)を作ったりする方なのです。 コーディングの部分はVisualBasicと大差ないということでそちらのテキストを使われているのでしょうか? それとも「VBSなんてそもそもテキストを作るほどのものでもない」ってことなのでしょうか。

  • Windowsアプリケーションのコーディングガイドラインについて

    VC++ 7.0でWindowsアプリケーションを開発しているのですが、 このたび、プログラム開発にあたりコーディング規約を作成し ております。 しかし、GUIデザインに関する規約を書けず、現在、GUIの設計 ガイドラインのようなものを探しております。 たとえば、ダイアログ内のコントロール同士の間隔(縦横とも に)だとかテキストコントロールの高さとかなどなど、GUIの 設計の規約っぽいものです。 英語のサイトでもかまいません。 ご存知でしたら教えてください。 宜しくお願いいたします。

  • アプリケーションの関連付けができない

    Microsoft Windows® 7 Professional Service Pack 1 32bit 日本語版にて、ファイル拡張子に対するアプリケーションの関連付けを行いたいのですが、リムーバブル ドライブ上に存在するアプリケーションに設定することができません。 手順) 1. テキストファイルをエクスプローラーから右クリックを行い、「プロパティ」ダイアログを表示します。 2. 「全般」タブの「プログラム」項目の「変更(C)...」ボタンを押下します。 3. 「ファイルを開くプログラムの選択」ダイアログの右下にある「参照(B)...」ボタンを押下します。 4. 対象のアプリケーションを選択します。 5. 「推奨されたプログラム」および「ほかのプログラム」のどちらにも、選択したアプリケーションが表示されず、関連付けを変更することができません。 なお、リムーバブル ドライブ以外にあるアプリケーションへの関連付けは可能でした。 リムーバブル ドライブ上に存在するアプリケーションへ関連付けする方法を教えてください。

  • VB6の習得について

    現在、小さな会社で研究開発の仕事をしています。 これまでプログラミングの経験はないのですが業務の必要上、 既存のプログラム(VB6、約6000行)を修正、場合によっては 一から書き直すように指示がありました。これにあたって上司のスタンスですが、 ・たとえ初心者だとしても、「練習のためのコーディング」は業務時間には認めない  何らかの形で製品に反映されるコーディングのみを認める ・今後のメンテナンスのことも考えると、VBの6以降のバージョンは使ってはいけない  VB6の範囲で完結させるように ・そもそもコーディングとは好きな人、向いている人が、人から言われなくても  書くものだ、だから自宅で練習やコーディングをするのが当然だ ・お前ができないなら、外注に出す(今の私は契約社員なので、立場はかなり悪くなります) ある程度なら、自腹で開発環境を自宅におこうかとも思ったのですが、最新のVBならともかく VB6は私の知る限り、正規の方法でインストールは難しいようです。(できたとしても非常に高額) VB6を含めてVBをある程度マスターしたいという気持ちはあるのですが、今の状況で どのような手段がベストでしょうか? また、VB6でコーディングしたテキストと最新のVBとの互換性などはどのような関係にあるのでしょうか? ご教示のほど、よろしくお願いします。

  • txt入力、拡張子変更のみで実行ファイルを作る方法

    バッチファイルとか VBSとかWSHというのは廃れてPowerShellに一本化されていくのでしょうか? Windowsでテキストで入力して拡張子を変更するだけで使える プログラムを書く方法は今後どうなっていくのでしょうか? プログラミングはほとんどやったことがないのですが、 ちょっとした処理をテキスト入力して拡張子を変更して 実行ファイルを作れたら便利だと思って質問しました。 何を勉強したらいいでしょうか? 教えてくださいよろしくお願いします。

  • マウスポインタを移動させたい

    趣味で時々プログラムを組むレベルのものです。 プログラム開始直後に、マウスポインタを画面の左上、または右下に移動させたいと考えていますが、どのようにすればいいのでしょうか? VisualBasicのバージョンは、6.0、Windows2000を使っています。 よろしくお願いします。

  • 【VB2005】「ファイルを開くプログラムの選択」ダイアログを出すには?

    最近VB2005を始めた者です。 現在アプリケーションを作成しております。 そのアプリケーションの1つに外部ファイルを開く機能を付け加えたいと思っています。 機能としては、   ・普通のテキストファイルを開きたい時 → notepad.exe   ・大容量のテキストファイルを開き検索したい時 → 別のアプリ という風にユーザーが開くアプリを選択できるようにしたいのです。 それを実現するために、 拡張子の無いファイルを開くときに出る   「ファイルを開くプログラムの選択」 というダイアログボックス(?)を出したいと思っています。 関連付けられているファイルを開く事は ShellExecute() や Process.Start() などで実現できているのですが、「ファイルを開くプログラムの選択」がどうしても実現できず困っております。 お暇な時で構いませんのでご回答いただければ幸いです。

  • プリコンパイル?

    ASP.NET初心者です。 ASP.NETで作成したファイルをフォルダ一式もらいました。 拡張子がaspxになっているファイルをテキストエディタや visual studioで開こうと思ってもコードが表示されません。 「これはプリコンパイルツールによって生成された  ファイルマーカーです。削除しないで下さい」 と表示されます。 拡張子がaspxになっていますが、コーディングしているファイル をコンパイルして作成したファイルと思ったらよいのでしょうか? コーディングの中身を確認したい場合、このコンパイルファイルでは なく別のコーディングファイル?拡張子aspxを再度もらえばよいので しょうか?

  • ファイル「アプリケーション拡張(dll)」 インストールできません 

    ソフトウェアをインストールしようとすると、 「ファイルの種類アプリケーション拡張(dll)を開こうとしています。 これらのファイルはオペレーティングシステムやいろいろなプログラムにより使用されています。 これらを変更したり編集したりするとシステムに悪影響をおよぼす可能性があります。 ファイルを開く場合は[プログラムから開く]をクリック―」 …というようなエラーメッセージが出ます。 作成元のプログラム名がないということでプログラムからは開けず、 その先の操作でウェブから検索しても、「プロパティのバージョン情報でファイルの作成者を知ることができる」と表示されるだけで、 それをどうすればいいのかわかりません。 情報が不足しておりましたらご指摘ください。 初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

  • VB2005でJIS拡張漢字の各文字コードを取得する方法

    ある関数に文字列を渡して各文字コードを取得するプログラムを作成しようとしています。 基本的な文字のコードは取得できるのですが、JIS拡張漢字のほとんどが正しく取得できません。 失敗している文字は内部的に「?」(3F)となってしまいます。 例:拡張漢字のコード値(SJIS:81B2)を変換するとコード値が「3F」になってしまう。(テキストエディタなどで文字化けすると「?」に化けるのと同じなのかな?) 正しく文字コードを取得する方法をご存知の方、またヒントなどありましたらよろしくお願いします。 【環境】WindowsXP     VisualBasic2005 【プログラムの流れ】例:SJISコードを取得する場合 文字列を受取る→1文字取得→System.Text.EncodingでSJIS指定のバイト型配列文字に変換(文字コードを取得)

専門家に質問してみよう