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

※「まず自分で調べる」クセを身につけよう。
0053デフォルトの名無しさん2007/02/04(日) 12:49:02
だからそんなものに誰も合意した覚えはないってw
0054デフォルトの名無しさん2007/02/04(日) 13:13:11
合意は関係無い
1は心得であり守るルールだ
従え
0055デフォルトの名無しさん2007/02/04(日) 13:20:31
別にお前さんが勝手に従うことまで止めはしない。
だが俺はやなこった
0056デフォルトの名無しさん2007/02/04(日) 14:00:09
そんなもん守る義理はないが、>51はどれにも当てはまらん。
単なるサジェスチョンでしょ?ちなみに>48については
お手軽な方法はない、自分で地道に実装するしかない、が回答。
0057482007/02/04(日) 14:13:34
ありがとうございます

9999万以上の数字を左から桁数とって億単位の場所に移すという形にしました。
0058デフォルトの名無しさん2007/02/04(日) 15:14:40
1兆を10000億と表示しそうだ。
0059IISがありません2007/02/04(日) 16:38:31
aspを使おうと思って、IISをインストールしようと思ったんですが、
おいらの「windows xp professional 再インストール用cd service pack 1a同封」というやつには、
iisが入っていません。
professionalなのにホントに入っていないんでしょうかね?それともおいらの探しかたがおかしいのでしょうか?
.net frameworkというのははいっています。
どなたか教えてくださいませ!!!
0060デフォルトの名無しさん2007/02/04(日) 16:42:47
激しくスレ違いだが、コントロールパネルのプログラムの追加と削除の
Windowsコンポーネントの追加と削除にIISの選択肢がある。
0061IISがありません2007/02/04(日) 16:47:41
いや、、、
それが、選択肢に無いんですよ。。。
なんで?????
再インストールcdだから?
ちなみにOSインストール済みのデルパソコンを買ったんですが。。。
激しくすれ違いなんですが、どこのスレに行けばいいのかもわからなくて。。。
0062デフォルトの名無しさん2007/02/04(日) 17:12:04
[コントロールパネル]→[プログラムの追加と削除]→[Windowsコンポーネントの追加と削除]→
[Windowsコンポーネントウィザード]のアクセサリとユーティリティの次にない?
あとマルチいくない。
0063デフォルトの名無しさん2007/02/04(日) 18:23:11
インストールされているのがProfessionalならデルに言えばどうか
0064IISがありません2007/02/04(日) 19:35:39
なんや、きみら、ぜんぜん役たたんなぁ。

>62
だからないっちゅってるやろ!!
0065デフォルトの名無しさん2007/02/04(日) 20:24:11
俺のプチ予言
>>52みたいな奴に限って、>>64みたいの絡みだす自分棚上げ野郎ぶりを発揮するんだよねw
0066デフォルトの名無しさん2007/02/04(日) 20:53:28
ひんと
 つ メアド
0067622007/02/05(月) 00:02:17
ただのマルチ野郎だと思う。少なくとも人に質問する態度ではないわな。
>64
デルのサポートに電凸が最善。向こうのスレでも同じ反応でしょ?
0068デフォルトの名無しさん2007/02/05(月) 10:53:53
質問です
テキストやラベルなどものすごい数がある場合
オブジェクト名ってどうされてますか?

すべて手直しして分かりやすいように変えてます?
0069デフォルトの名無しさん2007/02/05(月) 11:18:04
>>59
>>ttp://www.cisco.com/japanese/warp/public/3/jp/service/tac/788/AVVID/oem-guided-instal-util-j.html
0070デフォルトの名無しさん2007/02/05(月) 11:20:31
>>68
配列
0071デフォルトの名無しさん2007/02/05(月) 16:37:57
VBとは無料で手に入るものなのですか?
0072デフォルトの名無しさん2007/02/05(月) 16:38:41
>>70
ありがとうございます
勉強しなおしてできました
0073デフォルトの名無しさん2007/02/05(月) 16:44:54
>>71
君をひよっこマスターに認定。
0074デフォルトの名無しさん2007/02/05(月) 16:49:27
今、ものすごくほしいんです!
探して見つけては、なんどもDLしてるんですが・・
インストールがうまくいかなかったり・・とりあいず教えてください。!
0075デフォルトの名無しさん2007/02/05(月) 16:56:15
>>74
ダウンロード元のサイトに問い合わせてください
0076デフォルトの名無しさん2007/02/05(月) 17:01:18
>>75
はい。
0077デフォルトの名無しさん2007/02/05(月) 17:24:02
For k = 0 To 14
'ランダム値
wsrand = Int((70 - 51 + 1) * Rnd + 51)
MSGBOX("wsrand")
Next k

この場合ですが、ループしている間
同じ数値を出さない方法というのはありますでしょうか?
0078デフォルトの名無しさん2007/02/05(月) 17:26:44
なんだこれは
0079デフォルトの名無しさん2007/02/05(月) 17:50:03
よくわからんが
51〜70までのランダムな数字を
15個取ってるって感じか?

MSGBOX("wsrand")
これが理解不能・・・
なんで値じゃなくて
String型の文字列を
表示させてるんだ・・・?
0080デフォルトの名無しさん2007/02/05(月) 18:49:29
ぼうやだからさ
0081デフォルトの名無しさん2007/02/05(月) 18:53:29
VB6のことなんですが、質問させてください。

http://f8.aaa.livedoor.jp/~spring/up/img/089.jpg
http://f8.aaa.livedoor.jp/~spring/up/img/088.jpg

やろうとしていることは、File1で表示されている名前をtxtFileNameに表示させて、
ファイル名を変更して上書きしたいのですが、実行すると、エラーで「ファイルがみつかりません」
となってしまいます。

プログラムをどのように変更したらいいのか、教えてください。
0082デフォルトの名無しさん2007/02/05(月) 19:12:07
>>81
てか、そもそも変更の元になるVBのソースはどこだよwww

↓と言う事でエスパーヨロwww
0083デフォルトの名無しさん2007/02/05(月) 19:37:58
>>81
Nameのファイル名のところ、なんでダブルコーテーションで囲ってるの?
0084デフォルトの名無しさん2007/02/05(月) 19:47:01
最近は変数をダブルクォートで囲むのが流行ってるらしい
0085デフォルトの名無しさん2007/02/05(月) 20:45:13
>>71
VBAならオフィス持ってれば無料で手に入るw
0086デフォルトの名無しさん2007/02/05(月) 20:46:32
固定ダイアログのフォームをMDI FORMの子フォームから
開いたときに、ときどきフォームの高さが変わるんですけど
原因はなにがかんがえられますでしょうか?
0087862007/02/05(月) 21:04:12
ときどきというのはプログラムを起動してその固定ダイアログを開くときです。
0088862007/02/05(月) 21:34:49
EXEを作って実行したら起きないかもしれないです。
0089デフォルトの名無しさん2007/02/05(月) 22:55:37
俺もフォームやコードを入力するウィンドウを最大化してない状態だと
そうなる事がある
VBの統合環境のバグっぽい
0090862007/02/05(月) 23:03:54
>>89
そうなんですか。。。
ありがとうございます。
0091デフォルトの名無しさん2007/02/06(火) 05:48:20
参ったなwin98にVS6proからVBだけ消してたんだけどVB再インスコしたら
VFAT初期化エラだ氏ねw
レジ復帰させて戻したが
あークリーンインスコしないとだめぽいメンドクサ
やめたw
0092デフォルトの名無しさん2007/02/06(火) 09:00:04
勝手に参ってろ。
0093デフォルトの名無しさん2007/02/06(火) 11:16:02
DoEventsの有効範囲(?)について教えてください。

Do
 DoEvents
 処理A
 Do
  処理B
 Loop
Loop

というコードがある場合、処理Bのループ中にもDoEventsの効果は働くのでしょうか?

また次の場合はどうですか?
Do
 DoEvents
 Call SHORI
Loop

Sub SHORI
 Do
  処理
 Loop
End Sub
0094デフォルトの名無しさん2007/02/06(火) 11:26:17
>>93
DoEventsは、その実行時に溜まってたイベントキューを処理してお終い。一期一会なの。
0095デフォルトの名無しさん2007/02/06(火) 11:49:52
>>94
大変よく分かりました!ありがとうございました。
0096デフォルトの名無しさん2007/02/07(水) 11:29:11
VB6.0 & MAPIコントロール(Microsoft MAPI Controls6.0)を使ってメール受信データを取り込んでいます。
受信データ(OutlookExpress)は、問題なく取り出せるのですが、
次の2点で苦慮しています。
�@受信トレイの内容は取り出せるが、受信トレイ下のサブフォルダは何もしてくれない。
�A取り出すと全て、既読になってしまう。

サブフォルダの指定はあるのでしょうか、そして既読・未読を変更することなく
処理できないものでしょうか?
0097デフォルトの名無しさん2007/02/07(水) 12:48:55
VB6.0のプロジェクトから、
自動でドキュメントを作成するツールで
皆様のお薦めはないでしょうか?

A HotDocumentは体験版がないし、
Vα体験版だとドキュメント生成中に
「オーバーフローしました」なんてエラーで
まともにドキュメントが生成されないので、
他の選択肢を探しています。
0098デフォルトの名無しさん2007/02/08(木) 15:28:19
>>96
俺もかじった事しかないけど
受信フォルダ限定で既読になりますよ
って制限してたきがする

結局大人しくBASP21つかってガリガリ自作したけど(;´∀`)
0099デフォルトの名無しさん2007/02/08(木) 15:49:52
VB6でファイル名を変更する関数ってどういう名前でしたか?
0100デフォルトの名無しさん2007/02/08(木) 15:54:28
>>99
そんな事より・・・



やらないか?
0101デフォルトの名無しさん2007/02/08(木) 16:13:11
やりません







0102デフォルトの名無しさん2007/02/08(木) 23:05:41
>>101
はよう糞まみれになろうや。
0103デフォルトの名無しさん2007/02/09(金) 00:30:18
>>99
name?
0104デフォルトの名無しさん2007/02/09(金) 16:50:31
>>97
使用した事はないけれども、フリーソフトがある。
試してみたら、そしたら使い勝手を教えてくだされ。
http://www.vector.co.jp/soft/win95/prog/se356242.html?g
0105デフォルトの名無しさん2007/02/09(金) 17:46:06
>>99
FSO使うべし
0106デフォルトの名無しさん2007/02/09(金) 23:38:08
VB6でもマニフェスト使えばLuna風の表示が出来るけど、
これってexe内部に組み込むことできんのかな?
.manifestをexeと同じ階層に置くのって、かなり見苦しく感じるんだけど。
0107デフォルトの名無しさん2007/02/10(土) 00:16:32
話が変わって申し訳。
初めて書き込みます。
VB6で動画を再生たいんだけど
そのときに外部のtxtから開始と終了時刻を指定したいんだけど、
だれか何か知ってたら教えてほしいです。

ちなみに現状はこんな感じ。
Private Sub Form_Load()
MMControl1.DeviceType = "MPEGVideo"
MMControl1.FileName = App.Path & "\0129.mpg"
MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False

MMControl1.Command = "Open"

MMControl1.TimeFormat = mciFormatHms
MMControl1.From = 30:
MMControl1.To = 200::

End Sub

Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "Close"
End Sub

0108デフォルトの名無しさん2007/02/10(土) 00:37:49
テキストから読み込むってのがいみわからんが
こんな感じか?

C:\test.txtの一行目に開始時間、二行目に終了時間を書いて

  Dim strTemp As String
  Dim i As Integer
  dim j as Integer

  Dim strStartTime As String '開始時間
  Dim strEndTime As String '終了時間

  Open "C:\test.txt" For Input As #1
  Do While Not EOF(1)
    Line Input #1, strTemp
    j = len(strTemp)
    Lset strTemp = strTemp & "ReadTime" & strTemp
    strTemp = mid$(strTemp,1,j)
    If i = 0 then    
        strStartTime = strTemp
    Else
        strStartTime = strTemp
    End If
    i = i + 1
  Loop
  Close #1

0109デフォルトの名無しさん2007/02/10(土) 00:56:37
>>106
MSのManifest Tool (mt.exe)を使うのが比較的簡単だと思う。
Visual Studio 2005(VC++ EEで確認)やWindows SDKに入っている。

勿論一般にあるEXE/DLLのリソースをいじるソフトでもできる。
リソースの種類はRT_MANIFEST(具体的な数値は覚えていない)で、
リソースIDはEXEなら1、DLLなら基本的に2にしてやる。
0110デフォルトの名無しさん2007/02/10(土) 01:02:01
ありがとう!
Input使うんだよね。
組み込み方参考にします。
それで、再生時刻の指定の仕方ってわかる?
mciFormatHmsとか何種類かあるけど、
いまいち記述の仕方がわからなくて…。

MMControl1.TimeFormat = mciFormatHms
MMControl1.From = 30:
MMControl1.To = 200::
って適当に記述したんだけど、
うまくいかなくって。。。
01111062007/02/10(土) 12:21:00
>>109
�dクス。
VB2005EE内探してみたけどmt.exeなかった。
Cだけか(`д´)ノ
RT_MANIFEST書き換えでがんばってみる。


>>110
MSDN見てみたけど、それだと時間の指定がおかしくないか?

MMControl1.TimeFormat = mciFormatHms
時、分、および秒形式をパックして長整数の値で表します。各データの順序は次のとおりです。
時 (最下位バイト)
分
秒
未使用 (最上位バイト)
0112デフォルトの名無しさん2007/02/12(月) 12:19:31
こんにちは

DBからレコードを読込んで配列に格納しているんですが、
レコード数をカウントするにはレコードセットの”.RecordCount”と、
配列のUBound関数とどちらが負荷が少ないでしょうか?
別に変わらないですか?

よろしくお願いします
0113デフォルトの名無しさん2007/02/12(月) 13:04:28
>>112
配列格納後ならUBoundの方が良いと思う。
01141122007/02/12(月) 13:11:42
>113
おー

ありがとうございます。
0115デフォルトの名無しさん2007/02/12(月) 15:21:51
以下の条件に合う日時表現を教えてください

(a) 年4桁、月日時分秒2桁で、順番は左から年月日時分秒の順
(b) 半角文字のみで表現し、\ / : , ; * ? " < > | . とスペースを使わない
(c) CDate関数で直接日付型に変換可能

例えば「2001,02,03 12.34.56」なんてのは(b)に反する
「2001-02-03_12-34-56」だと(c)に反する
今は「2001-02-03_12-34-56」を日付型に変換する自作関数使ってるけど
そんなものを使わないで済む上手い表現があれば使いたいので
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だから読めない→見えない→見つからないってことでしょうかね。
■ このスレッドは過去ログ倉庫に格納されています