• ベストアンサー

VBないしVBAでのソフト開発

VBないしVBAでのソフト開発 勉強をしてマクロは書くようになったのですが、あちらこちらで配布されているようなエクセルのゲーム等をこれから作ってみたいと思っています。 この上で、エクセルを開かずに…というか、所謂フリーソフトのように単体で配布できるような形状にしたいのですが、そういった説明が全部でなくてもいいので解説されているようなサイトはないでしょうか? 今のところエクセル上で開くソフトの説明などしか見つけられていないです。

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

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

Excel VBA はエクセルが無いと動きません。 VB もランタイム。。。というか .NET になってから .NET Framework と呼ばれていますが、これが無いと 動きません。 Windows OSによっては特定バージョンの.NET Frameworkが 付属している場合があります(プレインストールされるか どうかはOSのインストール時の設定などに左右されます) [参考] http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+201008/10080015.txt リンク先の中で紹介されているリンク先の内容まで目を通してください。

picicate
質問者

お礼

遅くなってすいません、ありがとうございます!

その他の回答 (5)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.6

>> http://support.microsoft.com/kb/209176/ja >> このサイトを見ましたがVBのことしか書かれていません。 > #4さんへ もっと単純に、リンク先タイトルの 『アプリケーション用の Visual Basic』 が『VBA(Visual Basic for Applications)』 だと説明すればいいのでは? VBA について書かれたページですよ。

picicate
質問者

お礼

遅くなってすいません、ありがとうございます!

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#4さんへ >かれの説だと かれ→彼?とは私のことでしょうか?インターネットは、性別不詳の世界ですから、反論も否定もしないけれども、あまり嬉しくないですね。 それに、私個人の「説」というものではないのですが……。 >このサイトを見ましたがVBのことしか書かれていません。 じゃなくて、「VBのことは書かれていません」ということだと思います。 VBA画面にして、ヘルプで、バージョン情報をみると、 Microsoft Visual Basic 6.5 と出てきます。たぶん、VB5 時代のバグは、VBAでも修正されているようです。 開発史は、噂だけで、詳しい話は知りません。ビジネス用として、Visual Basic を入れることが出来るはずだとしたそうですが、安易に考えていたことが、後々の延々と続く火種となったようです。 最初、1993年だということで、Office Ver.5 から搭載されるようになりました。なぜ、Visual Basic を使わなくてはならなかったのか、実際の記録は読んだことがありません。現在は、Officeチームと、言語開発のチームとは分かれているようです。それぞれは、独立しているようで、方針が違うようです。 なお、Wikipedia の内容はあまり情報が正確でないことがあります。その都度、開発の予定などは、Microsoft 側で発表されているようですが、今は、将来のOffice の言語に関しては、混沌としているようです。 VB6と、VBAとは、同じ点をあげるよりも、違う点のほうが多いかもしれませんが、オブジェクトの違いを除けば、基本的な部分は共通しているはずです。Office 2003 では、VB6 Runtime Set は、標準でインストールされていたかと思います。現在のVBAは、.Net Framework の一部もサポートしています。 コンパイルしないと出来ない、いくつかの例としては、 On Error Goto ErrHandler '実際のコード ErrHandler: '修正コード Resume Next というものがありますが、これが、スクリプトですと出来ないのですが、それ以上に、VBEditor のオプションの[全体]に、「バックグラウンド・コンパイル」というモードがあります。それをすると、マクロは、中間言語のまま保存されます。それが、ファイルを大きくさせることがあります。私自身は、それを外しているということ、順次コンパイルモードにしています。そうすると、マクロは遅くなりますが、ファイルが膨らむようなことがなくまります。

picicate
質問者

お礼

遅くなってすいません、ありがとうございます!

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.4

http://support.microsoft.com/kb/209176/ja このサイトを見ましたがVBのことしか書かれていません。 かれの説だと VB=VBAと言うことですね。初めて知りました。 いずれも、同じソースにかけるので(VBS、WSHも)、たまに勘違いする方がいますが。

picicate
質問者

お礼

遅くなってすいません、ありがとうございます!

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

知らない人も多いようですが、VBAは、完全なインタープリタ言語ではありません。コンパイルはしていますが、ビルドがありません。VB6のサイズダウンという所だと思ってよいと思います。インタープリタ言語ではない特徴がいくつかありますが、ステップモードにするとインタープリタ言語のようになってしまいます。しかし、VBAは、インタープリタ言語のVBScript とは挙動が大きく変わる部分があります。 VBAは、コンパイル型とインタプリタ型、両方である。(機械翻訳) http://support.microsoft.com/kb/209176/ja >エクセルを開かずに…というか、所謂フリーソフトのように単体で配布できるような形状 出来ないことはないのですが、ある種の手続きが必要です。 マクロを書き始めたばかりでは、なかなかゲームを作るということは難しいとは思います。 VBAでは有名な武藤玄さんが、 「Excel VBA ゲーム作成入門」 という本を出しています。 http://home.att.ne.jp/zeta/gen/excel/ (エクセルExcel大事典 マクロVBAワークシート関数入門応用使い方講座) なお、配布するとき、一応、Visual Basic 6.0 Service Pack 6 Runtime Set などは、付けないようにしてください。VB6 Professional が必要になります。 単独で動かすなら、フリーで出ている VS2010 Express とか、Boland C++ コンパイラーをお求めください。最近、Microsoftの Small Basic がフリーで配布されています。こちらは、ゲーム中心ですが、私の環境では少し重いですね。

picicate
質問者

お礼

遅くなってすいません、ありがとうございます!

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

>今のところエクセル上で開くソフトの説明などしか見つけられていないです 当たり前です。VBAはOfiice上で動作する単なるインタープリターなので。 VBとVBAは別物です。VBAはVBに似せて作られたOffice用のスクリプト言語で、それ以上でもそれ以下でもありません。 VBはスクリプト言語ではなく、プログラム言語なので、再配布可能な実行ファイルなどを作り、自由に配布できます。本来、どちらもプログラム言語のカテゴリですが、インタープリターのように、特定のアプリ内で動作、コンパイルが必要ない言語の事を特に スクリプト言語 と言って、コンパイルする言語とは区別しています。スクリプト言語は、仮想空間を提供する実行ファイルか、インタープリターとして動作するようように、別の実行ファイルが必要です。 VBAの場合MS-Officeが、その「別の実行ファイル」です。 なお、エクセルファイルを配布しても別に問題はありません(ちゃんと条件などを記載すれば)。エクセルの実行ファイルを同胞しなければ。エンドユーザーが使用したければ、エクセルを買って設置してね。と言う立場になります。 他のスクリプト言語での単独での配布は、 VBS  があります。これはWscript.exe Cscript.exeのインタープリターとして実行できるスクリプトファイルです。ファイルの拡張子は、.vs , .wsf, .wsh, vse などです。 GUIとしてはMS-Officeや、HTA(擬似IE)などがあります。これはActiveXとして、COMに対応した、アプリをリモートから使用する事ができます。 もちろんエクセルも可能で、非表示でエクセルを起動することが可能です。 たぶん、これらの事を指しているのでしょう。 同じVBと付くのは、VBScript.NETがあります。これは.NETを使用します。VBと同じプログラム言語です。 いずれもVBに書式や、オブジェクト名、メソッド名、プロパティ名や使用できる演算子など似せていて、素人でもとっつきやすく、また、他の言語への(同じVBとつく)移植も用意にしています。 http://msdn.microsoft.com/ja-jp/library/cc392483.aspx http://technet.microsoft.com/ja-jp/scriptcenter/ff621381.aspx http://msdn.microsoft.com/ja-jp/library/cc404976(v=VS.71).aspx

picicate
質問者

お礼

遅くなってすいません、ありがとうございます!

関連するQ&A