1 名前:デフォルトの名無しさん [2009/07/13(月) 21:12:36 ] ここは Visual Basic 〜6.0 の質問スレです。 質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。 ○ 質問者の心得 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。 二.VBScript、インストーラーなどはこのスレでOK。 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。 四.荒らしは相手しない。 ○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。無理するな。 二.代用法を強制しない。 三.回答する上で必須ではない情報をむやみに聞き返さない。 四.荒らしは相手しない。 五.VB情報募集中。 六.回答は質問者が理解できるよう具体的に。 MSDN Online Japan ホーム www.microsoft.com/japan/msdn/default.asp Visual Studio 6.0 Service Pack 6 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx Google www.google.co.jp/ ※「まず自分で調べる」クセを身につけよう。
610 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:30:40 ] そういやオブジェクトブラウザ上のLineメソッドって Sub Line(Flags As Integer, X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long) ってなってるけど何でだろう?
611 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 16:03:09 ] APIのCreateThreadってVB6で扱える?
612 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 16:21:28 ] 確か扱えたと思うけど、一時中断とかすると即死したような気がする。
613 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:09:40 ] IDEとの相性は最悪だったきがするな 以前、それも考慮に入れてつくればいいとかしつこく言ってた奴がいたが
614 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:11:30 ] ActiveXexeにしてマルチプロセスにしたほうがいいね
615 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:30:06 ] やはり無理か・・・マルチプロセスなら簡単そうだな。それにする
616 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 02:51:36 ] >>582-585 VBじゃないけど、 DonutとかいうTrident使ってるブラウザで ページごとに個別に設定できるから VBでも可能だと思うよ DonutはうちのWin95のIE5.5で確認したから MSHTML.dllはIE5.5以上なら出来るはず
617 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 02:52:37 ] Donutじゃなくて派生ソフトのDonutLってソフトだった。 先日VectorからWin95パソにDLったのよ
618 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 03:06:58 ] >>616-617 実現するためには引き渡すオブジェクトの定義が必要で、 大元の問題は、そのクラス定義がVB6だけでは書けないって事だったと思う。(もううろ覚え) IE操作する機能のために、定義を他の方法で書いて用意しなきゃいけないくらいなら、 いっそ最初から外部DLLとして作って渡したほうが良いんじゃないかって感じで形骸化してる。
619 名前:616 mailto:sage [2010/04/15(木) 04:34:08 ] 俺、素人なのに生意気に意見してゴメンお
620 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 15:10:23 ] VBで関数ポインタを呼び出す ttp://nienie.com/~masapico/doc_FuncPtr.html これってどうなの?
621 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 15:35:01 ] >>620 DEPで落ちるんじゃないか
622 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 16:22:46 ] >>610 Line等は古代のBASICとの互換性のため特殊な文法になっている COMオブジェクトレベルではそのパラメータに変換して呼び出されている 従ってCallByNameでLineメソッドを呼ぶ場合はFlagsが不詳だがこんな感じ CallByName Me, "Line", VbMethod, CInt(32+8+2), CSng(15), CSng(30), CSng(40), CSng(40), CLng(vbRed)
623 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 16:46:40 ] なるほど
624 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:38:36 ] 超初心者ですが、VB6で質問があります。 画面の無いモジュールのソースを見る必要があるのですが、標準モジュールとクラスモジュールがたくさんあり、実際にそのモジュールを使用する際にどのモジュールから処理が開始されるのかわかりません。 また、一つのモジュールの処理完了後に、どのモジュールに行くかもよくわかりません。 ご教授、もしくは参考サイトなど、お願い出来ますでしょうか?
625 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:47:39 ] sub main()からだよ
626 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:49:28 ] >>624 関数とかクラスというものは知っていますか?
627 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:18:07 ] >>626 関数はわかります。 SUBやFUNCTIONの後に定義し、引数が必要であれば与えてやり、FUNCTIONであれば帰り値があるんですよね。 クラスは今いちわかりません。イメージ的には変数やプロシージャをまとめた物で、他のモジュールで上手く流用してやるというイメージです。
628 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:21:24 ] 初心者ならすぐにC#かJavaか最低でもVB.NETに乗り換えるんだ 会社でVB6を覚えなければならないなら、ご愁傷様だが
629 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:23:21 ] >>625 sub main()でプロジェクト内を検索してみれば良いのですね。ありがとうございます! そこからそのモジュールを上から下に実行していき、最後のプロシージャで次にどのモジュールに行くか書いてある感じですかね。 なんかイケそうな気がします!頑張ってみます。
630 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:26:19 ] >>628 まさしくご愁傷様です。ですがC#も勉強していこうと思ってます。VB6をある程度わかるようになってから並行して勉強しようと、、。
631 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:30:37 ] >>629 モジュールに書かれているプロシージャを上から順番に 実行していく(1個目のプロシージャが終わったら 2個目のプロシージャを実行、…、どんどん順番に 実行していって、最後のプロシージャの実行が終わったら、 そのモジュールの実行が終わって、次のモジュールを 実行する)と思っているなら、それは間違いだよ。
632 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:32:20 ] >>631 のように思っているなら、関数というものが 理解できていない(関数はどのようにして実行される のかが理解できていない)ということになるね。
633 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:35:08 ] >>631 なるほど、ではなくsub main()から始まるモジュールを上から下に処理していき、その中で他のモジュールを利用するという感じでしょうか? そのほうがなんとなく納得出来る気がします。
634 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:38:54 ] >>632 多分そうです。ですが、なんか今までのソースの見方が意味不明だったのが解決出来そうな流れで、非常に興奮してます。 sub main()から始まり引数付きで他のモジュールのプロシージャを呼び出し、その帰り値を貰ったりして進んでいく感じですかね?
635 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:47:22 ] VBにはステップ実行があるから、一度やってみるといい
636 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:05:48 ] >>635 ありがとうございます。ネットでサンプルコードを拾って色々やってみます。
637 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:16:10 ] >>634 だいたいあってる
638 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:17:28 ] >>636 そういう意味ではなくて、[F8] を連打しろ、という意味だ。
639 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 23:23:53 ] >>638 うん、そういう認識です。 実際やってみたら割と思うように進んで納得しました。呼び出し元と呼び出し先、またそこが呼び出し元になって、さらに戻って〜みたいな流れで最終的にはメインの最後で終わる感じですね。 あとはクラスモジュールやAPIの使用なんかは少し難しい感じがしますが、頑張ってみます。
640 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 15:20:50 ] >>585 ちなみに、IE8のMSHTML.DLLはそのまま使うとIE7互換モードになることに注意。 blogs.msdn.com/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx
641 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 15:50:42 ] >>640 そうでしたか。 トン
642 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 18:12:28 ] VB6で質問です。 ListViewで上の要素をクリックするととりあえず降順にソートしてくれるけども、もう一回クリックで昇順とかは .NETなら見つかるんだけんども、VB6は無理なんでしょか?
643 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 19:43:27 ] >>642 できるよ。
644 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 22:51:36 ] >>642 じゃないけど、ListViewで安定ソート出来ないもんかしら? やっぱソートを全部自前でやるしかない?
645 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 23:35:21 ] >>644 そもそもGUI部品にソート機能を持たせよう、 って発想が間違ってることにいい加減気がつこうよ。
646 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 23:58:33 ] 表示の降順・昇順ソートは普通じゃないの? Explorerとかの日付ソートとか。 まあともかく… できなくはないけど安定しない、思想がよろしくない。で、いいのかしら?
647 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:17:04 ] ソート?エクセルにデータ渡してソートしてもらって再取得とかじゃダメなの?
648 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:18:14 ] は?
649 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:32:42 ] >>646 ソート機能を否定してるんじゃなくて、 ソート機能をGUI部品に担わせるのが間違ってるといってるんだよ。
650 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:36:29 ] どう違うんだ?
651 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:40:03 ] 打っても響かないところがVBスレらしいところだなw >>650 ソートする責任はListViewに表示しているアイテムを集約してるオブジェクトに 持たせるべき、ということ。
652 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:43:37 ] それって否定だろ?
653 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:00:29 ] これがVB脳の恐怖か....
654 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:08:15 ] ListViewは数字でのソートが・・・上位桁に0埋めて桁合わせないと数字の大きさ順にソートしてくれなかった
655 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:09:28 ] >>653 おまえは鳩山か?
656 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 07:08:37 ] バブルソートでおk
657 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 10:38:20 ] >>652 「ListViewソート機能の否定」ならわかるんだが 単に「ソート機能の否定」ってと「ソートすんな」だよね? ListViewじゃなくてオブジェクトで「ソートしよう」って言ってるのに、なんで「ソートすんな」なんだ?
658 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 16:05:16 ] >>651 しかし見た目を掌るListViewが見た目のソートを持たないというのも微妙な気が。 データそのものやその扱い自体のソートなら内部で持つべきだと思うけど。 ともかく。 ふつうにはやりにくい、でいいのかしら? >>642 のひとの手法が知りたい…使い物になるのかはさておいて。
659 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 16:14:21 ] ListViewの昇順降順くらい Private Sub ListView1_ColumnClick (ByVal ColumnHeader as ColumnHeader) Let ListView1.SortKey = ColumnHeader.Index-1 Let ListView1.SortOrder = lvwAscending :Rem 昇順。降順ならlvwDescending Let ListView1.Sorted = True End Sub
660 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 17:28:33 ] すると、クリック毎に入れ替えると ListView1.SortKey = ColumnHeader.Index - 1 If ListView1.SortOrder = lvwAscending Then ListView1.SortOrder = lvwDescending Else ListView1.SortOrder = lvwAscending End If ListView1.Sorted = True かな
661 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 17:53:22 ] lvwAscendingとlvwDescendingの値は1と0だから ListView1.SortOrder=1-ListView1.SortOrder でおk
662 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 17:55:01 ] Withくらい使えよ・・
663 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 18:13:32 ] Withとかきめぇ
664 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 17:57:51 ] >>594 やってみた RichTextBoxでjavaファイルをTeraPad風に色とボールドしてみた ファイルを読み込んだ時だけ色・ボールドするので 中身編集すると・・・めちゃくちゃにはなる やり方が悪いのかもしれんがファイル大きいと結構時間かかる 結論:RichTextBoxでやるのは無理がある
665 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 07:09:38 ] >>594 >>664 こんなんどう? 非表示でIEやリッチテキストに描画させて、それをPicture内に再描画して提供。 右クリックやドラッグなどの処理は透過的に処理する。 まぁ面倒くさい事に変わりはないな。
666 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 07:25:57 ] それだと文字位置などの管理が無理だな すべて自分で描画したほうがラクだろ
667 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 08:11:32 ] >>666 そうかね? クリックも全部裏のコントロールに渡せばカーソル位置や文字の選択もそっちが勝手にやってくれるんじゃない? 実際に試して話してるわけじゃないけど。
668 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 08:22:24 ] 実際試してみろよ そもそもそんな使い方ならピクチャに再描画する意味なんてないだろ
669 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 08:36:17 ] >>668 意味は、うーんあんまないかもなw 描画エンジンを自前で作りたくないし、リッチテキストの処理は非常にめんどくさいのでパスしたいのさ。 俺がやるなら内部にIE一匹飼ってHTMLで表示を作る。CSS使って自由度高いし。 で、入力はフックしてHTMLに変換して制御とか。
670 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:05:00 ] 入力部(カーソルなど)が問題だってのになにいってんの
671 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:18:24 ] >>603 がすばらしいじゃん
672 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:23:00 ] 笑えない冗談だ
673 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:26:10 ] www7a.biglobe.ne.jp/~sigotnin/delphi.htm これ使えない?
674 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:29:08 ] まあ>>603 にはかなわないか
675 名前:デフォルトの名無しさん [2010/04/24(土) 20:56:25 ] >>603 みたいなやり方だと 日本語入力とか出来ないよね? KeyDownやKeyPressイベントじゃIMEとかの日本語入力使えないよね?
676 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 21:29:22 ] え?どこに入力が?
677 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 21:33:29 ] IMEの制御くらいAPIでいくらでもできますよ
678 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 23:26:26 ] >>594 のってエディタ作るんでしょ?>>603 のってエディタになってなくね?
679 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 23:48:22 ] だからみんな相手してないんじゃん
680 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:54:56 ] まあRitchTextBoxを使うのが一番簡単だとは思う。 入力した文字にシンタックスカラーがリアルタイムで適用されるような 応答性の高いものは難しいと思うけど、以下の方針で作ればそれなりに 実用的なものはできるんじゃないか。 - テキストの解析とシンタックスカラーの適用は、タイマーを使って一定時間ごとに一行ずつ行う。 - 上記タイマーは、Changeイベントで起動し、全行の解析が完了時点で停止する。 - 行の解析は、タイマー起動時の現在行か、またはその1行上の行から開始する。 - 行番号表示は、左側にもう一つ別の行番号専用のRitchTextBoxを置いて実現する。
681 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:59:51 ] VB厨はコントロールに頼りすぎる
682 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:22:40 ] >>680 そんなアホな事をする位だったら自作したほうがラクだろ?
683 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:34:19 ] >>682 (あと>>681 ) またそういう寝ぼけた事を言う。 そう思うならやってみたら? まあやってみなきゃ大変さが分からない時点で君がダメグラマなのは確実だな。 エディタの類はVBじゃなくても一から実装するのは難しい部類に入るプログラムなのに、 低レベルのコーディングにまったく向いてないVBでやったら気が狂うこと確実だわ。 しかし、エディタを書けるかって質問して舐めたこというかどうかで ダメな奴を見分けられそうだよなw
684 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:43:30 ] 寝ぼけた事を言ってるのは>>680 (あと>>683 )だが
685 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:46:04 ] 682だけど、 以前やってみたから言ってんだよ。
686 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:37:31 ] やってるわけがない。 やってたら>>682 みたいな戯言が言えるはずがない。 だからVB厨って言われる連中はダメなんだ。
687 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:42:33 ] ではお前が作ったRutchTextBoxを使ったエディタを見せてくれないか? 俺はリアルタイムの色変更とスクロール、文字位置制御で挫折したんだ えらそうに言うくらいだから、できたんだろうな?
688 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:44:34 ] >>680 些細なことだけど ×RitchTextBox ○RichTextBox
689 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:44:38 ] 技術的な難易度を指摘してるだけなのに、いつのまに俺がRutchTextBox(笑) を使ったエディタを作ったことになってるんだろう。 訳がわからん。
690 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:45:22 ] >>687 些細なことだけど ×RutchTextBox ○RichTextBox
691 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:46:30 ] >>689 てめえが難癖つけてきたんじゃねえか糞野郎!!!!!
692 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:47:09 ] >>680 行番号表示って、編集してるほうのカーソル位置とかスクロールに合わせてスクロールさせるんだよね? RitchTextBoxのスクロール量の取得・設定てどうやるの?
693 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:52:34 ] VB6のIDEだと編集中の行は色づけが解除されるよね
694 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:53:12 ] >>692 ↓の454のサンプルの方法で可能なはずだと思った。 もう長いことVB6使ってないんで記憶が確かなら、だけど。 web.archive.org/web/20030110071501/www.vbvbvb.com/jp/gtips/index0451.html
695 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:53:44 ] 解除されるのでもいいから、リッチテキストでやってみろよ
696 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 03:07:47 ] >>692 ごめん、君の文章を少し読み間違えてたようだ。 でも>>694 のサンプルにはそれも一応載ってるな
697 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:06:19 ] OS、Windows2000じゃないんですけど
698 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:07:02 ] めちゃくちゃ重いサイトだな
699 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:33:29 ] >>692 API
700 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 07:27:25 ] GWはテキストエディタつくろーっと
701 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:25:04 ] 別にあなたが何しようとどうでもいんですけど・・・^^;
702 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:30:53 ] 気になるくせにーw
703 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:44:19 ] 反応早すぎだろうw 気にしてるのがどっちか丸分かりじゃねーかw
704 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:52:19 ] 一日中2ちゃんしてるからw
705 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:15:51 ] VB6でデータベースの列を追加する方法か、その内容をひっかけられるMSDNの語句を教えていただけないでしょうか。 .NETやC#ならすんなり当たるのに…世の中つらい。
706 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:17:14 ] alter tableするだけじゃねーの?
707 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:31:02 ] 扱いは追加じゃなくて変更なのか…d。 ググるとそこそこあたるので探ってみる。
708 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 17:31:07 ] つうか、SQLの知識のほうじゃねぇか…
709 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:55:03 ] >>708 ああ、そうか… って、VBでSQLなスレ見つけたけど、中身がわりと残念な進行してるねえ。 むこうで聞いて大丈夫だろうか?
710 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 21:29:41 ] DBはDB板へ