1 名前:d mailto:age [2008/03/30(日) 09:01:59 ] このスレッドはVBについて、 他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 VB使いが優しくコメントを返しますが、 お礼はVBの布教はしなくてよいので、初心者の救済をお願いします 前スレ くだすれVB6.0以前(超初心者向け) pc11.2ch.net/test/read.cgi/tech/1165574205/
604 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:47:10 ] >>603 トンクスです
605 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:08:18 ] >>603 うおースクロール出来るー、嬉しい ^^ ありがとさんです
606 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:48:14 ] >>585 ON...GOSUBは6.0まで残されてたね。あくまでレガシー活用目的で、 Select Case に書き換えろ、ってQuickBASICの頃から言われてます。 N(N88)-BASICの頃はON ERROR GOTO のほかにもON KEY(n) GOSUB やON STOP GOSUB やらがあって、それぞれ3単語で1ステートメント扱いでリファレンスにも載ってた。 QBで数が増えすぎてON EVENT GOSUBと一緒くたに説明されるようになった。 どうしてON ERROR GOSUBにしなかったかというと、GOSUBはRETURNでもどるが ご存じの通りエラーの時はRESUMEで戻るから「GOSUB」を使いたくなかった。 On Error Resume NextができたのはVBから。以前は10 ON ERROR GOTO 60000 60000 RESUME NEXTと書くしかなかった。 考えたら、あの当時にはエラー処理用ステートメントが用意されていたのは 進んでいたのかもしれない。
607 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:55:14 ] ちなみに蛇足しておくと ON KEY(n) GOSUB はファンクションキーn番が押されたらGOSUB ON STOP GOSUB はPC-9800等過去のPCに付いていたSTOPキーが押されたらGOSUB Stopステートメントとは無関係ですよ。今ならDoEvents+KeyDownイベントに近いのかなあ。 ほかにも音楽演奏バッファが空いてきたらGOSUBする ON PLAY GOSUBとか いろいろあった。
608 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:58:43 ] >>591 大型のハンマーで頭を後ろから思いっきりたたく。 目から壁にソースコードが映写されますよ。
609 名前:デフォルトの名無しさん [2009/02/06(金) 01:38:31 ] 自然科学系の出版社勤務ですが、次のアマゾンのレヴューがさっぱり解読できません。 どなたか教えてください。 www.amazon.co.jp/%E8%8B%B1%E6%96%87%E9%80%9F%E8%AA%ADTRY-AGAIN-%E6%9C%AC-%E6%AD%A3%E5%BC%98/dp/4875685920/ref=sr_1_1?ie=UTF8&s=books&qid=1233763565&sr=8-1
610 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:04:22 ] www.amazon.co.jp/dp/4875685920/ 宣伝乙。と思ったら、なんかおもしろそうな文字化けしてるなw でも、VB6はたぶん関係ナカッタ
611 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:15:27 ] >>601 ナイス回答がある保証はないが、本気なら、うpすればいいw
612 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:47:21 ] >>601 とりあえずファンクション単位でもいいから 貼れや
613 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:01:22 ] そこらじゅうにDebug.Print入れて変数の値を調べろ
614 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:26:04 ] >>597 これ? www-01.ibm.com/support/docview.wss?uid=swg21343350
615 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:22:44 ] >>587-590 たとえばCならprintf、C#ならConsole.WriteLineやDebug.WriteLineで コンソールやデバッグに出力するところから基礎を始めることがあるけど、 VBではテキストボックスに出すようなのが多い。それだとコントロール周りの 余計な(そのときの本題と関係ない)知識が必要だし、実業務でも デバッグをMsgBoxでやっちゃってフォーカスがらみのコード追跡ができないと 嘆くような駄目プログラマが育ってしまう。Debug.PrintやPrint#を使う 習慣を身につけさせるべきだ。 と言いたいんじゃないかと思う。
616 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:17:15 ] そもそもVB6じゃ標準出力に何か出力できたっけ?
617 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:04:09 ] デバッグモードで起動すればコンソールに出せるだろ・・・
618 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:44:41 ] FSOのGetStandardStream使ってもできるし、ほかにも
619 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:05:59 ] 初出の、教えるという観点なら、WScriptオブジェクトとかもいいかもしれん つかできるかな、できるはずだけど あとでやってみよ
620 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:47:17 ] editbin /subsystem:console hoge.exe とりあえず野望への一歩。
621 名前:デフォルトの名無しさん [2009/02/09(月) 17:54:24 ] 質問です。 ADOとMs標準のDataGridで一覧表を作ってるんですが、 どうしても分割ペイン追加出来ないように出来ないんです。 MSDNには.SplitsのAllowReSizeにfalseセットすれば追加出来なくなる みたいに書いてあるんですが、サイズ調整が出来ないだけで、 追加されてしまいます。 何か良い方法をご存じの方いらっしゃいませんか?
622 名前:621 mailto:sage [2009/02/09(月) 18:22:41 ] 自己解決しました・・・ AllowSizingだけじゃなく、SizeModeの設定も必要なんですね・・・
623 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:55:39 ] 乙
624 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:16:22 ] >>617 具体的な方法を教えてください。
625 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 02:46:33 ] 参照設定 Windows Script Host Object Model (wshom.ocx) Dim fso As New FileSystemObject Dim txtstm As TextStream Set txtstm = fso.GetStandardStream(StdOut) txtstm.WriteLine "helloあいうえお" txtstm.Close editbin /subsystem:console vbxxx.exe
626 名前:624 mailto:sage [2009/02/10(火) 10:06:24 ] >>625 すみません、その方法ではなく>>617 の方法が知りたいのです。
627 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:14:19 ] Debug.PrintはOutputDebugStringとは異なる仕掛けなのでデバッガには出ない。 さらにEXEにする段階でDebug.PrintとDebug.Assertは取り除かれる。 知ったかもあれだが粘着もそれだ、 >>617 は単純にVB6のIDEで動かせばいいといってるだけかもしれんよ。
628 名前:624 mailto:sage [2009/02/10(火) 12:51:10 ] つまり、デバッグモードではコンソールに出力できないということでしょうか。
629 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 13:03:18 ] VB6のアプリやIDEはコンソールを持ってないから普通は出来ない。 普通じゃなければAPIつかって、AllocConsole/GetStdHandle/WriteConsoleの 流れでできるっちゃできる。
630 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:31:04 ] VBではやったことないが、AllocConsole,GetStdHandle(API)すごい便利だよ 思ったより簡潔に書ける いっぺんつかってみるべき
631 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:35:23 ] いい加減、うぜーぞ
632 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:34:43 ] >>631 >>617 さん、ごきげんよう
633 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:45:34 ] コンソールが何かわかってなかった馬鹿
634 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:49:57 ] 617涙目
635 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:23:54 ] コンソールに出すくらいなら、ファイルに落とすわ
636 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:26:08 ] 今更になって「printfデバッグってすげーな」と声高に主張しているようで恥ずかしい。
637 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:29:40 ] 実際に適してるかどうかってのは今回あまり関係ない 技術的に可能かどうかって話だから
638 名前:615 mailto:sage [2009/02/12(木) 00:25:11 ] すまん、俺がエスパーだったばかりに・・・
639 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:54:34 ] は?お前のレスなど糞の役にも立ってないわ
640 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:37:44 ] TextWidthを使ってぴったりに文字幅設定するのって難しいんですかね? どうしても表示幅が狭くなってしまいます (とりあえずダミーの空白とか入れてごまかしてはいますが…)
641 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:06:45 ] >>638 後半は認める
642 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:15:13 ] 質問です 複数のテキストボックスに入力した内容を ひとつのファイルに入出力させようと思っているのですが どのような方法でやればいいのか見当付きません ご教授願います
643 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:33:37 ] 入力と出力を決めないとこっちも困る
644 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:45:39 ] >>643 すみません… ええと複数のテキストボックスに入力した内容をひとつのファイルに出力させて その後そのファイルを読み込んだら複数のテキストボックスが出力した前と同じ内容になるプログラムでした
645 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:53:13 ] そんなことはわかってる もう面倒だからXMLにしちゃえよ
646 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:00:50 ] テキストボックスの内容を後で識別できるように区切り記号(例えばTabとかCrLfとか)を付けて一つの変数にぶち込む その変数をファイルに書き込む ファイルを開いて全て一つの変数にぶち込む 変数の最初から区切り記号の一つ前までをテキストボックスにぶち込む 変数の内容を最初の区切り記号+1にして変数が空っぽになるまでループ ちゃんとやらないと無限ループするから他の方法の方がいいかもしれないが目的は達するからこれでいいんじゃね? もしかしてコードがほしかった?
647 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:03:53 ] >>645 >>646 参考になりました。ありがとうございます
648 名前:デフォルトの名無しさん [2009/02/13(金) 14:57:17 ] >>642 複数のテキストボックスへ入力された内容を、 String型変数に入れて文字列編集すればいいと思う。 例えば、 dim strA as string strA = myform.textbox1.text & vbcrlf & myform.textbox2.text とか。んで strA の内容をファイル化すればいい。
649 名前:デフォルトの名無しさん [2009/02/13(金) 14:58:17 ] 644みなかった。スマンw 俺はそういうときは、tab 区切りにしてる
650 名前:test [2009/02/13(金) 16:45:13 ] 暗号化プログラム作ったんですが unicodeで貼り付けると 。」〄「〖 こんな感じでうまく貼り付けることができません これをansiに変換しても 䊁皁脿㽵 となりうまく貼り付けられません 良い方法あったら教えてくださいm(__)m
651 名前:test [2009/02/13(金) 16:46:55 ] あれここだとうまく貼り付けられてる 他のスレでうまくいかなかったんだけどなぜ?
652 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:55:38 ] 板の設定次第 ttp://pc11.2ch.net/tech/SETTING.TXT
653 名前:651 mailto:sage [2009/02/13(金) 20:10:28 ] なるほどこの部分ですね BBS_UNICODE=pass ありがとうございます
654 名前:デフォルトの名無しさん [2009/02/15(日) 21:29:07 BE:1043968493-2BP(0)] >>2 のVB5をダウンロードしたけどシステムの設定が 不正なため、vbを起動できないって出てきたけど どうすればいいかおしえて
655 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:53:12 ] OSのインストールからやりなおすのが言語を入れる鉄則
656 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:04:21 ] Windowsの互換モード設定は試した?
657 名前:デフォルトの名無しさん [2009/02/16(月) 19:18:02 BE:695979263-2BP(0)] >>656 互換モード設定してもできない
658 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:31:02 ] 環境は何だよ?VirtualPCで開発環境作ったほうがよくないか。
659 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:35:25 ] vmware serverがいいお
660 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 08:29:05 ] VB5.0でとあるexeを起動して終了を待機しているのですが そのexeの戻り値を取得する必要が出てきました。 exeの戻り値はどのようにして取得したらよいでしょうか? 下記が現在のコードです。 Dim IDProcess As Long Dim hProcess As Long Dim ret As Long IDProcess = Shell(strCommandLine, vbMinimizedNoFocus) hProcess = OpenProcess(SYNCHRONIZE, 1, IDProcess) ret = WaitForSingleObject(hProcess, INFINITE) ret = CloseHandle(hProcess)
661 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 09:02:10 ] exeは関数じゃないので戻り値なんて無いよ もしかして終了コードのことを言ってるのか? それともActiveX.exeなのか? ActiveX.exeならexe自体ではなくexeが持つ関数に戻り値があるけど
662 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 09:16:40 ] >>661 すみません。戻り値じゃなくて終了コードですね。 失礼いたしました。 ぐぐりながらやってみているのですが なぜかhProcessが0です。 なぜいままで動いていたのだろうorz Dim IDProcess As Long Dim hProcess As Long Dim ret As Long Dim lExitCode As Long IDProcess = Shell(strCommandLine, vbMinimizedNoFocus) hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, True, IDProcess) If hProcess <> 0 Then MsgBox hProcess ret = WaitForSingleObject(hProcess, INFINITE) ret = GetExitCodeProcess(hProcess, lExitCode) ret = CloseHandle(hProcess) End If
663 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 09:25:19 ] うぅ。 すみません。 CreateProcessを使ったら終了コードが取得できました。 お騒がせしました。
664 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:52:53 ] ところでみなさん WshShell.Run や Exec を活用してますか?
665 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:09:32 ] あまり活用してない というかその二つに限れば、VBで使えば活用(活かした利用)にはならない もっといいものがいっぱいあるから
666 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:36:42 ] なるほど ありがとうございました
667 名前:デフォルトの名無しさん [2009/02/21(土) 20:32:43 BE:2165268487-2BP(0)] >>658 使い方がわからん
668 名前:デフォルトの名無しさん [2009/02/21(土) 20:35:59 ] VB6.0ってまだ需要ありますか? ラーニングエディション持ってるんで、 ちょっと勉強してみようか・・・と思ってるんですが。
669 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 20:39:25 ] こういう取り残された人たちには需要があります。 >422 名前: デフォルトの名無しさん 投稿日: 2009/02/11(水) 17:01:01 >そもそも、.NETはお金を頂くソフトウェア作るには不向き >・遅い >・ソース丸見え >・フレームワークインストール必須 >・FAでは絶対に無理 > >枚挙に暇がない
670 名前:デフォルトの名無しさん [2009/02/21(土) 20:41:47 ] >>669 どうもです。サンクス。
671 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:37:44 ] >>667 簡単だからネットで使い方調べれ。動作確認にはおすすめ。
672 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 16:09:59 ] なるほど ありがとうございました
673 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:05:00 ] >>669 俺おもいっきり取り残されてるな…。 …だからこのスレにいるのかwww
674 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:08:24 ] なるほど
675 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:02:25 ] Javaでのstatic変数はVBではどんな宣言になるんですか? やりたいこと 1.インスタンスを生成せずにその変数にアクセスしたい 2.異なるクラス間で同じ値を共有したい 3.javaのように簡単に実現したい の三本です
676 名前:デフォルトの名無しさん [2009/02/26(木) 02:15:51 ] すいません。訂正です。 >2.異なるクラス間で同じ値を共有したい → 2.異なるクラス間で同じ変数を共有したい
677 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:23:15 ] >>675 Shared
678 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:29:33 ] お、すまんVB6だったか。共通モジュールに宣言しかないかな。 Static Property とかいった手もあった記憶があるがめんどくさいはず。
679 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 03:33:15 ] つーかさ、ある言語の仕様が 他の言語でも、そのまま簡単に実現できると思ってるのってどうよ?
680 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:02:13 ] 変数共有ならモジュールでグローバル変数の宣言だけで良いんじゃね? VB6だとそれで十分だと思うが
681 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:29:12 ] >>675 VBのクラスはクラスメンバを持てない。 VBにはクラスのほかに標準モジュールというのがあるけど、 こっちはC#でいうstaticクラスに似ていて、インスタンスメンバを持てない。 (インスタンス化できない) まあ、javaよりずっと前からある言語だから多少かかなりかウンコ仕様なのは仕方がないねw
682 名前:デフォルトの名無しさん [2009/02/27(金) 00:49:52 ] >>681 ハァ? クラスメンバ変数は Public で作れる
683 名前:デフォルトの名無しさん [2009/02/27(金) 00:57:34 ] VBのクラスもメンバ持てるぞ。 だが、>>675 を実現するにはちょっと細工が必要。 ActiveX DLL に1つクラスを設けて、そいつの Instancing を GlobaMultiUse に すればいい。 そいつに Public 変数を置けば、いわゆるグローバル変数扱いになる。もちろんクラス。 ただ、利用側で Option Explicit とした場合、アーリーバインディングでないと エラーになった気がする。 それと常識だと思うが、プロセスが異なれば参照先も異なる。 クラスである必要があるならこうするしかないが、 どう考えても標準モジュールで十分な希ガス。
684 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:07:49 ] イベント処理での質問です。 vb2008 webページの作成をしています。 コンボボックスから、氏名を選択したら、別のテキストにIDを表示するのですが。 コンボボックスから選択しただけじゃイベント処理は発生しませんか? SelectedIndexChangedとかTextChangedとか試してるのですが上手くいきません。
685 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:30:06 ] >>684 スレ違いです。
686 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 19:47:20 ] >>682 持てません。 クラスメンバの意味わかって言ってる?w
687 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:53:22 ] vbのwinsockコントロールで、メッセージを送ってきた相手のIPアドレスって取得できますか? 最低でもLANかWANかだけでもわからないでしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:57:30 ] もうすこし詳しく書かないと、やりたい事が伝わってこないぞ
689 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:02:48 ] 詳しく書くと、たとえば TCPでlistenしてるところにconnectしてきた相手のIPアドレスを取得したいんです。 IPアドレスがわからなくても、最低限、そのconnectメッセージがLAN経由かWAN経由かの接続だけでも取得したいのです。
690 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:10:47 ] ぜんぜん詳しくなってないが、相手のIPはわかるから一度プログラム作ってみなよ
691 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:32:21 ] >>690 見直してみたら、てっきりRemoteHostしかないと思ったらRemoteHostIPの存在に気づきました。 すいません、お手数をおかけしました。
692 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:41:06 ] 質問ですが、標準のデータグリッドでマウスホイール回転時にスクロールさせる方法って 何が考えられますか?
693 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:20:11 ] ホイールスクロールを受け取って自力で動かす
694 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:26:17 ] support.microsoft.com/kb/179398/ja こんな感じで
695 名前:デフォルトの名無しさん [2009/03/05(木) 01:50:23 ] アクセス操作について教えてください。 エクセルのCellsみたいに列、行指定はできませんか?
696 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:09:37 ] もしかして: VBA?
697 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:20:33 ] つーか、DBってものを解ってないな 利口ならDBについて3日勉強して出直せ 馬鹿ならDBについて3年勉強して出直せ
698 名前:692 mailto:sage [2009/03/05(木) 11:31:12 ] ありがとうございます。 ホイールイベント時の処理でスクロールさせるしかないということですね。 イベントの受け取り方などもう少し調べてみようと思います。
699 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:57:12 ] >695 ADOならRecordsetオブジェクトとか調べて見るといいかも
700 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 17:35:54 ] VB5.0で作成されたアプリってVistaでも動く?
701 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 18:03:33 ] 答えになってないが VB6は何とか動いたけどODBC関連がだめだめだったね 使い物にならないぐらい遅い Win7では動かなくなるソフト続出だとおもう
702 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 18:04:59 ] VB5 アプリはものによっては動く
703 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:06:49 ] リストボックスをマウスホイールでスクロールさせた時に リアルタイムでリストボックスのTopIndexを取得したいのですが リストボックスのScrollイベントが動かないので私のスキルでは 八方塞がりです。方法をご教授頂けないでしょうか?
704 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:10:51 ] >>703 サブクラス化 ググればいくらでもサンプルは出てくる それでも解らなかったら諦めるよろし