[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 11/11 10:49 / Filesize : 174 KB / Number-of Response : 744
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれVB6.0以前(超初心者向け)



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になっている事が分かったので
訳が分からなくなったという状態です
って説明結構苦手なので分かってもらえるかは不安ですが
こんな感じです



101 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 15:52:03 ]
バグだからマイクロソフトに連絡しろ。それで気が済むんだろ!

102 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 16:31:25 ]
>>100
そのフォームのすべてのイベントの最初でログを出すように
してみるといいよ。
たぶん予想していないイベントが発生してると思うよ。
DoEventsは難しい。

103 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 16:33:45 ]
>>95
罵倒されるのが嫌なら書込まなきゃいい  そんだけ・・・
もうくんなよ  ってそのうち書かれるよん。
VBの情報なんてネット上にゴロゴロしてるわけだしヒントもらえればラッキーくらいじゃないとねぇ

回答者の立場で考えてみてくれ
情報を後出しされるということは どんだけいろんなパターンを想定して回答しなきゃならないかを

ぶしつけな質問にはそういう回答にならざる終えない宿命をかかえているという事だ



104 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 17:39:47 ]
>>100
いずれにしても、イベント内やDoeventsを使ったロジックを1ラインずつデバックしながら製造するのはやめた方がいいよ。
>102の言うようにトレースしたり、ウオッチ式でプロパティが変わった場所を突き止めるなりしてみたらいいと思う。
あと、単体テストはコンパイル後にEXEで実施しなきゃだめよ!

105 名前:デフォルトの名無しさん [2008/09/28(日) 10:40:35 ]
IEを操作する場合なのですが

スタート→処理A→処理B→処理C→処理D→終了

のような場合にA〜Dのところで稀にサイトのエラーページに飛ばされることがあります
その時に自動でスタートに戻って再び最初から処理させたいのですが
htmlのタイトル名、もしくはエラーページのテキストで判別することは可能でしょうか?
仮にタイトルは「エラー」、そのページに「エラーです」というテキストがあるとして
これらがあった場合にスタートに戻る処理をさせたいのです
初歩的な質問ですみません

106 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 13:36:43 ]
>>105
そのロジックの実行は電子計算機損壊等業務妨害に抵触します。

107 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 11:23:51 ]
GOTO

108 名前:デフォルトの名無しさん [2008/09/30(火) 15:43:00 ]
来年6月に出るWindows7ではVB6.0のプログラムは動かないそうですが
どの開発環境に移行しますか?

109 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 16:06:14 ]
>>108
動かないというソースは?

110 名前:デフォルトの名無しさん [2008/09/30(火) 17:11:39 ]
VB6.0のメインストリームサポート(〜2005 /03/31)、延長サポート(〜2008/04/08)の
両方が終了した後に出るOSだから。



111 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:15:50 ]
で、動かない、という、ソースは?

112 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:18:36 ]
7はvistaのsp2だよ

113 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 17:46:30 ]
>>108
>来年6月に出る
これのソースは?



114 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 18:01:58 ]
スピリチュアル

115 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 18:17:24 ]
>>108
つまり、末端の端末の標準OSが2000かXPになるわけだな。
それほど でかいプログラム扱う場所なんざVB使ってないだろうし。
新しいOS出る度にOS買い直すとか、最先端技術を駆使するなら使うだろうけど、
そうでないならば、ある種の金の無駄だからな。
 (個人的には、今の所はwindows2000が入ってたマシンを
 フルチューンナップした方が使い良いと思う。スペック的にもコスト的にも。)

VBは思い付きで(殆ど設計を書かずに)プログラムを書き始めても
それなりに完成してしまうのが良い所だな。
.NETからその手軽さが少し薄れて個人的には残念な気分だが…。orz

116 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:16:16 ]
仮想PCなんてまさにVBの為にあるようなもの
VB6は将来安泰ですよ

117 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 23:18:54 ]
>>108
VB6でシェアウェア作って生計たててる俺涙目wwww

VC++勉強しなきゃ・・・

118 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:02:54 ]
.neetじゃだめなん?

119 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:08:36 ]
大体、いまどきVB6しかできませんって奴もいないだろ

120 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 14:58:33 ]
>>119
ソースは?



121 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:10:53 ]
ソースは今まで仕事してきた相手
だがCOBOLしかできない奴はいたな

122 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:26:55 ]
つまらんソースを隠蔽したいんだろ

123 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:29:58 ]
.netは逆コンパイルできるからダメか

124 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:31:38 ]
>>121
それってたまたま言語がCOBOLだっただけで
VB6もそれしか出来ない人くらい居るだろ…

125 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:40:47 ]
><ノ

126 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:31:43 ]
>>108
絶対に動く。
動かなかったら100万円やるよ。

127 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:33:34 ]
ソースは?

128 名前:デフォルトの名無しさん [2008/10/02(木) 02:20:21 ]
ニート御用達言語VB6

129 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:54:20 ]
まあ、VBが動かないのなら、WIN32アプリは、ほぼ全滅と考えたほうがいいな。

130 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:31:07 ]
↑なにこの時代錯誤



131 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:48:24 ]
いまでも普通より延長してサポートしてる状態だから、
動かないというよりサポート対象から外れるということだろうね。
あとランタイムのOSへのバンドルもなくなるだろう。
それでもインストーラでランタイムを入れれば何とか動きはするだろうけど。

132 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:13:16 ]
OfficeVBAが動くんだからVBも動くだろ。
みたいな。

133 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:36:20 ]
動くと思うけどね。
やっぱ互換がある程度保障されてないといくらMSでも買い控えられるのはVistaで分かったろう。
VB6なんて普及度高いんだし、フリーのツールも多いし。

134 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:46:48 ]
MSとしてはサポートしたくないし忌まわしい記憶と共に消したいだろうけどな

135 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:42:28 ]
言語仕様はともかく、画面だけ必要なRAD用途だったらいいものだったからな>VB6
C#今やってるけどやっぱりC++にくらべてライブラリが少なすぎる…><


136 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:45:42 ]
>>134
いや、誇らしい成果だろ、MS的には。

137 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:52:04 ]
VBAのスレからこっちでしろといわれました

クラスモジュールと
標準モジュールの違いがいまいちわからん

クラスはオブジェクトとして使ったりコンパイルしてDLLとして参照すると
名前でプロシージャーを呼び出せるってことなのか?

標準だと他のモジュールのって呼び出せない?

138 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:11:27 ]
クラスっぽいものを書くための場所がクラスモジュール
ふつうのを書くための場所が標準モジュール

139 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:15:00 ]
Newしなくても使えるのが標準モジュール

140 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:17:14 ]
>>139
本気でそう理解してる人が多くて困るんだよなw



141 名前:デフォルトの名無しさん [2008/10/04(土) 11:39:14 ]
VB6はすばらしいと思う。。趣味でやってる人ならポインタや構造体で挫折してもVB6ならその悩みは一蹴。
まさか参照とかでつまづく人はいないと思うけど。

やっぱ用途だよ。ゲームづくりだとVB6は物足りないけど、ツール製作ならNO.1だよ。


142 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:03:27 ]
意味不明な機能は使うなと言われて使用禁止されるのがクラスモジュール

143 名前:デフォルトの名無しさん [2008/10/04(土) 17:25:27 ]
バカだな。
標準モジュールはクラスモジュールの意味が理解できないアホ専用モジュール。

99%の実装はフォームとクラスモジュールだけで作れるし、作るべきだ。
同じ機能を持つインスタンスを複数作れるということのメリットを理解しろ。
それにクラスモジュールだとC++などのオブジェクト指向言語への移植性が格段に良くなるから、
VB6がWindows7で動かないとしても、移植作業であまり困らない。

144 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 17:54:05 ]
>>143
君VBでまとまった量のコード書いたことないでしょ?w

145 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 18:45:23 ]
おれがみてきたほっとんどのプログラムは、クラスモジュール0、標準モジュール200
とかそんなんだ。

146 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 21:55:01 ]
>>144
今メンテしてるのだと、クラスモジュール80、フォームモジュール20のアプリが俺一人で作ったものでは一番大きい。
今それをVC++に移植してるが、クラス名やソースファイル構成をほとんどそのままで一対一に移植できてる。
VBのクラスはhas-a構造しか持てないが、これだけで十分にオブジェクト指向ライクなプログラミングはできるからな。
クラスモジュールを使ってなかったら、オブジェクト指向言語への移植はまず無理だったろう。

ま、標準モジュールだけでスパゲッティプログラムを作って、DoEvents地獄に陥るアホな開発者は
この先生きのこれないのは確実。

147 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:05:02 ]
>>146
やっぱり分かってないね。

クラスモジュールを積極的に使え、までは正論なんだけど
「標準モジュールはクラスモジュールの意味が理解できないアホ専用」(=標準モジュールを使うな)
は全く正しくない。

VBって言語は嫌でも標準モジュールを使わないとまともなコードは書けないようになってるんだよ。
理由はいくつかあるが、

- VBのクラスは静的メソッドが書けない。
- Win32APIの宣言は標準モジュールにしか書けない。

この二つが大きいかもしれない。

148 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:07:55 ]
というかJavaとかやればVBでも自然とクラスモジュールは
使いたくなる。というか使わないとやってられなくなる。


149 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:47:05 ]
>>147
>Win32APIの宣言は標準モジュールにしか書けない。

すぐばれる嘘をつくな。

150 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:57:28 ]
標準モジュールにしかかけないのは、コールバック関数だっけか?



151 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:58:58 ]
言葉遣いも知らない奴みたいだね。

別に嘘を書いたつもりはないが、VB6を触らなくなって久しいので
間違っているかもしれん。

いずれにせよ、public staticなメソッドが書けるのは標準モジュールだけだ。

152 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:37:52 ]
VB6でクラスモジュールを「使うこと」にこだわってるのってあんま意味がないように思えるが。
例えば、桁数合わせ(左スペース埋めみたいな)関数とか桁数切り取り(左7バイト切り取り)関数のようないわゆるよくある共通関数は標準モジュールに並べるほうが良いと思う。
単なる関数群をクラスモジュールに記述されていると、何か意図的なものがあるのか考えてしまう。


153 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:48:58 ]
共通関数はUtilクラスにまとめる

154 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:02:14 ]
>>153
なんであえてクラスなの?

155 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:05:03 ]
変数関数ともにC#やC++のstatic、VB.NETのsharedに当たる機能がない。
VBのStaticキーワードは別物。たまにそれでバグを作ってるのを見かける。
少なくともUtilクラスをNewして使うようなことはしたくないな。
そんなときはモジュールでしょ。

156 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:08:47 ]
本来staticは無いほうがいいんだよ

157 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:19:28 ]
VB6のクラスをCOMコンパチにしてしまったのが広まらなかった原因のように思えるな。


158 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:00:49 ]
なんつーか、>>146みたいな考え方するやつって何で多いんだろう。
そういう奴って言語仕様とか特性って考えないのかな。
今流行のコーディング思想とかには言語の垣根をすぐ越えて飛びつくけど、
自分が開発している言語でいかにいいプログラムを作るかを考えようとは思わないよな。
保守性、拡張性、メモリの取り方や開放の仕方・タイミングなどなど。
今関わっているプロジェクトに今使っている言語でいかにいいものが提供出来るか、という前提のもとに開発しているとは思えん。
そんなやつはどこいってもただの半端者だろう。
オブジェクト指向とか言語の移植とかを自慢げに語っている時点でピントがずれてる。
そんな大層なことでもないしw

159 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:07:06 ]
まあ、向上心もなくVB6しかやったことなければ
クラスモジュールなんか使わないよね。
使わなくてもものは作れるもん。でもそれでいいのかな。

160 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:15:05 ]
>>159
クラスも使うし、JAVAとVB.NETもメインでやってるけど、
VB6で開発する時にオブジェクト指向を意識することはない。



161 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:23:30 ]
今の言語と比べるのは酷というものだ

162 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:23:33 ]
>>160
オブジェクト指向って意識してやるもんでもないでしょ?
自然とオブジェクト指向脳になるでしょ?


163 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:31:27 ]
>>162
オブジェクト指向脳って言われても困るが、
無意識にクラスを多用してるかと言われるとそうなのかもしれない。
でも、クラスモジュールにする必要がなけりゃ標準モジュールで実装するよ。

164 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:31:32 ]
Utilクラス作って、標準モジュールでインスタンス化して使いまわすんでしょ。

165 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 12:49:29 ]
Utilクラスなんて作りません。

166 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:17:37 ]
>>158みたいな人も困るw

>>146はたぶんVBでそれなりの規模のコードを書いたことがないだけで、
言ってることがそんなに間違ってるわけじゃないよ。

167 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:33:00 ]
大規模なコードを書けば書くほど、標準モジュールを多用するのが適切だというのか?
アホじゃないの?逆だろ。
規模が大きくなるほどカプセル化して依存性やソース変更の影響範囲を狭めようとするのが常識。
どこからでも直接呼ばれ得る膨大な関数群で出来てる巨大プロジェクトなんて
絶対メンテしたくねーw

てゆうか、すでに死んだ言語の標準モジュールの是非について熱く語るのもアホらしい。。

168 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:35:49 ]
>>167
だからそこはお前さんの言ってることは正しいから
意味なく煽るような書き方するなって。

自分が幼稚なガキじゃないと思いたいならね。

169 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:12:29 ]
クラスを使う使わないで盛り上がれるのはVB6だけ!

170 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:17:39 ]
訂正)VB6で盛り上がれるのはこのスレだけ! 



171 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:22:41 ]
>>167
意味的なまとまりごとにmoduleを分ければいいだけの話

172 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:27:17 ]
そういう問題じゃない。

173 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:55:56 ]
どういう問題だよ

174 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:59:46 ]
クラス分けは一種の差別だから撤廃しましょうって問題。

175 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:20:49 ]
>>167
それは合ってる。
だが逆に極端な例を出せば、標準モジュールのmainに100step程度書けば実装出来るようなものも出来るわけだ。
要するにクラスを使う→正、標準を使う→誤 みたいな固定観念を持っていること自体がおかしいのよ。
それに気づいてくれ。

176 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:53:16 ]
クラスモジュールを一度も使ったことが無く、存在意義も知らない奴が多いことを問題視してるんだが。
>>142みたいに使うことを禁止してるような職場など論外。
よほどレベルが低い人間が集まってるんだろう。

「クラスモジュール使わなくても大規模なソフトを作れてるよ。特に困ってないよ。」
とかいうけど、そういう考えの奴がチームに一人でも居ると、まともなプログラマが迷惑するんだよ。

今時オブジェクト指向を理解しようとしない奴なんてプログラム書く資格ないよ。

177 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:57:53 ]
資格とか、そういう非技術的な話題はどうでもいいよ。

178 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:27:56 ]
短納期で納品後あぷでーとなし。顧客の満足するバグがでないプログラムであったら、
ソースがどんな書き方されててもかんけーねーよ。メンテしないんだから。
俺はその手の納品を何件もみてきたが、C長くやっててクラスがなんたるか理解できて
ないけど、腕はたしか。で、標準モジュールだけでかかれてた奴が軽快に動作して
バグなし、しかも短納期なのをみてると、ほんと口だけの奴はどーでもいいよ。

ま、しかし、どとねっと案件は、怖くて発注できませんわなw

179 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:32:18 ]
煽るつもりはないけど、>>178ってダメグラマーの典型的な言い訳に聞こえるよ。

180 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:38:26 ]
俺の経験したのは、
ほとんどの関数をCで書いてDll化。
DeclareでVBから呼び出し。Formがほとんど。
っていう納品のされ方なんだが、DllのソースがVC++なんで
メンテのときVBと両方みるのが素人のおれには、ややつらい。
構造体の受け渡しとかめんどーなんだよな。



181 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:42:27 ]
>>178のようにはなりたくないと素直に思った。

182 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:48:12 ]
VB6でちょっと手の込んだようなことやろうとするとどうしてもWin32APIの
お世話にならんといかんからなー。じゃ、結局C++でやっちゃえよ、って
ほうにいってから作るから180みたいなのは非常に多い。

183 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:50:26 ]
全部VC++でいいじゃんと思うのだけどなぁ
わざわざDLLにして呼ぶくらいならなぁ
MFC使えば生産性も2倍も変わらないと思うんだけどなぁ

184 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:33:29 ]
自分のレベルでも人のレベルでもなく、中間のレベルに皆が合わせて開発すればうまくいくんじゃね?

185 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:14:45 ]
問題は、中間というのが皆の思う所より随分低いようだということ。

186 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:45:29 ]
メンテもいらないし軽快に動いてるから
グローバル変数やgoto文使いまくりでもOKと同類の主張する人がいるスレはここですか?

187 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:10:16 ]
偉そうなおまいらはそんなことはないと思うが、
一応それなりの数のソース見てきた俺としてはだな。
コメントは「コメント」をつけろ!
ゴミ変数残しとくな!
これ出来ていないソースがむっちゃくちゃめちゃいけ多い。
'ここで日付の入力を非活性化にする とか

とか書いてんの。アホか。ソースの日本語訳なんていらんわ!

188 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:30:29 ]
なんでそこで「めちゃイケ」入れたん?

189 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:51:28 ]
動かない綺麗なコードより、動くコードのほうが金になる。

190 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:00:08 ]
>>187
コメント無しのソースを、読む練習をすると良い。
まぁ、変なコメント付いてるといらつくんだが、修正跡は全文残しておいて欲しいし(その一つの修正がバグの原因になる事も多い)
書いてる人が読めないソースになるのも本末転倒だしな。
愚痴るよりは、その人にソースの書き方をアドバイス。

  上司だったりしたら目も当てられんが。



191 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:29:41 ]
修正跡はCVSのほうでコメント残ってりゃいいや

192 名前:デフォルトの名無しさん [2008/10/07(火) 23:42:23 ]
本当にカナリの初心者で
最近クラスについて勉強中なのですが
ちょうどクラスモジュールと標準モジュールのことが話題に
のぼっていたので質問させてください。

私の中では
「クラスモジュールでやれることはクラスモジュールでやり、
それ以外は標準モジュールで」
という認識でした。
あとは、標準モジュールは
・プログラムで汎用的に使われるメソッドや変数
をおくべき場所なのかなぁって。

結局のところ上の議論が集結していなくて答えが分からなかったのですが
認識は正しいのでしょうか?
クラスモジュールと標準モジュールの使い分け方や
クラスについて正しい理解がしたいので教えてください。

193 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 23:49:47 ]
そんなことはいいから他の言語を学べ
そうすれば自然にわかってくる

194 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:13:06 ]
言い方はどうかと思うがその通りだね。

そもそも今からVB6を学ぶってどうなの、って感は否めないけど
仮にそれが避けられないとしても、先にC#なりVB.NETなりで今時のプログラミングの
考え方をマスターしてからやった方が、回り道のようで案外早いと思う。

まあ、VB.NETとかに慣れちゃうと、なまじ中途半端に似てる分
VB6のダメさが目についてイライラするかもしれんけど。

195 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:26:32 ]
>192
>・プログラムで汎用的に使われるメソッドや変数
メソッドはともかく変数はどうだろうな?と個人的には思うなぁ。
標準モジュールにPublic変数の宣言書いちゃうのは個人的には禁止したい。

196 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 10:57:14 ]
標準モジュールに書いていいのは
sub main()

だけ

197 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 11:23:35 ]
クラスモジュールのグローバルなインスタンスを標準モジュールに書くということはある。

198 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 11:57:55 ]
グローバルのインスタンスが許されるのは1個まで

199 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 18:29:17 ]
何いってんだ?
グローバル変数はすべての基本。
全てグローバル使ってこそ本物。

200 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 21:10:10 ]
>>199
了解した、その手筈でやってみるZE!



201 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 15:37:04 ]
グローバルマンセー!!!

202 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:08:55 ]
VBのまともなソースを未だにみたことないので参考にしたいのですが
どなたかありませんかね?リンクでもいいです。

203 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:06:51 ]
>>202
まず202氏の書いている『まともなソース』を頼む。

204 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 15:42:01 ]
VBでまともなソースってそもそも無理難題。ましてや絶滅寸前でメンテナンス案件しか残ってないんだし。

205 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:20:50 ]
俺はまともだ

206 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 18:27:17 ]
VB6の最終使用日みたら2072年になってた

207 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:05:05 ]
つまり、目の前にあるぐちゃぐちゃなソースはまともなソースである可能性が高い。
そういうことでしょうか?

208 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:10:13 ]
ぐちゃぐちゃなら、まともではないでしょ。

209 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:13:50 ]
みてみたい、みてみたいのぅ。まともな奴を、一生に一度でも。。。

210 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:15:56 ]
歌丸です?



211 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:27:36 ]
homepage2.nifty.com/nonnon/
例えば、このあたりのソースは、どんなもんです?
英単語の綴りミスや、関数のコメントが冗長なのが気になりますが
結構好みです。

212 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:44:39 ]
>>211
暗号のやつとかみてみたけど、それほどきれいじゃないね。

213 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:48:54 ]
俺は、コメントがC++風なのが好みだな
html埋め込みも可
'///////////////////////////
'//
'///////////////////////////

もしくはJavaDoc風。 C#風なのはいいのだがXMLがださい。

214 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:55:56 ]
>211
そのサイトのどれだろう
FTPと文字列変換クラスしか見てないけど、いいと思う。
機能数が増えてもこの感じを維持できれば十分だ。

215 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 23:07:56 ]
もうちょっと大きい規模の良ソースあればなー。
オープンソース文化がVBになかったのが、技術あがらない原因のひとつだとはおもう。

216 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 00:53:03 ]
そんなことはない。
3年ぐらい前まではインターネット上にVB6のソースがどの言語のソースよりも豊富にあった。
ほとんどが英語圏だけどな。

217 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 00:56:37 ]
FTPのをちょっと見ただけだけど、
「好みかどうかで言えば」個人的にはいまいちかなぁ。

関数はcallをきちんと書きたいし、
変数宣言は先頭でまとめたい。
if A then B も
if A then
B
end if
と書きたいかな。

エラー処理はよく出来ているが、ErrRaiseのあとにExit Subが書いてあるのが残念な気がする。

218 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:02:26 ]
お前のソースを出してもらおうか?

219 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:03:00 ]
こういうこと言う奴が現れると思った・・・

220 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:25:30 ]
出せよ



221 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 09:50:12 ]
たっても無いのにそんなに急に出せないっすよww

222 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 18:31:22 ]
>>217
「1行で完結するからインデントする必要ない」として、解釈するようにしている。
インデントはIf〜End If等の構造の始点と終点を見るための物なので、
Ifを1行だけの場合は、EndIf含めて3行も使う必要性が無い。
ソースを縦に延ばすと逆に見難くなってしまう挙句に
If文如きでインデントしてると(If文は頻繁に出てくる傾向があるので…)インデントが不必要に多くなってしまって
忘れた後でソースを見た時に目も当てられん状況になる。

私的にはこの様な感じで構造的な形式を取る場合以外はEnd Ifが出てくる状況を避ける様にしている。
 If hoge = n Then
  If hogehoge = nn Then
   hogehogehoge = nnn
  End If
 End If

1行で済ませるのが通常の条件判定、
End Ifが含まれるのが構造の条件判定…と言った形もお勧めしてみる。

223 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 18:53:51 ]
Call使いたがる人って、引数の括弧が無いと落ち着かない人かな?
組み込み関数もCallしてるの?

224 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:05:52 ]
>>223
人それぞれだろうね。
自作した関数の呼び出しはCallでやってる人とか、
戻り値を捨ててる目印にしている人とか。

225 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 21:42:56 ]
俺は、ピーターノートンで学んだから
if A then
B
end if
派だな。
あと引数をはっきりとわからせるようCallも付ける派。

226 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 00:36:08 ]
というか、callを省略するメリットってどれほど?
関数を明示することと、callをつけて戻り値有無を表すといったメリットをなくすほどのものなのか
俺はコメントをきちんと書くのと同じレベルの感覚だから、ちゃんとつけるってだけ。

227 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:39:15 ]
わざわざCallを付けるほうが、何かの意図があるかと思うけどね。
Functionの戻り値を無視する意図があるとか。

228 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:44:28 ]
質問です。

if((条件式A = False ) or (条件式B = False ) ) then
  処理(チョメチョメ)
end if

こういうif文で、条件式A、BそれぞれがBoolean値を返す関数
であった場合、デバッグ時の処理の流れとビルド後のEXEの
処理の流れが変わることがあったんです。

デバッグ時は条件式Aの後に条件式Bの順番だったんだけど
EXEでデバッグポイント代わりのmsgboxをいれてたら
条件式Bを示すmsgboxの後に条件式Aのmsgboxが出てきた
ので、デバッグ時と異なっているのは明らかなんです。

こういう現象の発生する原因って何だろうと思ったんですけど
ご存知の方いらっしゃいますか

また、環境ですが
開発PCがXPPro(SP3) ,VB6(SP6) ,IE7
実可動のPCが2003R2(SP2) ,IE7

となります。
よろしくお願いします。


229 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:49:56 ]
そこから導き出される結論は、特定の評価順所を期待したコードを書いてはいけないってことになるのでは?

230 名前:228 mailto:sage [2008/10/15(水) 10:43:03 ]
ごめんなさい、今起きました。
(久々の休みだったもので・・・)

>>229
そのとおりです。

条件式Bはその直前の条件式Aによって出力値の影響を受けてしまいます。
ちなみに、この現象XPでExeを走らせると発生しなくて、2003でExe走らせると
おきたんです。

ちなみに、似たようなソースを書いて検証したのですが、それでは
EXE環境でもXP,2003問わず、こちらの意図している
「条件式Aの評価」後に「条件式Bの評価」を行うのです。

なので、余計に前述の現象が奇異なものにみえたので
この現象が「なぜ起きるんだ?」という知的探究心(好奇心のほうが正しい?)
と気になったわけなんです。

ソースはけっきょく
if 条件式A = false then
if 条件式B = false then
ちょめちょめ
end if
else
いやんばかん
end if

になりました。



231 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:17:27 ]
賭けてもいい。
絶対228の勘違いだと思う。

232 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:41:01 ]
> 条件式Bはその直前の条件式Aによって出力値の影響を受けてしまいます。
こういう設計って一般的なの?

233 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:41:49 ]
a + b のどっちが先に評価されるかなんてことに依存するコードを書こう
なんてやつを相手にすんな

234 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:47:11 ]
>>232
それは普通。VB.NETなら
if 条件式A AndAlso 条件式B then


235 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:45:53 ]
副作用を伴って、なおかつお互いに関連がある関数は、複数if-conditionには書かないのが
どんな言語でも普通。

236 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:07:50 ]
>>235
15年くらい前ならそう言ってもよかったんだが、
最近はショートサーキット演算子があるのが普通だな。
PerlあたりのLL、Java、JavaScript、VB.net・・・例外はCくらいか。


237 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:10:38 ]
だよねえ。
ってああ、思い出した、これだ。

msdn.microsoft.com/ja-jp/library/sect4ck6.aspx

> トラブルシューティング
>
>  実行順序。Visual Basic では、演算効率を高めるために数式が自動的に
>  並べ替えられることがあります。このため、変数の値を変えてしまうような
>  Function プロシージャを数式の中で実行しないようにしてください。

238 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:12:17 ]
>>237のだよねえは>>235宛だったんだけど>>236に否定されてるな。まあいいか。

239 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:20:53 ]
そしてリンク先がVB2008のヘルプだった。まあ該当部分はVB6でも一緒なんで。

240 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:35:01 ]
>>236
Cだって&&と||は短絡評価だ。



241 名前:228 mailto:sage [2008/10/15(水) 23:55:34 ]
>>237
そういうことだったんですね。目から鱗です。

皆様の貴重なご意見身に染みました。
有難うございました。

242 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 00:52:12 ]
vb6でAndAlsoを代替するなら

if not 条件式A then
elseif 条件式B then

end if


243 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 01:00:49 ]
(複雑な式の)数値演算の順序と単純な論理演算の順序の問題は
普通に考えればまったく別問題だろう。
目からうろこが落ちてどうする。
だから間違いなくお前さんの勘違いだから。

244 名前:デフォルトの名無しさん [2008/10/16(木) 01:28:11 ]
Dim txt As New TextBox
→Newキーワードの使用法が不正です。

これってどうしてでしょうか?
クラスである以上Newできるのが当然と思っているのですけど
できなくてすごく疑問です。


245 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:46:48 ]
質問する前にVBのヘルプを読め。
New で 検索掛ければ 出てくる筈だ。

246 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 04:31:12 ]
>>240
そうだった。算術演算子と勘違いしてた。

247 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 13:45:09 ]
Andはどっち?

248 名前:244 mailto:sage [2008/10/18(土) 18:21:41 ]
キーワード New を使って、固有のデータ型の変数の宣言、または従属オブジェクトのインスタンスの宣言はできません。
→CreateObject または New を使用して従属オブジェクトを作成することはできません
 →クラスの従属オブジェクトからオブジェクトを作るには、クラス モジュールの Instancing プロパティに PublicNotCreatable を設定します。

従属オブジェクトってことですね。

249 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 18:28:05 ]
>>248
違うと思う。普通に New できるもん。

TextBox ってのの定義と、プロジェクトの種類を教えて。

250 名前:245 mailto:sage [2008/10/18(土) 20:01:02 ]
>>248
Newにカーソル置いてF1押してるだけだとそのヘルプは出てこないから、
キーワードのヘルプだけでやってるとそこらでドツボにハマる。
というか、私もハマった一人なんだがな。なので、教えるのに若干くどい手段に。

ただ、>>248で従属オブジェクトと言ってるのは多分違う。
>>248の言っている従属オブジェクトと言うのは、
自作したクラスの中にTextBoxを丸ごと包括してたりする場合などを示す。
と言う訳で、Newの仕様を理解した所で回答。(宣言時のNewは自作Class専用みたいな物。)
ヘルプで探してもナイスな方法が出てこなかった気がするので説明添えてサンプル提示してみる。



Controls.Addで追加してそれを参照する形でNewの代用とする。
※txtNewは作成されるコントロール名なので複数Addする際は重複不可。
動的に割り当てる場合、大概は複数作る筈なのでindexに配列値を入れて、
Set Txt(index) = Me.Controls.Add("VB.TextBox", "txtNew" & format(index))
と言う形で作成する。
'--------------------------------始
Dim Txt(1) As TextBox
Set Txt(0) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(0))
Set Txt(1) = Me.Controls.Add("VB.TextBox", "txtNew" & Format(1))
'--------------------------------
'単発版
Dim Txt1 As TextBox
Set Txt1 = Me.Controls.Add("VB.TextBox", "txtNew1")
'--------------------------------終
これを走らせると、定義したformにtxtNew1と言うオブジェクト名を持つTextBoxを作成し、
参照の設定を終えた形になる。
ただし、Me.Controlsの数は255以下とされていて、それを超えて生成しようとすると失敗する。
「際限なくコントロールを作成できるボタン」等を作成する場合は、
カウント数を見ながらエラートラップすべし。



251 名前:デフォルトの名無しさん [2008/10/19(日) 12:40:44 ]
コントロール配列にすれば良いじゃん

252 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 20:17:00 ]

ハード(分解能=1μs)のタイマとソフトのタイマ使ったソフト仕事で作ってるんですが
VB6のタイマの分解能って実際50msぐらいなんですか?Windowsのタイマの分解能が1msらしいですが、、、

253 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 20:24:19 ]
>>252
はい。約55msecです。

#10msec ってのも会ったような気がしたけど

それより細かい値が必要なときは、パフォーマンスカウンタを使いましょう。

254 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 22:48:52 ]
>>253
ありがとうございます
細かい分解能必要な時はソフトのタイマ使うのはちょっと怖いですね
VBのタイマとか、APIのタイマってハードのクロックを常に取得しているんですかね?
VBでタイミングの遅延を気にするのなんてナンセンスな気もしますが
他のプロセスの動作でタイマの遅延みたいのってあるのかな・・?
実際はソフトウェアのタイマは使わないので遅延があっても構わないんですが、、、

255 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:23:55 ]
rtos使え

256 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:39:03 ]
>>252
timeBeginPeriod/timeEndPeriodで1msになるようだ。
ttp://www.emit.jp/prog/prog_t1.html
ttp://d.hatena.ne.jp/NyaRuRu/20080909

257 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 23:45:45 ]
>>253
55msecとか10msecとか決まってないって。
VBのタイマーはWM_TIMERだから、メッセージループを最低1回回すだけの時間は確実に掛かる。
具体的な数値はパソコンの性能とかそのとき行ってる処理内容による。
そういういいかげんなタイマーだ。

258 名前:デフォルトの名無しさん mailto:sage [2008/10/20(月) 00:44:51 ]
>メッセージループを最低1回回すだけの時間は確実に掛かる。
そらそうだが今はそういう話じゃないだろw


259 名前:244 mailto:sage [2008/10/20(月) 02:58:58 ]
>>249
どうも違うみたいですね汗
TextBoxはフォームに乗せるTextBoxです

>>250
>宣言時のNewは自作Class専用みたいな物
これで納得しました。

New出来ないClassは例のように
Controls.Addのように間接的にしかNewできないんですね。
確かにTextBoxクラスなどはこっちで勝手にNewできる必要はないですし、
できたとしてもどう初期化すればいいのか困る気もします。

260 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:34:16 ]
マルチスレッドで組めないVB6で苦悩しているVB厨の私が
次に手をつけるべきお勧めの言語は何でしょうか?



261 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:44:08 ]
もうやめろ

262 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:56:03 ]
選択肢はC#ぐらいしかないでしょ?このスレでDelphiとかいったら喧嘩売ってるようなもんだし。

263 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 03:13:02 ]
>>260
VB,NETかC#辺りをお勧め。
とは言え、それなりにプログラムを何度か組んでいるのであれば
言語仕様は解ってきてると思うんだがな。
VBが粗方解ってきたらC++を少し齧っておくと後で覚えようとする時に楽かな。

264 名前:デフォルトの名無しさん [2008/10/22(水) 04:34:15 ]
>>260
なでしこにでも手を出せば?

265 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 06:41:03 ]
>>263
ブイビーコンマネットいいよね

266 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:21:04 ]
コロンネットの方が優れている

267 名前:260 mailto:sage [2008/10/22(水) 23:11:45 ]
レス有難う
大幅な仕様変更でシビアなタイミングが求められてきて
タイマで誤魔化しきれなくなってきました
2005のC#なら少し使ったことあるので、そっちに移行出来るよう勉強します
といっても納期は来週頭なんですが・・・ハハハ
orz

268 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:36:38 ]
C#なら解決するとでも思ってるんだろうか

269 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:42:27 ]
解決するんじゃないあるいは?

例えば通信とか、機器の制御なんかだとワーカースレッドが使えるかどうかは
雌雄を決する場合があるよ。

270 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 22:19:52 ]
VB6でまともなマルチスレッドがやりたければ、別スレッドの処理をCで書いたDLL関数からCreateThreadするのが常道。
VBとのスレッド間通信もDLL関数でできる。
Cの知識がなければ無理だが、職業プログラマでまさかCが書けないなんてことはないよな?



271 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 00:16:50 ]
などと意味不明なことを口走っており

272 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 08:57:00 ]
奥多摩方面に逃走している模様です

273 名前:デフォルトの名無しさん [2008/10/24(金) 11:17:11 ]
>>270
時代はJavaだと言うに

274 名前:デフォルトの名無しさん [2008/10/24(金) 11:18:35 ]
軽く1000回以上は説得したけど無駄でした。


275 名前:デフォルトの名無しさん [2008/10/25(土) 23:10:41 ]
web情報を一行ずつテキストに取り込む方法教えてください

276 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 23:13:02 ]
web情報って何ですか?

277 名前:デフォルトの名無しさん [2008/10/25(土) 23:18:39 ]
馬鹿は黙っててください

278 名前:デフォルトの名無しさん [2008/10/25(土) 23:30:37 ]
web情報ってのはブラウザーに表示されている、web内容の意味で使いました。

279 名前:デフォルトの名無しさん [2008/10/26(日) 06:31:55 ]
目覚まし時計を作ってます

現在
dim aa

zikoku = Time
aa = DateAdd("m", 10, zikoku)

Dateaddで正確に時刻が入りません、timeを直接引数にしたりもしましたがダメでした
固定された時間しか無理なのですか?


If aa = Time Then
MMControl1.Command = "play"

数時間前はaaに時間が入力できる時がありましたが
同じ時刻のはずなのにif文が反応しませんでした。

マウスをあててみるとaa = "5:30:00" time = 5:30:00とダブルコーテーションのくくりなかったのでこれかなとも思ってます

280 名前:デフォルトの名無しさん [2008/10/26(日) 06:33:03 ]
誰か解決法いただけませんか



281 名前:デフォルトの名無しさん [2008/10/26(日) 06:38:30 ]
時間を=で比べるな

282 名前:デフォルトの名無しさん [2008/10/26(日) 06:48:51 ]
いや、分を”m”にしてたこととスピーカのボリュームが0になったました。
すいません、自己解決しました

283 名前:260 mailto:sage [2008/10/26(日) 23:54:30 ]
>>270
残念ながら職業プログラマじゃないのです
学生の時ちょこっと齧っただけです
会社に適任者がおらん為、仕事を投げられました
まともにプログラムの勉強したいです

284 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:18:20 ]
そのレベルなら外注するか専任にさせてもらうか、また今後どういう方向性で
プログラムを扱っていくのか、そのコストは見合うのか、など、言語とかそういうこととは
違うレベルで調整が必要だと思う。頑張ってどうにかしたのはいいけど、評価が
下がるんじゃ嬉しくないっしょ?

285 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:43:15 ]
自分も外注に投げたいんですよ本当は
だけど計画性0の会社で5秒後に仕様変更発生みたいな感じなので
社内で作れと・・・
使う機器が1号機ってせいもあるんですが
仕様が全く固まってないので、当面は私が作ることになりそうです
しかもそのソフトを100万で売るっつってるんだから始末に終えない・・・
はぁ・・・こんな仕事やりたくねぇ・・・

286 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:40:59 ]
お前な、成功させようとするからおかしな方向に進んでいくんだよ
ばっさりと動かなくさせれば他の道ができていくんだ
やれることをやってからぼやけ

287 名前:デフォルトの名無しさん [2008/10/29(水) 00:53:25 ]
VB6.0でListView(詳細)についてですが、
ListView1.ListItems.Add
のように、行を追加した後で、
ListView1.ListItems(0).Text = "hoge"
のように、やってみると、「インデックスが範囲を超えています」
というエラーが出て、文字の値の変更ができません。
本当に初心者の質問ですみません。悩んでいます。

288 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 01:08:18 ]
>>287
インデックスが1からってことはない?

289 名前:デフォルトの名無しさん [2008/10/29(水) 01:17:01 ]
>>288
できました!インデックスが1からでした!!
有難うございます。しょうもない(?)ところで2〜3時間食っていて悩んでました!

290 名前:デフォルトの名無しさん [2008/10/31(金) 00:25:17 ]
スロー再生や倍速ができるアプリを作りたいんですがまるでわかりません
なんかヒントいただけませんか



291 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:03:30 ]
>>285
どこの田舎の零細企業?
会社はソフト産業とは無縁でしょ。
よくいるんだよね。
そういうこと言い出す馬鹿。


292 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:06:42 ]
>>290
まずは自分で再生するソフトを作ってみような。
もちろんデータを読み込んで1コマ1コマ表示する処理を自分で書くんだ。
それが出来てから倍速とか考えるべき。


データフォーマットをいじって30fpsってのを60fpsに変更してWindowsMediaPlayerで再生すれば倍速になるけど
音声も調整しないといけなくて、しかも音程が狂うんじゃなかったっけな。


293 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 17:13:16 ]
VBで何かシステム作って卒業研究にしたいんですがいいアイデアありませんかね?

294 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 17:18:16 ]
あるよ!

295 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 21:00:07 ]
>>294
教えてくれこのとおりだ
or2

296 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:09:39 ]
なんで今からVB6なんだよ?そもそもライセンスが(ry

297 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:20:00 ]
ライセンスがどうかしたのか?
サポートの話ならわかるが

298 名前:293 mailto:sage [2008/11/06(木) 02:55:47 ]
すまんスレタイの超初心者ってのみてここで相談しちまった

299 名前:デフォルトの名無しさん [2008/11/06(木) 22:02:06 ]
フォームサイズの最大値が画面の解像度に依存しないようにする方法ってありますか?
15インチ幅の用紙に印刷する為に印刷内容を載せるフォームを作ったのですが
解像度が低いマシンだとフォームのサイズを小さくされてしまい、
印刷内容が途中で切れてしまいます。

300 名前:デフォルトの名無しさん [2008/11/07(金) 00:34:34 ]
VBscriptをつかってHTA上で実行した結果をHTMLへ動的に表示させたいのですがうまく出来ずに悩んでおります。一応VBの部分はちゃんと出来ていることは確認していますが表示が全くダメです。
どなたか教えて下さい。


Option Explicit

Dim objAccess
Dim objDB
Dim objRS
Set objAccess = CreateObject("Access.Application")
objAccess.Visible = True
objAccess.OpenCurrentDatabase("c:\happy\island.mdb")
Set objDB = objAccess.CurrentDb
Set objRS = objDB.OpenRecordset("SELECT COUNT(*) AS 件 FROM 住所録テーブル")
WScript.echo "件数=" & objRS("件数")
objRS.Close
Set objRS = Nothing
Set objDB = Nothing
Set objAccess = Nothing

件数をWScript.echoではなくinnerhtmlで表示したいです。
またSQLを("SELECT * FROM 住所録テーブル")にした場合データをレコードセットで抽出し必要なデータを表にして表示をしたいのですが・・・(これもinnerhtmlを使いたい)



301 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 00:43:19 ]
>>300
www.google.co.jp/search?q=innerHTML

302 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:12:41 ]
パラメータって引数とは違うの?

303 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:34:17 ]
時と場合による

304 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 23:39:49 ]
サンクス

305 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 03:06:03 ]
おならプー

306 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 12:19:50 ]
>>299
ピクセル数が少ないところに全体を表示するなら
縮小しないと出せませぬ。
Imageコントロールはビットマップを縮小表示できます。
FormやPictureBoxにLineやPrintで書いている場合は、
書いたものをビットマップ(IPicture)として取得してImageに出すか、
こんなときのためのScaleWidthやScaleHeightなので、これらを常に
同じ値にして、Twip単位でLineやPrintを使いましょう。


307 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 11:09:45 ]
Visual Basics 6 Portable めっけた
www.plunder.com/Visual-Basics-6-Portable-download-69648.htm
makeもできるんですけど

308 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 14:27:23 ]
>>307
ぷぷw

309 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 15:55:59 ]
>>307
コメント欄が荒れすぎなのでウィルスかなんかかと思ったけど、結局これ何なの?

310 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 16:01:33 ]
>>309
ウイルスに決まってんじゃんw



311 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 16:51:54 ]
AVGは反応しなかった。
普通に起動した。
何かが起きたかどうかは知らん。

312 名前:デフォルトの名無しさん mailto:sage [2008/11/13(木) 10:54:38 ]
US評価版だろ。
USBメモリ起動に割ったやつ

313 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 16:07:09 ]
ベーシックス

314 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:20:55 ]
社内の情報システム部のようなところで勤務していますが、プログラマーではありません。

そんな私が最近、VB6のコードを調べる必要がありました。
.NETのC++やC#のコードとよく似てるように見えるのですが
VB6はオブジェクト指向ではないという理解で正しいでしょうか。

315 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:29:54 ]
何を持ってオブジェクト指向と定義するかで変わってくるが
オブジェクト指向に必要な要素は持っている。
ただ一般的に社内システムレベルのソースがオブジェクト指向ではない可能性は高い。

316 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:02:54 ]
VB6はオブジェクト指向の要素のうちカプセル化を不完全な形で持っているだけで、
継承、多態といった要素を持ちません。つまり>314の認識でほぼ合っていると思われます。

317 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:11:03 ]
オブジェクト指向なんて考え方。Java使ったコボラーの
プログラムなどをオブジェクト指向などと呼びたくない。

318 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:18:37 ]
委譲、包含、インターフェイスといった要素ではダメですか>OOP
一口でオブジェクト指向といっても、オブジェクト指向プログラミングの他に
オブジェクト指向デザイン、オブジェクト指向ユーザーインターフェイス、
オブジェクト指向開発などなどさまざまな概念がそろっております。

319 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:26:44 ]
> 委譲、包含、インターフェイスといった要素ではダメですか>OOP

だめじゃね? 全部 VB6 でできる。

320 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:28:07 ]
とりあえず、VB6は、Cの構造的プログラミング+モジュール分割 の書かれ方が多い。
が、フォームのコントローラ関係は、普通にOOだな。
あ、そうそう、下手にOOしてるVB6ひいちゃったら、しねるぞ。



321 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 20:10:59 ]
OOの定義の問題は置くとしても愚問だね。
仮に結論が出たとして、それを>>314が知ったところでなんの意味があるんだろう。

322 名前:314 mailto:sage [2008/11/15(土) 21:13:10 ]
質問の仕方が下手ですみません。
VB6の言語使用を習得すれば、「オブジェクト指向も知ってます」と
いえるのかどうかを知りたかったです。
オブジェクト指向についてはまた別に学習することを考えます。

しかし、オブジェクト指向とは何たるかについては、
本職ではない私にはちょっと難しそうですね・・・

とても参考になりました。
みなさん、ありがとうございました。

323 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 21:29:29 ]
>>322

> VB6の言語使用を習得すれば、「オブジェクト指向も知ってます」と
> いえるのかどうかを知りたかったです。

いえません

324 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 21:59:27 ]
いくらOOが考え方だとはいえ、さすがにVB6でOO知ってますは無理があるだろ・・・。
VB6なんて最悪言語の代名詞なのに・・・。

325 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 22:05:14 ]
かといって、Javaも不完全なんだよなー

326 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 22:43:44 ]
>322
実装重視であれこれつまみ食いするのが結局一番いいんじゃね?
アカデミックに勉強してたらそれだけで一生終わる

327 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 13:17:41 ]
なるほどオブジェクト指向を学ぶにはVBが最高なんですねー

328 名前:デフォルトの名無しさん mailto:sage [2008/11/18(火) 20:02:59 ]
反面教師としてはいいんじゃね?

329 名前:デフォルトの名無しさん [2008/11/19(水) 14:51:36 ]
はじめまして
早速ですが、現在、VB6.0でAccess97のmdbを使うプログラムを作成しているのですが、
実行時エラー 2147023170(800706be)オートメーションエラーです。リモートプロシャジーコールに失敗しました。
のエラーが、稀に発生します。
プログラムの一部
Public wrkJet As Workspace
Public Rundb As Database
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set Rundb = wrkJet.OpenDatabase("c:\xxxxx\xxxxxx.mdb", False)
strSql = ""
strSql = "Select * From 送信状況マスタ;"
Set RecSet = Rundb.OpenRecordset(strSql, dbOpenDynaset)
Call CloseRecSet(RecSet)
----------------------------------------------------------------------------------------------------------------------------
Public Sub CloseRecSet(ByRef RecSet As Recordset)
On Error Resume Next
If Not RecSet Is Nothing Then
RecSet.Close <<<<<<<<<<<<<<<<<< この変でエラーになります。
Set RecSet = Nothing
End If
End Sub
ライブラリにMicrosoft DAO 3.6 Object Library を使用しています。
support.microsoft.com/kb/825796/ja
に、Access97は、DAO 3.5を推奨とあったのですが、上位互換で問題無いと思っていたのですが、
やはり、DAO 3.5を使用した方が良いのでしょうか?
ご指導をお願い致します。



330 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 15:30:25 ]
>>329
3.6で出なくなるの? 試すのはわけないと思うが・・・

closeを別ルーチンにせず同一ルーチンにしてみるとか
試せることはいろいろあるよね。





331 名前:329 [2008/11/19(水) 16:05:05 ]
説明が少なく申し訳ありません。
現在までの流れは、
@VB6.0 + DAO3.5 で新規開発 >>> スキャナやFAXソフトを使用でタッチパネルの反応が遅い現象発生
AEXEを分割して、ActiveX.EXEを導入 >>> タッチパネルの件は解決。mdbが頻繁に壊れる現象発生
BDAO3.6を導入 >>> mdb破損回数が軽減。エラーを吐いてEXEが落ちる現象発生
となっています。



332 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 19:01:55 ]
On Error Resume Nextでごまかすのをやめたほうがいいと思うぞね

333 名前:デフォルトの名無しさん [2008/11/19(水) 23:15:35 ]
すんません。
VB2008で教えて下さい。

ソリューションエクスプローラーのタブに
「データソース」が表示されなくなっちゃったんだけど
どう設定すれば、また表示されますか?

334 名前:デフォルトの名無しさん mailto:sage [2008/11/19(水) 23:16:58 ]
>>333
スレタイ100回読み直せ

335 名前:デフォルトの名無しさん mailto:sage [2008/11/22(土) 21:25:45 ]
>>331
じゃあ次はADO導入だな

336 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 00:26:37 ]
>331
ネットワークドライブにmdb置いて複数クライアントからアクセスしたりしてない?
あとリンクテーブルとか。

337 名前:デフォルトの名無しさん [2008/11/24(月) 19:17:31 ]
質問です。
VB6.0でParadoxと言うデータベースを開きたいのですが、
エラーが出て開きません。

Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=Paradox 5.x;Persist Security Info=False"
cn.Open
rs.Open "ABC", cn, adOpenDynamic, adLockOptimistic, adCmdTableDirect
rs.AddNew
rs.Close
cn.Close
End Sub

上記のコードを書いたんですが、rs.Openの行で
「外部テーブルのフォーマットが正しくありません。」
というエラーが出ます。

何が悪いのでしょうか?
よろしくお願いします。

338 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 20:22:21 ]
Data Sourceがディレクトリに見えるけど、
そういう話ではない?

339 名前:337 [2008/11/24(月) 21:56:14 ]
返信ありがとうございます。

cn.Open までは進んでいるし、ファイル名まで指定すると
「パスが間違っています」と言うエラーが出るので、
Data Sourceはこれであっていると思われます。



340 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 22:08:22 ]
C:\で接続できる方が不思議じゃね?
「Paradox ConnectionString」で検索しる



341 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 23:32:52 ]
> rs.Open "ABC", cn, adOpenDynamic, adLockOptimistic, adCmdTableDirect
これを
rs.Open "select * from ABC", cn
みたいにシンプルにしてみたら?

342 名前:337 [2008/11/25(火) 00:28:03 ]
>>340
今回はC:\の直下にファイルをおいてあるので、これで
いいと思います。
Paradoxは1ファイル1テーブルなので、こうしないと
接続出来ません。

>>341
試してみましたが、やはり「外部テーブルのフォーマットが正しくありません。」
のエラーが出てしまいます。



343 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 08:50:02 ]
断言できるのか?
ネットの事例じゃ軒並みファイルしていしてるぞ?

344 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 09:03:22 ]
1ファイル1テーブルと ルート指定とは次元が違いすぎるわな
どのファイルかを選択するのかは超能力的なパワーが必要なのかも試練

345 名前:329,331 [2008/11/25(火) 16:56:58 ]
回答有難う御座います。
返答が遅れた事をお詫び致します。
>>335
確かにADOは考えました。しかし、大きな修正はしないでとの営業の意向がありまして。
断念致しました。
>>336
ネットワークドライブは使用していません。
mdbのリンクは行っています。



346 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:08:56 ]
>>340
そのワードでググったらTOPのページにこんな記載が。
>Please note that you should only specify the folder where the database resides.
>Not the database name itself.
ttp://www.connectionstrings.com/?carrier=paradox

>>337
Paradoxのバージョン5までしか読めないらしいけどそこは大丈夫?

347 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 17:24:07 ]
>>346
へぇそうなんだ ためになるねぇ つかうことないだろうけど・・・


348 名前:デフォルトの名無しさん mailto:sage [2008/11/25(火) 21:08:19 ]
すみません、こちらで質問させて下さい
Excel VBAでwebページをIEオブジェクトで操作して、リンクをクリックさせると別窓でリンク先が表示されます
今後この別窓のIEオブジェクトを掴んでアクティブにして操作するにはどうすればいいのでしょうか?
独学文系のなけなしの知識にて、ウィンドウハンドルを取得すればいいと思い当たり
For Eachで各ウィンドウのそれの取得だけはできました(たぶん)が、使い方というかセオリーが全く分かりません…

Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long)
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
(中略)
hWnd = GetForegroundWindow
Set objShell = CreateObject("Shell.Application")
 For Each objIE In objShell.Windows
  Debug.Print objIE.hWnd
 Next
ウィンドウハンドルの値は取得できても、アクティブにしたい(操作したい)ウィンドウのそれだと判別する
方法が解らないので、どなたかご教示&ご解説お願いします

349 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:43:48 ]
>>348
ウィンドウの区別は基本的にはタイトル(タイトルバー)の文字列で行う。
同じアプリを複数開いて同じファイルを開くとタイトルバーの文字列がまったく同じになってしまうが、
この場合はウィンドウを区別するのは、不可能ではないが非常に難しい。
俺の知識で答えられるのはここまで。

350 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 21:55:08 ]
つか、LocationUrl でいいだろ? その InternetExplorer の hWnd で、
SetForegroundWindow() すれ。

って、それだけだとアクティブにはならんけど。



351 名前:348 mailto:sage [2008/11/26(水) 22:12:32 ]
>>349
ご回答ありがとうございます!となると、思いつきでは

1).新しいIE窓を開く前に全部のIE窓のタイトル又はハンドルを取得
2)上記を配列にでも入れる
3)新しいIE窓が開かれる
4)2で取得した配列の添え字と比較、大きかったらダウト
 (同じ内容であってもこちらを弄るようにする)

4の配列の添え字の比較って出来るのかな?ド素人なもので…
って、窓数の増加だけならインデックスの上限値を見ればいいのか

…こんな感じで行けるのかな?
汎用化するにはIEのイベントを監視しなくちゃならなそうですが(;´Д`)
しかし用途を限定すれば何とかできる…と思いたいです

352 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:23:49 ]

最初に聞いたExcelVBAスレの質問取り下げてないのでマルチだし
しかもExcel総合スレにまでリンク形式でマルチしてる

> ExcelやExcel VBAからは外れる質問とは承知しているのですが、
> 文系独学なうえ近くに教えを請える人も居ないので、
> 何方か親切な方、ご回答お願いします…(;´Д`)
>
> ttp://pc11.2ch.net/test/read.cgi/tech/1206835319/348

もう、この子は放置の方向で

353 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:29:05 ]
>>352
取り下げも何も、誘導も無しにスレ違いの一言で一蹴されましたが…

ご回答下さいました方々には改めてお礼申し上げます

354 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 22:29:58 ]
まだマルチが悪いとか思ってるウブな奴っているんだなw
俺的に言えばそんな奴こそいらん。

マルチが悪いって、それって他でもないお前が「人に感謝されたい威張りたがり屋」
なだけじゃんw
むしろそのお前の幼児性こそ問題だよ。

普通は掲示板のやり取りなんて答える方も自分のためにやってるわけで、
その上回答者に感謝されたいなんて図々しいこと思わねえよ。

355 名前:デフォルトの名無しさん [2008/11/27(木) 01:17:14 ]
ユーザー定義型の質問なのですが、

Public Type AAA
b as Long
c as Long
End Type

Public A(0 To 99) As AAA

といったようなのをモジュールに書き、フォーム1でA(0).b = 100と書いたとします
しかし、それをフォーム2で参照したところA(0).b = 0となっていました
配列化しなければ問題は起こらなかったのですが、原因は何なのでしょうか?

356 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 02:22:28 ]
ふつうに動いてるが?

357 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 09:07:18 ]
>>354
ボク、何か嫌なことでもあったの?


358 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 11:14:38 ]
使用するosをXPからVistaに移行したところ、矢印の「dumst」部分で
インデックスが有効範囲にない、というエラーが出てしまいます。
アドバイスお願いします。

Private Sub Form_Load()
Const DataFile1 As String = "emadr.txt"
noTA = 0: noID = 0: noFA = 0: noSMTP = 0
fileNum = FreeFile
Open DataFile1 For Input As #fileNum
Do Until EOF(fileNum)
Line Input #fileNum, dummy
→ dumst = Split(dummy, ",")
If (dumst(0) = "TA") Then
noTA = noTA + 1
emTA(noTA) = dumst(1)
End If
Loop
Close #fileNum



359 名前:デフォルトの名無しさん [2008/11/27(木) 18:13:33 ]
>>356
普通にいけました…
消したと思っていた変数定義が消えておらず、変数がリセットされていただけでした
お騒がせしました

360 名前:デフォルトの名無しさん [2008/11/28(金) 22:55:15 ]
VB6でFTPでの転送結果(スループット等)を取得する関数とかあるのでしょうか?



361 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 23:27:26 ]
あると思うほうが不思議だが?

362 名前:デフォルトの名無しさん mailto:sage [2008/11/28(金) 23:32:46 ]
絶対に無いと確信するほうが不思議

363 名前:360 mailto:sage [2008/11/28(金) 23:50:40 ]
>>361-362

回答ありがとうございます。

やはり無いんですね・・・

ファイル転送量/時間で出そうと思います。

ありがとうございました。

364 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 12:43:32 ]
>362
んなこたぁない。FTP(クライアント)はVBの機能じゃないんだぜ?エスパーすればINet系関数だろうが、
あれは腐ってるからな。

365 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 14:59:29 ]
VB用のコンポーネントにあったって不思議じゃない

366 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 17:01:16 ]
コンポーネントなら関数とかいわんだろ。

367 名前:デフォルトの名無しさん [2008/11/29(土) 18:20:45 ]
お願いします。

構造体の入れ子を作りたいのですが、下記ではエラーになってしまいます。
Private Type ABC
i As Integer
j() As ABC
End Type

動的なツリー構造を作りたいのですが、可能でしょうか。


368 名前:デフォルトの名無しさん [2008/11/29(土) 19:39:41 ]
皆さんよろしくお願いします。

upp.dip.jp/01/img/13337.jpg
実は↑のような流れのスクリプトを組みたいと思っているのですが
if を使っての簡単なサンプルを書いていただけませんでしょうか?
本当に簡単なもので結構ですので・・・。

369 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:49:37 ]
ttp://blogs.yahoo.co.jp/naojuv/51637042.html


370 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:49:50 ]
>>368
何だこのフローチャート
もう少しルールに従って書けよw



371 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 19:53:05 ]
フローチャートと呼んでいいのかww
まあ>368がんばれ

372 名前:368 mailto:sage [2008/11/29(土) 19:59:04 ]
た、たしかに
酷いことになってますね・・・
すいません・・・

373 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 21:31:00 ]
むしろ状態遷移図だな。

374 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 21:47:21 ]
無限ループ

375 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 22:23:29 ]
start:

if (isExist(a)) {
 goto start;
}

second:

if (isExist(b))
 goto start;
else {
 goto second;
}

376 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 23:22:22 ]
VB4で作られたソフトウェアが動きません。
VB40032.dll、MCI32.ocx、grid32.ocx、comdlg32.ocxが必要なソフトなんですがXPでは入れても動かないんです。
「ファイルの読み込み中にエラーが発生しました」と出てしまいます・・・
MEでは正常に動きました。
上記4つのファイルはME、XP共に同じバージョンでした。

解決方法知っていたら教えて下さい。お願いします。

377 名前:デフォルトの名無しさん mailto:sage [2008/11/29(土) 23:27:06 ]
>>376
スレ違い

378 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 10:59:01 ]
>>367
循環参照できないんですよねー。ケチケチしやがって。
可変長配列なら無限ループにならないから許可してほしいところです。
等価ではないがクラスモジュールでこう

(CLASS ABC)
Public I As Integer
Public J As Collection

あくまで等価ではないので使えなさそうですが。


379 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 08:21:48 ]
>>367
すまん、どんな場合それを使うのか教えてくれ・・・

380 名前:デフォルトの名無しさん [2008/12/07(日) 13:33:33 ]
いわゆる「自己参照構造体」ってやつを作りたいんだろうけど、
だったらVBの場合ユーザー定義型じゃないくてクラスを使わないと駄目だね。

仮にユーザー定義型に循環参照(余談ながら、この用語の使い方は本来不適切だと
思うんだが、MSDNがそうなってるんだね)が可能だとしても、ユーザー定義型は
ドトネトでいう値型になるから無駄が多すぎる。



381 名前:デフォルトの名無しさん [2008/12/07(日) 13:57:04 ]
Private Type ABC
  i As Integer
  j() As ABC*
End Type

Dim udtABC As ABC
udtABC.j = &udtABC

夢のようだが、() は誰が実装すんのかね。
j() が自己参照にしては自己が配列であることは保障されてないし。
まぁ蛇足でしかないけど。

382 名前:デフォルトの名無しさん [2008/12/08(月) 03:32:56 ]
>>381
そこまでなくても…
循環参照はメモリ確保がどこまでも終わらないから禁止なんだろうけど、
JはREDIMするまで要素数ゼロだから、それは許されるようにしてくれていても
いいのにと思うんだが。
理解が違っていたらすまん。

早く寝なきゃ…

383 名前:デフォルトの名無しさん [2008/12/08(月) 03:36:40 ]
そういえば>>377
スレ違いだっけ?


384 名前:デフォルトの名無しさん [2008/12/11(木) 23:35:25 ]
30Hex + 30Hex + 30Hex + 30Hex + 30Hex + 33Hex + 30Hex + 30Hex +35Hex + 33Hex + 30Hex
+30Hex +31Hex + 03Hex = 37Hex
(+は排他的論理和、Hexは16進数)

とオムロンのマニュアルに書いてあるんですが
これをVBで計算すると37なんて数字が出てきません。

val(hex(30)) xor val(hex(30)) xor ・・・
とかじゃぁ 根本的に何か間違ってるのかな。。

385 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 23:41:40 ]
間違っています

386 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:08:30 ]
30h

387 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:13:39 ]
&h30 xor &h30 xor …

388 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:14:36 ]
00h+33h+00h+02h+00h+02h

389 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:17:42 ]
00h+33h+00h+06h+00h+02h

390 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 00:43:38 ]
Private Sub hoge()
  Const hexList As String _
    = "30, 30, 30, 30, 30, 33, 30, 30, 35, 33, 30, 30, 31, 03"

  Dim hexText As Variant
  Dim result As Integer
  result = 0
  For Each hexText In Split(hexList, ",")
    result = result Xor CInt("&h" & Trim(hexText))
  Next
  MsgBox (hex$(result))
End Sub



391 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:02:04 ]
リストボックスには、複数の学生の名前、教科、点数と
その合計、平均などが表示されていて、
ボタンを押すと、ひとりひとりの学生の点数の合計と点数の表示をする
プログラムを作成したいのですが、教えて下さい。

392 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:13:35 ]
どんな表示されてんだよ

393 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:28:50 ]
ああ、悪い。

氏名  国語  英語 合計 平均

A   50   60  110  55
B   60   70  130  65
C   70   70  140  70

合計  180  210  
平均  60   70


こんな感じに表示されています。
ボタンの名前を「縦計 横計」と表示させ、
押すと、ひとりひとりの合計と平均を表示し、
最後に国語と英語の合計、ならびに平均を表示させたいのです。

394 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:31:18 ]
>ああ、悪い。
なんだその態度は
氏ねばいいのに

395 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:33:29 ]
select case


end select

396 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 01:58:37 ]
悪い印象を与えてしまったのなら謝るよ。
日本語って難しいな…
例えば「ああ、スマソ」って言ったらまた印象は違うだろうしね。



397 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 02:04:34 ]
ドシロウトはエクセルでも使っとけ

398 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 02:19:54 ]
在日は国へ帰れ

399 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 06:28:24 ]
>>396
他人に物を聞く態度じゃない
ここにいるのは親しい友人じゃない

400 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 06:34:12 ]
で、何がわからんの? 足し算して割り算するだけだろ?



401 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 09:14:50 ]
>>393
excelのVBAで充分
そこで人間性を磨いて来い 

402 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 22:03:09 ]
>>391ですが、今日までの課題だったので
情報科の人に教えてもらい、無事解決しました。
基礎なのでさすがに学校で聞くのは気が引けました。



403 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 22:04:35 ]
何も解決してないだろw

404 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 22:17:35 ]
continueがない!!gotoで代用した。

405 名前:デフォルトの名無しさん [2008/12/13(土) 01:30:41 ]
>>404
お前はVBを知ってるのかと小一時間(ry

406 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 01:57:10 ]
>>405
whileとかforのループのcontinueね。あんの?

407 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 02:44:13 ]
Continue Forとかのこと?

408 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 03:31:59 ]
日本        日本語でおk
英          please in Japnese
独          bitte auf japanisch
仏          veuillez dans le Japonais
イタリア     . prego nel giapponese
ポルトガル  . por favor no japones
スペイン    . por favor en japones
オランダ   ..Japanner gelieve in
スウェーデン behaga i japan
ギリシア    .παρακαλ? στα ιαπωνικ
ロシア      пожалуйста в японце
トルコ     . Japoncata tamam.
中国        請在日文
沖縄        やまとぅぐちっしいい
アイヌ      . sisam itak ani ukoitak yan.
大阪民国    日本語でおkや

409 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 09:34:26 ]
>>408
日本語でおk


410 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 13:23:33 ]
フイタ



411 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 13:25:30 ]
>>405
いやおまえの方がVB知らなさ過ぎる。
.NET以後にVBはじめた情報弱者のにわかは消えろよ。


412 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 15:11:55 ]
.NET以降にVBはじめたら情報弱者!うは

413 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 15:20:02 ]
いやまあ、スレがスレだからね。
TPOを考えれば>>411のように罵倒されてもまあ仕方がない面はある。

414 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 15:24:00 ]
このスレ時々スレタイの意味が理解できてないやつが混じるんだよな。


415 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 15:27:20 ]
>>412
これは正解。普通C#選ぶ。あえてVBを選ぶ理由がない。

416 名前:デフォルトの名無しさん [2008/12/13(土) 16:14:52 ]
405 はVB6でgoto使うのはスパゲティの始まりだから
continueのためだけにgotoに逃げるんじゃねぇ!って事を
言いたかったんジャマイカ?

わからんけど。

417 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 17:21:49 ]
でもifのネストが深くなるよりわかりやすいんじゃね。

418 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 09:43:20 ]
日頃はVC使い。今更VB6始めたが、(VCもそうだが)仕事とかではない

VB6でdllexportするっていったら、基本的にはOCX化するのみ?
あと、簡潔に、通常の.objファイルをスタティックリンクする方法とかある?


ついでに参加
>>415
最近、VB6で書かれたマルウェアが増えてきて、ちょっと勉強しとこうと思ったのが、
いまさらVB6やろうと思ったきっかけ どう考えてもVCで書いた方が楽なような処理を
ごりごりVB6で書いてあるようで、もしかすると、難読化のつもりもあるのかもしれん
あと、IDE軽かったから、遊ぶ分にはいいかなとw

419 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:49:40 ]
恥ずかしいにもほどがある

420 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:13:14 ]
OCX化というよりActiveX(COM)化、EXE, DLL, OCX 形式のCOM。
ものすごい裏技でVBの関数を直接呼び出す方法もあるちゃあるが現実的ではない。

>最近、VB6で書かれたマルウェアが増えてきて
VBSなどで書かれてるその手のスクリプトをそのまま流用できるからじゃないのかね。
COMの扱いは簡単だしランタイムも大概入っている。




421 名前:デフォルトの名無しさん [2008/12/17(水) 13:53:25 ]
流れぶった切って申し訳ない。
vbは余り馴染みがなく今から記述することが出来るかどうかお教え頂きたい。

VBで作成したアプリに中国語を表示したい。
OSの設定ロケールは日本語。
vb6jp.dllはインストール済み。

OSのロケールが中国の場合は上手く中国語が表示出来ました。
日本ロケールだと文字化けしてしまいます。
SetThreadLocaleを使いロケールを変更してみましたが効果ありませんでした。
SetLocaleInfoは使い方が解りませんでした…。

ロケール変更にて文字化けを直すことは可能なのでしょうか?
お教え願います。

422 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 16:01:54 ]
あきらめるか、.netにする。

423 名前:デフォルトの名無しさん [2008/12/17(水) 20:05:59 ]
>>421
中国語版のVB6.0で開発すればできるよ。

424 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 20:26:15 ]
似たような質問
ttp://www.biz.kotaete-net.net/Default.aspx?pgid=14&qid=160648281686

425 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 01:44:45 ]
>>422-424
回答ありがとうございます。
自分で調査したうえでそのような予感はしてましたが・・・。

特に424さんありがとうございました。
何故ダメなのか?という理由までわかったのですっきり諦められます。
別の方法で処理を回避、またはオペレーション誘導などで
問題を回避したいと思います。

皆さんありがとうございました。

426 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:13:42 ]
VB6にての質問。
ファイル名が文字化けしているファイルを、コモンダイアログで指定して読み込みたいんだけど、
読み込んだ段階でパス名が変わってしまって、読み込みが出来ない。
解決策はありますか?

427 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 13:40:42 ]
文字は化けてなどいない

428 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 20:41:41 ]
リネームしたら

429 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 12:19:15 ]
>>427
一般的に文字化けと言うと思う。

>>428
リネームしたら確かに読み込めるけど、そのままいける方法が無いかなとね。

430 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 13:23:25 ]
>>429
何がどう化けたと思ってるんだ?



431 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 14:19:53 ]
UNICODEのファイル名を読んで化けたとか言うオチじゃあるまいな

432 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 15:07:57 ]
VB6でMDBからデータを引っ張りクリスタルレポートに出力しています。
最初はクリスタルレポート8.5を使っていたのですが使いにくいので前使っていた4.7を入れなおしました。
プリンターとプレビューの出力は上手く行くのですがテキストファイルやCSVの外部ファイルにエクスポートの際に
実行時エラー20540
エクスポート DLL がないかまたは古いです。
というエラーメッセージが出ます。
散々ぐぐりましたが解決策が見つかりません。
何かコンポーネートか参照をし忘れてるのでしょうか?

433 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 16:12:02 ]
OSのクリーンインストールからやり直して、やっぱりエラーが出てから文句言え

434 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 18:40:38 ]
リネームできるんだからよめるだろ

435 名前:デフォルトの名無しさん [2008/12/20(土) 09:45:58 ]
根本的に変な質問かもしれませんが教えて下さい。
VBで作られたEXEはデバッグというかコードを
読むことができるんでしょうか?
Visual Studio 6.0は入ってます。

正直なところ、EXEはアセンブラで読むしかない
みたいなイメージがあるんですが・・・

436 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:16:52 ]
読めない

437 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 11:24:20 ]
VB用の逆アセツールもあるけどね

438 名前:デフォルトの名無しさん [2008/12/20(土) 11:29:25 ]
>>435
www.watahiki.info/vbsvp98/q_and_a/vbprog/vbdecomp.html

439 名前:デフォルトの名無しさん [2008/12/20(土) 19:20:56 ]
Dynamic HTML Editing Control SDK を入手できるWebサイトは?
まあ無くても、もう持ってるから別に困りませんが。





440 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 08:23:22 ]
>>439
MSDN



441 名前:デフォルトの名無しさん [2008/12/24(水) 00:03:19 ]
VB6.0でエクセルのAVERAGEみたいな計算できませんか?

| 10| 20| |=AVERAGE(A1:C1)


442 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 00:11:07 ]
(10+20)/2

443 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 00:13:39 ]
>>441
スレタイどおりで乙


444 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 01:27:17 ]
(10+20)/3だろ

445 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 08:44:14 ]
C1のnullをどう扱うかだな

446 名前:441 [2008/12/24(水) 10:56:17 ]
>>445
そうなんです。nullをどう処理するかなんです。
IF 文でだらだら書くのがちょっと思い書きました。
>>444
10ではなく15の答えが欲しいのです。



447 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 11:21:18 ]
FlexGridか何かでやってるのかな
/nのnの数を
セルの値がisnumericでTrueになったらインクリメントしていくとか

448 名前:デフォルトの名無しさん mailto:sage [2008/12/24(水) 12:25:59 ]
>>446
次は最初からそう書こうね 後出しはじゃんけんでも嫌われるだろ?

449 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 06:44:52 ]
まだいるかな

>>435
Pコードだと、Pコード逆アセンブラがいる >>438
ネイティブコードなら、デバッグシンボル吐かせれば、お好きなように
clでいう、/Faみたいなものは、ラベルが大幅に置き換わってしまうため、
ろくな内容にならない exeを直接逆汗したほうがまし

450 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 11:05:47 ]
VB5.0のツリービューのノードのテキストは
一部分を色を変えることはできるでしょうか?

例えば
hoge (100)
という文字列の場合(100)だけ青にするといったことが
可能でしょうか?




451 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:49:55 ]
たぶん無理。カスタムドローできないよね?

452 名前:デフォルトの名無しさん [2008/12/30(火) 20:41:11 ]
vb6.0でImageListコントロールを表示するにはどうしたらいいのでしょうか?

453 名前:デフォルトの名無しさん [2008/12/30(火) 20:47:59 ]
自己解決しました

454 名前:デフォルトの名無しさん [2009/01/01(木) 00:03:49 ]
あけおめ

455 名前: 【だん吉】 【1371円】 mailto:chinge [2009/01/01(木) 01:13:05 ]
С Новым Годом!

456 名前:デフォルトの名無しさん mailto:age [2009/01/01(木) 03:33:22 ]
質問お願いします。
3種類の商品をi(i=1,2,3)として、
それぞれの発注プログラムを構築したいと思っています。

計算方法は同じなので、iが3になるまでのFor〜Next処理でやりたいのですが、
それぞれのパラメータ(例えば需要INVi)のiのなかに数値を代入して
あらかじめ決めておいたINV1からINV3の数値を利用して作りたいと思っています。

この場合はINViのiの中に数値i=1〜3を代入してINV1〜INV3とするにはどのようなコードを書けばよいのでしょうか?
また、そうしたらそれ以前に決めておいたINV1〜INV3の数値を参照できるのでしょうか?

初心者の質問で申し訳ないですが、どうかご教授お願い致します。

457 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 10:24:52 ]
何をしたいのかまったくわからん・・・

とりあえず、配列ではだめなんかい?

458 名前:デフォルトの名無しさん [2009/01/02(金) 02:54:20 ]
AからBまでの和を求めるとしたらどうやってコードすればいいんですか?
大小のチェックをして場合分けしてやると思うんですけど。
教えてください。

459 名前:デフォルトの名無しさん [2009/01/02(金) 02:59:46 ]
ΣA+B

460 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 02:59:54 ]
そーなんですよ川崎さん



461 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 03:06:10 ]
For i = A To B
   result += i
Next

462 名前:デフォルトの名無しさん mailto:age [2009/01/02(金) 10:14:02 ]
>>357さん

なるほど〜配列使ってやってみます!

説明下手ですいませんでした…ありがとうございました!

463 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:54:11 ]
VB6でform1の何らかの処理中にform2で処理中って表示したいんだけど
なんかいい方法ありますか?
モーダルだとform1の処理が止まってしまうんで・・・

464 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:58:49 ]
止まってるように見える事なんて気にせず実行ファイル作ればいいとおもうよ

465 名前:デフォルトの名無しさん [2009/01/05(月) 23:03:29 ]
DoEvent

466 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:19:37 ]
もしかして別フォームをモーダルで表示しても
その後の処理は続いてると?

ついでに教えてもらいたいんですが
モーダルで表示したフォームってshowイベントで止まるでいいですか?

467 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:24:24 ]
>>463
素直にドトネトつかってマルチスレッドのコードを書く方がいい。
ってういか、だからFormのコードに処理なんか書いちゃダメなんだよそもそも。
だからVB厨って呼ばれるんだ。

468 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:26:04 ]
モードレスで出せばいいだろJK

469 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:40:33 ]
処理中はform1を操作できなくしてform2のみ操作できるようにしたいのです
モードレスでもいい方法があればいいのですがありますか?

質問ばかりですいません・・・

470 名前:デフォルトの名無しさん [2009/01/05(月) 23:47:05 ]
vodal



471 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:50:59 ]
Enable = False でいいだろJK

472 名前:デフォルトの名無しさん [2009/01/05(月) 23:52:28 ]
form1.enabled=false

473 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:13:55 ]
一度enabledでやってみたんですがウィンドウがアクティブにならなかったので諦めてました
もう一度試してみます

夜遅くに付き合ってくださってありがとうございました!

474 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:31:11 ]
操作できないウィンドウをアクティブにして何がしたいんだよ?

475 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:35:15 ]
form2をアンロードして、form1のenabledをtrueにしたときです
やり方がまずかったのか、もう一度試してみます

476 名前:デフォルトの名無しさん [2009/01/06(火) 10:27:29 ]
本当に申し訳ありませんが、どなたか教えてください。

'住所1の印字
P_PRINT.E_Font "FC行楷書体", ADRS_FNT, True, 0
HH = ADRS_FNT / 2.835 + 1
If Not IsNull(AdoRs![住所1]) Then
For I = 1 To Len(AdoRs![住所1])
BAR = Mid$(AdoRs![住所1], I, 1)
' If BAR = "−" Then BAR = "ー"
' P_PRINT.E_String_Tate 60, 14 + (I - 1) * HH, BAR, RGB(0, 0, 0) '縦書き
If BAR = "ー" Or BAR = "−" Then BAR = "|"
P_PRINT.E_String 60, 14 + (I - 1) * HH, BAR, RGB(0, 0, 0)
Next
End If

上記はVBでのアプリケーションから封筒に宛名を印刷する。
というコードの一部なのですが、現在縦書き仕様になっており、
横書き仕様に書き換えたいのですが、一体どこをどう換えれば良いのか、
全く検討つきません。
心優しい方、ご教示いただければありがたいです。。。


477 名前:デフォルトの名無しさん [2009/01/06(火) 12:25:18 ]
age

478 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 16:18:35 ]
>>476
縦書きの部分がREMになってて横書きの部分が有効になってるように見えるんだけど…
とりあえずこれでどうかな

P_PRINT.E_Font "@FC行楷書体", ADRS_FNT, True, 0

(略)

If BAR = "−" Then BAR = "ー"
P_PRINT.E_String_Tate 60, 14 + (I - 1) * HH, BAR, RGB(0, 0, 0) '縦書き
' If BAR = "ー" Or BAR = "−" Then BAR = "|"
' P_PRINT.E_String 60, 14 + (I - 1) * HH, BAR, RGB(0, 0, 0)

(略)

479 名前:デフォルトの名無しさん [2009/01/06(火) 17:34:42 ]
>>478
回答ありがとうございます!


480 名前:デフォルトの名無しさん [2009/01/06(火) 17:41:48 ]
>>478 さんは
私の神様です!まだ実行してないですが、とにかく嬉しかったので・・・
連投すみません!



481 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 02:15:27 ]
Google先生に頑張ってもらったのですが見つからないので、力をお貸しください。

VBAでListViewを作成しています。
グリッド表示で任意の行にある項目をダブルクリックした時、それが列の何番目なのかを取得したいのですが
VBAでは上手く出来なくて困っています。
ヒントや方法、解説されているサイトなどがありましたら、教えていただけないでしょうか。
よろしくお願いします。

482 名前:デフォルトの名無しさん mailto:age [2009/01/07(水) 18:06:16 ]
質問です。

コードの中で計算したものを
エクセルに表示したいのですが、どのようにすればいいですか?

483 名前:デフォルトの名無しさん mailto:sage [2009/01/07(水) 18:21:45 ]
VB/VBAに限らない簡単なFAQのほうだけ

>>482
Excel側のドキュメント読んで、サンプル探すといい
どのみち、慣れるまではExcel側のドキュメントを読み漁ることになる

484 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 10:27:19 ]
>>482
chaichan.web.infoseek.co.jp/vbtips/VBMemo2006082501.htm
このへんで

485 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 11:05:24 ]
低レベルの質問ですいません。クラスとか、オブジェクト、
インスタンスなどと言う用語の意味が良くわからない
のですが下のような解釈でいい?

Step 1 私のタコ焼き(オブジェクト:器)の用意をする
Dim 私のタコ焼き(オブジェクト:器) As タコ焼き(クラス:器と具の仕様書)

Step 2 私のタコ焼き(器)に具(インスタンス)を入れ焼く
Set 私のタコたこ焼き(オブジェクト:器) = New タコたこ焼き(クラス:器と具の仕様書)

Step 3 私のタコ焼きに仕事をさせる
私のタコ焼き(オブジェクト:具の入った器).私に食われる

あと、Step 1〜Step 3 において、物理メモリー上で何が起きてん?
領域の確保とか、コピーとか、値の代入とか起きてるような気が
するんですがどうなんでしょう? それと、各領域の先頭部分
にはヘッダーみたいなのが存在するはずだと思うのですが。

486 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 12:10:20 ]
すいません、間違えました。
タコたこ -> タコ

487 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 18:31:21 ]
クラスモジュールひとつ書いてみればいいんじゃね

488 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 19:43:19 ]
>>485
知能指数が余程高い人は別として、普通の頭の人間がまず抽象的な概念を
先に完全に理解しようとするのは無理がある。

↓辺りの文章をさらっと読んで、とにかく実際にクラスモジュールを使ってみる方がずっと理解が早い。
抽象的な概念はあとから自ずと分かってくるから。
homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/index.html

489 名前:485 mailto:sage [2009/01/08(木) 20:46:44 ]
>>487 >>488
やはり、複雑なことを一足飛びに抽象的に
理解しようとするのには無理があるって事ですね。
紹介していただいたWebページを参考に一つ一つ理解して
いこうと思います。感謝です。

490 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 15:50:10 ]
ボタンを1回クリックで1増える処理があるとして
ボタンを長く押していると連続して1が増えていくような
処理ってどうやったらできるのでしょうか?
クリックイベントだといったん離さないと次のクリック
イベントが発生してくれませんでした。



491 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 16:52:09 ]
MouseDown, MouseUpイベント+Timerとか

492 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 17:14:07 ]
>>491
やはりTimerですかorz

493 名前:デフォルトの名無しさん mailto:age [2009/01/09(金) 17:38:19 ]
>>483
>>484

ありがとうございます!
早速試したのですが、最初の参照設定からうまくできず、
Excel.Applicationは宣言されていませんとエラーが出てしまいます。

VB2008なのですが…

494 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 19:16:58 ]
>>493
スレタイ嫁

495 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 11:01:05 ]
Excelとかの他のオブジェクトを使うことを何て言葉で表現したらいいのか。
「ライブラリを使う」っていうのか、「オートメーションを使う」って言えばいいのか、
そして、あれもCOMと言えるのかな。「COMを使う」って言えばいいのかな。

今は、その適切な言葉の使い方で説明できなくてもどかしいが、VB6のソースはなぜか遅延
バインディング多いみたいだな。何で事前バインディングにしないのか疑問だが。遅延でしか
対応不可能な特別な場合を除いて、原則として事前にしない意味がわからん。単に知識が無い
だけなのか?
理解不能でないように補足しておくと、遅延とは、CreateObjectのことで、事前は参照設定して
専用のデータ型で宣言してNewでオブジェクトを作ることだ。

496 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 11:30:54 ]
参照設定するのが面倒くさいんじゃないの?知らんけど。

497 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:20:47 ]
>>495
クライアント環境のOfficeがバージョン不定の場合なんかは遅延にせざるをえない



498 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:31:48 ]
まあ理屈としては497の言うとおりなんだけど、
実際は97-2007でほとんどのメソッドは互換性があるんだけどね。

一部動かないメソッドを使うところだけ部分的に遅延バインド(といっても
WorksheetとかWorkbookのインスタンスをObject型の変数にぶち込むだけだが)
するように作った方が、最初から全部遅延バインドで作るより開発効率がいい。

499 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 12:37:43 ]
遅延バインドだと、動かないメソッドが使えるようになるのか?

500 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 13:22:44 ]
>>499
愚問過ぎる。



501 名前:デフォルトの名無しさん [2009/01/18(日) 14:09:23 ]
>>499
お前勉強しろよ・・・
インテリセンスくらいの差しかない

502 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:51:35 ]
開発時は参照設定してインテリセンスに助けてもらって、最後に直すとかよくやった。

503 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 13:48:59 ]
この流れだといまさら聞けないんだが、くだすれだから投げてみる
事前バインドっていうのは、いうなれば、コード生成の時点で、
(たとえば、inprocserverなら)vtable呼び出しになっている。みたいなイメージでおk?
んで、実行時バインドってのは、typelibみにいって呼ぶみたいな。
だから、実行時バインドなら、理論上、タイプライブラリが替えられちゃっても動く?
(そんなことしょっちゅうあってほしくないけど、まあ、理論上な)

504 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 14:40:44 ]
ググレカス

505 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 10:13:58 ]
つれないなあw

投稿前にぐぐって、かわりに知ったのは、VBどとねと移行ツールが、
事前バインドになってない個所を指摘してくれるらしい?ってことだった
どとねとは食わず嫌いだが、これはたまに使えるかもしれん

506 名前:デフォルトの名無しさん [2009/01/22(木) 19:25:24 ]
VB6のソースをダウンロードして見てみたのですが、
グローバル変数とローカル変数に同じ名前をつけたり、
ループの中にDimで変数を宣言するのって普通のことですか?
www.pccard.co.uk/measurement/usbwave12.php


507 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 19:38:27 ]
「シンタックスエラー」以外は普通。

508 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 19:40:36 ]
ループなどブロック内での変数宣言は禁止にしてることが多いな。
嵌ることがある。VB.NETから意味が変わったし。

509 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 00:49:38 ]
オレもブロック内での宣言は絶対しない。
宣言は冒頭にまとめてする事にしている。

510 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 01:01:38 ]
BASICじゃあるまいしwwww

しまった、VBはBASICか



511 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 01:10:59 ]
基本的には使う直前に定義すべきだと俺は思うけどね。

「嵌る」というのはループ内の定義箇所で変数の値がデフォルト値に初期化されると
(誤って)期待した場合だと思うけど、それはむしろきちんと明示的に初期化しない
ことの方に問題がある。

あとVB6だと見た目ブロック内スコープに見えても実際のスコープは関数内、
っていうのも仕様としてはいやらしいけど、あまり問題にならんと思う。

512 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 06:58:10 ]
>>509
こういう頭の固い奴たまに見るけど、何言語出身なの?

513 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 07:44:10 ]
K&R CかCOBOLだろ

514 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 08:06:27 ]
goto使う奴は、とか

しまった、VBはBASICか

515 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:49:54 ]
gotoは使わざるえないだろw

516 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 11:40:26 ]
>>511 が全部書いているが、
同じ理由で関数/サブルーチン内の一番外側のブロックでDimすることにしてる。
やらん方がいいのはブロックの中の宣言したものを外で使うこと。
If ... Then
   Dim x as ...
End If
print x
ブロックの中で配列の宣言やDim x As New ,,, でオブジェクト宣言はしないこと。
前者はVB.NETでコンパイルエラーになるが、後者はコンパイルは通るが動作が異なる。

517 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:34:27 ]
VB5とVB6の違いは大きいですか? 中古で5の入門書のほうが安かったので。

518 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:49:37 ]
5でも6でも80過ぎの借金だらけのババアと結婚するようなもんだ

519 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 17:10:44 ]
VB6を持っているならMSDN LibraryにVB6の新機能といった項目がある
一番大きい違いはDB(DAO->ADO)関係かな

520 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 17:52:44 ]
入門するならターゲットに出来るだけ近いものがいい
書いてあることと同じ結果が出ないと無駄な時間を費やすことに なったりならなかったり




521 名前:デフォルトの名無しさん [2009/01/24(土) 00:21:20 ]
>>515
お前エラートラップ限定で使わざるを得ないっていってんだよな?
そうだよな?そうだと言えよ!!!


522 名前:515 mailto:sage [2009/01/24(土) 00:46:30 ]
>>521
それ以外になにがあるw

523 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 00:53:47 ]
N-88BASIC

524 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 04:24:35 ]
MS-DOS版N88日本語BASIC(86)

525 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 12:24:07 ]
VBってなんでエラートラップでon goto にしたんだろうな?
あれさえなければ

526 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:34:01 ]
vb6.0を使用しています。
1つのformに、数値が入力されたtextboxとlabelを複数配置してtxtまたはcsvに保存するものを作っています。
そこで値の入っていないboxを飛ばして保存したいのですが可能ですか?
よろしければヒントお願いします。




527 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:41:00 ]
>>526
そういう風に作ればいいでない?
やりたいことが伝わってこないな。

528 名前:526 mailto:sage [2009/01/24(土) 17:38:48 ]
言葉足らずで申し訳ないです。
取得してきた数値を表示させるtextboxとlabelのセットが、縦横5×6ぐらいで並んでおり、
フォームデザイン上、表示させる順番が飛び空白ができてしまいます。
そのため保存したものが
       "123","00","","","567","00","",""・・・・
のように間延びするので、どうにかできないかと思い聞きました。

529 名前:デフォルトの名無しさん [2009/01/24(土) 17:57:29 ]
>>526
Option Explisit
Dim iFileNo As Integer

Private Sub Command1_Click()'保存ボタン
Dim i As Integer

iFileNo= FreeFile
Open CurDir & "\test.csv" For Append As #iFileNo
For i = 0 To 10 'テキストボックスのコントロール配列が増減の場合は10の値を変更
call check_Hozon(i)
Next i
Close #iFileNo

End Sub

Private Sub check_Hozon(ctlIndex As Integer)’入力チェックと出力
If Text1(ctlIndex),text <> "" Then ’空白の場合は書き込み
Print #iFileNo,Label1(ctlIndex).Caption & "," & Text1(ctlIndex),text
End if
End sub

530 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:23:53 ]
>>529
ありがとうございます。
勉強し直してきます。



531 名前:デフォルトの名無しさん [2009/01/24(土) 20:03:17 ]
あ誤字訂正
×Option Explisit
○Option Explicit

×空白の場合は書き込み
○空白じゃない場合は書き込み

似たようなコントロールが並ぶ場合は
コントロール配列を応用してインデックスで関数化する
改行要らなくて横にずーっと列挙するんであれば
Printする前に空白判定してstring型の変数かなんかにくっつける


532 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 23:50:55 ]
VB6でドットインパクトプリンタで納品書を印字するような用途の場合、
レポート印字につかうActiveXコンポーネントで定番と呼べるものはなんでしょうか?

533 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 23:53:35 ]
くりりぽ、ActiveReports あたり

534 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:35:17 ]
何でVB6はいつもIntegerで、LongやVbMsgBoxResultなどを使わないソースが蔓延してるのか?

535 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:50:33 ]
>>534
なに?integerだとまずいのか?
コントロール配列で上限超えるような事ないから
integerにしたまでだけど

536 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:18:14 ]
まあそれだったらByteでいいだろうな。

537 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:20:26 ]
.netや他の言語ならIntegerでいいけど。

538 名前:デフォルトの名無しさん [2009/01/25(日) 16:35:37 ]
VB6.0詳しい人に質問

form内でのみ(project内ではない)グローバル変数を使いたい場合どうすればいいですか?

539 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 16:41:24 ]
Cはint型OSに依存するからlong使えって昔習った気がするが

540 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 16:43:10 ]
>>538
フォームのソースコード1番上にDim 〜って宣言すりゃいいんじゃね?



541 名前:デフォルトの名無しさん [2009/01/25(日) 16:46:23 ]
>>540
さんくす

542 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:03:36 ]
>>539
それはchar系以外全部同じ。longだって、ところによっては8バイトのものもある。
必要ならint32_tのような型を使う。

543 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:17:20 ]
>int型OS
意味するところが不明

544 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:08:26 ]
Integerを使う=VBを理解していない

545 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:40:36 ]
16bitと32bitのOSでintは2バイトと4バイト、longは両方4バイトなのがあったからそれじゃない?

546 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:43:32 ]
64bit CPUの普及で状況は混沌としてきた

547 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:53:21 ]
違う。もっと簡単なことだ。
Longを返すものをIntegerで受け取ってるものが多い。
それはあまり推奨できないということだ。

548 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:01:22 ]
今、CとVBが混在してない?

549 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:37:47 ]
>>542
なるほどな思わぬところで勉強になったわサンクスコ

550 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 22:01:15 ]
本当はchar型の大きさも環境に依存するけどな



551 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:05:11 ]
>>533
ありがとう。その二つをチェックしてみる。

552 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 07:35:09 ]
>>547
確かに
呼び出し時の参照渡しでは型が違うとエラーになるが
戻り値の代入では型が違っても自動変換されるから
気付いてないっぽいのを結構見かけるね

553 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 12:32:18 ]
俺は変数の最初に型名を入れるように習った
グローバルならPublicのPをつけるように(今思うとPrivateもPだから紛らわしいが)

554 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 12:59:00 ]
ポーランド記法は今や嫌われるようになってしまった

555 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 12:59:51 ]
ハンガリアン記法だった。すまそ

556 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 13:01:31 ]
>>555
モンゴリアンチョップは今でも俺の必殺技!

557 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 14:42:08 ]
ハンガリー記法って今は嫌われてたんだ

558 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:04:23 ]
>>553
そういう記法でのグローバルはgだろ

というか批判されてるのはシステムハンガリアンだけだよ
アプリケーションハンガリアンは特別には批判されても嫌われてもいない
もちろん否定的意見は存在するが、それはどの記法にも見られるレベルのもの

しかし型付けが弱いVB6や型付けが無いVBSでは
システムハンガリアンだってそれなりに利点があるんだよな

頭の悪い奴は、批判されてる理由も正しく理解しないうちから
周りに載せられて全て一緒くたにして批判するが、
システムハンガリアンも全く利点のない記法ではないからな

559 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:18:30 ]
>538
遅レスだがDimはやめてPrivateにしなされ

560 名前:デフォルトの名無しさん [2009/01/27(火) 19:01:52 ]
VisualBasic.5.0 で実行できたプログラムが突然実行できなくなり、実行すると以下のようなエラーメッセージ
が表示されてしまいます。

”0x77fcc7a8"の命令が”0x317e4ebb"のメモリを参照しました。メモリが”written”になることはできませんでした。

プログラムを終了するには[OK]をクリックしてください。
プログラムをデバックするには[キャンセル]をクリックしてください。

と表示されます。


これを改善するにはどのようにすればよいのでしょうか??



561 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:20:28 ]
>>560
他のPCで試してみて、動かなかったら作った奴に聞けばいい

562 名前:デフォルトの名無しさん [2009/01/27(火) 20:09:42 ]
すみません、VBとDLLのインタフェースについて教えてくださいませ。

対象のDLL側の実装は、こんな感じです。

int functionA(unsigned long param1 , int* param2)

param1 は、param2 に指定した int 配列の数をあらわし、関数を動かすと、
param2 で指定したところに数字の配列を入れてくれるようになってます。

んで、VBから、こんな風に定義したんですけど・・・

declare function functionA lib "hogehoge.dll" _
( param1 as long , param2() as long) as long

実行時に「DLLが正しく呼び出せません」でエラーになってしまいます。
DLLのファイル名と、関数のExport名は dumpbin で調べたので合ってるかと。

declare function functionA lib "hogehoge.dll" _
( param1 as long , param2 as long) as long
dim param1 as long
dim param2(10) as long
dim ret as long
param1 = 10
ret = functionA(param1 , varptr(param2(0)))

なんてやっても同じエラーでした。

なんか根本的なところで勘違いしているような気もします。

ご親切な方いましたら教えてくださいませ。

環境は、VB5.0、VB6.0でしか使えない機能が必要ならVB6.0も入れてみようと思って待つ。

563 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:33:34 ]
(BYVAL param1 as long , param2() as long) as long 
 ~~~~~~~
じゃね?

564 名前:デフォルトの名無しさん [2009/01/27(火) 20:47:49 ]
すみません、説明不足でした(><)

declare function functionA lib "hogehoge.dll" _
(byval param1 as long , byref param2() as long) as long

というのと、

declare function functionA lib "hogehoge.dll" _
(byval param1 as long ,byval param2 as long) as long

というのを試して両方とも同じく「DLLが正しく呼び出せません」
というエラーメッセージでした。

565 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:48:05 ]
defファイルでexportしてるか?

566 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:09:51 ]
dumpbinで調べてどう?VB5, 6だと正確にあってないとだめだぞ。
これだと前ハイフンも@8も必要になる。

 1    0 00001000 _functionA@8


567 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:10:06 ]
export 名は、dumpbin 、Dependency walker で確認してますし、
同じDLLの他の関数は使えているので、問題ないとおもいます。

568 名前:562 mailto:sage [2009/01/27(火) 21:11:23 ]
そういえばここ、書き込みIDないんですね。

564、567は俺の書き込みです

569 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:14:46 ]
VB6だとDLLが見つからないのと、エントリが見つからないのは
それと分かるメッセージになるのだが、VB5でその辺の切り分けはできますか?
両方とも当てはまらないなら、
DLLがさらに別のDLLを必要としていてそれがないということもありえる。

570 名前:565 mailto:sage [2009/01/27(火) 21:17:32 ]
無視されちった



571 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:19:48 ]
違うdll見てるんだろ、どうせ

572 名前:デフォルトの名無しさん [2009/01/27(火) 21:19:51 ]
>>570
それは問題ないです(><)すみません

>>569
そう思って、出鱈目な関数名を alias で指定
したのですが、その場合は「エントリ hoge がDLLファイル
C:\hoge.dll 内に見つかりません。」というエラー
になるので、エントリまでは問題ないかと思います。

573 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:26:10 ]
>ret = functionA(param1 , varptr(param2(0)))
普通にこれでよくね?
ret = functionA(param1 , param2)

574 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:27:27 ]
__stdcallにしてるだろうな?

575 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:37:50 ]
>>560
COMやVBXの登録がおかしくなってる。
互換のないdllに置き換わってしまった。
などなどのdll Hellの症状が見受けられます。
再インストールがんばって。

576 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:53:35 ]
PATHが通ってないとか

hogehoge.dllをsystem32に置いてみて

577 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:17:56 ]
pathが通ってなかったらdllが見つからんってエラーになるはず

578 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:20:25 ]
>>534
VB2のサンプルソースをコピペして使うからですよ。
VBMsgBoxResult といえば、プロシージャの成功失敗を
vbOKとvbCabcelで返してるコードも見たことがあります。
みんな意味も分からずカッチョイイから使ってるだけ。
Longなら安心だけどIntegerでもたぶん平気、ちゃんと入力の有効範囲を
意識して型を使い分ける俺って渋いじゃん?wみたいな人もいるかもしれません。
そういう人に限って、「500件のレコード処理の進捗率を表示」するのに、
進捗率 = 完了件数 * 100 / 総件数 みたいな阿呆な式を書くんですよ。
もちろん全部最大500だからIntegerで宣言。
せめて割ってからかけろと・・・

579 名前:562 [2009/01/27(火) 23:25:01 ]
みなさん、ありがとうございます!

__stdcall していなかったのが原因でした(><)
VB.net を導入したところ、当たり前のように動きました。

vb5でのテストで、他の関数で処理が通ったのは、引数
がない関数で試したからのようです。引数のある関数は
vb5 ではダメでしたが、vb.net では動きました。

お騒がせしました。ありがとうございます!

580 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:58:48 ]
まあVB.NETならcdeclでも受け付けるだろうし、間違っていてもある程度何とかしてくれそうだなし。



581 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:53:57 ]
VB6でIE7+activeXのソフトを作成しました
IE側にボタンを設置し、そのボタンを押されたらraiseイベントで
別のhoge.ASPなどを呼び出したりしたいのですが、
OCXをダウンロードした1回目に限りraiseイベントが起こらない
(2回目以降というかC:\WINDOWS\Downloaded Program Filesにファイルがダウンロード済なら問題なし)
様のですがIEの仕様なのでしょうか?


582 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 22:58:21 ]
なんか KB でそんなんを見た気がする・・・

583 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:26:44 ]
引数や戻り値の型を合わせるためでもなく、オーバーフローの心配が無くても
原則Longがいいだろう。リテラルには&付けることだな。

584 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:29:59 ]
えええ?

585 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:34:58 ]
>>525
MS-BASIC(N-BASIC)時代の名残。何げに30年の歴史がある。
でもON GOSUBに相当する機能ってVBにはないよね?Tryは微妙に違うし。

586 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:28:18 ]
VB6の本には、なぜMS-DOSプロンプトの代わりにDebug.Printでプログラム技術を
教える本が無いのか。

587 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:22:01 ]
意味がわかりません

588 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:34:26 ]
前提(Debug.Printでプログラム技術を教える本が無い)が間違ってるので意味が伝わらない

589 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:29:57 ]
VB6とコマンドプロンプトとプログラム技術の関連性がまったくわからない。

590 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:57:03 ]
エスパー頼む



591 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:13:57 ]
ハードディスクが壊れたので、俺が2年前に作った数キロバイトのコードを
思い出す方法を誰か教えてください。

ネット上のサーバー履歴も、机の上のパソコンの中の履歴も、ちょうど同じ
日に消えてしまいました。

592 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:19:31 ]
面白いと思って書いてるのか知らんが、まったくつまらないから。
もっと他にやることないのかよ惨めな奴だな

593 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:54:02 ]
スレで信頼できるヤツを探して、逆汗してもらうこった
つまり、そんなヤツを探す方法に、この問題は行き着くわけだが
そうすると、VB6の問題じゃないなこれは

594 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:57:29 ]
ハードディスクの内容を復元してくれる業者に頼め。

595 名前:デフォルトの名無しさん [2009/02/02(月) 02:03:56 ]
>>593
逆汗って何か分かって言ってんのか?
意味もよく分かってないくせに使うんじゃねえよ

596 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 07:35:02 ]
ん。exeは残ってるけど、ソースないよ。って話ちがうんか。まあいいか

597 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:38:05 ]
VB6+Microsoft SoapToolkit 3.0でプログラムをしているんだが、
処理中に実行時エラーが発生してしまうんだが、どうしたら出なくなるのか知ってる奴いない?

 実行時エラー '-2147221504(80040000)':
 Connector:Connection time out.

一応、ConnectorProperty("Timeout")は設定している。

598 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:30:47 ]
エラーが出る場合は、再現する最小限のコードを貼れ
話はそれからだ

599 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:09:19 ]
ソース編集のウィンドウでマウスのスクロールをしても画面が動かないのはなぜ?


600 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:17:53 ]
仕様。



601 名前:597 mailto:sage [2009/02/03(火) 15:31:09 ]
>>598
最低限のコードか・・・
結構長くなりそうだけどいい?

602 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:24:31 ]
>>599
エレコムのマウスユーティリティ(エレコムマウスじゃなくても使える)
をインスコするとVB6のソース画面もスクロールできる
これ豆ry

603 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:11:37 ]
>>599
>>602でもできるのかもしれないけどこれでも出来る
Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
support.microsoft.com/default.aspx?scid=kb;ja;837910

604 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:47:10 ]
>>603
トンクスです

605 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:08:18 ]
>>603
うおースクロール出来るー、嬉しい ^^
ありがとさんです

606 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:48:14 ]
>>585
ON...GOSUBは6.0まで残されてたね。あくまでレガシー活用目的で、
Select Case に書き換えろ、ってQuickBASICの頃から言われてます。
N(N88)-BASICの頃はON ERROR GOTO のほかにもON KEY(n) GOSUB やON STOP GOSUB
やらがあって、それぞれ3単語で1ステートメント扱いでリファレンスにも載ってた。
QBで数が増えすぎてON EVENT GOSUBと一緒くたに説明されるようになった。
どうしてON ERROR GOSUBにしなかったかというと、GOSUBはRETURNでもどるが
ご存じの通りエラーの時はRESUMEで戻るから「GOSUB」を使いたくなかった。
On Error Resume NextができたのはVBから。以前は10 ON ERROR GOTO 60000
60000 RESUME NEXTと書くしかなかった。
考えたら、あの当時にはエラー処理用ステートメントが用意されていたのは
進んでいたのかもしれない。

607 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:55:14 ]
ちなみに蛇足しておくと
ON KEY(n) GOSUB はファンクションキーn番が押されたらGOSUB
ON STOP GOSUB はPC-9800等過去のPCに付いていたSTOPキーが押されたらGOSUB
Stopステートメントとは無関係ですよ。今ならDoEvents+KeyDownイベントに近いのかなあ。
ほかにも音楽演奏バッファが空いてきたらGOSUBする ON PLAY GOSUBとか
いろいろあった。

608 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:58:43 ]
>>591
大型のハンマーで頭を後ろから思いっきりたたく。
目から壁にソースコードが映写されますよ。

609 名前:デフォルトの名無しさん [2009/02/06(金) 01:38:31 ]
自然科学系の出版社勤務ですが、次のアマゾンのレヴューがさっぱり解読できません。
どなたか教えてください。
www.amazon.co.jp/%E8%8B%B1%E6%96%87%E9%80%9F%E8%AA%ADTRY-AGAIN-%E6%9C%AC-%E6%AD%A3%E5%BC%98/dp/4875685920/ref=sr_1_1?ie=UTF8&s=books&qid=1233763565&sr=8-1

610 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:04:22 ]
www.amazon.co.jp/dp/4875685920/
宣伝乙。と思ったら、なんかおもしろそうな文字化けしてるなw

でも、VB6はたぶん関係ナカッタ



611 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:15:27 ]
>>601 ナイス回答がある保証はないが、本気なら、うpすればいいw

612 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:47:21 ]
>>601
とりあえずファンクション単位でもいいから
貼れや

613 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:01:22 ]
そこらじゅうにDebug.Print入れて変数の値を調べろ

614 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:26:04 ]
>>597
これ?
www-01.ibm.com/support/docview.wss?uid=swg21343350

615 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:22:44 ]
>>587-590
たとえばCならprintf、C#ならConsole.WriteLineやDebug.WriteLineで
コンソールやデバッグに出力するところから基礎を始めることがあるけど、
VBではテキストボックスに出すようなのが多い。それだとコントロール周りの
余計な(そのときの本題と関係ない)知識が必要だし、実業務でも
デバッグをMsgBoxでやっちゃってフォーカスがらみのコード追跡ができないと
嘆くような駄目プログラマが育ってしまう。Debug.PrintやPrint#を使う
習慣を身につけさせるべきだ。

と言いたいんじゃないかと思う。

616 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:17:15 ]
そもそもVB6じゃ標準出力に何か出力できたっけ?

617 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:04:09 ]
デバッグモードで起動すればコンソールに出せるだろ・・・

618 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:44:41 ]
FSOのGetStandardStream使ってもできるし、ほかにも

619 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:05:59 ]
初出の、教えるという観点なら、WScriptオブジェクトとかもいいかもしれん
つかできるかな、できるはずだけど あとでやってみよ

620 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:47:17 ]
editbin /subsystem:console hoge.exe
とりあえず野望への一歩。



621 名前:デフォルトの名無しさん [2009/02/09(月) 17:54:24 ]
質問です。

ADOとMs標準のDataGridで一覧表を作ってるんですが、
どうしても分割ペイン追加出来ないように出来ないんです。
MSDNには.SplitsのAllowReSizeにfalseセットすれば追加出来なくなる
みたいに書いてあるんですが、サイズ調整が出来ないだけで、
追加されてしまいます。

何か良い方法をご存じの方いらっしゃいませんか?

622 名前:621 mailto:sage [2009/02/09(月) 18:22:41 ]
自己解決しました・・・

AllowSizingだけじゃなく、SizeModeの設定も必要なんですね・・・


623 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:55:39 ]


624 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:16:22 ]
>>617
具体的な方法を教えてください。

625 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 02:46:33 ]
参照設定 Windows Script Host Object Model (wshom.ocx)

Dim fso As New FileSystemObject
Dim txtstm As TextStream
Set txtstm = fso.GetStandardStream(StdOut)
txtstm.WriteLine "helloあいうえお"
txtstm.Close

editbin /subsystem:console vbxxx.exe


626 名前:624 mailto:sage [2009/02/10(火) 10:06:24 ]
>>625
すみません、その方法ではなく>>617の方法が知りたいのです。

627 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:14:19 ]
Debug.PrintはOutputDebugStringとは異なる仕掛けなのでデバッガには出ない。
さらにEXEにする段階でDebug.PrintとDebug.Assertは取り除かれる。

知ったかもあれだが粘着もそれだ、
>>617 は単純にVB6のIDEで動かせばいいといってるだけかもしれんよ。

628 名前:624 mailto:sage [2009/02/10(火) 12:51:10 ]
つまり、デバッグモードではコンソールに出力できないということでしょうか。

629 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 13:03:18 ]
VB6のアプリやIDEはコンソールを持ってないから普通は出来ない。
普通じゃなければAPIつかって、AllocConsole/GetStdHandle/WriteConsoleの
流れでできるっちゃできる。

630 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:31:04 ]
VBではやったことないが、AllocConsole,GetStdHandle(API)すごい便利だよ
思ったより簡潔に書ける いっぺんつかってみるべき



631 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:35:23 ]
いい加減、うぜーぞ

632 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:34:43 ]
>>631
>>617さん、ごきげんよう

633 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:45:34 ]
コンソールが何かわかってなかった馬鹿

634 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:49:57 ]
617涙目

635 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:23:54 ]
コンソールに出すくらいなら、ファイルに落とすわ

636 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:26:08 ]
今更になって「printfデバッグってすげーな」と声高に主張しているようで恥ずかしい。

637 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:29:40 ]
実際に適してるかどうかってのは今回あまり関係ない
技術的に可能かどうかって話だから

638 名前:615 mailto:sage [2009/02/12(木) 00:25:11 ]
すまん、俺がエスパーだったばかりに・・・

639 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:54:34 ]
は?お前のレスなど糞の役にも立ってないわ

640 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:37:44 ]
TextWidthを使ってぴったりに文字幅設定するのって難しいんですかね?
どうしても表示幅が狭くなってしまいます
(とりあえずダミーの空白とか入れてごまかしてはいますが…)



641 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:06:45 ]
>>638
後半は認める

642 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:15:13 ]
質問です
複数のテキストボックスに入力した内容を
ひとつのファイルに入出力させようと思っているのですが
どのような方法でやればいいのか見当付きません
ご教授願います

643 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:33:37 ]
入力と出力を決めないとこっちも困る

644 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:45:39 ]
>>643
すみません…
ええと複数のテキストボックスに入力した内容をひとつのファイルに出力させて
その後そのファイルを読み込んだら複数のテキストボックスが出力した前と同じ内容になるプログラムでした

645 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:53:13 ]
そんなことはわかってる
もう面倒だからXMLにしちゃえよ

646 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:00:50 ]
テキストボックスの内容を後で識別できるように区切り記号(例えばTabとかCrLfとか)を付けて一つの変数にぶち込む
その変数をファイルに書き込む

ファイルを開いて全て一つの変数にぶち込む
変数の最初から区切り記号の一つ前までをテキストボックスにぶち込む
変数の内容を最初の区切り記号+1にして変数が空っぽになるまでループ

ちゃんとやらないと無限ループするから他の方法の方がいいかもしれないが目的は達するからこれでいいんじゃね?
もしかしてコードがほしかった?

647 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:03:53 ]
>>645
>>646
参考になりました。ありがとうございます



648 名前:デフォルトの名無しさん [2009/02/13(金) 14:57:17 ]
>>642
複数のテキストボックスへ入力された内容を、
String型変数に入れて文字列編集すればいいと思う。

例えば、
dim strA as string
strA = myform.textbox1.text & vbcrlf & myform.textbox2.text

とか。んで strA の内容をファイル化すればいい。

649 名前:デフォルトの名無しさん [2009/02/13(金) 14:58:17 ]
644みなかった。スマンw

俺はそういうときは、tab 区切りにしてる

650 名前:test [2009/02/13(金) 16:45:13 ]
暗号化プログラム作ったんですが
unicodeで貼り付けると
。」〄「〖 こんな感じでうまく貼り付けることができません
これをansiに変換しても
䊁皁脿㽵 となりうまく貼り付けられません
良い方法あったら教えてくださいm(__)m




651 名前:test [2009/02/13(金) 16:46:55 ]
あれここだとうまく貼り付けられてる
他のスレでうまくいかなかったんだけどなぜ?


652 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:55:38 ]
板の設定次第
ttp://pc11.2ch.net/tech/SETTING.TXT

653 名前:651 mailto:sage [2009/02/13(金) 20:10:28 ]
なるほどこの部分ですね
BBS_UNICODE=pass
ありがとうございます


654 名前:デフォルトの名無しさん [2009/02/15(日) 21:29:07 BE:1043968493-2BP(0)]
>>2のVB5をダウンロードしたけどシステムの設定が
不正なため、vbを起動できないって出てきたけど
どうすればいいかおしえて

655 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:53:12 ]
OSのインストールからやりなおすのが言語を入れる鉄則

656 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:04:21 ]
Windowsの互換モード設定は試した?

657 名前:デフォルトの名無しさん [2009/02/16(月) 19:18:02 BE:695979263-2BP(0)]
>>656  互換モード設定してもできない

658 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:31:02 ]
環境は何だよ?VirtualPCで開発環境作ったほうがよくないか。

659 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:35:25 ]
vmware serverがいいお

660 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 08:29:05 ]
VB5.0でとあるexeを起動して終了を待機しているのですが
そのexeの戻り値を取得する必要が出てきました。
exeの戻り値はどのようにして取得したらよいでしょうか?
下記が現在のコードです。

Dim IDProcess As Long
Dim hProcess As Long
Dim ret As Long

IDProcess = Shell(strCommandLine, vbMinimizedNoFocus)
hProcess = OpenProcess(SYNCHRONIZE, 1, IDProcess)
ret = WaitForSingleObject(hProcess, INFINITE)
ret = CloseHandle(hProcess)




661 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 09:02:10 ]
exeは関数じゃないので戻り値なんて無いよ

もしかして終了コードのことを言ってるのか?

それともActiveX.exeなのか?
ActiveX.exeならexe自体ではなくexeが持つ関数に戻り値があるけど

662 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 09:16:40 ]
>>661
すみません。戻り値じゃなくて終了コードですね。
失礼いたしました。

ぐぐりながらやってみているのですが
なぜかhProcessが0です。
なぜいままで動いていたのだろうorz

Dim IDProcess As Long
Dim hProcess As Long
Dim ret As Long
Dim lExitCode As Long

IDProcess = Shell(strCommandLine, vbMinimizedNoFocus)
hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, True, IDProcess)
If hProcess <> 0 Then
MsgBox hProcess
ret = WaitForSingleObject(hProcess, INFINITE)
ret = GetExitCodeProcess(hProcess, lExitCode)
ret = CloseHandle(hProcess)
End If


663 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 09:25:19 ]
うぅ。
すみません。
CreateProcessを使ったら終了コードが取得できました。
お騒がせしました。

664 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:52:53 ]
ところでみなさん WshShell.Run や Exec を活用してますか?

665 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:09:32 ]
あまり活用してない
というかその二つに限れば、VBで使えば活用(活かした利用)にはならない
もっといいものがいっぱいあるから

666 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 13:36:42 ]
なるほど
ありがとうございました

667 名前:デフォルトの名無しさん [2009/02/21(土) 20:32:43 BE:2165268487-2BP(0)]
>>658使い方がわからん

668 名前:デフォルトの名無しさん [2009/02/21(土) 20:35:59 ]
VB6.0ってまだ需要ありますか?
ラーニングエディション持ってるんで、
ちょっと勉強してみようか・・・と思ってるんですが。

669 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 20:39:25 ]
こういう取り残された人たちには需要があります。
>422 名前: デフォルトの名無しさん 投稿日: 2009/02/11(水) 17:01:01 
>そもそも、.NETはお金を頂くソフトウェア作るには不向き 
>・遅い 
>・ソース丸見え 
>・フレームワークインストール必須 
>・FAでは絶対に無理 

>枚挙に暇がない 


670 名前:デフォルトの名無しさん [2009/02/21(土) 20:41:47 ]
>>669
どうもです。サンクス。



671 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:37:44 ]
>>667
簡単だからネットで使い方調べれ。動作確認にはおすすめ。

672 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 16:09:59 ]
なるほど
ありがとうございました

673 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:05:00 ]
>>669
俺おもいっきり取り残されてるな…。

…だからこのスレにいるのかwww

674 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 01:08:24 ]
なるほど

675 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:02:25 ]
Javaでのstatic変数はVBではどんな宣言になるんですか?

やりたいこと
1.インスタンスを生成せずにその変数にアクセスしたい
2.異なるクラス間で同じ値を共有したい
3.javaのように簡単に実現したい
の三本です

676 名前:デフォルトの名無しさん [2009/02/26(木) 02:15:51 ]
すいません。訂正です。
>2.異なるクラス間で同じ値を共有したい

→ 2.異なるクラス間で同じ変数を共有したい

677 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:23:15 ]
>>675
Shared

678 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 02:29:33 ]
お、すまんVB6だったか。共通モジュールに宣言しかないかな。
Static Property とかいった手もあった記憶があるがめんどくさいはず。

679 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 03:33:15 ]
つーかさ、ある言語の仕様が
他の言語でも、そのまま簡単に実現できると思ってるのってどうよ?

680 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 11:02:13 ]
変数共有ならモジュールでグローバル変数の宣言だけで良いんじゃね?
VB6だとそれで十分だと思うが



681 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:29:12 ]
>>675
VBのクラスはクラスメンバを持てない。

VBにはクラスのほかに標準モジュールというのがあるけど、
こっちはC#でいうstaticクラスに似ていて、インスタンスメンバを持てない。
(インスタンス化できない)

まあ、javaよりずっと前からある言語だから多少かかなりかウンコ仕様なのは仕方がないねw

682 名前:デフォルトの名無しさん [2009/02/27(金) 00:49:52 ]
>>681
ハァ?
クラスメンバ変数は Public で作れる

683 名前:デフォルトの名無しさん [2009/02/27(金) 00:57:34 ]
VBのクラスもメンバ持てるぞ。

だが、>>675 を実現するにはちょっと細工が必要。
ActiveX DLL に1つクラスを設けて、そいつの Instancing を GlobaMultiUse に
すればいい。
そいつに Public 変数を置けば、いわゆるグローバル変数扱いになる。もちろんクラス。

ただ、利用側で Option Explicit とした場合、アーリーバインディングでないと
エラーになった気がする。
それと常識だと思うが、プロセスが異なれば参照先も異なる。

クラスである必要があるならこうするしかないが、
どう考えても標準モジュールで十分な希ガス。

684 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:07:49 ]
イベント処理での質問です。

vb2008 webページの作成をしています。

コンボボックスから、氏名を選択したら、別のテキストにIDを表示するのですが。
コンボボックスから選択しただけじゃイベント処理は発生しませんか?

SelectedIndexChangedとかTextChangedとか試してるのですが上手くいきません。


685 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:30:06 ]
>>684
スレ違いです。

686 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 19:47:20 ]
>>682
持てません。
クラスメンバの意味わかって言ってる?w

687 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:53:22 ]
vbのwinsockコントロールで、メッセージを送ってきた相手のIPアドレスって取得できますか?
最低でもLANかWANかだけでもわからないでしょうか?

688 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:57:30 ]
もうすこし詳しく書かないと、やりたい事が伝わってこないぞ

689 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:02:48 ]
詳しく書くと、たとえば
TCPでlistenしてるところにconnectしてきた相手のIPアドレスを取得したいんです。
IPアドレスがわからなくても、最低限、そのconnectメッセージがLAN経由かWAN経由かの接続だけでも取得したいのです。

690 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:10:47 ]
ぜんぜん詳しくなってないが、相手のIPはわかるから一度プログラム作ってみなよ



691 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:32:21 ]
>>690
見直してみたら、てっきりRemoteHostしかないと思ったらRemoteHostIPの存在に気づきました。
すいません、お手数をおかけしました。


692 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:41:06 ]
質問ですが、標準のデータグリッドでマウスホイール回転時にスクロールさせる方法って
何が考えられますか?

693 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:20:11 ]
ホイールスクロールを受け取って自力で動かす

694 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:26:17 ]
support.microsoft.com/kb/179398/ja
こんな感じで

695 名前:デフォルトの名無しさん [2009/03/05(木) 01:50:23 ]
アクセス操作について教えてください。
エクセルのCellsみたいに列、行指定はできませんか?



696 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:09:37 ]
もしかして: VBA?

697 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:20:33 ]
つーか、DBってものを解ってないな
利口ならDBについて3日勉強して出直せ
馬鹿ならDBについて3年勉強して出直せ

698 名前:692 mailto:sage [2009/03/05(木) 11:31:12 ]
ありがとうございます。
ホイールイベント時の処理でスクロールさせるしかないということですね。
イベントの受け取り方などもう少し調べてみようと思います。

699 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:57:12 ]
>695
ADOならRecordsetオブジェクトとか調べて見るといいかも

700 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 17:35:54 ]
VB5.0で作成されたアプリってVistaでも動く?



701 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 18:03:33 ]
答えになってないが
VB6は何とか動いたけどODBC関連がだめだめだったね
使い物にならないぐらい遅い

Win7では動かなくなるソフト続出だとおもう

702 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 18:04:59 ]
VB5 アプリはものによっては動く

703 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:06:49 ]
リストボックスをマウスホイールでスクロールさせた時に
リアルタイムでリストボックスのTopIndexを取得したいのですが
リストボックスのScrollイベントが動かないので私のスキルでは
八方塞がりです。方法をご教授頂けないでしょうか?

704 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:10:51 ]
>>703
サブクラス化

ググればいくらでもサンプルは出てくる
それでも解らなかったら諦めるよろし

705 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:15:50 ]
C#やVB.NETなどで作れという神託だよ

706 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:38:24 ]
>>704
ありがとうございます。
私の探し方が悪いんでしょう。
なかなか見つけられなくてココに来た次第です
諦めるわけには行かないので調べなおします。

>>705
業務で使うのでVB6を使うしかありません。
10年以上稼動する機器なんてざらにあるので・・・
こちらがリファクタリングしたくても
機能も仕様も変わらないのにお金出すところなんてありませんから

707 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:30:07 ]
自力で動かすと、ちょっと上でも方法込みで出てるし。

708 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:32:36 ]
業務で使うのに、サポート切れてるツールを使おう、ってのがわからん。
不具合があったって、MS は知らん顔だよ?

709 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:34:13 ]
MSのサポートなんか受けたことないよ

710 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:38:51 ]
>>706
厳密にTopIndexが一つ変化するごとに確実にイベントが欲しい、
とかで無ければタイマ使ってポーリングしたら?
こんな感じのクラスを作って検証してみたが、悪くないように思うけど。

[ListBoxWatcher Class]
Private WithEvents mListBox As ListBox
Private WithEvents mTimer As Timer
Private mTopIndex As Integer
Public Event TopIndexChanged()

Public Property Set ListBox(lb As ListBox)
Set mListBox = lb
Dim frm As Form
Set frm = mListBox.Parent
If mTimer Is Nothing Then
Set mTimer = frm.Controls.Add("VB.Timer", "pollingTimer")
mTimer.Interval = 200
End If
If frm.ActiveControl Is mListBox Then
StartPolling
End If
End Property



711 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:40:35 ]
Private Sub StartPolling()
  mTimer.Enabled = True
  mTopIndex = mListBox.topIndex
End Sub

Private Sub mListBox_GotFocus()
  StartPolling
End Sub

Private Sub mListBox_LostFocus()
  mTimer.Enabled = False
End Sub

Private Sub mTimer_Timer()
  Dim currentTop As Integer
  currentTop = mListBox.topIndex
  If currentTop <> mTopIndex Then
    mTopIndex = currentTop
    RaiseEvent TopIndexChanged
  End If
End Sub

しかし、なんでそんなイベントでそんな値が必要なんだろう

712 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:44:28 ]
VB6のサブクラス化って初めて見た
横から勉強になります

713 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:48:29 ]
「VB6 のサブクラス化」は、違う意味を指すもんだけどな。

714 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:55:46 ]
「ホイールで動かしたけりゃこのドライバ入れるかあのソフト入れろ」と言える俺は趣味グラマ

715 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:03:30 ]
趣味グラマ以前にバカすぎ
動かしたいって話ではなく
動かすのは出来てる上で
そのイベントを取りたいって話なのに

716 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:06:15 ]
FlexGridライクなグリッドツールで
使いやすくてフリーか安価な物ってありますか?

717 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:16:19 ]
ttp://www.grapecity.com/japan/support/database/p1_223.htm

718 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:17:29 ]
Windows7でもランタイム入ってるのか
あと5年はイけそうだぬ

719 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:25:32 ]
>>718
ところが動かないソフト続出w

720 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:44:50 ]
>>716
俺はMSHFlexGridを自作のクラスと組み合わせて使いやすくしてる
プログラマなら他人が作ったものを使うことばかり考えてないで
少しは自力で便利にしようって気になろうよ



721 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 19:10:59 ]
DataGridView

722 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 00:37:17 ]
DataGridViewって.NETのコントロールじゃないの?
VB6でも使えるのか?

723 名前:716 mailto:sage [2009/03/09(月) 00:46:37 ]
自分で実装しても良いんですけど
自作にかかる費用と購入する費用を考えたときに
購入する方が安上がりかと思いまして

後、うちの会社レベルが低すぎてクラスの概念理解できる人がいないんです…

やっぱグレープシティ買って貰うのが一番手っ取り早いですかね
1週間分の人件費で買えますし…

724 名前:デフォルトの名無しさん [2009/03/10(火) 22:18:45 ]
何でもかんでも自分で作ろうとする奴は馬鹿なのか?
費用対効果とか生産性で一番効率品質ともに良いほうを選ぶだけのこと。
車輪の再発明なんぞ自宅でやれ。仕事でやるな。
再発明した低レベルの車輪を見せびらかすな。

725 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:25:08 ]
たいていは、上の人が買ってくれないから、って理由じゃない?>自前で作る

726 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:33:08 ]
FlexGridProの品質の悪さは異常

727 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:25:40 ]
> 車輪の再発明なんぞ自宅でやれ。仕事でやるな。
そもそも最初の質問で仕事で使うとは一言も書いてない件について

個人で使うことを想定した回答を、後出しの仕事で使うという情報を理由に叩く奴は馬鹿なのか?

728 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:40:34 ]
>>724の回答もどうかと思うが、
君のそれも話が噛み合ってないんじゃないの?

>>725の言うように724は勤め人にありがちな境遇がわかってない、
ってのなら同意するんだが。。

まあ、くだらんことで熱くなってもしょうがないだろ。

729 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:33:39 ]
でも車輪の再発明って楽しいよな。

730 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:15:49 ]
再発明ではなく
新発明に出来る可能性を秘めてるからな
再発明にすら届かない可能性も孕んではいるが



731 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:12:26 ]
再発明ってやつは、意識して取り組めば、何らか得るものがあるが、
いかんせん時間効率がよくない。と思う

車輪の再発明は学生のうちにしとけ。とはよくいったもの
世の中そううまくいかん(実りある再発明行為が、学生のうちにできるわきゃない)わけだが

732 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:21:25 ]
時間効率が重視される仕事に置いてまで
再開発でも自作しろなんて言ってる奴は皆無である件について

733 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:28:14 ]
コスト計算できない上司が部品買ってくれないってのは、自作しろって事じゃないの?

734 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:43:24 ]
それは上司の主張であって、このスレの住人の主張ではないだろ

735 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:45:13 ]
なんで上司の主張は除外されるわけ?

736 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 02:50:12 ]
ここが会社ではなく2chのスレだから

737 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 03:19:15 ]
2chのスレだったら会社の話をしちゃいかんのか?

738 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 05:24:15 ]
別にいいんじゃないの?
ただ会社の場合は「会社では」って付けてね
何も付けないと、名前空間上「このスレでは」って意味になるから

739 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:41:56 ]
上司の話をするのに、いちいち会社の上司はと付けなければいけないのか?
いつからそんなルールになったんだ?

740 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:48:00 ]
いや、そもそも「このスレの住人の(合意された)主張」なんてものが存在しません。



741 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 17:43:28 ]
★印の ”A7” とこを Cells(y, x) とすると

「Rangeメソッドは失敗しました」

と文句言われますが、どうすればいいのでしょう!?

Range("A7:R120").Select
Application.CutCopyMode = False

Selection.Sort _
Key1:=Range("A7"), _   ★
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin

742 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:37:57 ]
おしえてくだせえ。
frmMain 実行中に、フォームの右端をドラッグして大きさかえると、Resizeイベントが発生するまではいいんだが、
その後 frmMain.ScaleWidth や、frmMain.Width などを取得してみると大きさ変更前の値しか出てこないんだよ。

なにか足りない部分があるのでしょうか?

743 名前:742 mailto:sage [2009/03/21(土) 18:45:53 ]
すんません。事故解決です。
VBのウイザードからある程度メニューやツールボックスが揃ったプロジェクトではじめていたので、

Set fMainForm = New frmMain

と標準モジュールからフォームオブジェクトが開かれてました。
初心者に意地悪なつくりでした。







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<174KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef