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

※「まず自分で調べる」クセを身につけよう。
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の文字色を変えるのは不可能なんでしょうか?
0697デフォルトの名無しさん2007/03/29(木) 12:49:35
>>696
やる気になれば出来る
つうか、やった
ググったらでてくるぜ
0698デフォルトの名無しさん2007/03/29(木) 17:28:38
>>697
調べてみたけど難しそうなので今回はあきらめましたorz
残念だけど既存のプロジェクトの修正だし、あまり時間も
かけてられないので。


レスありがとう。
0699デフォルトの名無しさん2007/03/29(木) 18:36:51
やる気があればなんでもできる
逝けば分かるさ
0700デフォルトの名無しさん2007/03/31(土) 01:26:18
>>697
mjd?
BommandCuttonの文字色って継承せんでも変えられるんか…
0701今日VB始めました2007/03/31(土) 02:04:08
VB 2005 使用
テキストファイル内の複数行から一行だけを削除するには、どのようにすればいいのでしょうか?
ファイルを開き、一度変数に読み込み、上書きするのも考えましたが他に手は無いでしょうか?
0702デフォルトの名無しさん2007/03/31(土) 02:08:19
>>701
スレタイから読み返せ
0703デフォルトの名無しさん2007/03/31(土) 02:25:29
>>700
オーナードローすれば出来るでよ

でもめんどくさいのとサブクラス化するのでまぁ・・・俺は出来るだけ避けてた
0704今日VB始めました2007/03/31(土) 03:15:32
スレタイ見おとしでした、大変すみませんでした。
0705デフォルトの名無しさん2007/03/31(土) 10:51:49
>>688
つうか6.0まではVBで.netからは将来性を考えたら普通C#に切り替えると思うけどな
0706デフォルトの名無しさん2007/03/31(土) 14:48:22
>>705
どっちもかわんねぇwwwww
どっちかできたら基本的には変わんないじゃん
ちょっとC#のがイイ所多いとは思うんだけどね

将来的にってことはVB.NETは消えるのか?
0707デフォルトの名無しさん2007/03/31(土) 15:02:19
ボタンのデフォルトのサイズを
変更出来ますか?
つまり、フォームにダブルクリックして貼り付ける時の
サイズを変更したいのです。
デフォルトだとなんか妙に高さがありますよね。VC++の
ボタンくらいの大きさにしたいです。

0708デフォルトの名無しさん2007/03/31(土) 15:04:47
BASICはマイクロソフト株式会社のルーツだから無くなるわけがない
ビルゲイツが生きている限りは進化発展する
0709デフォルトの名無しさん2007/03/31(土) 15:23:27
>>707
自分でSizeプロパティ書き変えたらいいやん
えと・・・WidthとHeightだっけ?
0710デフォルトの名無しさん2007/03/31(土) 19:34:18
書き替えた値をデフォルトにしたいのです。
0711デフォルトの名無しさん2007/03/31(土) 20:13:34
>710
コンストラクタが何のためにあるのか考えろ。
デザイナの都合上、コンストラクタが利かない場合は、ControlDesigner.OnSetComponentDefaultsあたりだな。
0712デフォルトの名無しさん2007/04/02(月) 11:07:14
VBはせっかくインデントそろえて見やすいソースにしても
勝手に整形するから大嫌いだ
0713デフォルトの名無しさん2007/04/02(月) 11:18:32
>>712
え・・・?
0714デフォルトの名無しさん2007/04/02(月) 13:07:45
>>713
インデント(行頭字下げ、行末字上げ)じゃなくて、
中間位置揃えのこと言ってるんだとエスパーしてみる。
  a    = 10
  bbbbb = 20
が
  a = 10
  bbbbb = 20
となってしまうように。
0715デフォルトの名無しさん2007/04/02(月) 14:40:56
ActiveBasicのあしもとにも及ばない糞言語乙
0716デフォルトの名無しさん2007/04/02(月) 14:41:41
俺はコードの再フォーマットを無効にしてるな。
0717デフォルトの名無しさん2007/04/02(月) 14:50:32
まだ春休みか
厨がイナゴのように涌いては消える。
0718デフォルトの名無しさん2007/04/02(月) 16:08:08
>>716
それをやると他に弊害が…
0719デフォルトの名無しさん2007/04/02(月) 20:54:59
逆に考えるんだ。アメリカ人のようにプロポーショナルフォントをつかうんだ。
0720デフォルトの名無しさん2007/04/02(月) 22:07:00
社内用に作ったフォーム1個と標準モジュール1個のしょぼいプログラムなんですが
完成して運用してたら、気がついたらソース消しちゃってましたw
どうにかリバースエンジニアリングできないですかね?
もう一回書くの面倒だし・・・C#にでも移行しようかな・・・
0721デフォルトの名無しさん2007/04/02(月) 22:08:32
実際ActiveBasicも悪くはないけどね
言語仕様が全然決まってないから覚える価値なしだが
0722デフォルトの名無しさん2007/04/02(月) 23:39:12
ABやるくらいならDやっとけ
0723デフォルトの名無しさん2007/04/03(火) 04:08:03
DやるぐらいならC#かDeiphi
0724デフォルトの名無しさん2007/04/03(火) 08:56:52
・・・で、でいふぁい???
0725デフォルトの名無しさん2007/04/03(火) 14:55:17
orz
0726デフォルトの名無しさん2007/04/03(火) 15:37:55
VB6いいよね
0727デフォルトの名無しさん2007/04/03(火) 17:53:07
上位システムがFTPでファイルを送り込んでくるのだが、確実にファイルがクローズしてから
次の処理にかかりたい。これを無人で運用するにはどのような方法がありますか?
以前は上位側からrshでキックしてもらってました。nt4用のrshdを使ってました。
今回はXPなのでrshdがありません。 書き込み中ならループというような処理にしたい場合は
どのような手法がありますか?
0728デフォルトの名無しさん2007/04/03(火) 18:46:30
>>727
俺らはロックファイル作ってもらってたけどな
Readも出来ないようにSharedで書き込んでもらえば?
07297282007/04/03(火) 18:50:34
回答になってなかったwww

>>727
どういう監視してるかによるけど、そのファイル見っけたら
開けるようになるまでDo Loopのなかで開こうとすればいいんじゃね?
エラーになったらまたループしてまたチェックみたいな

do

on error goto BBB

ファイル開いてみる

成功したら exit do (念のためタイムアウトも設定)

BBB:
loop

ザーッくりかくとこういうの
詳細がわからないんでこれくらいしか今んところかけない
0730デフォルトの名無しさん2007/04/03(火) 19:33:59
書き込みが止まってから*分後に処理、とか。
0731デフォルトの名無しさん2007/04/03(火) 19:40:07
ftp で AAA.dat を AAA.dat.tempの名前でアップロード
ftp で 転送先のファイルを元の名前にリネーム
プログラムは数秒のインターバルで *.dat をスキャン。
あったら処理後、AAA.dat を消去。
この方法だと AAA.dat がそのままロックファイルとして使用できる。
0732デフォルトの名無しさん2007/04/03(火) 19:47:50
明確な規定はないと思うのだけど、使った経験のあるftpdでは
ftpで送信していて途中で中断した場合その途中までのファイルは出来ている。
転送途中でも大概オープンできる。
一定量受信するごとにオープン・追加書き込み・クローズを繰り返している感じだ。
なものでオープンできたことをもって正常に受信が完了したことの判定には使えないと思う。
0733デフォルトの名無しさん2007/04/03(火) 19:53:59
接続が切れたらcloseしてるだけじゃないの。
一定量毎にclose,openをする意味が分からない。
0734デフォルトの名無しさん2007/04/03(火) 20:08:56
ソースを見たわけではないからこの部分はあくまで予想なんだけど
>一定量受信するごとにオープン・追加書き込み・クローズを繰り返している感じだ。 
次の部分はいくつか試してみた結果。
>転送途中でも大概オープンできる。
読み込みの可能な状態で書き込みをやってる可能性ありと思って、
完全な排他状態でオープンしたらそれもできてしまったので最初のように思ったわけです。
ただ特定の環境に依存しそうな結果だったので、
オープンできるできないを判定の基準に使わないことにしたということです。
0735デフォルトの名無しさん2007/04/03(火) 20:38:21
ftp中はテンポラリな名前にして、完了したらrenameするとか
0736デフォルトの名無しさん2007/04/03(火) 21:03:18
FTPサーバー書けばいいじゃん
転送が終ったらイベントでも出すような。
0737デフォルトの名無しさん2007/04/03(火) 21:37:51
VB6でFunctionから値を返すのはどーすんだ?
Return a
でやるとエラーになっちゃうんだけど
0738デフォルトの名無しさん2007/04/03(火) 21:38:44
private function AAA as string


なら
AAA=""

でおk
0739デフォルトの名無しさん2007/04/03(火) 21:40:23
1009
ありがとう
0740デフォルトの名無しさん2007/04/03(火) 23:52:59
なんつーかVB6が最強
これ以降は重いしなんか全てがバグっぽいし結局VB6にもどってくることになる。
0741デフォルトの名無しさん2007/04/04(水) 04:40:17
今からVB6を学ぶメリットはある?
0742デフォルトの名無しさん2007/04/04(水) 08:27:59
Excelなんかのマクロを書くのに役立つと思う
07437272007/04/04(水) 11:51:51
>>728-736 レスありがとう  
ロックファイルか 転送後リネームですね。試してみます。
07447272007/04/04(水) 16:45:09
上位側システムではftpしたらその後の戻り値を検出できないらしくどっちもxでした。
厳密にいうとrshでも駄目だったはずでした。
で、下記のソースを使って判定したら今のところ上手くいったので報告しときます。
ttp://support.microsoft.com/kb/172240/ja
要するに「読み取り専用および排他共有でオープン」出来るかどうかで判定すれば
いいわけですね。XP(ntfs) vb6 testに使ったのはtinyFTPD 
0745デフォルトの名無しさん2007/04/04(水) 23:43:16
>>744
そこまでしなきゃいけないことはなかったが
とりあえずそこまでしなきゃいけないほどの仕事もあるんだなって勉強にはなった
0746デフォルトの名無しさん2007/04/05(木) 00:25:09
.NETとかテライラナス
VB6SP6が最強
SP入ってないとWindowsXPVisualStyleをリソースに入れれない。
0747デフォルトの名無しさん2007/04/05(木) 02:50:10
おそらく禿げしく既出かも知れないが、検索してもなかなか見つからないので・・・

環境
Win2000Sp4
VB6SP5
ATOK13

エディタ上で検索ダイアログを出し、文字列を入力しようとした時、
2文字以上の漢字、例えば「検索」「該当」などを変換確定すると
漢字が化けることがある。
化けるつーか、全然違う漢字が確定されてしまうことがある。

化けないこともあるが、一度化けるようになると元に戻らない。
再現パターンは不明。

半角は問題なし、全角漢字も1文字ずつなら問題なし。
エディタ上でも問題なし、検索ダイアログ上のみの現象。

なにか情報ありますかねえ・・・
0748デフォルトの名無しさん2007/04/05(木) 02:53:23
>>742
Excelのマクロで全てが出来ちゃうんだけどな
0749デフォルトの名無しさん2007/04/05(木) 10:33:35
MS製品だしなぁ・・・ATOKだからじゃないか?

IMEだけどそんな事5年間一回もない

つうかそんなにいいの?ATOK
0750デフォルトの名無しさん2007/04/05(木) 12:56:52
VB初心者です。コンボボックスの件で教えてください。
テーブルは正規化していて、メインテーブルには数字しか持っていません。
が、別テーブルでコードと、表示項目を持っています。
コンボボックスで表示項目を表示して、データ収集は数字でもらう。
配列を使った形でもかまいませんので、ご教授よろしくお願いします。
0751デフォルトの名無しさん2007/04/05(木) 16:11:05
環境:
WinXPpro SP2 / VisualBasic 6.0(サービスパック未適応)

作っているもの → ストップウォッチ

■質問内容■
コマンドボタンに関して

通常、コマンドボタンをクリックして処理をさせる場合、

ポインタにより、コマンドボタンが押し下げられる
↓
マウスから指を離し、コマンドボタンが持ち上がる
↓
実行

という処理になります。
しかし本来、
ストップウォッチはボタンを押した『瞬間』から、処理が始まりますよね?
つまり、

マウスによって、ボタンが押し下げられた瞬間
↓
実行

という処理を行いたいのです。
非常に初歩的な質問かとは思いますが、ネットでも出てこなかったもので…。
どなたか、ご教授をお願いします…。
0752デフォルトの名無しさん2007/04/05(木) 16:26:47
ボタンはあくまでクリック識別。
ピクチャーなどでボタンもどきをつくって、マウスダウンなりアップなり好きに料理すれば?
0753デフォルトの名無しさん2007/04/05(木) 16:28:40
>>752
とってもサンクス
0754デフォルトの名無しさん2007/04/05(木) 17:41:45
別にピクチャボックスでなくても
ボタンのKeyDownとMouseDownでいいんじゃないの?
0755デフォルトの名無しさん2007/04/05(木) 21:01:10
>>749
使い慣れるとねえw
でもATOKは使ってる人多いから情報あるかと思ったけど
そうでもないのかな?
0756デフォルトの名無しさん2007/04/05(木) 23:32:57
すいません。
NETのスレでこちらへ誘導されてきたのですが。

Visual Basic 6.0 SP6 ランタイムファイル(XP.vista対応、最新SP6)
http://www.vector.co.jp/soft/win95/util/se342080.html

このランタイムが、vistaでどうしてもインストールできないんです。
インストール後のvb6rtestを試すと

「コンポーネント'DBLIST32.OCX'、またはその依存関係のひとつが適切に登録されていません。ファイルが存在しないか、あるいは不正です。」

というランタイムエラーがでます
再インストールや、管理者権限で実行したり、再起動したりしてみましたが、かわりません。
何か他に試してみるべき事とかありますでしょうか?
0757デフォルトの名無しさん2007/04/06(金) 00:40:28
>>756
作者に聞いて下さい
0758デフォルトの名無しさん2007/04/06(金) 01:34:02
>>756
コンポーネント(OCX)の配布をやめてみ?
セットアップつくるときに外してしまえば解決すると思うが?

たぶんランタイムのインスコは正常に終わってコンポーネントの上書きに失敗してるんだろうな

とかおもってみたり・・・
0759デフォルトの名無しさん2007/04/06(金) 15:57:08
>>758
ありがとうございます。
すいません、あちらのスレから誘導されてきたのですが、当方プログラマではありません。
とりあえず、vb6rtest.CABを解凍して、拡張子OCXの物をすべて削除して再度圧縮したのですが、setupを起動すると「ディスクがありません」とエラーがでてインストールすらできません。
OCXの配布をやめるにはどのような事をする必要があるのでしょうか?
問題が解決できるなら、ある程度は勉強する覚悟はあります。
0760デフォルトの名無しさん2007/04/06(金) 18:25:09
>>759
セットアップの作成時に依存関係見てみ?
0761デフォルトの名無しさん2007/04/06(金) 19:46:53
>>760
すいません、調べてみましたが、どうやってみるのかが判りません。
まったくの素人で申し訳ありません。
0762デフォルトの名無しさん2007/04/06(金) 22:52:24
ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7B9BA261-7A9C-43E7-9117-F673077FFB3C
でもいれとけ。
0763デフォルトの名無しさん2007/04/07(土) 12:08:27
>>762
ダメです、exeを実行しても途中で途切れます・・
vista対応じゃないからかな;;
0764デフォルトの名無しさん2007/04/07(土) 15:58:29
>>756
この問題をまったくの素人でもわかりやすく解決み導いていただける自信のある方はいませんか?
金一封を差し上げようと思うのですが
07657642007/04/08(日) 01:03:49
すいません、自己解決しました。
PCをリカバリし初期出荷状態にして一番最初にランタイムをインストールしたら正常に動作しました。
0766デフォルトの名無しさん2007/04/08(日) 03:02:57
オリジナルのプログラムをお持ちの方いらっしゃいませんか?
この度クレジット決済でスムーズにダウンロード売買が
できるサイトを立ち上げました。
つhttp//web-cart.jp/
※会員登録&商品のうp全て無料です!
・クオリティの高い商品のうpをお待ちしてますw


0767デフォルトの名無しさん2007/04/09(月) 16:13:49
MsFlexGridでSelectionModeをflexSelectionByRowにして、
行単位で選択してるんですが、[Ctrl キー]を押しながら、
個々のセルのクリックで複数選択する機能には対応しておりません。

この対応方法について、何か良い方法はありますか?
0768デフォルトの名無しさん2007/04/09(月) 16:23:28
>>767
その機能が使える別コンポーネントに変える。
0769デフォルトの名無しさん2007/04/09(月) 18:01:23
自分でイベント捕まえて色とかを手作業で変更する
0770sage2007/04/09(月) 21:55:53
VB4 32bit でthreed.vbx, grid.vbx を使用したForm を VB6 に移行
させたいのですが VB6 LerningEditionしか持ってません。

やっぱりVB6 Pro以上のeditionを入手するか、 コントロールを
貼りなおさないとだめでしょうか?

SS〜 使いまくりの画面なので 躊躇してます。
0771デフォルトの名無しさん2007/04/09(月) 23:14:48
>770
Pro以上のEditionを入手しても、「変換」の為に使っても良いと言うだけで、
そのコントロールを使ったアプリケーションを開発して配布する事は許可
されていないから、頑張れ、としか言えないわ。
07727672007/04/10(火) 15:36:13
ありがとうございます。
別のコンポーネントを探しても見当たらないのですが、グリッド表での
複数選択が可能なコンポーネントはありますか?
0773デフォルトの名無しさん2007/04/10(火) 17:26:43
あるよ、もちろん有料だけど。MSFlexGridだって実際は有料だし。
0774デフォルトの名無しさん2007/04/10(火) 17:34:18
CellBackColorなどを設定してそれらしく処理すればいいだけじゃないの?
0775デフォルトの名無しさん2007/04/10(火) 17:58:00
それが出来ない人なんでしょ

高額高性能なコンポに頼って楽するか
勉強してコード書いて金使わずに解決するか
どっちでも好きな方を取ればいいさ
0776デフォルトの名無しさん2007/04/11(水) 00:08:09
VSFlexGridてまだ売ってるのかな
0777デフォルトの名無しさん2007/04/11(水) 13:45:22
グレープシティ行って見てこいカス
0778デフォルトの名無しさん2007/04/15(日) 01:35:00
すみません。どなたかご存知の方はいらっしゃらないでしょうか?

VB6.0でDetailセクションに配置されたLabelコントロールの名称が
"Label1"〜"Label5"である場合に、それらのプロパティをまとめて
変更する方法は、どのようにすればよろしいでしょうか?

たとえば.NETでは、以下のようになるかと思います。
========================================================
Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format

 Dim i As Integer
 For i = 1 To 5
  CType(Me.Detail.Controls("Label" + i.ToString()), Label).Text = "AAA"
  CType(Me.Detail.Controls("Label" + i.ToString()), Label).Top _
                      = System.Drawing.Color.Blue
 Next i
End Sub
========================================================

これをVB6.0で表記するにはどのようにすればよろしいのでしょうか?
宜しくお願いします。

0779デフォルトの名無しさん2007/04/15(日) 02:58:31
>>778
先ほどの質問ですが、単純にCType()を取って
i.ToString() を
CStr(i) とするだけでした。
解決しました。こんな質問した自分が恥ずかしいです。
0780デフォルトの名無しさん2007/04/22(日) 12:35:47
>>778
+で文字列を結合するな。

> i.ToString() を CStr(i) とするだけでした。
うそつけw
0781デフォルトの名無しさん2007/04/22(日) 12:36:56
>>776
TrueDBGridでも買ってろカス
0782デフォルトの名無しさん2007/04/22(日) 13:41:25
>>778
あーVB.NETからVB6だったか。
すまん。しっかりよんでなかったわ。
0783デフォルトの名無しさん2007/04/22(日) 13:42:15
VB6ならMSHFlexGridが吉
0784デフォルトの名無しさん2007/04/22(日) 15:38:08
N88-BASICとかだと文字列連結も+だったんだよね。
連結は厳密に文字列同士限定で、
B$ = "1": C% = 1: A$ = B$ + C% とかはちゃんとTypeMissmatchエラーになった。
これがエラーにならなくなったのがVBのウンコ度を増していると思うようん。
■ このスレッドは過去ログ倉庫に格納されています