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

※「まず自分で調べる」クセを身につけよう。
0116デフォルトの名無しさん2007/02/12(月) 15:40:25
>>115
その文章では君が何をしたいのか、誰にも伝わらないと思う。
0117デフォルトの名無しさん2007/02/12(月) 15:51:03
>>115
CDateはロケール依存だから、
ロケールに依存せず解釈してくれる
日付リテラルである#(Month)/(Day)/(Year)#を使うか、
ロケールに準じた日付リテラルを使うしかない。
0118デフォルトの名無しさん2007/02/12(月) 15:51:54
>>115
つか、そもそも自作関数で取り回しているなら、
その方向性を維持した方が幸せになれる。
0119デフォルトの名無しさん2007/02/12(月) 16:00:03
人につたわる文章書けない人もアレだが、
サッパリわからん文章を自分の頭で勝手に補完して回答する奴はもっとオカシイと思う
0120デフォルトの名無しさん2007/02/12(月) 17:50:35
質問者がおバカなのはしょうがないが、回答者がバカなのはちょっとな。
0121デフォルトの名無しさん2007/02/12(月) 18:21:17
>>119
サッパリわかってないのは全体の数パーセントという落ちだよコレは
0122デフォルトの名無しさん2007/02/12(月) 18:49:48
>>1
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。

って書くやつ最近見ないな
そういってるやつに限って変な回答してそう
0123デフォルトの名無しさん2007/02/12(月) 20:54:17
こんばんわ

csvファイルのA、B、C、D、E、F、G列の各最大値、最小値、平均値を
抜き出して新しいcsvファイルに
A列の最大値、最小値、平均値、B列の最大値、最小値、平均値、C列の最大値、最小値、平均値、D列の・・・・・・
というように書き出したいのですが、どうすればいいでしょうか?

よろしくお願いします
0124デフォルトの名無しさん2007/02/12(月) 22:15:12
どんな回答を期待してるのか知らないけど、
別に煽りじゃなく、それを実現するコードを書く、としか言いようがないと思うけど。
01251232007/02/12(月) 22:20:48
すいません。
最大値、最小値、平均値の求め方が聞きたかったのですが・・・
どうすればいいのでしょうか?
0126デフォルトの名無しさん2007/02/12(月) 22:36:12
最大、最小、平均を求めればいいんじゃね?中学校ぐらいで習うと思うんだけど。
で、その「自分でやったこと」を「コンピュータにやらせる」ことを考えてみれば?
0127デフォルトの名無しさん2007/02/12(月) 22:46:32
いや、たぶん小学校の内容だと思うw
少なくとも小学6年生の俺は間違いなく平均値の出し方知ってたw
01281232007/02/12(月) 22:51:14
200桁近くあるからどうやって簡単に出そうかとかと思ってきいたのですけど・・・
そこまで簡単に言うのならソース書いてくれないですかね?
0129デフォルトの名無しさん2007/02/12(月) 23:18:01
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0130デフォルトの名無しさん2007/02/12(月) 23:22:38
                             |
                             |
      ∩___∩             |
      | ノ  _,  ,_ ヽ        ((  | プラプラ
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)   J  ))
    彡、   |∪|  ノ
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ

0131デフォルトの名無しさん2007/02/12(月) 23:41:13
釣りじゃないんですけど・・・
誰かお願いします。
0132デフォルトの名無しさん2007/02/12(月) 23:45:22
>131
>126
0133Hough2007/02/13(火) 00:59:32
誰か直線検出か円検出プログラムわかるかた教えてください。
0134デフォルトの名無しさん2007/02/13(火) 02:02:32
直線なら微分使えばいいんじゃねぇ?
0135デフォルトの名無しさん2007/02/13(火) 05:49:51
円なら財布を覗けばいいんじゃねぇ?
0136デフォルトの名無しさん2007/02/13(火) 11:04:18
他の直線検出にはハフ変換と言うものもある
0137デフォルトの名無しさん2007/02/14(水) 01:02:09
世の中おかしな奴が多いから困る。
0138デフォルトの名無しさん2007/02/14(水) 14:18:54
VB初心者でもうしわけないですが、質問させてください。

VB6でCollectionを使っているのですが、関数の戻り値として複数のCollectin値を
受け取るにはどのようにしたらよいのでしょう。
一つだけなら出来るんですが、二つ以上の書き方がわからなくて困ってます。
ぐぐってはみたのですが、思うようなサンプル等も見あたら無くって。
0139デフォルトの名無しさん2007/02/14(水) 14:28:25
質問させてください。

現在VB6.0+Accessで開発しているのですが。

VBで名前を入力すると自動的にふりがなも入力されるような処理を実現しようとしてるのですが、うまくいかなく困っています。

Accessのふりがな機能を使ってみたのですが、VB側から書き込むとふりがなが入りませんでした。

わかる方がいらっしゃったらお願いします。
0140デフォルトの名無しさん2007/02/14(水) 14:28:44
>>138
CollectionのItemにコレクションをAddするとか
Private Hoge() AS Collection()
という配列の関数にするとか。

漏れは前者がお勧め。
0141デフォルトの名無しさん2007/02/14(水) 14:36:37
>>140
Collectionの値をCollectionにするんですか。
なるほど、ありがとうございます。さっそくやってみます。感謝!
0142デフォルトの名無しさん2007/02/14(水) 14:48:41
>>140
出来ました。
ありがとうございました。
0143デフォルトの名無しさん2007/02/14(水) 14:53:25
>>141
ん〜・・・、入れたいデータの種類や数が決まってるのなら、
Collectionなんかにするより専用のクラス作ったほうが
処理も早いし、消費メモリーも少なくて済むし
コードの分かりやすさ的にも優れてるんじゃないだろうか
クラスの作り方わかんねってんならPublicで使いたいデータ分、変数宣言しとけということで
0144デフォルトの名無しさん2007/02/14(水) 15:03:21
>>143
まだクラスにまでたどり着けない初心者です><
最初はtypeで宣言してたんですけど、削除や挿入がめんどうで。。。
おいおい勉強しますorz
0145デフォルトの名無しさん2007/02/14(水) 15:54:11
>>143
ちょっと古畑のかほりがしたw
0146デフォルトの名無しさん2007/02/14(水) 23:19:06
>>145
ん〜 だけじゃねぇかw
0147デフォルトの名無しさん2007/02/15(木) 17:43:38
inetコントロールを使ってFTP鯖上のファイルを削除したいのですが、削除コマンド
は何を入れたらいいのですか?
0148デフォルトの名無しさん2007/02/15(木) 19:47:36
質問させてください
例えば
携帯
充電
二つの項目があり現状はどちらか一方しか選べないんですがこれを
CTRLキーを押して二つ選択したいのですがどうしたらいいのかわかりません
どなたかわかる方いらっしゃいましたら教えていただけますか
お願いします
0149C ◆wG1CV58ydQ 2007/02/15(木) 20:04:07
int型変数にCTRL指定すればいいんだよ。
例: float CTRL;

このように。
0150デフォルトの名無しさん2007/02/15(木) 20:56:16
win2000上で、VB4のコードをVB6に移植中です。

Declare Function JChrType% Lib "QPRO300.DLL" (Source$, ByVal X%)

このように宣言してあるJChrTypeを呼ぼうとするとQPRO300.DLLが見つかりませんと
エラーメッセージがでます。
QPRO300.DLLはc:\winnt\systemの下にあって、VB4のほうでは問題なく動いています。

・QPRO300.DLLをsystem32にコピーする。
・QPRO300.DLLをカレントディレクトリ(vbpファイルのあるディレクトリ)にコピーする
・Declare Function JChrType% Lib "c:\winnt\system\QPRO300.DLL"
(Source$, ByVal X%)
 とフルパスで指定する
・Declare Function JChrType% Lib "QPRO300" (Source$, ByVal X%)
 と.DLLをとる

と試してみましたが、どれもダメでした。
どうすればVB6がDLLを見つけられるようにできますか?
0151デフォルトの名無しさん2007/02/15(木) 22:44:42
よく分からんけど16ビットDLLなんじゃね?
0152デフォルトの名無しさん2007/02/15(木) 22:51:08
>>151
そうかもしれませんけど、エラーメッセージが「みつかりません」だから、
文字通り見つからないのかな、と。
やっぱり16bitDLLだから読めない→見えない→見つからないってことでしょうかね。
0153デフォルトの名無しさん2007/02/16(金) 11:22:49
とあるデーターベースの中に100人の名前と住所が入っています。
その中から名前に”東”が付く人の名前だけを、
自動的にVBで作ったラベルに、アイウエオ順に入れていかなければなりません。
(ラベルは100個作ってあります)

どのような方法がありますか?
0154デフォルトの名無しさん2007/02/16(金) 12:21:43
宿題か?VB以前にロジックの問題だろ
0155デフォルトの名無しさん2007/02/16(金) 12:33:50
dim wstrsql as string
dim wrstwrk as Recordset

wstrsql = "SELECT * FROM MSTJUSYO WHERE NAME = '" & 東 & "'"
Set wrstwrk = gConnDB.OpenRecordset(wstrsql, dbOpenDynaset)

こんな感じでデーターベースにアクセスするんだと思います。
この続きが分からなくて・・・
お願いします。
0156デフォルトの名無しさん2007/02/16(金) 12:58:57
>>155

おまww
ttp://www.accessclub.jp/dao/index.html
コレでも見て来い
0157デフォルトの名無しさん2007/02/16(金) 13:28:11
>>156
ありがとう
すんげー助かりました
0158デフォルトの名無しさん2007/02/16(金) 13:28:14
Sub func()
Dim obj As Class
Set obj = New Class
If obj <> Null Then
Debug.Print "success!!!"
End If
End Sub
こんな感じのことがやりたいんだけど、Newに失敗したのはどうやって検出すればいいのでしょうか?
obj <> Nullのところでエラーが出ます。
0159デフォルトの名無しさん2007/02/16(金) 15:24:39
NULLじゃなくってNothingじゃねぇのか?wwwww
0160デフォルトの名無しさん2007/02/16(金) 16:37:58
>>159
サンクスコ
0161デフォルトの名無しさん2007/02/16(金) 18:26:37
VB6.0です。
オプションボタンをグラフィックにして使っているのですが、
ダイアログの大きさを変えたときに(最大、最小化含む)
ほんの少し、一番下の影の部分だけ再描画されていないのか、
黒い点などが表示されてしまいます。
デスクトップの壁紙が青かったりすると
青いスジが出たりします。
これを解決する方法はありませんでしょうか。

Resizeの最後でオプションボタンすべてをRefreshしましたがだめでした。
0162デフォルトの名無しさん2007/02/16(金) 18:36:18
>>161
他のハードウェア構成のPCでも同じ事が起こるかチェックしました?
0163デフォルトの名無しさん2007/02/16(金) 18:50:15
>162
していません。確認してみます。
01641612007/02/16(金) 19:32:09
なんだか良くわからないけど、解決しました・・・
一応、他のPCでも同じ状況は起こりました。
ちょっと前のバージョンではこの現象がみられなかったので
相違点を洗い出しながらチェックしました。

オプションボタンの位置をResizeで可変にしてあって、
オプションボタンのTopの計算をいじったら直りました・・・
なんでだろう・・・

とりあえずありがとうございました・・・
0165デフォルトの名無しさん2007/02/16(金) 23:42:45
フォームの読込や表示を制御する方法で、
Loadの逆はUnload、Visible = Trueの逆はVisible = Falseですが
ではShowの反対は何ですか
0166デフォルトの名無しさん2007/02/16(金) 23:59:15
なんか佐野量子の「動物にたとえると、何ですか?」を彷彿とさせるアホ質問だな
0167デフォルトの名無しさん2007/02/16(金) 23:59:34
かっこいい俺様が教えてやる
Hide
0168デフォルトの名無しさん2007/02/17(土) 00:00:04
素でヒデになった。
カッコワルス。
0169デフォルトの名無しさん2007/02/17(土) 00:06:22
罵倒するしか能のないアホ、カッコワルス。
0170デフォルトの名無しさん2007/02/17(土) 00:07:57
質問あれば書き込め。
俺様が見ている間なら即座に返答をやろう
0171デフォルトの名無しさん2007/02/17(土) 00:19:05
っていうか、だいたいフォームのメソッドなんて数が知れてるだろ。
MSDNライブラリで全部みても5分かからないよw
っていうか、メソッドのリスト見るだけでも語感で普通わかる。
0172デフォルトの名無しさん2007/02/17(土) 00:21:58
MSDNライブラリを全部見ようと思ってら数日はかかると思うが・・
0173デフォルトの名無しさん2007/02/17(土) 00:24:32
なんていうか、ダメな奴っていうのは本当なにやらせてもセンスなくてダメなんだね。
プログラミングどころか、日本語の読解能力ももとるなんて、他人ながら哀れだよ
>>172
0174デフォルトの名無しさん2007/02/17(土) 00:32:29
はいはい哀れ哀れ
ここに来る方は感性の優れたエリート達ですか?
あなたが他人に伝わるように書けばいいだけの話さ。
0175デフォルトの名無しさん2007/02/17(土) 00:35:54
VB厨専用スレだからね。
回答するのもVB厨、たかが知れてる。俺を除いてな。
0176デフォルトの名無しさん2007/02/17(土) 00:45:16
自演飽きてきた。
結局質問なしか
0177デフォルトの名無しさん2007/02/17(土) 11:58:51
http://r_akky.at.infoseek.co.jp/mental.html

このゲームにあるような制限時間のバーのようなものを作りたいんですが
分かる人いますか?

あとデジタルタイマーみたいな
20:00から段々減ってくようなタイマーの作り方も分かる人いたら
教えて下さい
01781772007/02/17(土) 11:59:43
すいませんVB6.0です
よろしくお願いします
0179デフォルトの名無しさん2007/02/17(土) 12:10:09
>>177
>制限時間のバー
プログレッシブバーでググれ

>20:00
タイマー貼って値を-1していく
20:00→19:59
19:59→19:57
…
19:00→18:59
となるようなロジックつくればおk
0180デフォルトの名無しさん2007/02/17(土) 12:20:46
VBの実行画面に文字をタイプしていけるような画面って
作れるの?
やり方分かる人いたら教えて
0181デフォルトの名無しさん2007/02/17(土) 12:22:25
>>180
KeyPreviewプロパティ
KeyPressイベント
01821802007/02/17(土) 12:26:40
ありがとう

画面を左右に分けて
左側にタイプさせたい文字を表示
右側にそれをタイプさせていき、打ち間違えがあったら
そこが検出できるようなものを作りたいんですが
そのようなものの作り方はわかりますか?
0183デフォルトの名無しさん2007/02/17(土) 12:31:47
それは自分で考えるしか。
コントロールの使い方がわからないとかなら説明するが
プログラミングの醍醐味であるコードを俺がかいてもしょうがないし。

ヒント?
テキストボックスに入力させて、入力時にChangeイベントを発生させるとか
KeyPressイベントで文字一致を確認させるとか
方法はたくさんある
01841802007/02/17(土) 12:37:23
ありがとう

試行錯誤しながら考えてみます
0185デフォルトの名無しさん2007/02/17(土) 13:13:15
>>173
>読解能力ももとるなんて
「おとる」のtypoなのか、「もとる」の誤用なのか
気になって夜も眠れません。
0186デフォルトの名無しさん2007/02/17(土) 13:15:01
読解能力も桃取るなんて
0187デフォルトの名無しさん2007/02/17(土) 14:39:46
もももすももももものうちすもももももももものうち
0188デフォルトの名無しさん2007/02/18(日) 17:03:31
こんにちは、質問があります。
VB6.0で3Dグラフを描画するのに適した
フリーのコンポーネントって何がありますか?

目的としては、縦100点×横100点前後の微妙にデコボコしている
矩形の素材を、立体的に表示し視覚的に認識することです。
MSChartだと綺麗に表示できなかったり、プロット数が多く
なると時間がかかってしまい困っています。

0189デフォルトの名無しさん2007/02/18(日) 17:18:17
VBのフリーのコンポーネントなんてまず見たことない
0190デフォルトの名無しさん2007/02/18(日) 20:12:57
コレクションに入れた値は変更できないけど
クラスごとAddするとクラス内の値は変更できる
なんで?
クラスのアドレスを参照してるから?
0191デフォルトの名無しさん2007/02/18(日) 20:29:47
日本語でオッケって書かれるぞw
01921802007/02/18(日) 20:42:12
色々調べたり考えたりしたんだけどプログレッシブバーの
作り方が全く分かりません・・・
どなたか作り方分かる人いませんか?

例えば残り30分からスタートしてゲージが段々減っていくような
感じのものを作りたいんですが
0193デフォルトの名無しさん2007/02/18(日) 21:58:16
>>190
値を変更出来ないのは、クラスの場合も一緒でしょ。
クラスを格納しても、コレクションにとっての値であるクラスそのものを
別のクラスに変更することは出来ず、ただ割り当てたキーでそのクラスを返すだけ。
そして返されたクラスは、クラスとして当たり前の操作が出来る。
グローバルなモジュールレベル変数やLetプロパティを用意していれば、
当たり前にその値の変更が出来る。ただそれだけのこと。
0194デフォルトの名無しさん2007/02/18(日) 22:22:10
>>190
>クラスのアドレスを参照してるから?
それで正解。
コレクションが保持してるのはクラスのインスタンスアドレスであって
メンバ変数の値を保持してる訳ではない。
だからAdd元のクラスのメンバ変数の値を変更すると
コレクションからとり出したクラスも同じアドレスを参照しているので
メンバ変数の値が変更されたように見える。
0195デフォルトの名無しさん2007/02/18(日) 23:31:29
>>192
そのゲームにあるような滑らかなゲージが欲しいなら
ピクチャーボックスを配置してLineメソッドでお絵かきしましょう
01961802007/02/18(日) 23:49:12
>>195
中のソースはどのようにすればいいんですか?
VB初めてまだ数日で基礎の基礎もよく分かってない
状態なんで、ホントすいません・・・
0197デフォルトの名無しさん2007/02/19(月) 00:01:07
ソースねだる奴はプログラムなんて組もうとするな
プログラマってのは、初心者であっても自分でコードを書く奴のことで
間違っても物乞いソース収集屋のことじゃないぞ
0198デフォルトの名無しさん2007/02/19(月) 00:08:02
>>196
初めにフォームとピクチャーボックスの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
っていうか、今からVB初めてどうすんのw
これから沈んでく泥舟なんだぞw
0200デフォルトの名無しさん2007/02/19(月) 00:42:47
視野が狭いな
0201デフォルトの名無しさん2007/02/19(月) 05:19:25
VBは泥船に間違いない
つうかいまさら6.0憶えてどーするんだよw
0202デフォルトの名無しさん2007/02/19(月) 09:05:28
泥船でもなんでもいいから、チラシの裏に留めとけ。
0203デフォルトの名無しさん2007/02/19(月) 09:11:02
ヒソヒソ (^ω^)(^ω^)(^ω^) だぉ
0204デフォルトの名無しさん2007/02/19(月) 09:12:32
>>201
m9(^Д^)プギャー
02051902007/02/19(月) 09:19:40
>>192,193
ありがとうございます。勉強になりました。
(質問の日本語が変でスイマセン。)
やはりコレクションでAddするのはクラスのアドレスだけで、
クラスメンバは別なんですね。
昔から気になってたので、一つ謎が解けました。ありがとう
0206デフォルトの名無しさん2007/02/19(月) 09:34:56
つ objptr()
0207デフォルトの名無しさん2007/02/19(月) 16:48:38
VB6.0 SP6 / WinXPです。

RichTextボックスに
 
 Call RichTextBox.OLEObjects.Add(, , App.Path & "\pic.bmp")

でビットマップを貼り付けると、裏でmspaint.exeが起動しちゃうんですけど、、、
mspaint.exeの起動を抑制する方法ってあります???
02081902007/02/19(月) 20:44:40
>>206
そんな便利なものが。
VB6にポインタの概念はないもんだと思ってました。。
0209デフォルトの名無しさん2007/02/19(月) 20:58:56
>>207
別のオブジェクト(IE)とかを貼り付けたらどうだろう?
うろ覚えですまん。
0210デフォルトの名無しさん2007/02/19(月) 21:03:02
AdressOf
ObjPtr
StrPtr
VarPtr
今時VB使うならこの辺は必須だろ
0211デフォルトの名無しさん2007/02/19(月) 21:09:43
いやそんなもん使ってまでコレクションの中身更新するぐらいなら
俺なら自分でそういうクラスを作るね。

内部実装がブラックボックスのVBでそんなもん怖くて使えるかよ。
これがまともなPGの感覚だと思うけど
0212デフォルトの名無しさん2007/02/19(月) 21:17:08
すみません。VB6のユーザに本名で登録してます。
どこかのサイトで「バイナリを開いたらユーザー名がわかる」っていうのを見た気がするんですが、
自分で開くとプロジェクト名やモジュールは見つかりましたが、ユーザー名はのってませんでした。
アプリ公開するなら、再インストールしてユーザー名変えてからのほうがいいですか?
ネイティブコンパイルなら大丈夫ですか・・?
0213デフォルトの名無しさん2007/02/19(月) 21:34:35
作者として実名を公開してる人も居るわけだし、別にそのままでも構わないじゃん。
0214デフォルトの名無しさん2007/02/19(月) 21:43:12
それはそうだけど、やっぱりHNみたいなので通してるので本名がのると辛いって言うか…
アプリがずっと後まで残ることを考えたら、やっぱり恥ずかしいのもありますし。
友人ならいいけど、知らないところで詩子の名前が調べられて広まったらやっぱり嫌なので。。。
0215デフォルトの名無しさん2007/02/19(月) 22:49:56
それはアプリがある程度有名になってから心配する話では
■ このスレッドは過去ログ倉庫に格納されています