トップページ⇒tech
1001コメント307KB

VBプログラマ質問スレ(6.0以前) Part51

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/01/28(日) 10:57:31
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 http://www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。
0596デフォルトの名無しさん2007/03/12(月) 09:28:43
>>595
http://pc11.2ch.net/test/read.cgi/tech/1165574205/110
で質問した後に、こっちのスレの方が適切かなと思ってこっちにもかいたのよ。
すまんね。
0597デフォルトの名無しさん2007/03/12(月) 14:01:26
>>596
じゃぁキャンセルくらいだしとけカス野郎
もう2度と来なくていいよ
0598デフォルトの名無しさん2007/03/13(火) 13:33:24
テキストボックスのMaxLengthについて質問。

MaxLength=5 とした後に、 MaxLength=0 を入れても最大文字数が5のまま制限されてしまうんだが、
これはどうしようもない?
0599デフォルトの名無しさん2007/03/13(火) 14:31:03
で?
0600デフォルトの名無しさん2007/03/13(火) 16:00:21
>>598
そんな事やったこと無いからわからんがIntegerかなんかで最大桁持ってるんだったら最大値にしてもだめなのか?
0601デフォルトの名無しさん2007/03/13(火) 16:29:27
いま、VB4からVB6に移行してるのよね。
VB4の頃はMaxLength=0が無制限の意味で使ってたから(実際それで動いていた)、
なるべくこのまま行きたいんだ。大変だしね。

ま、どうしようもないなら
if MaxLength=0 then MaxLength=1000
みたいなのを挟むけど・・・
0602デフォルトの名無しさん2007/03/13(火) 16:39:12
変わらず0で無制限のはず
0603デフォルトの名無しさん2007/03/13(火) 16:44:23
制限あるのに無制限なんて仕様だったのか
06045982007/03/13(火) 17:16:29
>>602
調べたら確かに0は無制限なんだよな。
試しにボタンを適当に二つとテキストボックス(text1)を用意して試してみた。

一つ目のボタンを押すとtext1.MaxLength=0
二つ目のボタンを押すとtext1.MaxLength=5
というのを代入するようにしてある。

最初になにも押さずに書き込み→普通に無制限
二つ目のボタンを押して書込み→5文字制限
続いて、一つ目のボタンを押してから書込み→5文字制限

やっぱダメじゃね?
0605デフォルトの名無しさん2007/03/13(火) 19:43:05
TextBoxを配置し、デザイン時にMaxLength=5とする。
次にCommandButtonを配置し、クリックイベントにMaxLength=0を記述。
実行。

TextBoxに"一度も文字入力していない"状態でボタンを押すと、
それ以降は5文字制限解除=無制限で入力できる。
しかしながら、文字入力後にボタンを押した場合は5文字制限が解除されない。

試しにやってみたらこんな感じだったよ>>598
0606デフォルトの名無しさん2007/03/13(火) 19:57:10
こりゃもう明らかにVBのバグだね
きっと自前で文字長を制限してる

デザイン時は0に設定してEM_LIMITTEXTとEM_GETLIMITTEXTでやるしかない
0607デフォルトの名無しさん2007/03/13(火) 19:59:13
ただコントロールはMS-SHIFTJISだけど、VB6の文字列の内部表現がUnicodeだから気をつけないといけんね
0608デフォルトの名無しさん2007/03/13(火) 20:51:54
>>606
んなことしなくてもMaxLengthに0じゃなくて設定可能な最大値を入れてやれば
いいんじゃない?

しかし、VBスレってこの期に及んでこんなレベルの話題かよw
0609デフォルトの名無しさん2007/03/13(火) 22:09:29
エスパーの相手は疲れるからスルーしていいか?
0610デフォルトの名無しさん2007/03/13(火) 22:34:26
エスパーの相手?
06115982007/03/14(水) 08:41:50
やはりバグの可能性が濃厚か。諦めるとしよう。
ありがと。
0612デフォルトの名無しさん2007/03/14(水) 12:33:05
>>611
おいおいなんでそうなるのw
だから0じゃななくて入力可能な文字数の最大値を設定すればいいだけだって
0613デフォルトの名無しさん2007/03/14(水) 13:01:09
>>612
やめとけ・・・
頭がガチガチだw
0614デフォルトの名無しさん2007/03/14(水) 21:30:25
入力可能な文字数の最大値が分からないときは?
とくにNT系は壁なくなったし
0615デフォルトの名無しさん2007/03/15(木) 00:17:58
Edit controls on Windows NT/2000/XP: 0x7FFFFFFE characters
Edit controls on Windows 95/98/Me: 0x7FFE characters
0616デフォルトの名無しさん2007/03/15(木) 00:37:48
> 0x7FFFFFFE
確実にメモリ潰れるな
0617デフォルトの名無しさん2007/03/15(木) 08:49:04
<form action="test.test" method=post>
<input type=hidden name=submit value=confirm>
<input type="hidden" name="test_a" value="123456789">
<td><input type=submit value=" Yes "></td>
</form>
というフォームがあるんですが<input type=submit value=" Yes ">をクリックするにはどうすればいいでしょうか?
IEobj.document.forms(0).getElementsByTagName("input")(2).Click や
IEobj.document.forms.Item(0, 0).submit など試したのですがうまく行きません
VBAの板で質問したのですが、スレ違いということでコチラに書き込みました。
0618デフォルトの名無しさん2007/03/15(木) 11:44:00
>>617
どこからDOMを操作しようとしてるかは見えないけど、
getElementsByTagNameを使うならname属性がいるんじゃない?

<input name="xxx" type=submit value=" Yes ">
0619デフォルトの名無しさん2007/03/15(木) 16:55:54
>>618
name属性要らないだろ・・・常識的に考えて・・・
0620デフォルトの名無しさん2007/03/15(木) 21:28:17
>>617
ここにVBAでのIE操作について色々のってる
http://www.ken3.org/cgi-bin/group/vba_ie.asp
0621デフォルトの名無しさん2007/03/15(木) 22:02:59
>>620
そこのサイトを参考にしながら作ってるんですが、イマイチ解決方法がわかりません
<form action="del_xxxx" method=post>
<input type=hidden name=submit value="confirm">
<input type="hidden" name="xxx_id" value="123456789">
<td><input type=submit value="Yes"></td>
</form>

<form action="back_xxxx" method=post>
<input type="hidden" name="page" value="1">
<input type="hidden" name="del_xxxx_id" value="123456789">
<td><input type=submit value="No"></td>
</form>
こんな感じにYes NoのFormがあって、Noの場合は
IEobj.document.forms.Item(1).submit
で動くのにYesの場合はIEobj.document.forms.Item(0).submit
じゃ動かないんです、原因分りませんか?
06226202007/03/15(木) 23:52:26
>>621
YESの方はname=submitになってるから
IEobj.document.forms.Item(0).submitはHTMLInputElementを指してしまうっぽい
(Set objInput = IEobj.document.forms.Item(1).submitとかするとよくわかる)

んで、解決策は分かりません・・・

ローカルで>>621のHTMLを作って
IEobj.document.forms(0).getElementsByTagName("input")(2).Click
とするとdel_xxxxを開くんですけど、それじゃダメなんですよね?
あとは
IEobj.document.forms.Item(0).FireEvent "onsubmit"
ってやってみるとか・・・

あんま力になれなくてすんません
0623デフォルトの名無しさん2007/03/16(金) 00:32:37
dim obj
for each obj in IE.document.forms
  call obj.submit()
next
0624デフォルトの名無しさん2007/03/16(金) 21:23:27
初心者でスイマセン
仕組みが理解出来てないので御教授下さい
VBでmdbやオラクルなどのデータベースに読み書きするときなんですが、手順としては理解してるつもりなんですが、実際に自分でやろうとすると大きな壁にぶつかります
まずコネクトから教えて下さいますか?
0625デフォルトの名無しさん2007/03/16(金) 21:30:34
>>624
その手の処理はただのお約束だと思って、深く理解する必要はあんまりないぞ。
いまは、とにかくサンプルを真似て目的を果たせればおkとしとけ。
0626デフォルトの名無しさん2007/03/16(金) 21:45:49
625さん、ありがとうございます
改造をやってるんですが、クラスで一元管理してiniでデータベースの見に行く先を管理してるようです
今練習でサンプル作っているんですが、今まで動いていたプログラムが真似してもコネクトの部分で落ちてしまいます
コネクトの条件がわかれば少しは理解してマシな物が出来ると思いまして
0627デフォルトの名無しさん2007/03/16(金) 22:06:38
サーバーはたちあげてるんだよねぇ。
サンプル通りやってつながらないとしたら何が原因なんだろう
0628デフォルトの名無しさん2007/03/16(金) 22:31:37
実体がないとかそんなオチでは
0629デフォルトの名無しさん2007/03/16(金) 23:15:27
先ずは原因調査だ
デバッグだ
0630デフォルトの名無しさん2007/03/17(土) 06:26:55
とりあえず元の状態に戻してプログラム以外が原因でないことを確認
次にエラーメッセーを確認して原因を推測
0631デフォルトの名無しさん2007/03/19(月) 20:03:08
TextBoxの表示更新をMSHFlexGridのRedraw = False/True
ExcelのScreenUpdating = False/Trueのような感じで一時的に止める方法を教えてください。
0632デフォルトの名無しさん2007/03/19(月) 20:34:19
脳みそ腐ってるんじゃねえの?
だから更新したくなかったら更新するなよアホかw

どうしてもそんな意味のないことがしたいのならクラスでラップすることだね。
さっさと引越ししばくぞ
0633デフォルトの名無しさん2007/03/19(月) 21:19:07
>>632
最後の”さっさと引越ししばくぞ”の意味がわからん
とりあえずもちつけ
0634デフォルトの名無しさん2007/03/19(月) 21:53:00
ラップ
0635デフォルトの名無しさん2007/03/20(火) 09:02:21
サランラップ
0636デフォルトの名無しさん2007/03/20(火) 11:42:33
ほんと、解ってない奴多すぎ
0637デフォルトの名無しさん2007/03/20(火) 20:02:03
質問者よりも回答者の方が下に居るスレってのも珍しいよね
0638デフォルトの名無しさん2007/03/21(水) 00:18:17
age
0639デフォルトの名無しさん2007/03/23(金) 00:53:43
VB6でWindowProc使ってカーソルキーでオブジェクト移動しないようにするには
メッセージフックなに使えばいいの?
0640デフォルトの名無しさん2007/03/23(金) 20:44:33
WM_SETFOCUS?
で、WindowProcって何?
06416402007/03/23(金) 20:48:25
ググってみた。
WindowsProcなんて便利なものがあったのか。
せれくとで書いてたわ。いいなこれ。
0642デフォルトの名無しさん2007/03/23(金) 20:51:38
質問者よりも回答者の方が下に居るスレってのも珍しいよね
0643デフォルトの名無しさん2007/03/23(金) 22:28:48
つうか、フックしないとイベントドリブンのソフトではどうしようもないときがくるといえば来るが・・・・
VB6でフックするときはデバッグに気をつけとくんだぞ〜
時にVB6とか落ちるからな〜

と遅レス
0644デフォルトの名無しさん2007/03/24(土) 01:22:07
>>643
んなの落ちないようにフックすればいいだけの話
0645デフォルトの名無しさん2007/03/24(土) 01:22:25
すみませんが教えてください。環境はWinXP VB6.0+SP5です。

タスクトレイにShell_NotifyIconを使ってアイコンを表示しているのですが
プログラム終了後もリフレッシュされず残ってしまいます。(マウスポインターをあてるとリフレッシュされて消えます)
プログラム終了時にタスクトレイのアイコンを消す方法は無いでしょうか?

もう一つ、msgboxを使うとタイトルバーに変なアイコンが表示されるのですが
消す、若しくは変更する方法はあるでしょうか?
0646デフォルトの名無しさん2007/03/24(土) 01:46:44
>>645
>プログラム終了時にタスクトレイのアイコンを消す方法は無いでしょうか?
Shell_NotifyIconでアイコンを削除しなさい

>msgboxを使うとタイトルバーに変なアイコンが
エスパーではないので、これだけの情報では回答不能
少なくとも俺は変なアイコンが出てくる現象に遭遇したことはない
0647デフォルトの名無しさん2007/03/24(土) 01:48:00
>>644
デバッグ時にステップ実行する時にフックのところで止めたらIDE落ちるって話だろ?
フック自体部分が落ちないようにするとか何を当たり前の話をwwww

>>645
APIつかってアイコン表示してるんだよね?
終了時はAPI使って登録したアイコン消去してからPG終了してる・・・よね?

タイトルバーの変なアイコンが意味不明
うちの環境では起きてないと思うけどなぁ…
0648デフォルトの名無しさん2007/03/24(土) 01:54:33
>>647
ブレイクで止めてもIDEが落ちないようにフックしろって話だ
0649デフォルトの名無しさん2007/03/24(土) 01:55:59
>>648
把握した
0650デフォルトの名無しさん2007/03/24(土) 02:03:22
>>646
説明下手ですみません。
タスクトレイのアイコンですが、プログラム終了時にShell_NotifyIconで削除しています。
ただ、表示上タスクトレイがリフレッシュされないようでマウスポインターをタスクトレイに持っていったりしないと消えないんです。
msgboxのアイコンほうですが、msgbox("hogehoge")のようなメッセージボックスでは、タイトルバーにアイコンは表示されないんですが
「はい」「いいえ」等のボタンを配置すると、タイトルバーの左のほうにデフォルトのフォームのアイコンのようなものが表示されます。
(この場合、呼出もとのフォーム、プロジェクトのプロパティでは別のアイコンを指定しています。)
06516462007/03/24(土) 02:13:03
1つ自己解決しました。
メッセージボックスを表示する際、システムモーダルにしていたのをアプリケーションモーダルにしたら
アイコンは表示されなくなりました。
0652デフォルトの名無しさん2007/03/24(土) 02:19:37
>>651
アイコンタスクトレイに入れて終了時に消すの
今やってみたけど全然問題ないぞ?

FormLoadで登録して
FormUnLoad時に削除するのでやってみたけど大丈夫っぽ
0653デフォルトの名無しさん2007/03/24(土) 02:23:59
>>650
>マウスポインターをタスクトレイに持っていったりしないと消えないんです。
フォームロードでアイコン追加して、アンロードで削除してるでしょ?
たぶんフォームがきちんと開放されていないか、フォームを閉じたあとに標準モジュールあたりから
フォームのプロパティとかにアクセスして自動的に再ロードされてるんじゃないかと。
登録/削除それぞれのShell_NotifyIconの次の行にでも Debug.Pring "登録" とか入れて流れを見てみ。

>「はい」「いいえ」等のボタンを配置すると
タスクトレイにアイコン登録して MsgBox("", vbYesNo) としてみたが再現しない
見たことない現象だけに、再現できない以上回答しようがないな・・・
06546462007/03/24(土) 02:38:20
>>652,653
有難うございます。
もうちょっと頑張ってみます。
0655デフォルトの名無しさん2007/03/24(土) 02:39:20
>>653
後者の件
そういえば、呼び出したフォームのVisbleがFalseならそうなるんじゃぁなかったかな?
しかも、実行モジュールの時だけとか限定があったりしたような・・・
そんな記憶があったような・・・・

曖昧ですまん

0656デフォルトの名無しさん2007/03/24(土) 15:13:38
VBおもしろそうだな。VBやってた頃が一番楽しかったな。
0657デフォルトの名無しさん2007/03/24(土) 17:29:58
面白かったが制限がきつかった
継承できないとか

でも、手軽さは一番だったと思う
0658デフォルトの名無しさん2007/03/24(土) 20:09:40
過去形で話さないで下さい
0659デフォルトの名無しさん2007/03/24(土) 20:36:37
VBしか使えない奴に限って、VBなんて過去の遺物と言い放ち
過去の物として語ったりするよね。実際には今でもVBに頼りっぱなしなのにw
0660デフォルトの名無しさん2007/03/24(土) 21:41:59
さすがにVB6は新規開発ではないと思うが・・・・
釣りか?
0661デフォルトの名無しさん2007/03/24(土) 22:05:57
?
0662デフォルトの名無しさん2007/03/24(土) 22:23:44
VB6がネイティブじゃなくランタイムいるからって敬遠してる奴いるよな
Cとかアセンブラじゃなけりゃ JAVAなんかだってランタイムのようにVM必要なのに・・・・
0663デフォルトの名無しさん2007/03/24(土) 23:06:39
>>662
Java厨に関しては馬鹿だからそれを気にしないだけ。
0664デフォルトの名無しさん2007/03/25(日) 02:21:13
>>660
昨日VBで新規開発のシステム納品しましたが何か?
0665デフォルトの名無しさん2007/03/25(日) 07:55:55
>>660
俺も今年に入ってからVB6新規開発で受注したけど何か?

客先から「俺たちが知らない言語は使うな」ってお達しなんだよwww
0666デフォルトの名無しさん2007/03/25(日) 11:57:22
スレタイも読めない低能のお前らに最適なスレを紹介してやるよ。

ttp://pc11.2ch.net/test/read.cgi/tech/1164376614/
0667デフォルトの名無しさん2007/03/26(月) 10:22:41
MDAC関連で「エラーを特定できません」というエラーが発生する場合があります。
MDACは何かログなど出力していないでしょうか?
0668デフォルトの名無しさん2007/03/26(月) 11:55:10
vistaにmsjro.dllを使ったものをインストールしようとするとエラーでできないのですが
これの解決策について情報があれば教えてください。
06696682007/03/26(月) 12:09:54
>>668 と同じくmsadox.dllも同様にエラーでインストール完了できません。
XPだと問題ないのでvista固有の問題みたいです。
0670デフォルトの名無しさん2007/03/26(月) 15:34:24
vistaはVBのランタイムが最初からインスコしてなかったっけ?
適当で申し訳ないが、上書きするなという意味じゃマイカ?
0671デフォルトの名無しさん2007/03/26(月) 18:19:21
ADOは2000あたりからシステムコンポーネントになったから、
インストールしてはいけない。
06726682007/03/27(火) 10:02:20
>>671
あの2つを外したらエラー無くインストできました ありがとう
0673デフォルトの名無しさん2007/03/27(火) 22:25:36
VB厨必死杉
0674デフォルトの名無しさん2007/03/27(火) 22:34:45
>>673
そう叩いてやんなよ
新しいOSってのもあるしさ(;´∀`)
ぶっちゃけ俺も迷ってたかもしれない

たぶん使わないけど
0675デフォルトの名無しさん2007/03/27(火) 23:32:38
> VB厨必死杉
なんて言う奴に限って、VBしか使えないどころかVBすらまともに使えてないという法則w
0676デフォルトの名無しさん2007/03/28(水) 08:50:21
かといって「VBならできます」ってやつもVBすらできないから安心しる。
0677デフォルトの名無しさん2007/03/28(水) 10:53:30
そこお若いの…
Vistaは…Vistaはやめとけ
絶対やめとけ
何が何でもやめとけ
0678デフォルトの名無しさん2007/03/28(水) 10:54:37
出た当初は何でもそういわれるものだ。
XPもひどい言われようだった。

そんな俺はSP1が出てから移行する派
0679デフォルトの名無しさん2007/03/28(水) 15:43:05
VB6のDHTMLEdit、WebBrowserはVistaに移行できる?
0680デフォルトの名無しさん2007/03/28(水) 23:34:43
「VBできます」と宣ってる奴のなかでクラスとユーザーコントロールをまともに作れる奴はどれくらいいるんだろうか?
0681デフォルトの名無しさん2007/03/28(水) 23:41:56
クラスを使うにはプロジェクトリーダーの許可が必要だよぅ
0682デフォルトの名無しさん2007/03/28(水) 23:48:14
>>680
そういう事を恥ずかしげもなく言えるヤシもどうかと思う。
せめて、OOPを意識したPG、くらいの気の利いた言葉が欲しい。
0683デフォルトの名無しさん2007/03/29(木) 00:03:31
そでが気の利いた言葉だと思っちゃう奴もどうかとw
0684デフォルトの名無しさん2007/03/29(木) 00:05:42
構造体のほうがデータの扱い方にバリエーションがあっていいよ
API使えばゼロクリアとか楽

VB6のクラスは構造化の1方言にしかすぎない
0685デフォルトの名無しさん2007/03/29(木) 00:10:29
おいおいそりゃまた酷い誤解だな。
誤解というより無知なんだなw
0686デフォルトの名無しさん2007/03/29(木) 01:26:42
>>684
お前とはあんま一緒に仕事したくないな
0687デフォルトの名無しさん2007/03/29(木) 08:53:31
俺も。

>>684とは絶対いっしょに仕事したくない。
俺はクラスモジュールでデータクラスを書いたり更新などなどのメソッドを肉付けしていく派。
0688デフォルトの名無しさん2007/03/29(木) 09:01:04
どうでもいい。
VB厨同志で罵り合う必要もないだろ。

ドドネトになって構造体にもメソッドもてるようになり、
実行速度を考慮すると、クラスではなく構造体の方が
いい場合も。
0689デフォルトの名無しさん2007/03/29(木) 09:13:27
構造体は流用できん
0690デフォルトの名無しさん2007/03/29(木) 09:31:22
まとめますと、適材適所という事ではどうでしょう。 閣下>>689
0691デフォルトの名無しさん2007/03/29(木) 09:56:51
誰かAccessで吐き出したCSVを自由に読めるクラス作って!!
0692デフォルトの名無しさん2007/03/29(木) 09:59:56
>>691

あほか
そんなもん誰でも出来るだろうが
つうかググって自分でやれカス
0693デフォルトの名無しさん2007/03/29(木) 10:00:14
Access使え
06946912007/03/29(木) 10:02:58
できるとわかっているものを作るのは面白くないから
作って!!
0695デフォルトの名無しさん2007/03/29(木) 10:28:35
>>694
死ね
ソフトウェア板へ行って来い
もう二度と来るなよチンカス
0696デフォルトの名無しさん2007/03/29(木) 12:30:05
VB6ってCommandButtonの文字色を変えるのは不可能なんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています