1 名前:d mailto:age [2008/03/30(日) 09:01:59 ] このスレッドはVBについて、 他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 VB使いが優しくコメントを返しますが、 お礼はVBの布教はしなくてよいので、初心者の救済をお願いします 前スレ くだすれVB6.0以前(超初心者向け) pc11.2ch.net/test/read.cgi/tech/1165574205/
2 名前:d mailto:age [2008/03/30(日) 09:02:39 ] Visual Basic Version 5.0 Control Creation Edition SP2 日本語版 download.microsoft.com/download/vbcc/SP/05.00.4319/W9XNT4/JA/VB5CCEIN.EXE Visual Basic 5.0 Control Creation Edition: SP2 ヘルプ ファイル www.microsoft.com/downloads/details.aspx?FamilyID=b4394931-d7ab-4d38-a3f5-511fd3165b7f&DisplayLang=ja download.microsoft.com/download/vbcc/Help/4.71.0121.0/W9XNT4/JA/CCEHELP.EXE Visual Basic Version 5.0 Control Creation Edition: レジストリ修正モジュール www.microsoft.com/downloads/details.aspx?FamilyID=e91b767c-30d6-407d-b0f3-fd93faebb592&DisplayLang=ja download.microsoft.com/download/vbcc/Patch/1.00/W9XNT4/JA/REGFIX.EXE Visual Basic 5.0: RecentFiles ツール www.microsoft.com/downloads/details.aspx?familyid=C95613D6-D8D2-4A85-9139-3992B601D08A&displaylang=ja download.microsoft.com/download/vb50ent/Patch/1.00/W9XNT4/JA/recents.exe
3 名前:デフォルトの名無しさん [2008/03/30(日) 20:08:18 ] 3が取れたらプログラマという職がなくなる
4 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 20:15:10 ] おめでとう
5 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 15:47:48 ] 馘首
6 名前:デフォルトの名無しさん [2008/04/02(水) 19:27:21 ] abc.mdbというデータベースからランダムに情報を抽出したいです。 abc.mdbのフィールド1には、A,B,Cの3種類のうちどれかが入力されており、 このうちAと入力されている列を抽出し、 さらにその中から5つの列をランダムに取り出したい場合、 どのようにすればいいのでしょうか? ネットで調べましたが出てこなかったので質問させていただきました。 よろしくお願いします。
7 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:34:04 ] このスレは重複です 本スレで質問してください
8 名前:デフォルトの名無しさん mailto:age [2008/04/02(水) 23:45:14 ] 重複じゃなく、次スレである。 まず、前スレ埋めれ。
9 名前:デフォルトの名無しさん mailto:age [2008/04/02(水) 23:48:19 ] >>7 ここは、超初心者向けのスレ。 VB5CCEの使い方でもやさしく教えてけろ。
10 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:51:06 ] 断る
11 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:04:33 ] >>10 ケツ貸してやれば教えてくれるか?
12 名前:6 [2008/04/03(木) 12:17:54 ] 自己解決しました。 >>7 本スレ見つからなかったです。
13 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 13:48:28 ] やりたいのは、form上に固定ディレクトリ(例えばC:\test)の一覧を表示して、 更新ボタンとかリアルタイム更新で確認したい、というものです。 ネット上検索でも、手持ちの参考書でも、 ドライブ→ディレクトリ→拡張子や属性別選択表示のコンボ形式ばかりで、 単純に決めうち表示するやりかたが見つかりません。 教えてください。お願いします。
14 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:41:40 ] どなたか教えて下さい。 ディレクトリ下の複数テキストファイル(ファイル名は決まっていない固定長の データ)を1つのファイルに纏める(1つのファイルに連結コピーする)方法を 教えて下さい。ロジックが思い浮かびません(;;)
15 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:00:20 ] >>14 copy *.txt matome.txt
16 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 19:45:14 ] >>15 thx
17 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 04:03:43 ] >>14 Thank you 難しく考え過ぎていたようです。 フォルダの下のファイル一覧を作成して、それぞれ1行づつ読み込み ワークエリアに書き込み・・・すっかり炉坪でした!! 試してみます。
18 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 08:49:15 ] >>13 いい事言うなあお前。 みんなが頭じゃわかっててもなかなか実践できない事を口に出して言えるなんざ大した自信だよ。 それで出来てなかったらあのインチキ占いのバアさんと一緒だぞお前。 そんなに当たり前の事を言いたかったら尼さんにでもなって言行等しくなってから説教したらどうだ。
19 名前:デフォルトの名無しさん [2008/04/21(月) 21:59:14 ] VB6.0からExcelに値を貼り付けてプレビュー表示をする処理にて 処理中は見えないようにするためVisibleをFalseにするのですが、 EXEファイルから起動するとVisibleをFalseにした段階で最背面に表示されてしますいます。 Visual Basicから起動するとプレビュー画面が最前面に表示されるのですが何故でしょう? 使っているコンポーネントはQuickPack、Farpoint SpreadSheet、InputMan Proです。 今まで別な環境で作った際はこんな現象になったことはありません。 同じコンポーネントを使っている方で克服した方はおりますか? ちなみにSetWindowPos等使わないで済ませたいです。 途中ダイアログを表示したりメッセージボックスを表示させたりするので Visual Basicで起動しているときと同じ用途で実現させたいのです。 ちょっと分かりにくいかも知れませんが宜しくお願い致します。
20 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:12:24 ] コピペ君って馬鹿だな、まで読んだ。
21 名前:デフォルトの名無しさん mailto:age [2008/04/22(火) 00:46:22 ] 出た、素人童貞。
22 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 12:52:33 ] 今日起きたら、知らない女の部屋だった
23 名前:デフォルトの名無しさん mailto:age [2008/04/29(火) 18:14:35 ] おちんちん(^〜^)ムズムズ
24 名前:デフォルトの名無しさん mailto:age [2008/05/29(木) 11:58:27 ] VB5CCEの使い方書いたページ発見した 酒井法雄の Visual Basic 5.0 CCE講座 www.int21.co.jp/pcdn/activex/scrlabel/index.html
25 名前:デフォルトの名無しさん [2008/06/02(月) 17:36:44 ] VBって神言語ですね。
26 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:28:35 ] てすつ
27 名前:デフォルトの名無しさん [2008/06/04(水) 18:30:38 ] 質問があります。 あるDLLを使用しているVB6のアプリがあるのですが、 いちいちDLLとexeをペアでユーザー配布したくないので、exeの中にDLLを含めてしまいたい のですが、コンパイルスイッチなどでそのような指定をすることはできるでしょうか?
28 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:24:18 ] できない
29 名前:27 mailto:sage [2008/06/10(火) 20:13:29 ] >>28 ありがとうございます
30 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 00:46:55 ] うるせえ馬鹿
32 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 01:26:54 ] >30 素直にわかりませんって上に伝えるかわかる人をつかまえて教えてもらえよ それで金もらうなんておかしーぜ
33 名前:デフォルトの名無しさん mailto:sage [2008/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 mailto:sage [2008/06/24(火) 09:29:39 ] あ、わかりました。 Form2.Show DoEvents Unload Me としたら予想の順序になりました。
35 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:16:34 ] とあるメソッドがありそれを呼び出したメソッドを ログにとりたいのですがそのようなことは可能でしょうか? たとえば Function hoge() Call LogWrite ("呼出もと:" & よびだしもと & ) Exit Function といった感じです。 やはりhoge()を呼び出している側でログを出力する必要が ありますか?
37 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん [2008/07/10(木) 21:59:33 ] ↑すみません、VB6.0です、ACCESSのほうはバージョンはわかりません
39 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 03:11:27 ] >>37 何か問題が、って質問からは外れるけど ロックされてるか確認した上で接続するようにすればいいじゃない
40 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 20:22:40 ] Set cn = Nothing にしたらどうなる?
41 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 17:36:45 ] objIE.document.formA.[ID.1].Value = Text1.Text
43 名前:デフォルトの名無しさん [2008/08/29(金) 19:40:54 ] >>42 ありがとうございます []で囲んでみましたが同じくサポートしてないとエラーを吐きます 困りました VB6.0です nameにドットが入ってない場合は正常に動作します
44 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:44:00 ] callbyname
45 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:35:48 ] インスタンスのコピーは例えば A a B b なるインスタンスa,bがあったとして b = a でいいでしょうか? それともb = a.clone or a.copyなるコピー関数をかかないといけないんでしょうか?
46 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:53:49 ] コピー関数が必要。 オブジェクトの代入がコピーでないことを示すために、 Set b = a と書くようになっている。 なお、Stringはオブジェクトではなく型扱いなので代入でコピーが発生する。
47 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:41:03 ] くそっ、そういうことしたかったら、Typeの構造体のほうが便利だな。
48 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/09/01(月) 11:00:44 ] 基本のグローバル変数、アニメーションがわかりません。 ご提示お願いします。
50 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 20:42:45 ] したいんだが、・・・・・・ >>50 遅いのは恐らく文字列の連結。(遅い理由はVBは文字列の連結ごとにメモリの確保と コピーが入るから) 解決法は、確かmid$を使った文字列の高速な連結法があったはずだから ググってそれを使う。 それが面倒なら、変数上で連結なんてせずに直接ファイルに追記すれば 少しはマシになるはず。
52 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:23:16 ] テキストファイルを書き出すのになんでFor Binary Accessなんだ?
53 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:24:31 ] つsystem.text.stringbuilder
54 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:32:21 ] つ、とかヲタっぽい気色のわるい書き方する奴って例外なくアホだな
55 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 22:36:09 ] つ よりもVB6で stringbuilderのほうが痛いな
56 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 06:47:52 ] VB6ならFSOでおk
58 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 16:06:18 ] つ System.IO.StringWriterのWriteLine
59 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 20:27:20 ] >>48 どこかのByRefで渡す筈の引数に、ByValが紛れ込んでいるとか。 それくらいの規模になってきたら、そろそろ設計図書いた方が良いかもしれない。 >>49 グローバル変数とは、Publicで宣言された変数のこと。 引数に値を渡す必要が無いメリットがあるものの、 どこからでも読めてしまうデメリットは 最終的にデバッグを非常に困難にする為、扱いに非常に困る。 アニメーションは、そのままだな。 映画館の映写機みたいなイメージで 1秒間に最大60回くらい画面書き換えたりする事。 >>50 Valiant型使っておいて遅いとか言っちゃダメですぜ。
60 名前:59 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 18:41:23 ] VBからIE操作する際の話なんですが、 IEを起動時 or 起動後にJavaScriptを切る方法ってないでしょうか? バージョンはIE8beta2ですがIE6の方法でも構いません
62 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:24:44 ] Document.designMode="on"
63 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 13:59:12 ] Document.designMode="on"で検索したけどそれらしきものが見当たらない
64 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 14:26:02 ] www.google.co.jp/search?hl=ja&q=Document.designMode= "on"
65 名前:デフォルトの名無しさん [2008/09/22(月) 23:07:09 ] IEでダイヤログ(はい、いいえを選択するやつです)が出てきた時に 最初からはいが選択されてる状態で 自動的にエンターキーを押させてはいを決定させたいのですが SendKeys "{ENTER}", True これでいけると思ったのですが反応しません 自分でキーボードのエンターキーを押すともちろん反応します 何か手違いか、他に方法ありますでしょうか?
66 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:18:02 ] キーボードドライバを作成してそれに向かって操作しろ どうでもいいが、間違いの予想はいくつか出てくるがソース出せやクソガキ
67 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 01:26:08 ] >>65 IEのダイヤログが出る部分の設定を全部「常に許可」に設定すればVB側で弄らなくても解決する。
68 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:41:24 ] keybd_event() or SendInput()
69 名前:デフォルトの名無しさん [2008/09/24(水) 10:08:00 ] 結構古い(と思われる)VBのソース見てて 疑問に思ったんで教えて欲しいです。 a=&H100& みたいに数字の後に & が付いているのは何ですか? 数字の前の&Hはなんとかわかるんですが・・・ 参考書とか読んでも & は「文字列を連結するための・・・」 とかしか出てなくて。
70 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 10:15:36 ] おまえは一冊しか本を持ってないのか?MSDNは読めないのか?馬鹿なの?
71 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 12:55:29 ] 嘘を教えるのはよくない。
73 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:11:22 ] 覚え間違えてたわ。サンクス。m(_ _)m>>72
74 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:21:00 ] &を後置するのは16進数Long型扱いらしい? 調べてみたのだが、いまいち自信が持てない。 (&H0000はInteger型で扱われる。≒最上位ビットが1の場合はマイナス符号化?) 今まで&H0000&のみしか使ってなかったし、何やら損した気分に。orz
75 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:29:56 ] 16進数Long型ってなんですか
76 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 15:33:49 ] MsgBox TypeName(&H8000) MsgBox TypeName(&H8000&)
77 名前:71,73,74 mailto:sage [2008/09/24(水) 15:50:55 ] >>76 なるほど納得。 ヒントに感謝です。m(_ _)m
78 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 16:10:02 ] MsgBox &H8000 MsgBox &H8000& MsgBox &H8000=&H8000&
79 名前:77 mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/09/24(水) 21:43:07 ] VB6.0です button1からbutton30を作って、同じform内に button100からbutton130を作るって出来ますか? button31からbutton99は使用しないです。作成も したくないです。 質問してて、無理っぽいと思ってますが、どうでしょうか?
81 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 21:55:03 ] できます
82 名前:デフォルトの名無しさん [2008/09/24(水) 23:17:43 ] え?
83 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 08:56:55 ] >>80 1〜130作って31〜99を消せばいい。 しかし、そこまで多くなったら素直に配列化した方が良いと思う。 フォームに貼り付けたコントロールをコピペするだけで配列化できるから 試してみた方が良いかも。
84 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:42:51 ] for 1から30 load ボタン objectの配置 next for 100から130 load ボタン objectの配置 next
85 名前:デフォルトの名無しさん [2008/09/25(木) 14:26:19 ] 初めまして VB6でDoEventsを入れると コマンドボタンのEnabledがTrueになるんですけど… 例 command1.Enabled=False DoEvents ここで勝手にcommand1のEnabledがTrueになっています 仕様ですか?
86 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 15:00:20 ] バグとか仕様とか言う前に自分のミスを疑えよ
87 名前:デフォルトの名無しさん [2008/09/25(木) 15:33:26 ] >>86 実際にEnabled=False の真下でDoEventsしたらTrueになってるから聞いてるんですけど? 何でも上から目線で威圧的に言えば良いってものではないですよね ここでしか偉そうに出来ないからそんな態度なんですか? 恥ずかしい人ですね
88 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 15:49:41 ] >>85 それだけのソースだと判断できないと思うが。 その場所でcommand1のEnabledがTrueになったって確実に言い切れるほど 原因が追求できているなら、問題は既に解決してしまっている訳だからね。 はい、次の人どうぞ。
89 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:37:58 ] それが起きるミニマムのソースをはったらまともに取り合ってもらえると思うよ。
90 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 16:44:20 ] ミートのソースはうまいよ。
91 名前:デフォルトの名無しさん [2008/09/25(木) 18:54:53 ] デバッグで止めて見て分かりました DoEventsで止めて画面を見るとcommand1の文字がきちんと薄くなっている のにDoEventsの次の行で止めると文字は押せる状態の通常色になっていました ちなみに上の2回は1回の実行で連続して確認した訳ではなく 1回目の実行ではDoEvents、2回目の実行では次の行という風にしました これで分かって頂けるでしょうか? なのでここ以外のソースは関係ないと思っています
92 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 20:09:30 ] >>91 Command1_Clickでやってみたけど(ここはあってる?こういうのの確認にソースがいるってこと) 再現しないね。 検索で Command1.Enable = Trueのところを全部探してごらんよ。 あったらそこにもブレークポイントを入れてみる。
93 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 20:59:17 ] >>91 DoEventsする前におまえの書いたコードでイベントが発生していて そのハンドラでおまえが自分でEnable=Trueにしてるからなるんだよ こんな程度のことでコンパイラ疑うとか図々しいにもほどがある
94 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 23:46:14 ] じゃあ、 DoEvents command1.Enabled=False DoEvents こうすれば直るよw
95 名前:デフォルトの名無しさん [2008/09/26(金) 09:11:06 ] 今さらっとこのスレ見たけど やっぱくだらないスレだわ 役に立ってるかもしれんが 相手のことをおまえだとか 自分に知識があるからと偉そうな態度だわで 人格疑うよ ここは超初心者向けのスレじゃないのか… がっかりだね
96 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 09:13:05 ] >>95 >>85 さん、おはようございます
97 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 10:38:36 ] だってここ、もともと本スレじゃないし。全体的にネタに走ってるのはしょうがないな。
98 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 13:05:39 ] おはようございます 85です えっと、とりあえず95は俺じゃないよ? さっき起きただけだし… Enabled=False のすぐ下でDoEventsしても他のプログラムが走るってこと? なんかよく分からないね 難しい
99 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:33:52 ] えっとですね Command2のボタンを押すと情報をグリッドに表示させるという処理があって Command1のボタンを押すとグリッドから選んだデータの情報を詳しく表示させるという 感じのプログラムなんですけど Command2のボタンを押して情報検索したり表示したりという処理中は Command1のボタンを押せないようにしようとしています なので Command2のボタンを押した時にCommand1のボタンのEnabled=Falseにして 処理が終わった時に Command1のボタンのEnabled=Trueにする処理を書いています 実際にDoEventsを書いているのはFalseにしている場所とかなり離れているのですが そこでTrueに変わって押下可能状態になっていたので DoEventsを少しずつFalseの場所に近づけて実行を繰り返したんですが 結局はFalseの真下に書いた状態でもTrueになっている事が分かったので 訳が分からなくなったという状態です って説明結構苦手なので分かってもらえるかは不安ですが こんな感じです