• ベストアンサー

VBA6.0作成のソースを修正したい。

VB初心者です。 VBA6.0で作成されているソースがあるのでオブジェクトの修正したいのですが、VBA6.0がありません。 NETで調べるとVBA6.0は販売されておらず、またVBA.NETは難しいとありました。過去のソースにわずかな修正をしたいだけなのですが、こういう場合、VBの何を購入すればいいのでしょうか。また、現在VBを始めようと思う場合、何を購入しているのでしょうか。 宜しくお願いします。

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

  • ベストアンサー
  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.2

VB 6.0 ← Visual Basic 6.0の単体品またはVisual Studio 6.0に含まれるVisual Basic 6.0のこと。 VBA ← Visual Basic for Applicationの略で、Mcrosot OfficeのExcel、Word、PowerPoint、Accessなどのマクロ機能のVisual Basic Editorのこと。 VB 6.0で作成されたソースコードを変更するのは、コントロールの追加などが伴わなければ、極端なことを言えばテキストエディターやメモ帳等で開くこともできます。 frmモジュールの場合は、先頭に各種のコントロールオブジェクトの情報が記述されて、その後ろに処理の記述が存在します。 とはいえ、使うためには再コンパイルしてEXEを作成する必要があるため、やはりVB6上で変更~実行ファイル作成までを行うのが妥当です。 どうしても必要な場合は、 ・環境のある所へ依頼する。 ・何とかVB6を入手して、自前で修正を行う。 ・別言語に移行する。(VBA、VB.NET、その他) の選択肢しか無いと思います。 VB6の入手方法 ・VB6の販売(個人からの出展によるもので結構高値です) http://www.amazon.co.jp/gp/offer-listing/B00005OI19/ref=dp_olp_2?ie=UTF8&qid=1232781592&sr=1-5 ・別言語の一つとして、Microsoft .NET開発用アプリケーションを購入、またはMSDNサブスクリプションの購入で、MSDNライブラリから Visual Studio Enterpise Edition 6.0をダウンロードで入手することができます。 ただし、これも相応の購入費用が発生ります。 http://msdn.microsoft.com/ja-jp/subscriptions/dd179313.aspx 確かにVB6とVBはNETは、別物と考えたほうが良いと云われるように変化しています。 また、今後のOSの変化(Windows Vista→Windows 7)を考えると、VB.NETへの移行を検討しておいても良いのではないのでしょうか。 VistaではVB 6.0は動作しますが、Windows 7ではどうなるか未定です。 なお、VB6の経験者はVB.NETへの移行が圧倒的多数だと思います。 現在、ユーザー登録のみで無償で使用できる、最新の Visual Studio 2008 Express Editionが提供されています。 Professionalエディションなどと比べると一部機能の制限はありますが、こういったものを利用されるのも一方法かと思いますが、いかがでしょうか。 ・Visual Studio 2008 Express Edition http://www.microsoft.com/japan/msdn/vstudio/express/ ・学習に関する情報 http://www.microsoft.com/japan/msdn/vstudio/express/learn/default.aspx  

その他の回答 (4)

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.5

#3です。 #4様の指摘のとおりです、VB6のExeがなければコンパイルはできません。 失礼いたしました。

  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.4

No.3のソフトがなくても改造が可能ですよ。は大いに疑問です。 コマンドラインでVB6.exeを呼び出してコンパイルしているだけと思いますが、ソフト=VB6.exeが不要でコンパイルできる方法なのでしょうか???  

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

ソフトがなくても改造が可能ですよ。 一般的なテキストエディターでコードを修正して、参考URLの方法でコンパイルすればよいと思います。

参考URL:
http://homepage1.nifty.com/rucio/main/Samples/Sample059BatCompile.htm
  • ainax
  • ベストアンサー率45% (5/11)
回答No.1

VBA6.0とありますけど、「VB6」の間違いですよね? VBAならば、Excelの場合2000~2007まで共通らしいですし、VBA.Netという間違っている記述もあるのでVB6の方だと思って書き込みます。 (VBA = Visual Basic for Applicationの略です。ただのVisual Basicとは構文こそ似ていますが出来ることは雲泥の差があります。) まず、そのVB6のコードですけど、オークションや中古販売等で手に入れない限り、そのままではコンパイルできません。で、VB6の入手が困難ならば、一番簡単なのはVB.NETに読み込ませてやることです。 一応VB.NETの方で簡単なコード変換(VB6.0→VB.NET)をしてくれるので、読み込ませることは可能です。 ただし、そのままで動く可能性は余りないので手直しが必要になると思います。 もう一つの方法がありますけど、VB6.0を持っている人に頼んでこれを修正した上でコンパイルしてもらうということです。 Visual Basicのことを扱っているある程度大きなサイトの掲示板には常連さんが居ると思いますので、その人たちならば確実にVisual Basic6.0くらい持っているはずです。 ただし、注意点としてはそのコンパイルしてもらうソースコードが著作権や注意書き等に第三者に渡してもいいものかどうか?を調べないとだめですね。

関連するQ&A

  • wordで作成したソースを修正するには・?

    現在会社でHPの更新を担当しているのですが、 他のスタッフにいただくhtmlがwordで作られているものが多く 修正に悩んでいます。 会社のHP作成ソフトはフロントページですが バージョンがかなり古く(93年?) 自動での修正機能が見当たりません。 タグを直接修正しようと苦心していますが あまりにソースがごちゃごちゃしていて 逆に崩れてしまいます・・・ 何かいい方法はないでしょうか・・・? (ちなみにフリーでも他のソフトを使うのは不可能な環境です) やはり、直接ソースを1つずついじるしかないのでしょうか・・?

  • Excel95のVBAのソースを開きたい

    Excel95のVBAで作成されたファイルがあります。ファイルを開くとVBAが実行されるのですが、これを実行せずにVBAのソースを開きたいのですが、どうすればよいのかわかりません。 記憶違いかもしれませんが、たとえばAccessの場合、実行形式で配布されたファイルであっても、たしかShift+EnterにてVBAを起動せずにAccessを開けたような気がしているのですが・・・ 古いバージョンの話で恐縮ですが、ご存知のかたがいらっしゃいましたらお教え願います。

  • VBAで#Regionに変わるものは無いのでしょうか?

    こんにちわ。 最近、ExcelのVBAを使いちょこちょこ自分用の売上管理アプリケーションを作っているのですが、プログラミングの知識が無く、VBAを使うのが初めてなのでわからないことだらけで困っています。 本題の質問なのですが、ソースがとても長くなってしまっていて、とても見にくくどうにかならないものかと調べたら、VB.NETには#Regionでソースまとめ、見やすくできるようでした。 そこでVBAでも#Regionに変わるものが無いかと調べたのですがなかなか見つかりません。 やはり無いのでしょうか? なにかあるのであればぜひ教えていただきたいです。 よろしくお願いします。

  • 「Access VBA」や「Excel VBA」 でインストーラーを作成したい!!

    VBで作成したアプリケーションにおいては、インストーラーを 作成できるのですが、「Access VBA」や「Excel VBA」で作成した アプリケーションのインストーラーの作成方法が分からず困っております。 どのようなメディア等を用意すればよいか教えてください。 よろしくお願いします。

  • オブジェクト指向の勉強にちょうど良いソースコードはありませんか?

    オブジェクト指向の勉強にちょうど良いソースコードはありませんか? VB6からVB.NETへの移行中ですが、VB.NETは本格的にオブジェクト指向言語となったそうで、オブジェクト指向といえばデザインパターンらしいので勉強をしつつリファクタリングを行っています。 デザインパターンのサンプルコードはwebで散見されますが、どれも説明に必要な最小限のコードなので実際の開発にどのように適用したらよいかいまいちイメージできない部分があります。 また、具体的なところだと、オブジェクト指向ではオブジェクト間の結合度を弱くしてグローバル変数を極力使用しないとありますが、設定値を管理するオブジェクトのようにあちこちから参照されるものはやはりグローバルにするのが一般的なのでしょうか。 設計の参考になるソースコードとかサイトとか教えてください。 ちなみに、今作成しているのは測定器や電源装置などを制御してデータ収集したりする制御系のソフトです。

  • VBAなどを使って、Word文書の作成は可能でしょうか?

    VBAなどを使って、Word文書の作成は可能でしょうか? 現在、見積書等などの文書を作成する場合、それぞれ雛形があり、そこに顧客名や住所、件名等を直接書き込んでいます。毎回、それら文書を作成するのに時間がかかってしまうので、何か良い案があればと思い質問させていただいています。VBAなどを利用して、これらの手間を解消することはできますでしょうか?ちなみに私自身は、VBAは初心者です。よろしくお願いいたします。

  • VBA シート毎にユーザーフォームを作成する方法

    VBAの初心者です。記載内容に不備があるかもしれませんが、ご了承下さいませ。 エクセルのシート毎に異なったデータを簡単に入力したいと思っています。それをVBAを使って作成したいのですが、シート毎のユーザーフォーム作成方法(オブジェクトのWorksheetやモジュールの記載内容など)がわかりません。一つのシートに対しては、なんとかユーザーフォームを作成でき、データ集計できています。 ネットで検索しても、思い通りのサイトが見つかりませんでしたので、質問させていただきます。 教えて下さい。宜しく御願い致します。

  • エクセル VBAの修正箇所について

    エクセル VBAの修正箇所について 物品配送関係の管理表を作成中ですが、一部VBAの動作を下記のように修正するにはどこを修正したらよろしいでしょうか? サンプルファイル(エクセル2003で作成)をアップロードしましたので、宜しくお願い致します。 http://www.filebank.co.jp/filelink/9315d83f25575cce44fad4fea1d0cf38 VBAの動作を簡潔にご説明しますと、 各営業所毎に、決められた個数の物を箱詰めして送付しています。 例えば、1営業所への送付個数120個、ダンボール1箱の入り数50個だった場合、 20個、50個、50個の合計3箱のダンボールを送付するということになります。 それをVBAにて処理できるように作成中です。 加工前シートの実行ボタンをクリックすると、加工後シートに反映されるようにしています。 ■修正箇所1 「箱内数量」の計算がうまくいきません。 例えば、送付個数150個、ダンボール1箱の入り数50個だった場合、 本来なら、50個、50個、50個の合計3箱になってほしいのですが、 どういうわけか、0個、50個、50個になってしまいます。 ただし、送付個数120個、ダンボール1箱の入り数50個のように端数が出る場合は、 20個、50個、50個と正常に計算されます。 ■修正箇所2 「箱連番(営業所毎)」の列は、その名の通り営業所毎に送付する箱に連番を振ってるのですが、数字が降順ではなく昇順になるようにしたいです。 以上、2箇所の修正点ご教示いただきたく思います。 どうか宜しくお願い致します。

  • VBをVBAに ソースコードあり

    二度ほど こちらを利用させていただき、一歩ずつ理解してきているのですが、回りにVB、VBAを使っている方がいなく、相談出来る所がここしかなく また投稿させて頂きました 今回 迷っている事は VBのソースコードがあり それをVBAで実行する場合、どこで宣言すればいいのか という事です VBの~ソースコード~ メインふぉーむ データ受信関数 Private Sub RF720CLib_RFIDMessage(ByVal Message As String, ByVal MessageSize As Long) Dim code As String Dim cmd As String Dim body As String code = RF720CLib.GetResponseCode(Message, MessageSize) cmd = RF720CLib.GetCmdCode(Message, MessageSize) body = RF720CLib.GetResponseBody(Message, MessageSize) If code = "00" Then If cmd = "RD" Then For cnt = 0 To csvline - 1 If Vegetable(cnt).m_ID = body Then End If Next End If If cmd = "IS" Then ReadStep = ReadStep + 1 End If End If End Sub ↑ こちらで RF720CLib ライブラリーを使い  RD リードなどを行ってるとは思うのですが VBAの場合 フォームをロード時に イベントとして宣言すればいいのでしょうか? それとも 上記のはVBですので VBAで使う場合 また新しく作り変えなければいけないのでしょうか? VBとVBAは全く違うもの として考えた方がいいのでしょうか RF720CLibは アクティブXコントロールでVBAでも使えました とても 困っております 宜しくお願いします

  • ACCESS VBAってどのくらいで習得できますか

    4年くらい前にVB6でアプリを作っていました。といってもバリバリのプログラマーだったわけじゃないので、仕様書を元に書いていたくらいです。VB歴は2年くらいです。最近ACCESS VBAをやる仕事ができたので久しぶりにソースを見たら見事完全に忘れていました(VBを)。なので多少の文法は読めるにしても何が書いてあるかわかりません。VBAを習得するのにどのくらいの時間がかかるでしょうか?レベルとしては初心者を想定してください。

専門家に質問してみよう