くだすれVB6.0以前(超初心者向け)
at TECH
1:d
08/03/30 09:01:59
このスレッドはVBについて、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします
前スレ
くだすれVB6.0以前(超初心者向け)
スレリンク(tech板)
2:d
08/03/30 09:02:39
Visual Basic Version 5.0 Control Creation Edition SP2 日本語版
URLリンク(download.microsoft.com)
Visual Basic 5.0 Control Creation Edition: SP2 ヘルプ ファイル
URLリンク(www.microsoft.com)
URLリンク(download.microsoft.com)
Visual Basic Version 5.0 Control Creation Edition: レジストリ修正モジュール
URLリンク(www.microsoft.com)
URLリンク(download.microsoft.com)
Visual Basic 5.0: RecentFiles ツール
URLリンク(www.microsoft.com)
URLリンク(download.microsoft.com)
3:デフォルトの名無しさん
08/03/30 20:08:18
3が取れたらプログラマという職がなくなる
4:デフォルトの名無しさん
08/03/30 20:15:10
おめでとう
5:デフォルトの名無しさん
08/04/02 15:47:48
馘首
6:デフォルトの名無しさん
08/04/02 19:27:21
abc.mdbというデータベースからランダムに情報を抽出したいです。
abc.mdbのフィールド1には、A,B,Cの3種類のうちどれかが入力されており、
このうちAと入力されている列を抽出し、
さらにその中から5つの列をランダムに取り出したい場合、
どのようにすればいいのでしょうか?
ネットで調べましたが出てこなかったので質問させていただきました。
よろしくお願いします。
7:デフォルトの名無しさん
08/04/02 19:34:04
このスレは重複です
本スレで質問してください
8:デフォルトの名無しさん
08/04/02 23:45:14
重複じゃなく、次スレである。
まず、前スレ埋めれ。
9:デフォルトの名無しさん
08/04/02 23:48:19
>>7
ここは、超初心者向けのスレ。
VB5CCEの使い方でもやさしく教えてけろ。
10:デフォルトの名無しさん
08/04/02 23:51:06
断る
11:デフォルトの名無しさん
08/04/03 09:04:33
>>10
ケツ貸してやれば教えてくれるか?
12:6
08/04/03 12:17:54
自己解決しました。
>>7
本スレ見つからなかったです。
13:デフォルトの名無しさん
08/04/07 13:48:28
やりたいのは、form上に固定ディレクトリ(例えばC:\test)の一覧を表示して、
更新ボタンとかリアルタイム更新で確認したい、というものです。
ネット上検索でも、手持ちの参考書でも、
ドライブ→ディレクトリ→拡張子や属性別選択表示のコンボ形式ばかりで、
単純に決めうち表示するやりかたが見つかりません。
教えてください。お願いします。
14:デフォルトの名無しさん
08/04/11 17:41:40
どなたか教えて下さい。
ディレクトリ下の複数テキストファイル(ファイル名は決まっていない固定長の
データ)を1つのファイルに纏める(1つのファイルに連結コピーする)方法を
教えて下さい。ロジックが思い浮かびません(;;)
15:デフォルトの名無しさん
08/04/11 18:00:20
>>14
copy *.txt matome.txt
16:デフォルトの名無しさん
08/04/11 19:45:14
>>15
thx
17:デフォルトの名無しさん
08/04/12 04:03:43
>>14
Thank you
難しく考え過ぎていたようです。
フォルダの下のファイル一覧を作成して、それぞれ1行づつ読み込み
ワークエリアに書き込み・・・すっかり炉坪でした!!
試してみます。
18:デフォルトの名無しさん
08/04/14 08:49:15
>>13
いい事言うなあお前。
みんなが頭じゃわかっててもなかなか実践できない事を口に出して言えるなんざ大した自信だよ。
それで出来てなかったらあのインチキ占いのバアさんと一緒だぞお前。
そんなに当たり前の事を言いたかったら尼さんにでもなって言行等しくなってから説教したらどうだ。
19:デフォルトの名無しさん
08/04/21 21:59:14
VB6.0からExcelに値を貼り付けてプレビュー表示をする処理にて
処理中は見えないようにするためVisibleをFalseにするのですが、
EXEファイルから起動するとVisibleをFalseにした段階で最背面に表示されてしますいます。
Visual Basicから起動するとプレビュー画面が最前面に表示されるのですが何故でしょう?
使っているコンポーネントはQuickPack、Farpoint SpreadSheet、InputMan Proです。
今まで別な環境で作った際はこんな現象になったことはありません。
同じコンポーネントを使っている方で克服した方はおりますか?
ちなみにSetWindowPos等使わないで済ませたいです。
途中ダイアログを表示したりメッセージボックスを表示させたりするので
Visual Basicで起動しているときと同じ用途で実現させたいのです。
ちょっと分かりにくいかも知れませんが宜しくお願い致します。
20:デフォルトの名無しさん
08/04/21 22:12:24
コピペ君って馬鹿だな、まで読んだ。
21:デフォルトの名無しさん
08/04/22 00:46:22
出た、素人童貞。
22:デフォルトの名無しさん
08/04/27 12:52:33
今日起きたら、知らない女の部屋だった
23:デフォルトの名無しさん
08/04/29 18:14:35
おちんちん(^〜^)ムズムズ
24:デフォルトの名無しさん
08/05/29 11:58:27
VB5CCEの使い方書いたページ発見した
酒井法雄の Visual Basic 5.0 CCE講座
URLリンク(www.int21.co.jp)
25:デフォルトの名無しさん
08/06/02 17:36:44
VBって神言語ですね。
26:デフォルトの名無しさん
08/06/04 18:28:35
てすつ
27:デフォルトの名無しさん
08/06/04 18:30:38
質問があります。
あるDLLを使用しているVB6のアプリがあるのですが、
いちいちDLLとexeをペアでユーザー配布したくないので、exeの中にDLLを含めてしまいたい
のですが、コンパイルスイッチなどでそのような指定をすることはできるでしょうか?
28:デフォルトの名無しさん
08/06/04 21:24:18
できない
29:27
08/06/10 20:13:29
>>28
ありがとうございます
30:デフォルトの名無しさん
08/06/21 00:37:29
質問です。
VB6.0で、ボタンを押すと最新状態の取得を行う処理を
行いたいのですが、どうしたらいいのかわからないです。
仕様書は以下のようになっているので、
どなたかご説明お願いします。
尚、SQLの部分はSELECT文は使わないとの指示です。
*調査員番号と調査機関コードを取得する。
★取得SQL→SELECT DISTINCT tt.調査員番号, tt.調査機関コード
FROM 調査員地区マスタ tt,地区マスタ tk
WHERE tt.状況フラグ='0' AND tk.市町村コード=画面.市町村選択コンボ
AND tt.地区コード=tk.地区コード
※調査員番号、調査員名が表示されている場合は、
tt.調査員番号 = 画面.調査員番号 AND
tt.調査機関コード = 調査員が属する調査機関のコード(グローバル変数)
の条件を追加をする。
※画面.対象市町村選択コンボで空欄を選択している場合は、
市町村コードでの抽出条件を省く。
*調査日と調査可能数を取得する。
★取得SQL→SELECT 調査日,調査可能数 FROM 調査員時間マスタ
WHERE 調査員番号 = "Aで取得した調査員番号"
AND 調査機関コード = "Aで取得した調査機関コード"
AND 調査日 >= カレンダー日付の最初の年月日(8桁:YYYYMMDD)
AND 調査日 <= カレンダー日付の最後の年月日(8桁:YYYYMMDD)
31:デフォルトの名無しさん
08/06/21 00:46:55
うるせえ馬鹿
32:デフォルトの名無しさん
08/06/21 01:26:54
>30
素直にわかりませんって上に伝えるかわかる人をつかまえて教えてもらえよ
それで金もらうなんておかしーぜ
33:デフォルトの名無しさん
08/06/24 08:43:28
Form1とForm2のふたつのフォームがあります。
Form1にボタンを1個置いて、そのボタンのクリックイベントで
Form2.Show
Unload Me
というコードを記述して実行します。
この場合イベントの発生順ですが
Form2のLoad --> Form1のUnload --> Form2のActivate
となるのですが
予想では
Form2のLoad --> Form2のActivate --> Form1のUnload
だったのですが
なぜこのような順序になるのでしょうか?
34:33
08/06/24 09:29:39
あ、わかりました。
Form2.Show
DoEvents
Unload Me
としたら予想の順序になりました。
35:デフォルトの名無しさん
08/07/08 20:24:57
教えてくれ
VistaにVB6インストールしてプロジェクト‐コンポーネントのコントロールタブから
Microsoft Common Dialog Control 6.0を追加しようと思ったら、
Microsoft Common Dialog Control 6.0が無いんだけどなんでだ?
XPにインストールした場合はあるんだけど。
XPでコモンダイアログを含むコードを開発して、
それをVistaで編集しようと思ったら
comdlg32.ocxを読み込めませんとか出てきてできないじゃん。
36:デフォルトの名無しさん
08/07/10 09:16:34
とあるメソッドがありそれを呼び出したメソッドを
ログにとりたいのですがそのようなことは可能でしょうか?
たとえば
Function hoge()
Call LogWrite ("呼出もと:" & よびだしもと & )
Exit Function
といった感じです。
やはりhoge()を呼び出している側でログを出力する必要が
ありますか?
37:デフォルトの名無しさん
08/07/10 21:57:08
教えてください
Set cn = New ADODB.Connection
cn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\WK\TEST.mdb"
でACCESSのMDBに接続、クローズしてからタイマーで1分後に再度
接続するとエラーが発生することがあるのですが
エラーメッセージは
「データベースを開けない状態、またはロックできない状態にしています。」
という内容です、
1分ではなくて5分ほどに
するとエラーは発生しなくなります。
クローズしてから再度オープンする間隔が短いと何か問題とかあるのでしょうか?
38:デフォルトの名無しさん
08/07/10 21:59:33
↑すみません、VB6.0です、ACCESSのほうはバージョンはわかりません
39:デフォルトの名無しさん
08/07/11 03:11:27
>>37
何か問題が、って質問からは外れるけど
ロックされてるか確認した上で接続するようにすればいいじゃない
40:デフォルトの名無しさん
08/07/11 20:22:40
Set cn = Nothing
にしたらどうなる?
41:デフォルトの名無しさん
08/08/29 14:54:45
凄くくだらない質問ですが教えてください
VBでIEを操作していて例えば
Form name = formA
input name = ID
objIE.document.formA.ID.Value = Text1.Text
とかでIDにText1が代入できると思いますが
input name = ID.1
とnameにドットが入ってる場合
objIE.document.formA.ID.1.Value = Text1.Text
でID.1のドットの部分でエラーを吐いてしまって困っています
どうすれば回避できますでしょうか?
42:デフォルトの名無しさん
08/08/29 17:36:45
objIE.document.formA.[ID.1].Value = Text1.Text
43:デフォルトの名無しさん
08/08/29 19:40:54
>>42
ありがとうございます
[]で囲んでみましたが同じくサポートしてないとエラーを吐きます
困りました
VB6.0です
nameにドットが入ってない場合は正常に動作します
44:デフォルトの名無しさん
08/08/29 19:44:00
callbyname
45:デフォルトの名無しさん
08/08/29 21:35:48
インスタンスのコピーは例えば
A a
B b
なるインスタンスa,bがあったとして
b = a
でいいでしょうか?
それともb = a.clone or a.copyなるコピー関数をかかないといけないんでしょうか?
46:デフォルトの名無しさん
08/08/29 21:53:49
コピー関数が必要。
オブジェクトの代入がコピーでないことを示すために、
Set b = a と書くようになっている。
なお、Stringはオブジェクトではなく型扱いなので代入でコピーが発生する。
47:デフォルトの名無しさん
08/08/29 22:41:03
くそっ、そういうことしたかったら、Typeの構造体のほうが便利だな。
48:デフォルトの名無しさん
08/08/29 22:49:23
すんげー長い関数func1(....)が超よみにくいので
sub_func1..... func2
にわけてやろうとおもって3時間ほどトライしているのですが
内部で使われる構造体をずっと参照でわたしていって
深くなってくると値がかわってくれてないような><
なんか深さに制限あるんでしょうか。
実際には、3000行ある処理を30行くらいの関数にわけていって
おります。
type M
end
func1()
dim m1 as M_t
func2(m1)
func3(m1)
end
end
end
end
end
end
private func2(byref m as type M)
private func3(byref m as type M)
49:デフォルトの名無しさん
08/09/01 11:00:44
基本のグローバル変数、アニメーションがわかりません。
ご提示お願いします。
50:デフォルトの名無しさん
08/09/03 20:27:47
t(50000,1)
の配列にはいってる数値を、CSVで出力したいんだが、
for i=0
tmp=tmp & t(i,0) & "," & t(i,1) & vcrlf
next i
open "t.csv" For Binary Access Write As #1
Put #1, , tmp
close #1
で、tmpに溜め込んでバイナリで書き込もうとしたんですが、
tmpの後に追加していくと、行数が多くなるとだんだん重くなってしまいます。
もっと高速に保存する方法はないでしょうか?
Put #1, , t()
これが、怪しいような気がするんですが、、、
51:デフォルトの名無しさん
08/09/03 20:42:45
したいんだが、・・・・・・
>>50
遅いのは恐らく文字列の連結。(遅い理由はVBは文字列の連結ごとにメモリの確保と
コピーが入るから)
解決法は、確かmid$を使った文字列の高速な連結法があったはずだから
ググってそれを使う。
それが面倒なら、変数上で連結なんてせずに直接ファイルに追記すれば
少しはマシになるはず。
52:デフォルトの名無しさん
08/09/03 22:23:16
テキストファイルを書き出すのになんでFor Binary Accessなんだ?
53:デフォルトの名無しさん
08/09/03 22:24:31
つsystem.text.stringbuilder
54:デフォルトの名無しさん
08/09/03 22:32:21
つ、とかヲタっぽい気色のわるい書き方する奴って例外なくアホだな
55:デフォルトの名無しさん
08/09/03 22:36:09
つ よりもVB6で stringbuilderのほうが痛いな
56:デフォルトの名無しさん
08/09/03 23:00:44
Dim sb As Object
Set sb = CreateObject("System.Text.StringBuilder")
sb.AppendFormat "{0}", "やればできるさ"
Text1.Text = sb.ToSTring
AppendLineがなぜかComコンパチじゃなくて使いにくいな。正直おすすめしない(笑
57:デフォルトの名無しさん
08/09/04 06:47:52
VB6ならFSOでおk
58:デフォルトの名無しさん
08/09/04 16:06:18
つ System.IO.StringWriterのWriteLine
59:デフォルトの名無しさん
08/09/18 20:27:20
>>48
どこかのByRefで渡す筈の引数に、ByValが紛れ込んでいるとか。
それくらいの規模になってきたら、そろそろ設計図書いた方が良いかもしれない。
>>49
グローバル変数とは、Publicで宣言された変数のこと。
引数に値を渡す必要が無いメリットがあるものの、
どこからでも読めてしまうデメリットは
最終的にデバッグを非常に困難にする為、扱いに非常に困る。
アニメーションは、そのままだな。
映画館の映写機みたいなイメージで
1秒間に最大60回くらい画面書き換えたりする事。
>>50
Valiant型使っておいて遅いとか言っちゃダメですぜ。
60:59
08/09/18 23:48:31
>>50
この環境にVB6入ってないからデバッグできてない挙句に、久し振りすぎてあちこち怪しいが、草案だけ出しておく。
Const MAX_X = 1 '配列の要素数が固定であるならば、
Const MAX_Y = 50000 'Constを使っておくと修正が楽。
Private t(MAX_Y,MAX_X) As Long
'--------メイン------->
Private Sub mn_Save_Click() 'セーブを要求する場合。例として、メニューの保存辺りから呼ぶとして…。
Dim Ret As Integer
Ret = MsgBox("セーブする?",vbOkOnly)
Select Case Ret
Case vbOK
Debug.Print "csvKakiko => FileName:" & App.Path & "t.csv" '一応、送られた文字列を確認。
Call csvKakiko(App.Path & "t.csv")
End Select
End Sub
'----保存とか--->
Private sub csvKakiko(ByVal FileName As String) 'csvに書き込む。/引数:FileName:ファイル名/絶対パス
Dim Fnum As Integer
Dim i As Long,i_Max As Long
Dim tmp As String
Fnum = FreeFile() '※必須。Closeされていないファイルナンバーを用いてOpen処理以降を発生させると別のファイルに書いてしまったりする。
Open FileName For Binary Access Write As #Fnum
For i=0 To MAX_Y '0から構造のY最大値まで昇順。(MAX_Yが50000なので、0-50000の50001レコードが記述される。)
tmp= Format(t(i,0)) & "," & Format(t(i,1)) & vbCrLf '記録する文字列を組みながら
Put #Fnum, , tmp '記録する。
Next
Close #Fnum
End Sub
61:デフォルトの名無しさん
08/09/20 18:41:23
VBからIE操作する際の話なんですが、
IEを起動時 or 起動後にJavaScriptを切る方法ってないでしょうか?
バージョンはIE8beta2ですがIE6の方法でも構いません
62:デフォルトの名無しさん
08/09/20 21:24:44
Document.designMode="on"
63:デフォルトの名無しさん
08/09/22 13:59:12
Document.designMode="on"で検索したけどそれらしきものが見当たらない
64:デフォルトの名無しさん
08/09/22 14:26:02
URLリンク(www.google.co.jp)"on"
65:デフォルトの名無しさん
08/09/22 23:07:09
IEでダイヤログ(はい、いいえを選択するやつです)が出てきた時に
最初からはいが選択されてる状態で
自動的にエンターキーを押させてはいを決定させたいのですが
SendKeys "{ENTER}", True
これでいけると思ったのですが反応しません
自分でキーボードのエンターキーを押すともちろん反応します
何か手違いか、他に方法ありますでしょうか?
66:デフォルトの名無しさん
08/09/22 23:18:02
キーボードドライバを作成してそれに向かって操作しろ
どうでもいいが、間違いの予想はいくつか出てくるがソース出せやクソガキ
67:デフォルトの名無しさん
08/09/23 01:26:08
>>65
IEのダイヤログが出る部分の設定を全部「常に許可」に設定すればVB側で弄らなくても解決する。
68:デフォルトの名無しさん
08/09/23 21:41:24
keybd_event() or SendInput()
69:デフォルトの名無しさん
08/09/24 10:08:00
結構古い(と思われる)VBのソース見てて
疑問に思ったんで教えて欲しいです。
a=&H100&
みたいに数字の後に & が付いているのは何ですか?
数字の前の&Hはなんとかわかるんですが・・・
参考書とか読んでも & は「文字列を連結するための・・・」
とかしか出てなくて。
70:デフォルトの名無しさん
08/09/24 10:15:36
おまえは一冊しか本を持ってないのか?MSDNは読めないのか?馬鹿なの?
71:デフォルトの名無しさん
08/09/24 12:49:27
>>69
ただの16進数の書式だったかと。
後ろの『&』無しでも普通に動いてると『&』が後ろについてる理由が解らんのだよな。
『&』は、単独ならString型データの結合の演算子として扱う。(一応、『+』演算子でも動作する恐怖。)
Sub Main
'以下の一文で 255 が出力される。@formatを用いているのは、返されたByte型の255の値を文字列型にする為。
Debug.Print format(changeHexStringToByte("ff"))
End Sub
Private Function changeHexStringToByte(ByVal HexStringNN As String)As Byte
changeHexToValue = Val("&H" & HexStringNN & "&") '文字列を作って無理矢理Valに通す。
End Sub
72:デフォルトの名無しさん
08/09/24 12:55:29
嘘を教えるのはよくない。
73:デフォルトの名無しさん
08/09/24 13:11:22
覚え間違えてたわ。サンクス。m(_ _)m>>72
74:デフォルトの名無しさん
08/09/24 13:21:00
&を後置するのは16進数Long型扱いらしい?
調べてみたのだが、いまいち自信が持てない。
(&H0000はInteger型で扱われる。≒最上位ビットが1の場合はマイナス符号化?)
今まで&H0000&のみしか使ってなかったし、何やら損した気分に。orz
75:デフォルトの名無しさん
08/09/24 13:29:56
16進数Long型ってなんですか
76:デフォルトの名無しさん
08/09/24 15:33:49
MsgBox TypeName(&H8000)
MsgBox TypeName(&H8000&)
77:71,73,74
08/09/24 15:50:55
>>76
なるほど納得。
ヒントに感謝です。m(_ _)m
78:デフォルトの名無しさん
08/09/24 16:10:02
MsgBox &H8000
MsgBox &H8000&
MsgBox &H8000=&H8000&
79:77
08/09/24 18:15:36
>>78
ありがとう。数値の扱われ方が何となく解った気がします。
&HFFFFでやってみたら-1と65535になりました。
調べてみたらこんなのが…。
16進数表記:格納されているデータの2進数:10進数(アンダースコアは便宜上の物)
&H8000:1000_0000_0000_0000:-32768
&HFFFF:1111_1111_1111_1111:-1
&H0000:0000_0000_0000_0000:0
&7FFF:0111_1111_1111_1111:32767
&H8000&:0000_0000_0000_0000_1000_0000_0000_0000
切欠を貰えた事にも感謝します。m(_ _)m
80:デフォルトの名無しさん
08/09/24 21:43:07
VB6.0です
button1からbutton30を作って、同じform内に
button100からbutton130を作るって出来ますか?
button31からbutton99は使用しないです。作成も
したくないです。
質問してて、無理っぽいと思ってますが、どうでしょうか?
81:デフォルトの名無しさん
08/09/24 21:55:03
できます
82:デフォルトの名無しさん
08/09/24 23:17:43
え?
83:デフォルトの名無しさん
08/09/25 08:56:55
>>80
1〜130作って31〜99を消せばいい。
しかし、そこまで多くなったら素直に配列化した方が良いと思う。
フォームに貼り付けたコントロールをコピペするだけで配列化できるから
試してみた方が良いかも。
84:デフォルトの名無しさん
08/09/25 09:42:51
for 1から30
load ボタン
objectの配置
next
for 100から130
load ボタン
objectの配置
next
85:デフォルトの名無しさん
08/09/25 14:26:19
初めまして
VB6でDoEventsを入れると
コマンドボタンのEnabledがTrueになるんですけど…
例
command1.Enabled=False
DoEvents
ここで勝手にcommand1のEnabledがTrueになっています
仕様ですか?
86:デフォルトの名無しさん
08/09/25 15:00:20
バグとか仕様とか言う前に自分のミスを疑えよ
87:デフォルトの名無しさん
08/09/25 15:33:26
>>86
実際にEnabled=False
の真下でDoEventsしたらTrueになってるから聞いてるんですけど?
何でも上から目線で威圧的に言えば良いってものではないですよね
ここでしか偉そうに出来ないからそんな態度なんですか?
恥ずかしい人ですね
88:デフォルトの名無しさん
08/09/25 15:49:41
>>85
それだけのソースだと判断できないと思うが。
その場所でcommand1のEnabledがTrueになったって確実に言い切れるほど
原因が追求できているなら、問題は既に解決してしまっている訳だからね。
はい、次の人どうぞ。
89:デフォルトの名無しさん
08/09/25 16:37:58
それが起きるミニマムのソースをはったらまともに取り合ってもらえると思うよ。
90:デフォルトの名無しさん
08/09/25 16:44:20
ミートのソースはうまいよ。
91:デフォルトの名無しさん
08/09/25 18:54:53
デバッグで止めて見て分かりました
DoEventsで止めて画面を見るとcommand1の文字がきちんと薄くなっている
のにDoEventsの次の行で止めると文字は押せる状態の通常色になっていました
ちなみに上の2回は1回の実行で連続して確認した訳ではなく
1回目の実行ではDoEvents、2回目の実行では次の行という風にしました
これで分かって頂けるでしょうか?
なのでここ以外のソースは関係ないと思っています
92:デフォルトの名無しさん
08/09/25 20:09:30
>>91
Command1_Clickでやってみたけど(ここはあってる?こういうのの確認にソースがいるってこと)
再現しないね。
検索で Command1.Enable = Trueのところを全部探してごらんよ。
あったらそこにもブレークポイントを入れてみる。
93:デフォルトの名無しさん
08/09/25 20:59:17
>>91
DoEventsする前におまえの書いたコードでイベントが発生していて
そのハンドラでおまえが自分でEnable=Trueにしてるからなるんだよ
こんな程度のことでコンパイラ疑うとか図々しいにもほどがある
94:デフォルトの名無しさん
08/09/25 23:46:14
じゃあ、
DoEvents
command1.Enabled=False
DoEvents
こうすれば直るよw
95:デフォルトの名無しさん
08/09/26 09:11:06
今さらっとこのスレ見たけど
やっぱくだらないスレだわ
役に立ってるかもしれんが
相手のことをおまえだとか
自分に知識があるからと偉そうな態度だわで
人格疑うよ
ここは超初心者向けのスレじゃないのか…
がっかりだね
96:デフォルトの名無しさん
08/09/26 09:13:05
>>95
>>85さん、おはようございます
97:デフォルトの名無しさん
08/09/26 10:38:36
だってここ、もともと本スレじゃないし。全体的にネタに走ってるのはしょうがないな。
98:デフォルトの名無しさん
08/09/26 13:05:39
おはようございます
85です
えっと、とりあえず95は俺じゃないよ?
さっき起きただけだし…
Enabled=False
のすぐ下でDoEventsしても他のプログラムが走るってこと?
なんかよく分からないね
難しい
99:デフォルトの名無しさん
08/09/26 13:55:14
新規のフォームにボタン2つとラベル1つ貼り付ける。
これで1の処理中に2のボタンが押せる。
情報を出したがらないから直接の原因と結果とは結びつかないが、
これに近い現象だとみんな思ってるはずだよ。
Private Sub Command1_Click()
Dim i As Long
Command1.Enabled = False
For i = 0 To 50000
Label1.Caption = i
DoEvents
Next
Command1.Enabled = True
End Sub
Private Sub Command2_Click()
Command1.Enabled = True
End Sub
100:デフォルトの名無しさん
08/09/26 15:33:52
えっとですね
Command2のボタンを押すと情報をグリッドに表示させるという処理があって
Command1のボタンを押すとグリッドから選んだデータの情報を詳しく表示させるという
感じのプログラムなんですけど
Command2のボタンを押して情報検索したり表示したりという処理中は
Command1のボタンを押せないようにしようとしています
なので
Command2のボタンを押した時にCommand1のボタンのEnabled=Falseにして
処理が終わった時に
Command1のボタンのEnabled=Trueにする処理を書いています
実際にDoEventsを書いているのはFalseにしている場所とかなり離れているのですが
そこでTrueに変わって押下可能状態になっていたので
DoEventsを少しずつFalseの場所に近づけて実行を繰り返したんですが
結局はFalseの真下に書いた状態でもTrueになっている事が分かったので
訳が分からなくなったという状態です
って説明結構苦手なので分かってもらえるかは不安ですが
こんな感じです
101:デフォルトの名無しさん
08/09/26 15:52:03
バグだからマイクロソフトに連絡しろ。それで気が済むんだろ!
102:デフォルトの名無しさん
08/09/26 16:31:25
>>100
そのフォームのすべてのイベントの最初でログを出すように
してみるといいよ。
たぶん予想していないイベントが発生してると思うよ。
DoEventsは難しい。
103:デフォルトの名無しさん
08/09/26 16:33:45
>>95
罵倒されるのが嫌なら書込まなきゃいい そんだけ・・・
もうくんなよ ってそのうち書かれるよん。
VBの情報なんてネット上にゴロゴロしてるわけだしヒントもらえればラッキーくらいじゃないとねぇ
回答者の立場で考えてみてくれ
情報を後出しされるということは どんだけいろんなパターンを想定して回答しなきゃならないかを
ぶしつけな質問にはそういう回答にならざる終えない宿命をかかえているという事だ
104:デフォルトの名無しさん
08/09/26 17:39:47
>>100
いずれにしても、イベント内やDoeventsを使ったロジックを1ラインずつデバックしながら製造するのはやめた方がいいよ。
>102の言うようにトレースしたり、ウオッチ式でプロパティが変わった場所を突き止めるなりしてみたらいいと思う。
あと、単体テストはコンパイル後にEXEで実施しなきゃだめよ!
105:デフォルトの名無しさん
08/09/28 10:40:35
IEを操作する場合なのですが
スタート→処理A→処理B→処理C→処理D→終了
のような場合にA〜Dのところで稀にサイトのエラーページに飛ばされることがあります
その時に自動でスタートに戻って再び最初から処理させたいのですが
htmlのタイトル名、もしくはエラーページのテキストで判別することは可能でしょうか?
仮にタイトルは「エラー」、そのページに「エラーです」というテキストがあるとして
これらがあった場合にスタートに戻る処理をさせたいのです
初歩的な質問ですみません
106:デフォルトの名無しさん
08/09/28 13:36:43
>>105
そのロジックの実行は電子計算機損壊等業務妨害に抵触します。
107:デフォルトの名無しさん
08/09/30 11:23:51
GOTO
108:デフォルトの名無しさん
08/09/30 15:43:00
来年6月に出るWindows7ではVB6.0のプログラムは動かないそうですが
どの開発環境に移行しますか?
109:デフォルトの名無しさん
08/09/30 16:06:14
>>108
動かないというソースは?
110:デフォルトの名無しさん
08/09/30 17:11:39
VB6.0のメインストリームサポート(〜2005 /03/31)、延長サポート(〜2008/04/08)の
両方が終了した後に出るOSだから。
111:デフォルトの名無しさん
08/09/30 17:15:50
で、動かない、という、ソースは?
112:デフォルトの名無しさん
08/09/30 17:18:36
7はvistaのsp2だよ
113:デフォルトの名無しさん
08/09/30 17:46:30
>>108
>来年6月に出る
これのソースは?
114:デフォルトの名無しさん
08/09/30 18:01:58
スピリチュアル
115:デフォルトの名無しさん
08/09/30 18:17:24
>>108
つまり、末端の端末の標準OSが2000かXPになるわけだな。
それほど でかいプログラム扱う場所なんざVB使ってないだろうし。
新しいOS出る度にOS買い直すとか、最先端技術を駆使するなら使うだろうけど、
そうでないならば、ある種の金の無駄だからな。
(個人的には、今の所はwindows2000が入ってたマシンを
フルチューンナップした方が使い良いと思う。スペック的にもコスト的にも。)
VBは思い付きで(殆ど設計を書かずに)プログラムを書き始めても
それなりに完成してしまうのが良い所だな。
.NETからその手軽さが少し薄れて個人的には残念な気分だが…。orz
116:デフォルトの名無しさん
08/09/30 19:16:16
仮想PCなんてまさにVBの為にあるようなもの
VB6は将来安泰ですよ
117:デフォルトの名無しさん
08/09/30 23:18:54
>>108
VB6でシェアウェア作って生計たててる俺涙目wwww
VC++勉強しなきゃ・・・
118:デフォルトの名無しさん
08/10/01 00:02:54
.neetじゃだめなん?
119:デフォルトの名無しさん
08/10/01 00:08:36
大体、いまどきVB6しかできませんって奴もいないだろ
120:デフォルトの名無しさん
08/10/01 14:58:33
>>119
ソースは?
121:デフォルトの名無しさん
08/10/01 15:10:53
ソースは今まで仕事してきた相手
だがCOBOLしかできない奴はいたな
122:デフォルトの名無しさん
08/10/01 15:26:55
つまらんソースを隠蔽したいんだろ
123:デフォルトの名無しさん
08/10/01 16:29:58
.netは逆コンパイルできるからダメか
124:デフォルトの名無しさん
08/10/01 16:31:38
>>121
それってたまたま言語がCOBOLだっただけで
VB6もそれしか出来ない人くらい居るだろ…
125:デフォルトの名無しさん
08/10/01 19:40:47
><ノ
126:デフォルトの名無しさん
08/10/02 01:31:43
>>108
絶対に動く。
動かなかったら100万円やるよ。
127:デフォルトの名無しさん
08/10/02 01:33:34
ソースは?
128:デフォルトの名無しさん
08/10/02 02:20:21
ニート御用達言語VB6
129:デフォルトの名無しさん
08/10/02 18:54:20
まあ、VBが動かないのなら、WIN32アプリは、ほぼ全滅と考えたほうがいいな。
130:デフォルトの名無しさん
08/10/02 23:31:07
↑なにこの時代錯誤
131:デフォルトの名無しさん
08/10/02 23:48:24
いまでも普通より延長してサポートしてる状態だから、
動かないというよりサポート対象から外れるということだろうね。
あとランタイムのOSへのバンドルもなくなるだろう。
それでもインストーラでランタイムを入れれば何とか動きはするだろうけど。
132:デフォルトの名無しさん
08/10/03 00:13:16
OfficeVBAが動くんだからVBも動くだろ。
みたいな。
133:デフォルトの名無しさん
08/10/03 00:36:20
動くと思うけどね。
やっぱ互換がある程度保障されてないといくらMSでも買い控えられるのはVistaで分かったろう。
VB6なんて普及度高いんだし、フリーのツールも多いし。
134:デフォルトの名無しさん
08/10/03 00:46:48
MSとしてはサポートしたくないし忌まわしい記憶と共に消したいだろうけどな
135:デフォルトの名無しさん
08/10/03 18:42:28
言語仕様はともかく、画面だけ必要なRAD用途だったらいいものだったからな>VB6
C#今やってるけどやっぱりC++にくらべてライブラリが少なすぎる…><
136:デフォルトの名無しさん
08/10/03 18:45:42
>>134
いや、誇らしい成果だろ、MS的には。
137:デフォルトの名無しさん
08/10/03 21:52:04
VBAのスレからこっちでしろといわれました
クラスモジュールと
標準モジュールの違いがいまいちわからん
クラスはオブジェクトとして使ったりコンパイルしてDLLとして参照すると
名前でプロシージャーを呼び出せるってことなのか?
標準だと他のモジュールのって呼び出せない?
138:デフォルトの名無しさん
08/10/03 22:11:27
クラスっぽいものを書くための場所がクラスモジュール
ふつうのを書くための場所が標準モジュール
139:デフォルトの名無しさん
08/10/04 00:15:00
Newしなくても使えるのが標準モジュール
140:デフォルトの名無しさん
08/10/04 00:17:14
>>139
本気でそう理解してる人が多くて困るんだよなw
141:デフォルトの名無しさん
08/10/04 11:39:14
VB6はすばらしいと思う。。趣味でやってる人ならポインタや構造体で挫折してもVB6ならその悩みは一蹴。
まさか参照とかでつまづく人はいないと思うけど。
やっぱ用途だよ。ゲームづくりだとVB6は物足りないけど、ツール製作ならNO.1だよ。
142:デフォルトの名無しさん
08/10/04 12:03:27
意味不明な機能は使うなと言われて使用禁止されるのがクラスモジュール
143:デフォルトの名無しさん
08/10/04 17:25:27
バカだな。
標準モジュールはクラスモジュールの意味が理解できないアホ専用モジュール。
99%の実装はフォームとクラスモジュールだけで作れるし、作るべきだ。
同じ機能を持つインスタンスを複数作れるということのメリットを理解しろ。
それにクラスモジュールだとC++などのオブジェクト指向言語への移植性が格段に良くなるから、
VB6がWindows7で動かないとしても、移植作業であまり困らない。
144:デフォルトの名無しさん
08/10/04 17:54:05
>>143
君VBでまとまった量のコード書いたことないでしょ?w
145:デフォルトの名無しさん
08/10/04 18:45:23
おれがみてきたほっとんどのプログラムは、クラスモジュール0、標準モジュール200
とかそんなんだ。
146:デフォルトの名無しさん
08/10/04 21:55:01
>>144
今メンテしてるのだと、クラスモジュール80、フォームモジュール20のアプリが俺一人で作ったものでは一番大きい。
今それをVC++に移植してるが、クラス名やソースファイル構成をほとんどそのままで一対一に移植できてる。
VBのクラスはhas-a構造しか持てないが、これだけで十分にオブジェクト指向ライクなプログラミングはできるからな。
クラスモジュールを使ってなかったら、オブジェクト指向言語への移植はまず無理だったろう。
ま、標準モジュールだけでスパゲッティプログラムを作って、DoEvents地獄に陥るアホな開発者は
この先生きのこれないのは確実。
147:デフォルトの名無しさん
08/10/04 22:05:02
>>146
やっぱり分かってないね。
クラスモジュールを積極的に使え、までは正論なんだけど
「標準モジュールはクラスモジュールの意味が理解できないアホ専用」(=標準モジュールを使うな)
は全く正しくない。
VBって言語は嫌でも標準モジュールを使わないとまともなコードは書けないようになってるんだよ。
理由はいくつかあるが、
- VBのクラスは静的メソッドが書けない。
- Win32APIの宣言は標準モジュールにしか書けない。
この二つが大きいかもしれない。
148:デフォルトの名無しさん
08/10/04 22:07:55
というかJavaとかやればVBでも自然とクラスモジュールは
使いたくなる。というか使わないとやってられなくなる。
149:デフォルトの名無しさん
08/10/04 22:47:05
>>147
>Win32APIの宣言は標準モジュールにしか書けない。
すぐばれる嘘をつくな。
150:デフォルトの名無しさん
08/10/04 22:57:28
標準モジュールにしかかけないのは、コールバック関数だっけか?
151:デフォルトの名無しさん
08/10/04 22:58:58
言葉遣いも知らない奴みたいだね。
別に嘘を書いたつもりはないが、VB6を触らなくなって久しいので
間違っているかもしれん。
いずれにせよ、public staticなメソッドが書けるのは標準モジュールだけだ。
152:デフォルトの名無しさん
08/10/05 10:37:52
VB6でクラスモジュールを「使うこと」にこだわってるのってあんま意味がないように思えるが。
例えば、桁数合わせ(左スペース埋めみたいな)関数とか桁数切り取り(左7バイト切り取り)関数のようないわゆるよくある共通関数は標準モジュールに並べるほうが良いと思う。
単なる関数群をクラスモジュールに記述されていると、何か意図的なものがあるのか考えてしまう。
153:デフォルトの名無しさん
08/10/05 10:48:58
共通関数はUtilクラスにまとめる
154:デフォルトの名無しさん
08/10/05 11:02:14
>>153
なんであえてクラスなの?
155:デフォルトの名無しさん
08/10/05 11:05:03
変数関数ともにC#やC++のstatic、VB.NETのsharedに当たる機能がない。
VBのStaticキーワードは別物。たまにそれでバグを作ってるのを見かける。
少なくともUtilクラスをNewして使うようなことはしたくないな。
そんなときはモジュールでしょ。
156:デフォルトの名無しさん
08/10/05 11:08:47
本来staticは無いほうがいいんだよ
157:デフォルトの名無しさん
08/10/05 11:19:28
VB6のクラスをCOMコンパチにしてしまったのが広まらなかった原因のように思えるな。
158:デフォルトの名無しさん
08/10/05 12:00:49
なんつーか、>>146みたいな考え方するやつって何で多いんだろう。
そういう奴って言語仕様とか特性って考えないのかな。
今流行のコーディング思想とかには言語の垣根をすぐ越えて飛びつくけど、
自分が開発している言語でいかにいいプログラムを作るかを考えようとは思わないよな。
保守性、拡張性、メモリの取り方や開放の仕方・タイミングなどなど。
今関わっているプロジェクトに今使っている言語でいかにいいものが提供出来るか、という前提のもとに開発しているとは思えん。
そんなやつはどこいってもただの半端者だろう。
オブジェクト指向とか言語の移植とかを自慢げに語っている時点でピントがずれてる。
そんな大層なことでもないしw
159:デフォルトの名無しさん
08/10/05 12:07:06
まあ、向上心もなくVB6しかやったことなければ
クラスモジュールなんか使わないよね。
使わなくてもものは作れるもん。でもそれでいいのかな。
160:デフォルトの名無しさん
08/10/05 12:15:05
>>159
クラスも使うし、JAVAとVB.NETもメインでやってるけど、
VB6で開発する時にオブジェクト指向を意識することはない。
161:デフォルトの名無しさん
08/10/05 12:23:30
今の言語と比べるのは酷というものだ
162:デフォルトの名無しさん
08/10/05 12:23:33
>>160
オブジェクト指向って意識してやるもんでもないでしょ?
自然とオブジェクト指向脳になるでしょ?
163:デフォルトの名無しさん
08/10/05 12:31:27
>>162
オブジェクト指向脳って言われても困るが、
無意識にクラスを多用してるかと言われるとそうなのかもしれない。
でも、クラスモジュールにする必要がなけりゃ標準モジュールで実装するよ。
164:デフォルトの名無しさん
08/10/05 12:31:32
Utilクラス作って、標準モジュールでインスタンス化して使いまわすんでしょ。
165:デフォルトの名無しさん
08/10/05 12:49:29
Utilクラスなんて作りません。
166:デフォルトの名無しさん
08/10/05 13:17:37
>>158みたいな人も困るw
>>146はたぶんVBでそれなりの規模のコードを書いたことがないだけで、
言ってることがそんなに間違ってるわけじゃないよ。
167:デフォルトの名無しさん
08/10/05 13:33:00
大規模なコードを書けば書くほど、標準モジュールを多用するのが適切だというのか?
アホじゃないの?逆だろ。
規模が大きくなるほどカプセル化して依存性やソース変更の影響範囲を狭めようとするのが常識。
どこからでも直接呼ばれ得る膨大な関数群で出来てる巨大プロジェクトなんて
絶対メンテしたくねーw
てゆうか、すでに死んだ言語の標準モジュールの是非について熱く語るのもアホらしい。。
168:デフォルトの名無しさん
08/10/05 13:35:49
>>167
だからそこはお前さんの言ってることは正しいから
意味なく煽るような書き方するなって。
自分が幼稚なガキじゃないと思いたいならね。
169:デフォルトの名無しさん
08/10/05 14:12:29
クラスを使う使わないで盛り上がれるのはVB6だけ!
170:デフォルトの名無しさん
08/10/05 14:17:39
訂正)VB6で盛り上がれるのはこのスレだけ!
171:デフォルトの名無しさん
08/10/05 14:22:41
>>167
意味的なまとまりごとにmoduleを分ければいいだけの話
172:デフォルトの名無しさん
08/10/05 14:27:17
そういう問題じゃない。
173:デフォルトの名無しさん
08/10/05 16:55:56
どういう問題だよ
174:デフォルトの名無しさん
08/10/05 16:59:46
クラス分けは一種の差別だから撤廃しましょうって問題。
175:デフォルトの名無しさん
08/10/05 17:20:49
>>167
それは合ってる。
だが逆に極端な例を出せば、標準モジュールのmainに100step程度書けば実装出来るようなものも出来るわけだ。
要するにクラスを使う→正、標準を使う→誤 みたいな固定観念を持っていること自体がおかしいのよ。
それに気づいてくれ。
176:デフォルトの名無しさん
08/10/05 23:53:16
クラスモジュールを一度も使ったことが無く、存在意義も知らない奴が多いことを問題視してるんだが。
>>142みたいに使うことを禁止してるような職場など論外。
よほどレベルが低い人間が集まってるんだろう。
「クラスモジュール使わなくても大規模なソフトを作れてるよ。特に困ってないよ。」
とかいうけど、そういう考えの奴がチームに一人でも居ると、まともなプログラマが迷惑するんだよ。
今時オブジェクト指向を理解しようとしない奴なんてプログラム書く資格ないよ。
177:デフォルトの名無しさん
08/10/05 23:57:53
資格とか、そういう非技術的な話題はどうでもいいよ。
178:デフォルトの名無しさん
08/10/06 00:27:56
短納期で納品後あぷでーとなし。顧客の満足するバグがでないプログラムであったら、
ソースがどんな書き方されててもかんけーねーよ。メンテしないんだから。
俺はその手の納品を何件もみてきたが、C長くやっててクラスがなんたるか理解できて
ないけど、腕はたしか。で、標準モジュールだけでかかれてた奴が軽快に動作して
バグなし、しかも短納期なのをみてると、ほんと口だけの奴はどーでもいいよ。
ま、しかし、どとねっと案件は、怖くて発注できませんわなw
179:デフォルトの名無しさん
08/10/06 00:32:18
煽るつもりはないけど、>>178ってダメグラマーの典型的な言い訳に聞こえるよ。
180:デフォルトの名無しさん
08/10/06 00:38:26
俺の経験したのは、
ほとんどの関数をCで書いてDll化。
DeclareでVBから呼び出し。Formがほとんど。
っていう納品のされ方なんだが、DllのソースがVC++なんで
メンテのときVBと両方みるのが素人のおれには、ややつらい。
構造体の受け渡しとかめんどーなんだよな。
181:デフォルトの名無しさん
08/10/06 00:42:27
>>178のようにはなりたくないと素直に思った。
182:デフォルトの名無しさん
08/10/06 00:48:12
VB6でちょっと手の込んだようなことやろうとするとどうしてもWin32APIの
お世話にならんといかんからなー。じゃ、結局C++でやっちゃえよ、って
ほうにいってから作るから180みたいなのは非常に多い。
183:デフォルトの名無しさん
08/10/06 00:50:26
全部VC++でいいじゃんと思うのだけどなぁ
わざわざDLLにして呼ぶくらいならなぁ
MFC使えば生産性も2倍も変わらないと思うんだけどなぁ
184:デフォルトの名無しさん
08/10/06 02:33:29
自分のレベルでも人のレベルでもなく、中間のレベルに皆が合わせて開発すればうまくいくんじゃね?
185:デフォルトの名無しさん
08/10/06 03:14:45
問題は、中間というのが皆の思う所より随分低いようだということ。
186:デフォルトの名無しさん
08/10/06 10:45:29
メンテもいらないし軽快に動いてるから
グローバル変数やgoto文使いまくりでもOKと同類の主張する人がいるスレはここですか?
187:デフォルトの名無しさん
08/10/06 21:10:16
偉そうなおまいらはそんなことはないと思うが、
一応それなりの数のソース見てきた俺としてはだな。
コメントは「コメント」をつけろ!
ゴミ変数残しとくな!
これ出来ていないソースがむっちゃくちゃめちゃいけ多い。
'ここで日付の入力を非活性化にする とか
とか書いてんの。アホか。ソースの日本語訳なんていらんわ!
188:デフォルトの名無しさん
08/10/06 21:30:29
なんでそこで「めちゃイケ」入れたん?
189:デフォルトの名無しさん
08/10/07 21:51:28
動かない綺麗なコードより、動くコードのほうが金になる。
190:デフォルトの名無しさん
08/10/07 22:00:08
>>187
コメント無しのソースを、読む練習をすると良い。
まぁ、変なコメント付いてるといらつくんだが、修正跡は全文残しておいて欲しいし(その一つの修正がバグの原因になる事も多い)
書いてる人が読めないソースになるのも本末転倒だしな。
愚痴るよりは、その人にソースの書き方をアドバイス。
上司だったりしたら目も当てられんが。
191:デフォルトの名無しさん
08/10/07 22:29:41
修正跡はCVSのほうでコメント残ってりゃいいや
192:デフォルトの名無しさん
08/10/07 23:42:23
本当にカナリの初心者で
最近クラスについて勉強中なのですが
ちょうどクラスモジュールと標準モジュールのことが話題に
のぼっていたので質問させてください。
私の中では
「クラスモジュールでやれることはクラスモジュールでやり、
それ以外は標準モジュールで」
という認識でした。
あとは、標準モジュールは
・プログラムで汎用的に使われるメソッドや変数
をおくべき場所なのかなぁって。
結局のところ上の議論が集結していなくて答えが分からなかったのですが
認識は正しいのでしょうか?
クラスモジュールと標準モジュールの使い分け方や
クラスについて正しい理解がしたいので教えてください。
193:デフォルトの名無しさん
08/10/07 23:49:47
そんなことはいいから他の言語を学べ
そうすれば自然にわかってくる
194:デフォルトの名無しさん
08/10/08 00:13:06
言い方はどうかと思うがその通りだね。
そもそも今からVB6を学ぶってどうなの、って感は否めないけど
仮にそれが避けられないとしても、先にC#なりVB.NETなりで今時のプログラミングの
考え方をマスターしてからやった方が、回り道のようで案外早いと思う。
まあ、VB.NETとかに慣れちゃうと、なまじ中途半端に似てる分
VB6のダメさが目についてイライラするかもしれんけど。
195:デフォルトの名無しさん
08/10/08 01:26:32
>192
>・プログラムで汎用的に使われるメソッドや変数
メソッドはともかく変数はどうだろうな?と個人的には思うなぁ。
標準モジュールにPublic変数の宣言書いちゃうのは個人的には禁止したい。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4089日前に更新/174 KB
担当:undef