• ベストアンサー

VBで内部処理のみ行って終了するプログラムを作るには?

VB6.0でコマンドラインからの引数をテキストファイルに出力して終了させるプログラムを作りたいのですが、フォームなど特に画面に表示することなく内部で処理をしたら勝手に終了させるにはどうしたらよいのでしょうか? 初心者の間の抜けた質問で申し訳ありませんが、どなたかアドバイスをお願いします。

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

  • ベストアンサー
  • asobe
  • ベストアンサー率76% (10/13)
回答No.1

以下の手順でどうぞ。 (1)標準モジュールを追加します。 (2)Mainという名称で、サブプロシージャを作成し、ここに一連の処理を記述。 Public Sub Main() 'コマンドラインからの引数をテキストファイルに出力して終了させる処理を記述 End Sub (3)メニューバー → プロジェクト → プロジェクトのプロパティ →  全般タブ → スタートアップの設定 → 「Sub Main」を選択 → 「OKボタン」で確定 (4)Formは使用しないと言うことなので、解放する。  (Loadしなければ良いだけなので、解放しなくても良いですが・・・) (5)Exeを作成して完成です。 ちなみに、デバッグしたい時は、先ほどのプロジェクトのプロパティダイアログから、 実行可能ファイルの作成タブ → コマンドライン引数 に値を設定すれば、VBEから実行出来ます。

guratan2005
質問者

お礼

ご回答ありがとうございました。これで問題は解決しました。ご丁寧に記載して頂き、感謝しております。

関連するQ&A

  • プログラム終了時のデータ送信処理@VB6

    プログラム終了時のデータ送信処理@VB6 複数のフォームがあり(A-Z)プログラム終了の際はどのフォームがアクティブであっても、 かならずフォームAをアンロードするようにプログラムされています。 フォームAにはWinsockコントロールが2個使われておりフォームがアンロード(UnloadまたはUnloadQuery)される際には相手先にCLOSEとDISCONNECTを送信するようにくみます。 このときに、 送信コマンドをForm_QueryUnloadイベントに組み込んだところデータが送れませんでした。 もちろんForm_Unloadでも送れませんでした。 アンロード時にデータを送信するにはどうすればよろしいでしょうか? ご助力お願いします

  • VBプログラムの終了

    VB6.0で作成した実行ファイル(exe)を終了させても タスクマネージャのプロセスに残ってしまい、 もう一度プログラムを起動することができません。 (プログラムで二重起動防止の処理をしています) このプログラムをVBのラインタイムが入っていない マシンで動かしているのですが、 やはりそれが問題なのでしょうか? それとも別に何か原因があるのでしょうか?

  • プログラム終了時に決まった処理を行なわせたい

    VB2005において、プログラム終了時(Form右上の「×」をクリックしたとき)に、 ある決まった処理をさせたいのですが、どうしたらいいのでしょうか。 具体的には画面上で編集したデータを特定のファイルに書き出す、という処理をしたいと考えています。

  • VBからExcel上の処理をするプログラムを作成しています。

    VB初心者です。 今、VBの画面からExcelを起動させて、一連の処理をした後、 またVBの画面に自動的に戻るようなプログラムを作成しようとしているのですが、 Excelのシートを削除する時に、ダイアログボックスが開いてしまい、そこで処理が止まってしまいます。 ダイアログボックスを開かないようにするとか、自動的にOKボタンを押したことにするとか、 何か方法があったら教えてください。

  • 終了してもプログラムが実行したまま(VB)

    非常に時間のかかる繰り返し処理を行なうプログラムを作りました。どのくらい、プログラムが進行しているのかわかりやすくするため、 Progress.Show でProgressという名前のフォームを表示し、そこに、プログラムが何%終わったのか表示するようにしました。 プログラムはDo Loop文が使ってあるので、何%終わったのかを表示するためにLoopした回数を取得して、それをフォームに表示することにしましたが、どこかで調べたら機械は、Do Loopのあいだはフォーム上に文字を表示するのに手が回らないからDoEventsを使ってイベントを実行させなさい、といわれました。 そこまではうまくいきました。プログラムを実行すると、プログラムが実行されて何%終わったかもちゃんと表示できるようになりました。 ところが、プログラムの実行中にフォームの右上の×ボタンを押したところ、フォームは画面から消え、プログラムが終了したように見えるのに、VB Editorでは[実行中]となっており、終わってくれません。ずっとDo Loopが実行されたままです。 Private Sub Form_Terminate() のところに Unload Progress と書いても、「Unloadメソッドは使えません」などというエラー・メッセージが出ます。(フォーム上にボタンを置き、そこをクリックするとUnloadするようにしてみましたがやはり同じことを言われました。) 原因は何でしょうか? フォームをUnloadする、ということの意味をちゃんと理解していないのでいけないのだと思うのですが、調べてもよく言っていることがわかりません。 よろしくお願いします。

  • VBプログラムを終了させないようにするには

    VB2005 WindowsXPでの開発を考えています。 メニューボックスは表示せず、終了ボタンからの終了にはパスワードの入力を求めるようにします。 しかしこれだけでは、タスクマネージャ等からの強制終了ができてしまいます。 強制終了も不可能にすることは可能でしょうか? また、できるのであればプログラム起動中は、Windowsの操作(エクスプローラやスタートメニューなど)をできないようにしたいと考えています。現状ではモーダル状態のフォームを最大化して表示させようと思っていますが、他に良い方法を御存知でしたらお願い致します。

  • プログラム終了方法

    こんにちは。プログラム終了方法についてお教え下さい。 下記のような処理を書いています。 if(A!=B)の場合、処理を抜けてプログラムを終了させたいと思っています。 下記のコードだとテキストボックスにエラー表示をさせた後に、プログラムを終了させたいです。 ただ、現状だと~~~処理3、処理4が実行されてしまいます。 どのようにすれば、if(A!=B)でテキストボックスにエラーを出力した後にプログラムを終了できるでしょうか? gotoを使用し、真ん中の処理を飛ばす方法しか有りませんでしょうか? よろしくお願いします。 try{ ~~~処理1 ~~~処理2 if(A!=B) { textbox.text = "エラー"; //goto endfinish; } ~~~処理3 ~~~処理4 } catch { textbox.text = "エラー"; } //endfinish:;

  • コマンドライン引数の例外処理について

    整数a、bをコマンドライン引数として受け取るプログラムを作成するとします。この時、入力するコマンドライン引数を整数であるa、b2つのみとします。 次の事柄について教えて下さい。 (1)コマンドライン引数を2個入力しなかった時の例外処理の仕方 (例えば、コマンドライン引数を入力しなかったり3個入力した時) (2)整数のコマンドライン引数を入力しなかった時の例外処理の仕方 (例えば、「abc」などと入力した場合) (3)コマンドライン引数を数の小さいものから入力しなかった時の処理の仕方 (例えば、「3 5」ではなく「5 3」と入力した場合) 初心者なもので…。どなたかお教え下さい。宜しくお願いします。

    • ベストアンサー
    • Java
  • C#で書かれたプログラムをバッチ処理

    C#で書かれたプログラムをバッチ処理を行いたいのですが,方法があまり良く分かりません. まずC#で書かれたプログラムを起動すると, 処理したいファイル名を入力するテキストボックススと, パラメータを入力するテキストボックスが表示されて, ボタンを押すと処理が始まります. 処理したいファイルが数百あるので,バッチ処理でできないものかと考えているのですが, どのようにC#のプログラムに引数を渡して処理させればいいのか分かりません. 理想としては,コマンドプロンプトから,各種値が入ったテキストファイルなんかを読み込ませて処理できればよいのですが... 十分伝えきれているのか不安ですが,宜しくお願い致します.

  • VB 処理中にプログレス数を表示するには?

    VBでの処理数が多く、また時間もかかる事からプログレスバーを用いて処理を見ているのですが、プログレスバー以外にプログレス数を見たいと思っています。 どのようにすれば実現できるか教えてください。 詳細は省きますが、現在はこんなコマンドで、処理中に処理総数と処理経過数を出力しようとしていますが、全処理が終了した時点ででしか出力されません。 Private Sub Button1_Click ~ ’スタートボタンを押下 TotalProcess = 1000000 '例えば100万件の処理総数があったとして TextBox1.Text = TotalProcess Do Until ~    ~    Processing = Processing + 1    TextBox2.Text = Processing Loop テキストボックスのプロパティーをいじれば、出来るのかな?など考えておりますが、わかりませんので、ご存知の方教えてください。