トップページ⇒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/

※「まず自分で調べる」クセを身につけよう。
0552デフォルトの名無しさん2007/03/07(水) 15:48:29
>>550
VB2005で作った実行ファイルは
WindowsVistaのネイティブ環境で実行出来るよ。
0553デフォルトの名無しさん2007/03/07(水) 16:39:55
2005で作られた有名なアプリってなにがある?
0554デフォルトの名無しさん2007/03/07(水) 17:19:23
>>550
聞いたこと無い
ngenもキャッシュ作るだけだしもう聞かなくなったし

質問なんだがなぜネイティブを聞いたのか聞きたい
0555デフォルトの名無しさん2007/03/07(水) 17:59:34
>>554
Win95のOSとかで.net無しで動くプログラム使えるのかな?っと
VB6.0もう売ってないし
0556デフォルトの名無しさん2007/03/07(水) 18:00:38
>>555
×使える
○作れる
0557デフォルトの名無しさん2007/03/07(水) 18:03:13
95はサポート外にすればいいしVB6ほしければ金を出せばいいし.Netも実行時はネイティブだし
何の問題もない
0558デフォルトの名無しさん2007/03/07(水) 18:08:22
>>555
ああ、ネイティブじゃなくて.NETの実行時の依存を少なくしたいのね
これはもう無理だから、.netアプリケーションを古いWin機で動かそうとするのは無茶だと思うよ
Win95をターゲットOSとするなら、VC7で.NET使わない(CLI?)のとか、DelphiくらいがVBに似てていいと思う

しかしスレ違いなのでここまで
0559デフォルトの名無しさん2007/03/07(水) 20:58:03
Win95って動くハードウエア売ってるの?
あ、そうか、仮想化すればいいのか。
0560デフォルトの名無しさん2007/03/07(水) 21:36:56
すみません、お聞きしたいのですが
VB6.0で例えばMSCOMMのコンポーネントを使っていたらMscomm.ocxをシステムフォルダに入れなくてはいけませんよね?
dllとかocxをexeファイルに包括して一つのexeファイルだけで済むようにとか出来ないんですかねぇ・・
0561デフォルトの名無しさん2007/03/07(水) 21:43:46
MSCOMMを使わずにAPIを使えば一つにできないこともないだろうが
そこまでして一つにしたいのか
0562デフォルトの名無しさん2007/03/07(水) 21:49:35
>>561
お前は何をいっているのだ。
0563デフォルトの名無しさん2007/03/07(水) 21:56:22
理解できなかったかな?
0564デフォルトの名無しさん2007/03/07(水) 22:09:45
それってライセンス的にOKなわけ?
0565デフォルトの名無しさん2007/03/07(水) 22:14:23
>>560
できないんです><

しかも多分システムフォルダにおくだけじゃむり
Side-By-Sideは同フォルダにおく必要があるし、特定環境じゃないとそもそもSBSは機能しない
おとなしくディストリビューションウィザード使うといいんでないか?
0566デフォルトの名無しさん2007/03/07(水) 22:14:54
システムフォルダじゃなくてもEXEを同階層に置けば動くからEXEに纏める必要はないのでは。
ただし>>564
0567デフォルトの名無しさん2007/03/07(水) 22:15:11
二つの意味にとれるが、とりあえず
ライセンスがダメだったら世の中のインストーラー作成プログラムはすべてNGだな
0568デフォルトの名無しさん2007/03/07(水) 22:31:27
ラベルに文字を入れる場合
右寄せや中央に寄せることはプロバティでできるのですが
縦の位置を合わせることはできるのでしょうか?
0569デフォルトの名無しさん2007/03/07(水) 22:31:54
ダイアログを何も出さないセットアッププログラムをexeにして、
内包しているMSCOMMをインストール、その後テンポラリにでも
本来の実行ファイルを展開し、そこで実行。

#Vistaでの動作は保証しかねる
0570デフォルトの名無しさん2007/03/07(水) 22:33:45
>>568
VB標準のライトウェイトコントロールであるLabelにはそのような機能は存在しません。
せいぜい改行でごまかすくらいです。
0571デフォルトの名無しさん2007/03/07(水) 22:33:49
>>568
不可。
上手く中央に見えるようにがんばるしかない
0572デフォルトの名無しさん2007/03/07(水) 22:34:53
ど
こ
を
縦
読
み
?
0573デフォルトの名無しさん2007/03/07(水) 22:35:01
>>570
>>571

ありがとうございます
05745602007/03/07(水) 22:52:26
>>561さんの言うようにコンポーネント使わずAPI使って自分で作れば出来るんですかね?
作ったPGがdll、ocxがやたら多かったもんで、スマートに出来ないものかなぁと思いまして・・
回答いただきありがとう御座いました
0575デフォルトの名無しさん2007/03/08(木) 12:21:39
VB2005って.NET使わなかったらVB6と同じなの?
0576デフォルトの名無しさん2007/03/08(木) 12:27:20
>>575
シニカルな意味では同じ。
君の回答に答えるとすれば、違う。
0577デフォルトの名無しさん2007/03/08(木) 17:15:09
Dim A As Integer
Dim B As Single
A = 30
B = 0.4
lblS = A / B

とすると
lblSには75が入るの予定ですが、
lblSに変な小数点の数値が入ってしまいます。

どうしてでしょうか?
0578デフォルトの名無しさん2007/03/08(木) 17:18:28
>>577
http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0
0579デフォルトの名無しさん2007/03/08(木) 17:34:44
lblSの型はなによ
0580デフォルトの名無しさん2007/03/08(木) 17:53:54
lblSは常識的考えてLabelコントロールだろ
デフォルトプロパティを省いてるが↓ってことだ
lblS.Caption = A / B
0581デフォルトの名無しさん2007/03/08(木) 20:39:09
>>579
えらそうな奴ほどアホだな。
0582デフォルトの名無しさん2007/03/08(木) 22:44:49
>>581
えらそうな奴ほどアホだな。
0583デフォルトの名無しさん2007/03/08(木) 23:11:28
エラ張ったやつほどチョンだな
0584デフォルトの名無しさん2007/03/09(金) 06:45:15
エゴだよ!それは!!
0585デフォルトの名無しさん2007/03/09(金) 08:44:55
test
0586デフォルトの名無しさん2007/03/09(金) 11:22:29
>>584
黒石と白石を順番に一手ずつ打つあれか。
0587デフォルトの名無しさん2007/03/09(金) 17:57:45
>>586
それ囲碁

質問です
リストボックスに10行程入力しました。
プルダウンがはいっているのですが
一番下の行にカーソルを持っていく事はできますか?

またリストボックスの全部の文字を消す事はできるのでしょうか?
0588デフォルトの名無しさん2007/03/09(金) 19:42:13
>>587
普通にやるだけじゃダメなの?
0589デフォルトの名無しさん2007/03/09(金) 21:53:16
>>587
リストボックスにプルダウンの意味が意味がわからん
リストボクス名.clear
0590デフォルトの名無しさん2007/03/09(金) 21:54:24
>>587
コンボボックスかと思ったけど、とりあえずTopIndex辺りを調べると吉
0591デフォルトの名無しさん2007/03/11(日) 23:30:25
vb6.0で
プリンタの解像度の取得、指定はどうやって行うのでしょうか。
また、そのときのプリンタは通常使うプリンタ限定なのでしょうか

Googleで検索したらすぐ見つかると思いきや意外とないですね。。
よろしくお願いします。
0592デフォルトの名無しさん2007/03/12(月) 00:19:51
ググレカス
ttp://www.google.com/search?num=50&hl=ja&safe=off&q=visual+basic+%E3%83%97%E3%83%AA%E3%83%B3%E3%82%BF+%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&lr=lang_ja

ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t17.htm
ttp://www.g.dendai.ac.jp/lecture/vbasic/vb16.html
ttp://www.tohoku.ricoh.co.jp/barcode/download/sample/index.html
ttp://www.necst.co.jp/product/cho/load.htm
ttp://www.vbstation.net/sample/0214.htm
0593デフォルトの名無しさん2007/03/12(月) 00:43:48
>>592
の優しさに全米が泣いた
0594デフォルトの名無しさん2007/03/12(月) 09:20:24
htmlを解析してデータベース化するサンプルとかないですか?
0595デフォルトの名無しさん2007/03/12(月) 09:21:56
>>594
http://pc11.2ch.net/test/read.cgi/tech/1165574205/110
マルチ乙
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時に削除するのでやってみたけど大丈夫っぽ
■ このスレッドは過去ログ倉庫に格納されています