VBプログラマ質問スレ(6.0以前) Part51
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/01/28(日) 10:57:31質問者は使用している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
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
0175デフォルトの名無しさん
2007/02/17(土) 00:35:54回答するのもVB厨、たかが知れてる。俺を除いてな。
0176デフォルトの名無しさん
2007/02/17(土) 00:45:16結局質問なしか
0177デフォルトの名無しさん
2007/02/17(土) 11:58:51このゲームにあるような制限時間のバーのようなものを作りたいんですが
分かる人いますか?
あとデジタルタイマーみたいな
20:00から段々減ってくようなタイマーの作り方も分かる人いたら
教えて下さい
0178177
2007/02/17(土) 11:59:43よろしくお願いします
0179デフォルトの名無しさん
2007/02/17(土) 12:10:09>制限時間のバー
プログレッシブバーでググれ
>20:00
タイマー貼って値を-1していく
20:00→19:59
19:59→19:57
…
19:00→18:59
となるようなロジックつくればおk
0180デフォルトの名無しさん
2007/02/17(土) 12:20:46作れるの?
やり方分かる人いたら教えて
0181デフォルトの名無しさん
2007/02/17(土) 12:22:25KeyPreviewプロパティ
KeyPressイベント
0182180
2007/02/17(土) 12:26:40画面を左右に分けて
左側にタイプさせたい文字を表示
右側にそれをタイプさせていき、打ち間違えがあったら
そこが検出できるようなものを作りたいんですが
そのようなものの作り方はわかりますか?
0183デフォルトの名無しさん
2007/02/17(土) 12:31:47コントロールの使い方がわからないとかなら説明するが
プログラミングの醍醐味であるコードを俺がかいてもしょうがないし。
ヒント?
テキストボックスに入力させて、入力時にChangeイベントを発生させるとか
KeyPressイベントで文字一致を確認させるとか
方法はたくさんある
0184180
2007/02/17(土) 12:37:23試行錯誤しながら考えてみます
0185デフォルトの名無しさん
2007/02/17(土) 13:13:15>読解能力ももとるなんて
「おとる」のtypoなのか、「もとる」の誤用なのか
気になって夜も眠れません。
0186デフォルトの名無しさん
2007/02/17(土) 13:15:010187デフォルトの名無しさん
2007/02/17(土) 14:39:460188デフォルトの名無しさん
2007/02/18(日) 17:03:31VB6.0で3Dグラフを描画するのに適した
フリーのコンポーネントって何がありますか?
目的としては、縦100点×横100点前後の微妙にデコボコしている
矩形の素材を、立体的に表示し視覚的に認識することです。
MSChartだと綺麗に表示できなかったり、プロット数が多く
なると時間がかかってしまい困っています。
0189デフォルトの名無しさん
2007/02/18(日) 17:18:170190デフォルトの名無しさん
2007/02/18(日) 20:12:57クラスごとAddするとクラス内の値は変更できる
なんで?
クラスのアドレスを参照してるから?
0191デフォルトの名無しさん
2007/02/18(日) 20:29:470192180
2007/02/18(日) 20:42:12作り方が全く分かりません・・・
どなたか作り方分かる人いませんか?
例えば残り30分からスタートしてゲージが段々減っていくような
感じのものを作りたいんですが
0193デフォルトの名無しさん
2007/02/18(日) 21:58:16値を変更出来ないのは、クラスの場合も一緒でしょ。
クラスを格納しても、コレクションにとっての値であるクラスそのものを
別のクラスに変更することは出来ず、ただ割り当てたキーでそのクラスを返すだけ。
そして返されたクラスは、クラスとして当たり前の操作が出来る。
グローバルなモジュールレベル変数やLetプロパティを用意していれば、
当たり前にその値の変更が出来る。ただそれだけのこと。
0194デフォルトの名無しさん
2007/02/18(日) 22:22:10>クラスのアドレスを参照してるから?
それで正解。
コレクションが保持してるのはクラスのインスタンスアドレスであって
メンバ変数の値を保持してる訳ではない。
だからAdd元のクラスのメンバ変数の値を変更すると
コレクションからとり出したクラスも同じアドレスを参照しているので
メンバ変数の値が変更されたように見える。
0195デフォルトの名無しさん
2007/02/18(日) 23:31:29そのゲームにあるような滑らかなゲージが欲しいなら
ピクチャーボックスを配置してLineメソッドでお絵かきしましょう
0196180
2007/02/18(日) 23:49:12中のソースはどのようにすればいいんですか?
VB初めてまだ数日で基礎の基礎もよく分かってない
状態なんで、ホントすいません・・・
0197デフォルトの名無しさん
2007/02/19(月) 00:01:07プログラマってのは、初心者であっても自分でコードを書く奴のことで
間違っても物乞いソース収集屋のことじゃないぞ
0198デフォルトの名無しさん
2007/02/19(月) 00:08:02初めにフォームとピクチャーボックスのScaleModeをピクセルにしておく
座標X=0、Y=0から座標X=10、Y=10を対角線とする長方形を黒で中身を塗りつぶして描く
Picture1.Line (0, 0)-(10, 10), vbBlack, BF
あとはMSDN見て頑張って
0199デフォルトの名無しさん
2007/02/19(月) 00:19:58これから沈んでく泥舟なんだぞw
0200デフォルトの名無しさん
2007/02/19(月) 00:42:470201デフォルトの名無しさん
2007/02/19(月) 05:19:25つうかいまさら6.0憶えてどーするんだよw
0202デフォルトの名無しさん
2007/02/19(月) 09:05:280203デフォルトの名無しさん
2007/02/19(月) 09:11:020204デフォルトの名無しさん
2007/02/19(月) 09:12:32m9(^Д^)プギャー
0205190
2007/02/19(月) 09:19:40ありがとうございます。勉強になりました。
(質問の日本語が変でスイマセン。)
やはりコレクションでAddするのはクラスのアドレスだけで、
クラスメンバは別なんですね。
昔から気になってたので、一つ謎が解けました。ありがとう
0206デフォルトの名無しさん
2007/02/19(月) 09:34:560207デフォルトの名無しさん
2007/02/19(月) 16:48:38RichTextボックスに
Call RichTextBox.OLEObjects.Add(, , App.Path & "\pic.bmp")
でビットマップを貼り付けると、裏でmspaint.exeが起動しちゃうんですけど、、、
mspaint.exeの起動を抑制する方法ってあります???
0209デフォルトの名無しさん
2007/02/19(月) 20:58:56別のオブジェクト(IE)とかを貼り付けたらどうだろう?
うろ覚えですまん。
0210デフォルトの名無しさん
2007/02/19(月) 21:03:02ObjPtr
StrPtr
VarPtr
今時VB使うならこの辺は必須だろ
0211デフォルトの名無しさん
2007/02/19(月) 21:09:43俺なら自分でそういうクラスを作るね。
内部実装がブラックボックスのVBでそんなもん怖くて使えるかよ。
これがまともなPGの感覚だと思うけど
0212デフォルトの名無しさん
2007/02/19(月) 21:17:08どこかのサイトで「バイナリを開いたらユーザー名がわかる」っていうのを見た気がするんですが、
自分で開くとプロジェクト名やモジュールは見つかりましたが、ユーザー名はのってませんでした。
アプリ公開するなら、再インストールしてユーザー名変えてからのほうがいいですか?
ネイティブコンパイルなら大丈夫ですか・・?
0213デフォルトの名無しさん
2007/02/19(月) 21:34:350214デフォルトの名無しさん
2007/02/19(月) 21:43:12アプリがずっと後まで残ることを考えたら、やっぱり恥ずかしいのもありますし。
友人ならいいけど、知らないところで詩子の名前が調べられて広まったらやっぱり嫌なので。。。
0215デフォルトの名無しさん
2007/02/19(月) 22:49:560216デフォルトの名無しさん
2007/02/19(月) 23:04:22と持ってないのにカキコ
0217デフォルトの名無しさん
2007/02/20(火) 00:36:34たしか昔は盛んに使ってたと思うんだが
とりあえず今時は資料が無くて怖いな
ちなみにVBの公開オブジェクトの内部実装はCOMです
0218デフォルトの名無しさん
2007/02/20(火) 09:23:59そんなの使うぐらいなら、VB使わない。w
0219デフォルトの名無しさん
2007/02/20(火) 10:00:140220デフォルトの名無しさん
2007/02/20(火) 10:55:00VBに拘ることの視野の狭さ?使えるアンドキュメント関数を使わない視野の狭さ?
0221デフォルトの名無しさん
2007/02/20(火) 14:07:49たぶん2つしか挙げられないこと。
0222デフォルトの名無しさん
2007/02/20(火) 14:16:56( ̄ー ̄)ニヤリ
0223デフォルトの名無しさん
2007/02/21(水) 03:28:06Visual Basic 6.0のバグで、msvbvm60.dllの修正が出る。
0224デフォルトの名無しさん
2007/02/21(水) 17:21:55タイプライブラリ名からGUIDを取得するにはどうすればいいでしょうか?
0225デフォルトの名無しさん
2007/02/21(水) 19:45:236.0で質問なんだが、プログラム実行中にテキストを打ち込むとき
Enterを押して改行できるようにする方法ってあるのか?
multilineをTrueにすると文章が行の端まで打ったら
自動的に改行はできるんだが
0226デフォルトの名無しさん
2007/02/21(水) 21:22:480227デフォルトの名無しさん
2007/02/21(水) 21:27:120228デフォルトの名無しさん
2007/02/21(水) 23:32:00ならエンターで改行されると思う。
KeyPressでなんかやってなければ。
Tabの話じゃないよな?
VB6のプロ・グラマーに質問なんだが
一定時間処理をとめたいときってタイマー使ってますか?
Sleepだと全体がとまるし、DoEventsループだと、CPU処理が99%になるから使わんほうがいいよな
(見た目だけだが)
やっぱタイマーしかないんだろうか
0229デフォルトの名無しさん
2007/02/21(水) 23:44:06普通止まったように見せてるだけだし。。。
実際に止めたらそりゃ返ってこないよ
0230デフォルトの名無しさん
2007/02/21(水) 23:56:380231デフォルトの名無しさん
2007/02/22(木) 00:36:53Public cB As clsB
■clsB
Public cA As clsA
■modS
Dim cA = new clsA
Dim cB = new clsB
set clsA.cB = cB
set clsA.cB.cA = cA
↓
cA.cB.cA.cB.cA.cB…
暇だし誰か共同でアプリ作ろうぜ
0232デフォルトの名無しさん
2007/02/22(木) 00:44:00>>230
プロプログラマー?
0233デフォルトの名無しさん
2007/02/22(木) 07:05:39厨房乙
0234デフォルトの名無しさん
2007/02/22(木) 09:13:18現在プログラム実行時に以下のエラーが発生して困っています。
エラー内容
実行時エラー'429'
ActiveXコンポーネントはオブジェクトを作成できません。
コード
Dim fso as New FileSystemObject
fso.FileExists("a.txt") '←ここでエラー発生
環境
OS:Windows XP Professional SP2
Visual Studio 6.0 SP6
ぐぐったり、ランタイムの再インストールなどしてみましたが
解決できませんでした。解決方法になりそうなことなど、わかる
方いましたらお願いしますm(_ _)m
0235デフォルトの名無しさん
2007/02/22(木) 09:53:57つhttp://support.microsoft.com/kb/247979/
0236234
2007/02/22(木) 13:40:18反応遅くてすみません。
ありがとうございます!解決しました!!
サポートオンラインも探してはいたんですけど
探し方が悪かったみたいです。助かりましたm(_ _)m
0237225
2007/02/22(木) 18:51:55もう一つ質問で、タイプ中にある時間が来たら
突然違う画面に変わるっていう構造になってるんだけど
その切り替わった瞬間に今まで打ち込んでた文章等が記録されて
実行を停止したあともそのタイプした内容を保存して確認すること
ができるような仕組みって作ることできる?
0238デフォルトの名無しさん
2007/02/22(木) 20:47:53rtf、xmlとかでもいいし、短文ならiniやレジストリに吐いても良いと思う
0239デフォルトの名無しさん
2007/02/22(木) 23:24:34どなたか方法ご存知な方いませんか?
これって拡張シェルになるのでしょうか…
0240デフォルトの名無しさん
2007/02/22(木) 23:32:12情報隠さないで、具体的に何の何処をどうしたいのか書こうよ
0241239
2007/02/23(金) 00:02:12VBアプリを常駐しておいて、他のアプリでタイトルバーを右クリックしたときでるポップアップメニューに機能追加したいんです。
「このウインドウを指定の位置に移動」とか「ウインドウを印刷」を表示して、選択したイベントをVBアプリで処理させたい。
・他アプリのポップアップに無理やり項目を追加する
・追加した項目を選択したらVBにイベントを発生させ、その処理を実行
「VB ポップアップメニュー フック」などで検索してみたんですが、他のメニューに項目追加する方法がみつかりませんでした…
WinRARなどの圧縮アプリだと、ファイルを右クリックしたときに「圧縮する」などのメニューが表示されますが
これと同じことが出来たらいいなと思っています。
判りにくかったらごめんなさい。
このサイトが勉強になるなどでも良いので、わかる方がいたらぜひ。
0242デフォルトの名無しさん
2007/02/23(金) 00:03:07別のマシン(WINXP SP1)に\Packageフォルダごとコピーして、\Package 下のsetup.exe で
インストールしよとすると、インストール途中でエラーが発生します。
どうすれば解決できるでしょうか?
インストール時のエラーメッセージは
"ファイルC:\WINDOWS\system32\DATAFORM.OCXの登録中にエラーが発生しました。"
です
0243デフォルトの名無しさん
2007/02/23(金) 00:36:19ファイルの右クリックメニューはレジストリ依存。君がやろうとしてる事とは全く別物。
「システムメニュー 拡張」とかでググってみろ。自身のシステムメニューを拡張する方法から
他のアプリのメニューを弄る方法まで、いろいろ解説やらサンプルやらが転がってる。
これで解らなければ君には無理って事だ。諦めろ。
0244239
2007/02/23(金) 00:39:40たとえばWinRARとかブラウザのメニューなんかは、その時点でアプリが起動してるわけではないので
動き的に違うのはわかってたんですが、やりたいことのイメージとしてそれくらいしかわからなかったので…
ありがとうございます。これから検索して調べてみます。
0245デフォルトの名無しさん
2007/02/23(金) 05:11:42ご存じの方、いらっしゃいませんか?
今は、ボタンをクリックしたら、
Dim ShellApp As Object
Dim oFolder As Object
Set ShellApp = CreateObject("Shell.Application")
Set oFolder = ShellApp.BrowseForFolder(0, "フォルダを選択してください。", &H10&)
として、oFolder.items.Item.Path からフォルダのパスを得ています。
ボタンをEnableにしたままだと、何個も表示されるので困っています。
フラグ等を用いる方法も考えましたが、ダイアログがモーダルなのが一番よいと思いまして
書き込みました。
0246デフォルトの名無しさん
2007/02/23(金) 07:44:46Shell.ApplicationではなくWin32APIの方を使おうよ
0247デフォルトの名無しさん
2007/02/23(金) 13:02:55そのIDがあれば結果を表示して該当データがなければメッセージボックスを表示させるんですけど
SQL文を実行して成功したら表示or失敗したらメッセージボックスの部分がわかりません
0248デフォルトの名無しさん
2007/02/23(金) 13:18:52そうですか
0249デフォルトの名無しさん
2007/02/23(金) 13:19:370250デフォルトの名無しさん
2007/02/23(金) 13:27:350251デフォルトの名無しさん
2007/02/23(金) 13:30:010252デフォルトの名無しさん
2007/02/23(金) 14:03:58それに件数0の場合とテーブルないときの失敗じゃ処理違うし
0253デフォルトの名無しさん
2007/02/23(金) 14:45:55IFで分岐させればいいじゃない
0254デフォルトの名無しさん
2007/02/23(金) 15:44:33存在チェックをしたいのですが、直接存在チェックを行う方法はあるでしょうか?
関数があるとは思うのですが見つけられないのです。
下記の処理ではローカルマシンに登録されているプリンタが多いとき困るのですが、
ネットで探してもこの方法しか見つけれません。
For Each objprinter In Printers
If gstrPrinter = objprinter.DeviceName Then
blnRet = True
Exit For
End If
Next
この方法以外でありましたら、よろしくお願いします。
0255デフォルトの名無しさん
2007/02/23(金) 15:49:23存在しない。でいいんじゃない?
0256254
2007/02/23(金) 16:10:48SetDefaultPrinter()は通常使うプリンタを取得する関数ですよね。
ただ、今回の処理はどのプリンタを使うかを
テキストファイルより読み込んだ文字列にて決めさせるので、
SetDefaultPrinter()ではだめなのです。
常駐プログラムの中で
プリンタの存在チェック○→ファイルの印刷→ファイルを削除
プリンタの存在チェック×→ファイルを移動(退避)
という処理を行いたいのです。
よろしくお願いします。
0257デフォルトの名無しさん
2007/02/23(金) 16:17:42サンプルどおりで良し
0258デフォルトの名無しさん
2007/02/23(金) 16:31:53SetDefaultPrinter()は通常使うプリンタを取得、ではなくてセットする関数です。
0259254
2007/02/23(金) 16:45:26ありがとうございます。
通常使うプリンタを変更するのは上手くないとのことで、
どちらにしろ使いたくないです。
>>254
間違えて読んでましたすみません。
>>256
結局今のままで行うことにしました。
ありがとうございました。
0260デフォルトの名無しさん
2007/02/23(金) 17:27:010261デフォルトの名無しさん
2007/02/23(金) 23:54:39インストールされるわけですが、そのセットアップ時、アプリケーションユーザが任意に指定するインストール領域を、
アプリケーション側で環境変数として取り込むのはどうすればいいですか?
つまりは、VB6のディストリビューションウィザードで作成されるセットアップ(SETUP.EXE等)は、
環境変数やレジストリキーを、VBアプリケーションにパラメーターとして渡すための「約束ごと」を、
どこで説明てるかどうかということもあるんですが。
0262デフォルトの名無しさん
2007/02/24(土) 00:15:53少しは文章を推敲しようよ。
エスパーでもお手上げだよ、そんな文章w
0263デフォルトの名無しさん
2007/02/24(土) 00:18:540264デフォルトの名無しさん
2007/02/24(土) 00:23:40App.Path(予約語)をstring変数に代入すればいいってことですね。
それにしても、なんで"App.Path"で検索してもVBヘルプ(MSDN)で出てこないのか?
こんな環境変数の予約語すら、ヘルプのキーワードで検索できないって・・・・・
呆れるね。やっぱ、マイク?ソフト
0265デフォルトの名無しさん
2007/02/24(土) 00:38:03偉そうな口を利く能無しどもの棲家が多いって聞いてるが、ここもその一つだということは理解できた。
1、>VB6のディストリビューションウィザードでパッケージ化されたアプリケーションは
この日本語とMSの用語が理解できないなら、VB6.0の説明なんかできっこないでしょうが。
2、>セットアップ(SETUP.EXE等)でインストールされるわけですが
同上
3、>そのセットアップ時、アプリケーションユーザが任意に指定するインストール領域を、
同上、これが理解できなら、VB6.0でパッケージされたアプリケーションをセットアップのテストしたこともない
のにいっぱしの「VB説明能力を持ってる。」なんて偉ぶってるだけ。
4、>アプリケーション側で環境変数として取り込むのはどうすればいいですか?
1に、同じ
これが理解できないということは、VBとかのローカル言語以前の問題で、
システム開発そのものをしたことがないっていうこと。
>つまりは、VB6のディストリビューションウィザードで作成されるセットアップ(SETUP.EXE等)は、
>環境変数やレジストリキーを、VBアプリケーションにパラメーターとして渡すための「約束ごと」を、
>どこで説明てるかどうかということもあるんですが。
1に同じ
0266デフォルトの名無しさん
2007/02/24(土) 00:50:01ま、こういう人になに言ってもムダだろうけどね。
0267デフォルトの名無しさん
2007/02/24(土) 03:31:50「初夜はどうでした!?」なんてお下品な質問をされ、なんとも言えない、
いや〜な気分で飛行機に乗った」まで読んだ。
0268デフォルトの名無しさん
2007/02/24(土) 06:18:56君の言うことは正論なんだが
悲しいかなこのスレにいるカスの心には届かんよw
0269デフォルトの名無しさん
2007/02/24(土) 06:50:240270デフォルトの名無しさん
2007/02/24(土) 08:54:09お母さんがここに来たら駄目だって教えてあげたでしょ!
病院の先生も心配してます!もう、帰りますよ!
皆さん、うちの>>265がご迷惑をおかけしまして、すみません。J('A` )し
0271デフォルトの名無しさん
2007/02/24(土) 10:11:17PathとかAppとかで探せばMSDNで出てくる気がする
0272デフォルトの名無しさん
2007/02/24(土) 10:28:03そっとしておいてやれよ。
これ以上弄るのは余りに哀れすぎる。
0273デフォルトの名無しさん
2007/02/24(土) 15:43:07If State2 = icResponseCompleted Then
GetData = Inet2.GetChunk(2048, icString)
Soucetext2 = Soucetext2 & GetData
Do While GetData = ""
GetData = Inet2.GetChunk(2048, icString)
Soucetext2 = Soucetext2 & GetData
Loop
End If
0274デフォルトの名無しさん
2007/02/24(土) 16:08:56■ このスレッドは過去ログ倉庫に格納されています