トップページ⇒tech
1001コメント327KB

VBプログラマ質問スレ(6.0以前) Part39

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパック
何がしたくでどうしたけどどう困っているのかを明確に書きましょう。

○関連スレッド
VB.NETは別物なので、基本的に質問はこちらへ
VB.NET質問スレ (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1096683017/l50

API関連の質問はこちらへ
Win32API質問箱 Build24
http://pc5.2ch.net/test/read.cgi/tech/1098967135/l50

MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6 正式リリース
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
http://www.google.co.jp/
※「まず自分で調べる」を身につけよう。

心得
一.質問する前に過去ログにも目を通してみる。
二.質問する前に MSDN などで調べてみる。
三.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NETの話題できるだけひかえる。

前スレ Part38 http://pc5.2ch.net/test/read.cgi/tech/1095673000/
0002デフォルトの名無しさんNGNG
過去ログ
  Part 1 http://piza2.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza2.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
0003デフォルトの名無しさんNGNG
  Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
  Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
  Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
  Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
  Part25 http://pc2.2ch.net/tech/kako/1052/10526/1052627913.html
  Part26 http://pc2.2ch.net/tech/kako/1055/10551/1055145106.html
  Part27 http://pc2.2ch.net/tech/kako/1058/10586/1058674927.html
  Part28 http://pc2.2ch.net/tech/kako/1061/10612/1061296197.html
  Part29 http://pc2.2ch.net/tech/kako/1065/10654/1065446334.html
  Part30 http://pc2.2ch.net/test/read.cgi/tech/1069160036/
  Part31 http://pc2.2ch.net/test/read.cgi/tech/1073732636/
  Part32 http://pc2.2ch.net/test/read.cgi/tech/1077216109/
  Part33 http://pc5.2ch.net/test/read.cgi/tech/1080606445/
  Part34 http://pc5.2ch.net/test/read.cgi/tech/1084544243/
  Part35 http://pc5.2ch.net/test/read.cgi/tech/1087519251/
  Part36 http://pc5.2ch.net/test/read.cgi/tech/1092906058/
  Part37 http://pc5.2ch.net/test/read.cgi/tech/1090286450/
0004デフォルトの名無しさんNGNG
  ∧∧
 ( =゚-゚)< >1-3乙。今度こそ良スレになりますように。。。
0005デフォルトの名無しさんNGNG
初めての方へ。

このスレは初心者の質問にも満足に答えられないスレです。
ご了承ください。

ただし、質問に対して回答が分からないくせに書き込む行為は
荒らし行為として取り締まられるので、徐々に治安はよくなって
いくと思われます。
0006デフォルトの名無しさんNGNG
>5
オメデトウ!お前がアラシ第一号だ。

何でそんなに粘着するんだ?彼女をVBに取られたのか?(プ
0007デフォルトの名無しさんNGNG
>>6

心得
五.荒らしは相手しない。
0008デフォルトの名無しさんNGNG
質問する場所間違えたかも・・・
ここに質問した方がよかったかな。


シート1のA1〜A100まで値が入っていたとして、その中から
文字列で「AA」が入ったセルだけををシート2のB列にコピーしたいのですが
どうしてもうまくいきません、誰か助けてください
0009デフォルトの名無しさんNGNG
VBAはVBAスレで。
マルチは氏ね。
0010デフォルトの名無しさんNGNG
てか、このスレいつまで続けるの?
0011デフォルトの名無しさんNGNG
VisualBasic6.0 sp6

timeSetEventを使ってタイマーにしているのですが、
コールバック関数内でDLLを呼び出そうとすると、
VB上では問題ないのですが実行ファイルにするとエラーになってしまいます。
DLLのバグかもと考えたのですが、ためしにコールバック関数内でMsgBox使ってみたら
これでもエラーになるようなのでコールバック関数内ではなにか呼び出すようなことはできないのでしょうか?
0012デフォルトの名無しさんNGNG
次のテンプレに入れてくれよ
エラーが出た時はエラーメッセージをそのまま書く事
と。
0013デフォルトの名無しさんNGNG
エラーというかOS(WinXP)の強制終了(Microsoftに送信しますか〜云々)がでます。
001411NGNG
↑11です。
0015デフォルトの名無しさんNGNG
>>13
コールバックの中で他の関数呼び出すのはOKだったと思うよ。
他のマルチメディア系のAPIだと、コールバックの中で使えないAPIあったりするから、
もしかしたら、これもあるかもしれんけど。

コールバック関数の定義ミスか、初期化してないバッファへ書き込みに行ったかだとは思うけど、
VB上で正常に動作しているなら前者は無いと思うし、後者は実際のコード見ないとわからないし。

プロジェクトにデバッグシンボルを吐き出せるようにする設定があるから、それをオンにしてから
実行ファイルを作り直して、VCでデバッグ実行して確認したほうがいいかも。
たいがい一発で原因が分かるよ。
0016デフォルトの名無しさんNGNG
>>11
timeSetEventは内部でスレッドを作成していて、
VBではスレッドを使用するものは無理か難しい。
だからそういうエラーになる。

というのが一般的な答え。
でも俺普通に使っていたような気がするんだけどなぁ。

ちょっと検索したらこんなのが見つかった。
DirectXを使うことで同等のことができる?
http://nothing.sh/diarylog/200101.htm
0017デフォルトの名無しさんNGNG
DirectXを使うのあった。
http://www.koalanet.ne.jp/~akiya/vbtaste/vbp/

タイトル マルチメディアタイマーを用いたストップウォッチ
ファイル名 StpWch00.lzh
サイズ 9KB
更新日 2002/03/12
今後の予定 ひとまず完成版とさせて頂きます。
分類 VB6で作成したサンプル
機能 マルチメディアタイマーを使ってストップウォッチを組み立てます。
主な内容 API関数timeSetEvent、timeKillEvent、timeGetTimeの使い方。
イベントオブジェクトをDirectXforVBで待ち受ける方法。
注意 DirectX8 for VBを利用しています。
DirectX7 for VBで使用するには、一部修正する必要があります。
001811NGNG
DirectXでやってみました。
動くには動くんですが・・・どうもtimeSetEventをコールバックでやるよりも精度が悪いです。
具体的にはメトロノーム作っているのですが。
VBでは限界なんですかね。
0019デフォルトの名無しさんNGNG
>15
「思う」じゃないだろ、「思う」じゃ。
「かもしれん」じゃないだろ「かもしれん」じゃ。

「わからないし」じゃないだろ「わからないし」じゃ。
0020デフォルトの名無しさんNGNG
質問者と一緒に悩んでる回答者多すぎ。
分かる場合だけ回答して、分からない場合は静観する。
こんな簡単なルールが守れないか?
0021デフォルトの名無しさんNGNG
>>20
それは自分で問題を解決した(しようとした)ことがない奴の意見としか思えん。
あるいは、ガッコの宿題的にとにかく問題が解決すればいいと思ってる奴か。

はっきりした回答じゃなくても、ちょっとした情報が問題の解決に
つながる場合だって往々にしてあるんだよ。
0022デフォルトの名無しさんNGNG
>>21
馬鹿かお前
くだらん無駄情報は相手の時間のロスにしかならない
0023デフォルトの名無しさんNGNG
無駄足を踏ませるのが目的なのだよ!!!
0024デフォルトの名無しさんNGNG
だいいいち、グダグダ言ってねえで
ただ答えだけ教えろって何様のつもりだよ。
0025デフォルトの名無しさんNGNG
>>24
答えだけ書けよ。無能。
0026デフォルトの名無しさんNGNG
>>22
日曜の昼間からそんな風に面識もない奴煽って楽しいか?
まあ煽りじゃなくて本気かもしれないが。

いずれにしろかわいそうな人ですな。
0027デフォルトの名無しさんNGNG
会社でも遠まわしで的を射ない中身の無い時間だけすぎてゆく会議が得意なんだろう
あ、餓鬼か無職かな?
0028デフォルトの名無しさんNGNG
>>21
答えを書く気が無いのなら邪魔だから消えてくれないかな
0029デフォルトの名無しさんNGNG
>>27
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
0030デフォルトの名無しさんNGNG
「答え」ねえ。。
言葉の端に出自が現れますな。
0031デフォルトの名無しさんNGNG
>>29
反論できなくなるとソレですか。
あなた、頭わるいですね。
0032デフォルトの名無しさんNGNG
なぁ、オマエラ。「答えを書け書け君」よ、お前だ。

そんなにイヤなら会社辞めれば?
「SE」とか「PG」という職業に憧れて入ってみたらVBでさえ分からなくて
会社で叩かれ、恥をかいて捌け口を2ちゃんに求めるなんざ愚の骨頂。

頼むからリアルで勉強会でも開いて学び合うとか前向きになるか、
それでもなければ、他でやってくれ。ハッキリ言ってウザイ
0033デフォルトの名無しさんNGNG
>>32
あなたは一生無職でいて下さい。
0034デフォルトの名無しさんNGNG
>>32
雑談したければ、他のスレ行けばいいんじゃない?
質問があり、それに答える。それの何が悪い?
間違っている情報を相手に与える方が迷惑とは思わない?
0035デフォルトの名無しさんNGNG
無駄足を踏ませるのが目的なのだよ!!!
0036デフォルトの名無しさんNGNG
関係ない雑談は他所でやれ、と
関係ない雑談をするお馬鹿さん。

クレタ人のパラドクスみたいだな。
0037デフォルトの名無しさんNGNG
>24
答え以外に低脳人からほしい情報はない。
0038デフォルトの名無しさんNGNG
>36
いいえ
0039デフォルトの名無しさんNGNG
>31
その前に反論してもらえるようなことを書けるように
なった方がいいよ。
0040デフォルトの名無しさんNGNG
ほーら、こんなスレいらねーじゃん。
0041デフォルトの名無しさんNGNG
>34
>>間違っている情報を相手に与える方が迷惑とは思わない?

オマエ・・・・






何様だ?
0042デフォルトの名無しさんNGNG
以上>40の自作自演でした。


End Sub
'------------------------------------------------------------------
0043デフォルトの名無しさんNGNG
次の質問ドゾー
できればマトモなヤツおながいします
0044デフォルトの名無しさんNGNG
はじめまして。プログラム初心者です。
Cで作成されたAPIを呼び出す時の質問なのですが、
Date型の引数は、VB側ではどのようにすれば値を取得することが
できるのでしょうか?
よろしければ、どなたかご回答お願い致します。
環境:VB6(SP5)
0045デフォルトの名無しさんNGNG
服の上から裸を見る方法があるなら是非教えてもらいたいですね
0046デフォルトの名無しさんNGNG
>>44
CにはDate型なんてないよね。構造体かな?
自作DLLがらみの問題の時は、
DLL側の宣言部だけでも掲示してもらわないと
どうしようもないよ。
0047デフォルトの名無しさんNGNG
>>46
申し訳ございません。私の勘違いでした。よく調べてみると
func_API(ByRef intTime As Long)という感じで、
intTimeにはUTCの時刻が返ってくるようなのですが、
これをVBのDATE型にするにはどのような方法があるのでしょうか?

0048デフォルトの名無しさんNGNG
DateVaue()
0049デフォルトの名無しさんNGNG
>>48
APIからは「1087440828」のような「経過秒」が返ってくるのですが、
DateValue()で変換することが可能なのでしょうか?
0050デフォルトの名無しさんNGNG
>>49
Dim t As Long
t = 1087440828
Text1.Text = DateAdd("s", t, "1970/1/1")
UTFは知らん。
0051デフォルトの名無しさんNGNG
いかん。UTFじゃなくUTCだよな。書き間違い。
日本国内決め撃ちでよければ、さらに9時間足せばいい。
0052デフォルトの名無しさんNGNG
>>51
上記の方法でできました!
本当に有難うございます!!
0053デフォルトの名無しさんNGNG
>>18
> DirectXでやってみました。
> 動くには動くんですが・・・どうもtimeSetEventをコールバックでやるよりも精度が悪いです。
> 具体的にはメトロノーム作っているのですが。
精度悪いんかなぁ。まあtimeSetEventよりも余計な処理が入っている分
少しは悪いとは思うが。メトロノームくらいなら十分な気がするんだけど。
どういうことをやって違いがわかった? もはや人間には違いがわかない世界だと思うんだけど。
タイマー内の処理が長すぎたりしない?ソースコードの修正で精度を改善できそうなきがする。

>>17のサンプルはtimeSetEvent(の別名MMTimeSet)のResolution(分解能)が
5になっているからそのせいじゃない?
あとtimeBeginPeriodで精度をあげることができるのでそれを使うとか。
0054デフォルトの名無しさんNGNG
またバカしかいない
0055デフォルトの名無しさんNGNG
クラスが作成できなくなりました。
プロジェクトを右クリック→追加でクラスが現れません。
どうすればいいですか?
0056デフォルトの名無しさんNGNG
下痢でVBVBVBVBVBVBVB
ってうんこが出る
0057デフォルトの名無しさんNGNG
数値から漢数字がほしいんですが
Format関数あたりで可能でしょうか?
Ex.
 1→一
 2→二
 3→三
…
0058デフォルトの名無しさんNGNG
>>57
漢数字と一言で言われてもな
1〜10まででいいのか
壱千萬
十万
壱〇〇〇〇〇〇〇
様々な書き方あるわけだが。
0059デフォルトの名無しさんNGNG
>>57
うわw
微妙なことしてんなーw
もちろん。わかんねw
006057NGNG
>>58
たしかにそうですね・・ほしいのは一から九までです。
Format関数ってけっこう奥深いというかいろいろできるようなので
もしかしたらと思ったんですが…
0061デフォルトの名無しさんNGNG
>>60
For i = 1 To 10
Text1.Text = Text1.Text & Mid("一二三四五六七八九十", i, 1)
Next i
こんなもんでいいじゃん。配列でテーブル持ってもいいし。
0062デフォルトの名無しさんNGNG
念のため
五.荒らしは相手しない。
006357NGNG
>>61
あ、それいただきますw
関数作るほどでもないし、どうせループで回してるので
無駄にコードの量増やさずにすみました。
ありがとうございます!
0064デフォルトの名無しさんNGNG
>>61
横レスだがおまえすげえな!! 感動した
Select case で。。。とか書こうと思ったがやめてよかった
0065デフォルトの名無しさんNGNG
>>64
おまえ呼ばわりされる覚えは無い。
0066デフォルトの名無しさんNGNG
>>65
すまん
0067デフォルトの名無しさんNGNG
だらだら書くけど、速度を考えるとSelect Caseの方が
いいかもしれない。(内部的にテーブルに変換される)
でも配列を使ったほうがもっと良いかな。
最適化の設定にもよりそうだけど。
実際にコンパイルしてやってみないと正確なことはわからんけど。
006857NGNG
>>64
何気ないところで(あ、かしこいな)って思う書き方ってありますよね。
すごく勉強になります。

>>67
なるほど・・
コードの見やすさは速度には比例しないんですよね…。
わかってはいるけどけっこうIIfとか多用しちゃってます。。
0069デフォルトの名無しさんNGNG
おいおい、>>61みたいなアホなコードで感動しちゃだめだろ。
Chooseつかうでしょ、普通は。
0070デフォルトの名無しさんNGNG
Chooseは結構遅いぞ。だからマイナー感が強い。
>61さんので充分イイと思うが。

マジレスごめん。
0071デフォルトの名無しさんNGNG
Mid("一二三四五六七八九十", i, 1)
Choose(i, "一", "二", "三", "四", "五", "六", "七", "八", "九", "十")

・・・まあ、好みだな
1文字じゃなかったらChoose使うかもしれない
0072デフォルトの名無しさんNGNG
Chooseはグリッドコントロールの項目名割り当てくらいしか
使い道が思い浮かばん。初期化には便利な方法だよな
0073デフォルトの名無しさんNGNG
>>70
いや、確認したわけじゃないが内部の処理を想像すると(Cで実装することを
考えると)Mid$がChooseより遅いとは思えない。

Chooseって内部的には恐らくchar*の配列みたいなもんでしょ?
007473NGNG
(誤)遅いとは思えない。

(正)速いとは思えない。
0075デフォルトの名無しさんNGNG
もう配列でいいじゃん
0076sageNGNG
正直このような軽いロジックは何使おうが己のセンスでかまわんと思う
ちゃんと動けば
0077デフォルトの名無しさんNGNG
>>73
内部はそうかもねー
呼び出す時は、Chooseの場合、多ければ多いほどスタック処理が増える事はわかるよね
007811NGNG
>>53
普通になんか遅いような・・・って思って計ると遅かったです。あとリズムがよれる。
もちろん1msにしてますが。
タイマー内の処理も簡単です。
timeSetEventだけ(VB上だと問題なく動くので)のときは問題なかったですし。
007973NGNG
>>77
スタック処理?
ハードコーディングされてるポインタ配列引くだけでしょ?
0080デフォルトの名無しさんNGNG
>>79
Mid("一二三四五六七八九十", i, 1)
の場合、3個のデータを渡す

Choose(i, "一", "二", "三", "四", "五", "六", "七", "八", "九", "十")
の場合、11個のデータを渡す

Cがわかるなら作ってみてアセンブルリストを見よう。
008155NGNG
Win2000
VB6
SP6
です。分かる人いませんか?
0082デフォルトの名無しさんNGNG
a = Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九")
Text1.Text = a(n)
0083デフォルトの名無しさんNGNG
おー、配列ってArrayで作れるんだ。
0084デフォルトの名無しさんNGNG
>>55
俺も同じ環境でメニューバーから「参照設定」が消えたり
ツールバーの「オブジェクトブラウザ」や「ツールボックス」とかが勝手に消えたりした。
アプリケーションの追加と削除でアプリケーションの修復をやったけど
完全には戻らなかった。
一旦VBをアンインストールしてから再インストールしたら元に戻ったよ。
0085デフォルトの名無しさんNGNG
まあクラスモジュールを追加したいだけならメニューバーの
「プロジェクト」→「クラスモジュールの追加」でいいな。
0086デフォルトの名無しさんNGNG
キーボードでピアノが弾けるギターフリークス的な音ゲー作ってるんですけど
落ちてきた文字に合わせてキー押すとGOODとか出したいんですけど
どうしたらいいですか?
0087デフォルトの名無しさんNGNG
>>86
http://pc5.2ch.net/gamedev/
0088デフォルトの名無しさんNGNG
>>86
これだけの情報で
どんな解答を望んでいるんだい?
0089デフォルトの名無しさんNGNG
>>86はめるぽ
0090デフォルトの名無しさんNGNG
VB6のエディタで、マウスのスクロールがなぜか使えません。
マイクロソフト純正だったら使えた記憶があるのですが・・・。
皆さん、どのようなマウスを使ってますか?

プログラム内容の質問でなくてごめんなさい。
0091デフォルトの名無しさんNGNG
>90
もともと使えない。標準ではホイール対応していない。
お薦めフリーソフトは例えばコレ↓

どこでもホイール
ttp://www2k.biglobe.ne.jp/~araken/qdoko.htm
0092デフォルトの名無しさんNGNG
ロジクールはスクロールできるよ
0093デフォルトの名無しさんNGNG
そりゃあロジのマウスドライバ入れたからだべ
009490NGNG
>>91
ソフト入れました。
ありがとうございました!

>>92
もしや、記憶にあったのは、ロジクールかもしれませぬ・・・。
0095デフォルトの名無しさんNGNG
画面をVBで作成し、重い処理をする部分をVCで作ったDLLに
したいのですが、そんなやり方を紹介しているいいサイトは
ありませんか?
0096デフォルトの名無しさんNGNG
>>95
ttp://www.angel.ne.jp/~mike/vb_dll/index.html
0097デフォルトの名無しさんNGNG
>96
ありがとうございます。
0098デフォルトの名無しさんNGNG
Frameの中にあるコントロールから 抜けるときに 発生するイベントってないでしょうか?

つまり、別のFrameに移動する場合とかです。
0099デフォルトの名無しさんNGNG
>>95
でも、その考えって古くないか?
今それほどCのDLLだから早いって処理は無いと思うが。
ネイティブコンパイルしてる限りは。

>>98
無い。
0100デフォルトの名無しさんNGNG
ラベルのキャプションや テキストボックスのテキストに ○にaとか使いたいのですが
どうすればいいでしょうか?

???? ← 出るかな?
0101デフォルトの名無しさんNGNG
>>100
まず出ていない。w
外字だと思うので、外字とVBをキーワードにしてグーグル様にお願いしてみては?
事例は結構あると思いますよ。
0102デフォルトの名無しさんNGNG
>>100
UNICODEのキャラクタじゃないのか?
それならばWebBrowserに食わせれば出る
0103デフォルトの名無しさんNGNG
>>98
Form_LostFocus
他のアプリに移る時も出てしまうがな
0104デフォルトの名無しさんNGNG
>>103
元質問者のはフレームだぞ。
ようは、特定のコンテナに属するコントロールからロストフォーカスしたときに
コンテナからのロスとフォーカスとして一括で扱えるか?って言うことだと思う。
010598NGNG
やはり無理そうですね。
0106デフォルトの名無しさんNGNG
>>99
私もそう思う。
いろんな言語で書くとメンテナンス性が悪い。
0107デフォルトの名無しさんNGNG
画像処理はDLLに渡すなあ
Cだと参考になるソースも豊富だし、速度が桁違い。
全部Cで作れよとつっこまれたら返す言葉は無いが。
010899NGNG
>>107
画像というか、大量のメモリー空間を操作したい処理の場合ですね。
VBだとどうしてもオブジェクト経由でしかメモリーにアクセスできないから。
その点はその通りと思います。

ただ、そういう場合VBでやるなら、コンポーネント買っちまうのが流儀だと思う。
0109デフォルトの名無しさんNGNG
コード書く以前の問題で申し訳ないんですが
コード書く場所でマウスロール使えないんですか?
設定のところを一通り見てみたんですが、それらしき項目がなかったので皆さんどうしてるのか気になりました。
0110デフォルトの名無しさんNGNG
MSCommについての質問です。
使用例にある

' 入力文字列用バッファ。
Dim Instring As String
' COM1 を使用します。
MSComm1.CommPort = 1
' 9600bps、パリティなし、データ長 8 ビット、およびストップ ビット長 1。
MSComm1.Settings = "9600,N,8,1"
' Input プロパティ使用時に、バッファ全体を読み取るように設定します。
MSComm1.InputLen = 0
' ポートを開きます。
MSComm1.PortOpen = True
' モデムに AT コマンドを送信します。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' モデムが
' "OK" と応答するのを確認します。
' データがシリアル ポートに戻るのを待ちます。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' シリアル ポートで "OK" 応答データを読み取ります。
' シリアル ポートを閉じます。
MSComm1.PortOpen = False

を使うと、CPU使用率が100%になるのですが、そうならない方法はありますか?
できれば、プロシージャの外に処理を出したくないのですが。
0111デフォルトの名無しさんNGNG
>>109
どこでもホイールというソフトでも入れたらいい
0112デフォルトの名無しさんNGNG
>>110
100%がいやならばOnCommイベントで取るしかないが。
'Sleepするのは邪道?
0113デフォルトの名無しさんNGNG
>>111
うおおお、こんな便利なソフトがあるなんて
助かりました。ありがとうございました。
0114デフォルトの名無しさんNGNG
>>108
市販のコンポーネントを積極的に取り入れるのは賛成なんだけど、
仕事だと使えない場面も多いね。
〜分析というアプリを作る場合は特に。
0115デフォルトの名無しさんNGNG
>>112
ありがとうございます
やってみます。
0116デフォルトの名無しさんNGNG
>>110
ていうか、まずそのサンプルコピペして一丁あがりって根性を直すべきだと思う。
中身理解してないコードを何の恐怖もなく平気で使える感覚が怖い。

結構どこの会社にも>>110みたいな人っているみたいだけど。。
0117デフォルトの名無しさんNGNG
>>116
うるさい
0118デフォルトの名無しさんNGNG
>>116
雑談は他のスレでやれ。
プログラマー板のほうがいいんじゃないか?お前が原因で空気悪い。
0119デフォルトの名無しさんNGNG
Shapeの貼り付けのことで質問なのですが
重なる順序を後から変更することは可能でしょうか
プロパティを見てみたのですが、それらしきものを見つけることが出来ませんでした。
0120デフォルトの名無しさんNGNG
>>119
ZOrder で前後には動く
0121デフォルトの名無しさんNGNG
>>120
ありがとうございました。
いろいろ実験してみようと思います。
0122デフォルトの名無しさんNGNG

在庫管理のメニューから呼び出される「商品保守」のForm_Loadプロシージャの部分
なのですが、
Private Sub Form_Load()
dat商品.DatabaseName = strDbName
dat商品.RecordSource = "SELECT 商品コード,商品名,単価 FROM T_商品"
dbg商品.Columns(0).Caption = "コード"
dbg商品.Columns(1).Caption = "商品名"
dbg商品.Columns(2).Caption = "単価"
dbg商品.Columns(0).DataField = "商品コード"
dbg商品.Columns(1).DataField = "商品名"
dbg商品.Columns(2).DataField = "単価"
dbg商品.Columns(0).Width = 300
dbg商品.Columns(1).Width = 4050
dbg商品.Columns(2).Width = 1000
dbg商品.Columns(0).Alignment = dbgRight
dbg商品.Columns(1).Alignment = dbgLeft
dbg商品.Columns(2).Alignment = dbgRight
dbg商品.Columns(2).NumberFormat = "###,#0"
dat商品.Refresh
End Sub
これを実行すると「インデックスが有効範囲にありません」となってしまいます。
アドバイスをお願いします。
0123デフォルトの名無しさんNGNG
Columns()は0〜2まで存在している事は確認済みか?
つーかどの行でエラーが出るのかくらい書け。
0124122NGNG
お返事有難うございます。
エラーは
dbg商品.Columns(2).Caption = "単価"
のあたりから出ます。Columns()が0〜2まで存在する事を確認するにはどうすれば
良いのでしょうか?
T_商品というテーブルには 商品コード、商品名、単価のカラムがあることは
確認しています。
0125デフォルトの名無しさんNGNG
>>124
123じゃないが、問題はDBのテーブルじゃなく、多分使ってるであろうDBグリッド側です。
そっちのデザイン上、DBグリッドのカラムはどうなっていますか?

あと、実際にDBのカラムが参照されるのは最後のリフレッシュです。
0126122NGNG
>>125
御返事ありがとうございます。
コントロールを張りつける画面ではDBグリッドカラムが二つしかない状態です。
これが原因なのですね。色々とデザインの画面をさわってみたのですが、
DBグリッドのカラムを増やすにはどうすれば良いのでしょうか。
0127デフォルトの名無しさんNGNG
>>126
それぐらいはヘルプを読め。それでもわからんかったら、どこがわからんかかいてくり。
0128デフォルトの名無しさんNGNG
とりあえず
dat商品.Refresh
を
dat商品.RecordSource
の次に入れてみれ
0129122NGNG
>>127

ヘルプのディスクが無いみたいなので、WEBで検索して勉強します。
アドバイス有難うございました。

>>128

dat商品.Refreshの位置をかえたらちゃんと表示されるようになりました!
アドバイス有難うございました。
0130デフォルトの名無しさんNGNG
前スレ終わりそうなのであげ
0131デフォルトの名無しさんNGNG
一つのプロジェクトファイルの中にFormをどかどか作っていったら
コンパイル後 EXEファイルのサイズが2MB近くになってしまいました。

コンパイルにかかる時間もだんだんと長くなってきましたが
実行時は全く問題なく動作します。

開発、実行環境にもよると思うので一概には言えないと思いますが
最大でどれくらいまで大丈夫なものでしょうか?
又は
最大でどれくらいのファイルサイズのEXEを見たことありますか?

0132デフォルトの名無しさんNGNG
>>131
見るだけなら10M20Mはざらですが。
100フォームとか。

まあ、自分じゃ絶対やらないけどね。その前にEXEを分割してしまう。
EXE間の連携とかもある程度ノウハウだし。
そもそも画面設計段階でなんとか考慮するし。
0133デフォルトの名無しさんNGNG
ポップアップメニューについてお聞きします。
TextBoxを右クリックするとポップアップメニューが出るのですが、
この内容を別のものに変更したいのです。

Text1_MouseDownイベントの中で自分で作ったメニューを

if Button = 2 then
  PopupMenu menuOriginal
end if

みたいな形で読んでみたのですが、右クリックすると
やっぱりデフォルトのポップアップメニューが出てしまいます。
デフォルトのものを出さずに自分が作ったメニューを出すには
どうしたらいいのでしょうか?
0134133NGNG
自己レスです。
デフォルトのメニューを消すにはMouseDownイベントの中で

Text1.Enable = False
Text1.Enable = True

としてやればいいようです。
失礼しました。
0135デフォルトの名無しさんNGNG
ttp://support.microsoft.com/default.aspx?scid=kb;ja;191670
MSはこう書いてるな
0136デフォルトの名無しさんNGNG
PictureBoxに描画させた円や線をコピーして別の
PictureBox2にそのまま全体をペーストするにはどうすればいいのですか?
0137デフォルトの名無しさんNGNG
コマンドボタンの文字の色を変えるには どうしたらいいでしょうか?
0138デフォルトの名無しさんNGNG
初心者質問ですいませんが、

form上のTEXTBoxに文字列が入力されたら、Checkボタンが自動的にOnになる

としたいのですが、どうしたら良いのでしょうか(VB6)
0139デフォルトの名無しさんNGNG
>>138
TextBoxのChangeイベントに書くよろし。
0140デフォルトの名無しさんNGNG
>>136
Picture2.Picture = Picture1.Image
でイケたけど、そういう問題じゃないのかな?
(両方AutoRedrowをTrueに)

>>137
画像として描画するしかない
0141デフォルトの名無しさんNGNG
>>139
ありがとうございました。
0142デフォルトの名無しさんNGNG
全く、初めてVBを使い始めるんですが、インストールでいきなり困ってます。

back office っていうのをインストールするかきいてきたんですが、これは、インストールする必要はありますでしょうか?

ちょっと、アホな質問かもしれませんが、さくっと教えて頂けるとありがたいです。
0143デフォルトの名無しさんNGNG
VB6について分からないので質問します。

typeで構造体を宣言した場合、
この構造体のメンバ変数を一度に初期化するのはどうすればいいでしょう?

あと、上の質問に関連してですが、
グローバルな構造体の配列を宣言したいのですが、
これを実現する方法を教えて頂けないでしょうか?

C言語で関数外に

typedef struct{
int i;
char *str
}S_var;

S_var[]={
1,"しょぼーん",
2,"しゃきーん"
}
といった内容をVBで実現する方法です。
よろしくお願いします。
0144デフォルトの名無しさんNGNG
>>143
>この構造体のメンバ変数を一度に初期化するのはどうすればいいでしょう?
初期化するコードを書く。
煽りじゃないよ。これ以外に言いようがない。

構造体じゃなくクラスを使うなら、Initializeに初期化処理を書くという手がある。

>グローバルな構造体の配列を宣言したいのですが、
そのすぐ下に書いていることと全然噛み合ってないけど、答えは出来ない。
0145デフォルトの名無しさんNGNG
>144
お返事ありがとうございます。

言語仕様との事なので、仕方ないですね。
ヒントとして教えていただいた、クラスのInitializeも調べましたが
C++でいう(引数無しの)コンストラクタの様なので
私が探しているのとは、違うようです。

構造体配列初期化関数を作る事で対応したいと思います。
0146デフォルトの名無しさんNGNG
Win32APIの引数にするのでもなければ、
あえてクラスを否定して構造体に固執する理由は何もないと思うけど。。
頻繁にコピーでもするのかな?それでも自分のクローン作るメソッド書くだけで、
それがそんなに面倒とも思えない。
0147デフォルトの名無しさんNGNG
VC++で作ったDLLをVBから呼ぶのに、VBでexeを作った後だと
exeとdllを同じ場所に置いておけば読んでくれるのですが、
VBからDebugしているときは読み込んでくれません。
dllをどこに置くのが正しいのでしょうか。
0148143NGNG
>146
質問の構造体を使う目的が、
画面遷移の画面の情報を渡すという為で
C言語のテクニック(グローバルな構造体配列を定義する)
テーブルを使いたいという物です。

特別、外部プログラムとのやりとりや、コピーするという訳では無いです。

普通は、どの様にして、次画面の情報を画面に渡すのでしょうか?
例となるコード、HP等紹介して頂ければ、幸いです。
0149144=146NGNG
>>148
いや、グローバルな構造体配列を「作ること」は出来るよ。(標準モジュールで宣言するだけ。)

出来ないのは、Cみたいに宣言と同時に初期化すること。
>>143の質問はそういう意図じゃなかったの?だから>>144で
「すぐ下に書いていることと全然噛み合ってない」と書いたんですが。

次画面の情報云々は、それだけじゃ漠然としすぎていて誰も何も言いようが
ないと思いますが。
0150デフォルトの名無しさんNGNG
>149
嫌な日本語
0151デフォルトの名無しさんNGNG
>147に追加で質問なのですが、文字列の配列を引数として
渡したい場合、VC側、VB側、それぞれどんな感じで
記述すればよいのでしょうか。
0152デフォルトの名無しさんNGNG
>151
一応試してダメだったソースです。

[VC側]
LPCTSTR _stdcall TestFunc(LPCTSTR names[], int n)
{
  return names[2];
}

[VB側]
Private Declare Function TestFunc Lib "Hello" _
(ByRef names() As String, ByVal n As Long) As String

Private Sub Command1_Click()
  Dim names(5) As String
  names(0) = "hello"
  names(1) = "world"
  names(2) = "aaaaa"
  names(3) = "bbbbb"
  names(4) = "ccccc"
  MsgBox TestFunc(names, 5)
End Sub

メッセージボックスで aaaaa が出るかなと思ったのですが、
メッセージは空っぽでした。
0153デフォルトの名無しさんNGNG
>152
今試す環境ないけどいけるんじゃない?
0154デフォルトの名無しさんNGNG
>>147
DLLのパス検索順はLoadLibrary()APIの
ヘルプに書いてあるのでいいんでないかな。
オイラはVC++のビルド後の処理でWindowsフォルダにコピーしちまう。
ただこの方法だと一度でもDLLを使用したVBが起動してると
コピーに失敗しちまうから、VBとVCを同時に起動せんように
DLLのデバッグセッションでVB.EXEを起動するようにしてデバッグしてるよ。

文字列配列の受け渡しなんて面倒でやりたくないな。
ちゃんとやるならSafeArray系のAPIを使うんじゃなかったかな。
提示したソースのやり方じゃVB側で困るだろうしね。
0155デフォルトの名無しさんNGNG
>153
VC側をブレークポイントはって覗いてみたのですが、
namesにゴミみたいな値が入っていました。
0156デフォルトの名無しさんNGNG
>154
>文字列配列の受け渡しなんて面倒でやりたくないな。
そうなんですか。数が決まっていない複数の文字列を
渡したいのですが、一般的な方法だとどうやるのでしょうか。
0157デフォルトの名無しさんNGNG
>>155
素人で分からんけど、
ヌル文字で終わらせて見たら?
Char(0)
0158デフォルトの名無しさんNGNG
>>157
どこの終わりですか。
0159157NGNG
わかんないけど、
names(0) = "hello" & char(0)
0160デフォルトの名無しさんNGNG
>>159
・・・ネタはいらないです。
0161デフォルトの名無しさんNGNG
全然?
names(0) = "hello" & Chr(0)
0162155NGNG
VC側で覗いても変化ないの?
char(0)→chr(0)はいいよね。
0163157NGNG
>>162
あ、俺157だった
0164デフォルトの名無しさんNGNG
>>152
想像だけど、たぶん、

(1)文字列の配列ではなく、バイト配列の配列を渡すようにする。ただし、
VBは確か配列の配列はできなかったと思うので、バイト配列をメンバにもつ
構造体の配列にする必要がある。

(2)構造体のメンバのバイト配列には、文字列をStrConvでANSIに変換したものを代入。

(3)TestFunc(names, 5)ではなく、TestFunc(names(0), 5)のように配列の最初の要素を
渡すようにする。

これでいけると思う。ひょっとすると(3)だけでもいけるかも。
0165デフォルトの名無しさんNGNG
どなたか、レジストリを操作できるActiveXをご存知無いですか?
0166デフォルトの名無しさんNGNG
ttp://www.microsoft.com/japan/developer/library/VBCon98/vbconpassingarraystodllprocedure.htm
ここには文字列配列でも同様の方法でできますと書いてあるのですが、
先頭の要素は渡るのですが、2番目以降がわたりませんでした。
0167デフォルトの名無しさんNGNG

[フォーム]
Private Sub Command1_Click()
  Dim lpfn As Long
  lpfn = AddressOf EvtProcess
End Sub

[標準モジュール]
Public Sub EvtProcess()
MsgBox "hello"
End Sub

これでコンパイルエラーになってしまうのはなぜでしょうか。
0168デフォルトの名無しさんNGNG
>>167
>AddressOf 演算子は、API プロシージャの呼び出しの中にだけ記述できます。

とあるからでしょうね
0169デフォルトの名無しさんNGNG
蛇足だけど
>Basic プロシージャの間でも AddressOf 演算子を使ってプロシージャのポインタを渡せますが、
なので
Public Function GetPointer(lngAddressOf As Long) As Long
GetPointer = lngAddressOf
End Function
をモジュールに作って
lpfn = GetPointer(AddressOf EvtProcess)
みたいに書けばエラーは出ない
0170デフォルトの名無しさんNGNG
>>142
BackOfficeとはサーバ類のこと。
詳しくはこちら。 http://e-words.jp/w/BackOffice.html
初めてなら不要なものばかりなのでインストールしなくていいよ。
0171デフォルトの名無しさんNGNG
>168-169
すいません。ちゃんとドキュメントを読んでませんでした。
ありがとうございました。
0172デフォルトの名無しさんNGNG
>169の続きで質問させてください。

[VC側]
void _stdcall TestFunc(void (*func)(int n))
{
  (*func)(3);
}

[VB側・標準モジュール]
Public Sub EvtProcess(ByVal lCode As Long)
  MsgBox lCode
End Sub

Public Function GetAddress(lAddressOf As Long) As Long
  GetAddress = lAddressOf
End Function

[VB側・フォーム]
Private Declare Sub TestFunc Lib "Hello" (ByVal lpfn As Long)

Private Sub Command1_Click()
  Dim lpfn As Long
  lpfn = GetAddress(AddressOf EvtProcess)
  TestFunc lpfn
End Sub
0173デフォルトの名無しさんNGNG
>172

こんな感じでVBからDLLのTestFuncを起動し、DLLからVBのEvtProcess
関数を呼ぼうとしているのですが、一応EvtProcessが呼ばれてメッセージ
ボックスが出るところまでは行ったのですが、OKをクリックした後
The Value of ESP was not properly saved across a function call.
This is usually a result of calling a function declared with
one calling convention with a function pointer declared with
a different calling convention.
というエラーが出ます。見たところfuncの宣言とEvtProcessの宣言が
食い違っているというような内容だと思うのですが、どこが間違っているか
分かる方がおられましたらご教授ください。
0174デフォルトの名無しさんNGNG
>>173
ESPで怒られてるなら、VBのサブルーチンも__stdcallで呼び出さないとまずそうな。
0175デフォルトの名無しさんNGNG
>174
手探りでやっているので質問しまくってすいません。
VC側を


void _stdcall TestFunc(void (* __stdcall func)(int n))
{
  (*func)(3);
}

こんな風に変えるということでしょうか。やってはみたのですが、
warning C4229: 旧形式が使用されています : データの修飾子は無視されます。
という警告が出て、状況は変わりませんでした。
0176デフォルトの名無しさんNGNG
void _stdcall TestFunc(void (__stdcall * func)(int n))
こうじゃないか?
0177デフォルトの名無しさんNGNG
OS win2k
Ver vb6
サービスパック Pro

フォームのWidthを一定値以下にさせないために

Private Sub Form_Resize()

'Minサイズ指定

If Form1.Width < 1000 Then

Form1.Width = 1000

End IF

End Sub
としてるのですが動作が挙動不審です
もっとエレガントな方法があるなら御教授下さいませ
0178デフォルトの名無しさんNGNG
>>177
動作が挙動不審とは最小化した時の動作のことかな?
WindowStateを見るかOn Error Resume Nextをプロシージャの
先頭に書けばいいと思う。
0179デフォルトの名無しさんNGNG
>>177
ttp://www.vbvbvb.com/jp/gtips/0801/gSetWindowLongGwlWndProcWmGetMinMaxInfoPtMinTrackSizePtMaxTrackSize.html
0180デフォルトの名無しさんNGNG
VB6ですが、
フォーム内でのグローバルな静的変数を定義するには
どうすればいいのでしょうか?
formのgeneralの所で
static i as integer
と書いてもプロシージャの外では無効ですというエラーが返ってきます。
0181デフォルトの名無しさんNGNG
>>180
Static変数はプロシージャ内でしか使えません。
つまり、>>180のようなことはできません。
詳しくはMSDNの「Static ステートメント」を参照。
代わりにPrivate変数を使いましょう。
0182デフォルトの名無しさんNGNG
>>180
おいおい、グローバルな静的変数って。。
それは「死なない不死身の人」って言ってるのと同じだよ。

自動変数はスコープの外に出ると死ぬ。
スコープの外に出ても死なないのが静的変数。つまり死なない人。

スコープの外がないのがグローバル変数。つまり不死身の人。
0183デフォルトの名無しさんNGNG
>>180
やるとしたら
Private Function GetInstance() As Object
  Static obj As Object
  If obj Is Nothing Then
   Set obj = New Collection
  End If
  Set GetInstance = obj
End If

みたいなことで代替は出来る。意味があるかはわからんが。
VBのStaticはC/C++のstaticとは機能が違うので、Singletonパターンやりたい場合は、
標準モジュールにグローバル変数定義するしかない。
0184デフォルトの名無しさんNGNG
>182
C++だと
クラスのメンバ変数に対して、静的変数があるからね。
VBでもFormはクラスの1つだから
実現できるのではと思った訳です。
0185デフォルトの名無しさんNGNG
>>184
あなたが言っているのはインスタンス生成しなくても存在する変数のことだよね。

VBでは「静的変数」って言えばStaticで宣言される変数のこと。
>>180の言ってるのはこっちの方だと思うけど。
0186デフォルトの名無しさんNGNG
>176
それもやってみました。コンパイル時の警告は出なく
なったのですが、>173のエラーが出る状況は変わりませんでした。
0187デフォルトの名無しさんNGNG
>>186
あれ?ウチではそれで動いたぞ。
0188デフォルトの名無しさんNGNG
>187
ホントですか?うーん、もう一度やってみます。
0189デフォルトの名無しさんNGNG
>187
ありがとうございます。一歩前進しました。
コールバック関数に整数を渡すことはできたのですが、文字列を
渡すことができません。今書いているコードは

[VC側]
void _stdcall TestFunc(void (__stdcall *func)(const char *szFileName))
{
  (*func)("tmp.txt");
}

[VB側(フォーム)]
Private Declare Sub TestFunc Lib "Hello" (ByVal lEvtProcess As Long)

Private Sub Command1_Click()
  TestFunc (GetAddressOf(AddressOf EvtProcess))
  MsgBox "hello"
End Sub

[VB側(標準モジュール)]
Public Function GetAddressOf(lAddressOf As Long) As Long
  GetAddressOf = lAddressOf
End Function

Public Sub EvtProcess(ByVal szFileName As String)
  MsgBox szFileName
End Sub

これで実行すると、メモリを読めませんでした、という旨のエラーが
発生し、VB自体が終了してしまいました。一応ヘルプ等見ながら自分
なりに正しいと思われるコードになっていると思うのですが、どこか
おかしいところがあればご教授ください。
0190デフォルトの名無しさんNGNG
EvtProcessの引数をLongにしてEvtProcess内でStringに変換したらいいと思う。
0191デフォルトの名無しさんNGNG
>190
Longで受け取ると文字列の先頭のアドレスが渡ってくると
思うのですが、「Stringに変換」というのは具体的には
どういうコードを書けばよいのでしょうか。
何から何まで質問してしまって申し訳ないのですが、もう少し
お願いします。
0192デフォルトの名無しさんNGNG
VB6.0の初心者の者です。VB6.0において、ボタンコントロールでボタンを作ります。作ったボタンをクリック
することによって、別のフォームモジュールや別のexeファイルを非表示にしてから、別のフォームモジュール
や 別のexeファイルを終了させることが出来るようにするためにはどうしたらよろしい
でしょうか。ご教授を誰かお願いします。
0193デフォルトの名無しさんNGNG
>192
分かりにくいよ。AAA.exeとかBBB.exeとかで表現した方が
伝わると思う。
0194デフォルトの名無しさんNGNG
>>191
こうだとどう?
Public Sub EvtProcess(ByRef szFileName() As Byte)
  Dim strFileName = StrConv(szFileName, vbUnicode)
  MsgBox strFileName
End Sub
0195デフォルトの名無しさんNGNG
>>192
ほら、文章意味不明だから誰もレス不能じゃん。
0196デフォルトの名無しさんNGNG
SQL実行して得られたレコードセットって戻り値として返せないんですか?
すごく不便なんだけど。。

SQLを実行して結果を返すだけの標準モジュールを作って
SQL実行する関数を作って、戻り値としてレコードセットを返せれば、
と思ったんですが
0197デフォルトの名無しさんNGNG
普通にできるよ
0198デフォルトの名無しさんNGNG
>>196
どんなコード書いてんだ?
0199196NGNG
すんません。書き方悪かった

public function a() as Recordset

  …  
  a = DoCmd.RunSQL(SQL)

end function

こういうことです。
0200デフォルトの名無しさんNGNG
Set a = DoCmd.RunSQL(SQL)

Set付け忘れて実行時エラー出てるとかそんなオチ?
0201OratorNGNG
>>199
Access VBAですね。
RunSQLメソッドは、Recordsetを返しません。

ADODB.Recordsetなら、
・CurrentProject.Connection.Execute
・Recordset.Open
・Command.Execute
あたりで。

DAO.Reocrdsetなら、
・CodeDB.OpenRecordset
・CurrentDB.OpenRecordset
・(DAO.QueryDef).OpenRecordset
などで取得できるので、そっちを使いましょう。
0202デフォルトの名無しさんNGNG
DoCmd って Recordset 返さないだろ。
DAO なら OpenRecordset とか使わんと。
0203デフォルトの名無しさんNGNG
VC++で作ったDLLからクラスをエクスポートしてVBから
利用するってできますか?

できるとしたら、どんなコードを書けばよいのでしょうか。
0204デフォルトの名無しさんNGNG
>>203
クラス自体をそのままVBでVCと同じように利用することは不可能です。
(継承とかないから)

VCで作成して機能的に完成しているものであって、それを使用するだけであれば、
COMとかActiveXコントロール化することで可能ではあると思います。

ただ、上記の実装があなたが多分求めてるちょこっと利用するには複雑すぎると思います。
(ちょっと気合入れた学習をしないと、きちんとしたものがつくれないです。)
0205デフォルトの名無しさんNGNG
>>203
関数を使いたいって話ではないよね。
オブジェクトつくりたいって話だよね。

>>204
ActiveXで普通にいいんじゃない?そんな複雑ではないでしょう。
0206デフォルトの名無しさんNGNG
VB6.0の質問です。
CommonDialog Controlを使って入力情報をエクセルに保存した後、
自動的にそのエクセルファイルを開いて入力情報を表示させるには
どうしたら良いですか?
0207デフォルトの名無しさんNGNG
>>206
エクセル立ち上がっちゃっていいの?

それとも、エクセルたちあげずに、フォームかなにかで、内容だけ確認できればいいの?
0208デフォルトの名無しさんNGNG
皆さんがメインで使ってるバージョンっていくつですか?
今から6.0で勉強し始めようと思うんですが。
0209デフォルトの名無しさんNGNG
自分は6.0

Netはごちゃごちゃ感がすきになれないと…食わず嫌いをいいつづけて、触ってない。
0210デフォルトの名無しさんNGNG
>>206
つうか、仕様が判りにくい。

VBの画面入力をExcelファイルに保存して、それをExcelで表示(帳票?)でいいのかな?
普通にExcelオブジェクトを起こして操作すればOK。
起こし方はネットに幾らでも転がってる。
Excelでのセルの操作は、やりたいことをマクロ記録させて、そのソースを自分で解析して書けばいける。

Excelを使用せずにExcelファイルの作成は、市販コンポーネントを使えば可能。
あとSYLK形式とかXMLっていう手もある。
ただ、一般的に表示するにはExcelは必要。(細かくはオープンオフィスとかあるけど・・・)

0211デフォルトの名無しさんNGNG
>>208
勉強なら.netにしとけば。
わざわざVB6を覚える必要はなし、使う必要が出たらやればいいだけ。
言語勉強ならば、あたらしめのもの、普遍的なものがいい。
0212デフォルトの名無しさんNGNG
>>210
本人いないのに話てもいみないっちゃ意味ないんだが。

データの種類によっちゃ
リストボックスにもっかいもどして確認なんて用途でもいいかもしれんないから、
一般的に表示する…が、質問した本人のやりたいことによってちゃうかもしんない。

つか、もちっとわかりやすく質問してほしいものだ。
0213206NGNG
返事遅れてすいません。
VBの画面入力をExcelファイルに保存して、それをExcelで表示したいです。
0214206NGNG
CommonDialog ControlでDialogを出してエクセルファイルを収める場所とエクセルファイルの名前を
設定してDialogを閉じた後にそのセーブしたエクセルファイルを自動的に表示したのです。
よろしくお願いします。
0215206NGNG
分からないのはDialogを閉じた後の処理です。
よろしくお願いします。
0216デフォルトの名無しさんNGNG
>>214
だから、210に書いたことはスルーですか?
何かそれに関して試したなら話のしようがあるけれど。

それともソースそのものが欲しいっていう類なら、質問じゃなく、ソースくれって書けば?
0217デフォルトの名無しさんNGNG
>>213-214
じゃぁ、>>210が書いてくれてるので、それで。
0218デフォルトの名無しさんNGNG
>>215
Excelオブジェクトってのは理解してる?それを使えばっていうのが理解できないレベルですか?
それによって回答が全然違うんだけど。

0219デフォルトの名無しさんNGNG
206さん、まずMSDNのCreateObject関数の解説と例を見て、それで判らなければ再度にしてほしい。
そこにもろExcelの起こし方が書いてあるから。
0220206NGNG
調べ方も分からないレベルなんで申し訳ありません。
MSDNでCreateObjectを検索ですね。了解しました。
0221デフォルトの名無しさんNGNG
>>220
うおぉぉぉぉぉぃ。

調べ方もわからないやつは、
>>214みたいなことやろうとしないでくれ、マジで。
というか>>214の前にいくらでも調べなきゃいけないことあったと思うが、
その時々ずーーーーーーと、人に聞いてきたわけだね。

だめだこりゃ。
0222デフォルトの名無しさんNGNG
一応注意書きを。
アプリ−ブック−シート−セル、と階層的になるんだけど、親が死んでも子は死なないから注意を。

Set oBook = oApp.WorkBooks(0) ・・・適当だけど

したとき、oAppをNothingしてもoBookは心中せずに残り、多分お約束のミスとしてExcelプロセスが残るということをやるから。

生成・破棄が対にできるように、関数化などきちんとしていけばOKですけど。
まあ、調べ方も判らないというレベルじゃ、多分失敗しますよ。
0223デフォルトの名無しさんNGNG
206みたいなのが知り合いにいる。。。orz
0224盗る猫 ◆SCRKIYBNrs NGNG
0225デフォルトの名無しさんNGNG
フレームというとオプションボタンを入れるフレームしか思いつかないんですが
最近、そうではないプログラムのメインとなるような? フレームがあるそうですが
どんなんですか?
また、良いサイトがあったら教えてください。お願いします。
0226デフォルトの名無しさんNGNG
フレームワーク
0227デフォルトの名無しさんNGNG
便乗でもうしわけないが、

スケールモードをすべてピクセルでやりたいのだが、
コンテナになれるがスケールモードプロパティをもたないオブジェクト(つまりフレーム)の中では、
twipから変更ができません。
これは仕様でしょうがないことなんでしょうか?
0228デフォルトの名無しさんNGNG
そうだ
0229デフォルトの名無しさんNGNG
そうか。。残念だ。。
では、自前で座標変換functionかましていたのは正解なのか。

ありがとう。
0230デフォルトの名無しさんNGNG
ていうか、なんでそんな面倒なことわざわざするのかな。
システムのdpi変えても頑なにデザイン変えない意地の悪いプログラムが書きたいとか(w
0231デフォルトの名無しさんNGNG
>分からないのはDialogを閉じた後の処理です。
って書いてあるんだからファイルの書き出しじゃなくて
Excel の実行の仕方が分からないんだろうと
0232デフォルトの名無しさんNGNG
>>230
それすごいなwでも無駄だなw

単純にマウス直下のコントロールを取得する関数書きたかっただけですよ。
イベントドリブンから逆行する操作だけどね。
0233デフォルトの名無しさんNGNG
>>231
だからCreateObjectの項を紹介したじゃん。
あそこにそのままが書いてあるんですよ。

MSDNの検索でExcelを検索すれば、VBリファレンス内では10個程度ひっかかる。
その中にあるんだから、最初の彼の調べ不足。
0234デフォルトの名無しさんNGNG
間違えてAPIスレに誤爆してしました。
質問させてください。
Susieのプラグインで

HLOCAL *pHBm : ビットマップデータ本体のメモリハンドルが返される

とあるんですが、メモリの内容を見るにはどうすればいいですか?
0235●NGNG
ちょっと待って
0236デフォルトの名無しさんNGNG
お疲れ様です お願いします

 チェックボックスにプログラムからチェックを入れるにはどうしたらいいでしょうか?
0237デフォルトの名無しさんNGNG
>>236
Value
0238デフォルトの名無しさんNGNG
すいません、こういわれたんですけど、ポインタの中身を読むにはどうすればいいんですか?

685 デフォルトの名無しさん sage New! 04/11/16 21:02:05
>>678
戻り値がメモリへのポインタなんだから、それを取得して好きに読めばよい。
取得したポインタの中身を読む方法が分からないんだとしたら、スレ違い。
0239デフォルトの名無しさんNGNG
オレ様の第六感が、お前を相手にしてはいけないと警告している
0240デフォルトの名無しさんNGNG
>>238
CopyMemory APIでVBの変数へコピーする。
0241デフォルトの名無しさんNGNG
>>240
そう言われてわかる人なら最初から聞いてないと思う。

>>238みたいな人はなんか勘違いしてると思うんだよな。
掲示板で人に聞けることなんて、所詮小手先のことだろう。
根本からわかってない奴に手取り足取り一から教えてくれるお人よしはいない。
あるいはプログラミングなめてるのか。
0242デフォルトの名無しさんNGNG
>>238
VBから入って、VBのみなら、ポインタってなんだかわからんのではないかい?
C言語の入門書(入門HP)見てきてごらん。たぶんわかるとおもうよ。
それで分からなかったらあきらめたほうがいい。
たぶん、おまいさんがやろうとしてることは、今のおまいさんの実力にみあってないんだよ。
0243デフォルトの名無しさんNGNG
お願いします

VBでDBの中にテーブルがあるかを確認するにはどんな方法がありますか?
0244デフォルトの名無しさんNGNG
接続先のDBと、接続につかう方式は、何を予定してるのか教えれ。
0245デフォルトの名無しさんNGNG
>>244さん
 早速ありがとう、ございます
DBはAccessです 接続に使う方式?って感じの初心者ですみません。
0246デフォルトの名無しさんNGNG
普通に起動して、普通にでてくる、左のツールボックスから、
DATAコンポネートつかって、DataBaseNameプロパティ指定してつかってるのん?
0247デフォルトの名無しさんNGNG
>>246さん
 またまた、無知なモノにありがとうございます
 テキストでフィールドの値をSQL文でとるように書いていますが?って
感じですが?
0248デフォルトの名無しさんNGNG
およ?
SQL文渡して書いてるなら、SQL文で一覧の取得を書いたらいいのでは?
SQLの書き方については、んー、範囲外誰かにパス。
0249247NGNG
>>248
 とりあえず、レスありがとうございました!
がんばってみます
0250デフォルトの名無しさんNGNG
VB6対応のMSDNライブラリの最新版って、いつのですか?
0251デフォルトの名無しさんNGNG
あれー?もしかして Common Control 5.0 のリストビューって
チェックボックス付けられない?あとグリッド線とか1行選択
とかもできないのかな。
0252デフォルトの名無しさんNGNG
>251
プロパティでは変えられないみたいだけど、なんか
方法ないのかな。
0253デフォルトの名無しさんNGNG
>>251-252
LVS_EX_GRIDLINESとかLVS_EX_FULLROWSELECTとかを
SendMessageで投げたらできたよ。
0254デフォルトの名無しさんNGNG
>253
ありがとうございます。ちなみにチェックボックスもいけますか?
0255デフォルトの名無しさんNGNG
VBでコマンドボタンを押すと
あらかじめ作ってあるエクセルのあるシートの
印刷プレビュー画面を出す事ができるそうなのですが
具体的にどうやるのでしょうか?
0256デフォルトの名無しさんNGNG
>>255
過去ログ。>>206くらいから読んでみし。
0257デフォルトの名無しさんNGNG
ググったほうがよっぽど速いと思うが
0258デフォルトの名無しさんNGNG
ググるにしても、キーワードがわからんでしょう。
…まあ、そのくらいわかれって気もするけど。
0259デフォルトの名無しさんNGNG
>>258
「vb excel プレビュー」
これだけあれば十分
0260デフォルトの名無しさんNGNG
>>258
まあそれも勉強だと思うけど。
言語的な知識は、特定言語に依存しない一般論を知っていれば十分だと思う。
(基本はCなりをやっぱり軽く覚えて、それプラス今風の言語)

個別技術に関しては、今の開発に必要なものなんて全部覚えられっこないよな。
だから、まずグーグル様の活用方法と、あてになるフォーラムなりリンク集を確保することが、技術者に求められる姿勢。

なもんで、質問する前にまず>>1は最低でも読むと。
グーグル様にお尋ねするキーワードは試行錯誤で覚えるしかないよな。
Excel VB なんて入れたら論外なのは馬鹿でもわかるだろうから、何を足すかは自分で試せと。
0261デフォルトの名無しさんNGNG
>>260
Excel VBは誰でも一回は通る道だな(笑
VBAまみれになりまする。
0262デフォルトの名無しさんNGNG
VB6.0(SP6)使ってます。MSCommを使って、ポート通信するプログラムを作っているのですが、
接続するハードが、送信のみしか対応しておらず、受信要求を受け取ってくれません。
そこで、データが送信されるまで、アイドリングしたいのですが、時間でWaitをしてると、あんまり上手く
動きません。なので、1.通信ポート開ける。2.通信データが送信されるまで待つ。3.ポート閉じる。
の2番をどうコーディングすれば良いのか、教えて下さい。MSCommのプロパティにも良さそうなのが、見当たらないので・・・
0263デフォルトの名無しさんNGNG
受け取るデータの、型とか、サイズとかいつも一定か、規則性があるんかい?
0264デフォルトの名無しさんNGNG
>>262
OnCommイベントでさばく。
1バイト受信して溜めていけばいい。
0265デフォルトの名無しさんNGNG
>>263 あります。毎回50バイト長のデータが送られてきます。

>>264 1バイトずつ受信して、それを50回繰り返すと言う事でつか?(毎回50バイト長なので)
0266デフォルトの名無しさんNGNG
>>265
それなら50バイトいっぺんによめばいいだけ。
データ受信したイベント内で、バッファに溜まっているバイト数を数えればいい。
ただ、通信異常などでのズレを考慮するなら、終端文字(があれば)まで1バイト読みのほうが安全だとは思うが。
(ずれたときに50バイト溜まらない可能性と、ずれっぱなしの可能性が出てくる。)
0267デフォルトの名無しさんNGNG
多角形を描画したいのですが、思った通りの座標に配置できなくて困っています。

Public Type POINTAPI
X As Long
Y As Long
End Type

Public Declare Function Polygon Lib "gdi32" (ByVal hDC As Long, lpPoints As POINTAPI, ByVal nCount As Long) As Long

Public numPoints As Long
Public XY(10) As POINTAPI

上記のようにして、座標を指定して、フォーム上に表示しようとしても異なった位置に
配置されてしまいます。

座標の単位?が違うと思うのですが、どうにもうまくいかず困っています。
アドバイスお願いします。
0268デフォルトの名無しさんNGNG
>>267
hDCは正しく設定してる?
0269デフォルトの名無しさんNGNG
>>267
twipとかピクセルをMSDNなどで調べて学習。

VBのフォームのモードが何になってるかとか、APIが何を求めてるかとか、変換はきちんと知っておいたほうがいい。
0270デフォルトの名無しさんNGNG
>>268 >>269
アドバイスありがとうございます。
そのあたり詳しく調べてみます。
0271デフォルトの名無しさんNGNG
>>265
まあ、単純に時間でくるくるまわして、毎回50バイトたまってるかどうか調べてもいいきがするけどねん。
たまってないなら、まだ受信完了してないってことだと思うし。
0272デフォルトの名無しさんNGNG
>>271 補足。

ただ、どっちにしろ「タイムアウト」の処理加えとかないと、
よきせぬトラブルがあって、50バイト以下のデータが送られたりした時、
あるいは、コネクションは持続したまま、データ転送のみとぎれた時に、フリーズしまっせ。
いつまでも待ち続けるプログラムちゃん。けなげです。
0273デフォルトの名無しさんNGNG
スレ違いかもしれんが教えください。

ttp://www.geocities.jp/activex_treeview/

↑OS2000 Vbはインストールされていない端末で
ActiveXを使ったツリービューが見れないだよね。
xp や NTでは見ることが出来たんだが・・・?

どの端末もVbが入っていれば見れます。
Vbなしで見る方法ありますか?
Vbランタイムでは×

ASPスレにも書き込むけど、だれか教えて。何が必要なんだ〜??
0274デフォルトの名無しさんNGNG
凄まじく初心者な質問だと思いますが
テキストボックスにある変数を常に最新に表示するということはできないのでしょうか?

たとえばx1+x2+x3の結果をtextbox4に表示したいときは
どうすればいいのでしょうか
x1、x2、x3の値が変わるアクション全てにtextbox4=x1+x2+x3の一文を加えなければならないのでしょうか?
0275デフォルトの名無しさんNGNG
>>274
イベントドリブンなプログラムの作法にしたがうなら、そう。
全部に書くのが筋かと。

あるいは、Timerか、Do-Loopでまわすかなんかで、時々再計算してあげるって手法で、
見た目十分に常にという最新という状態にできるかと。

どっちをとるかは場合による。
私は、後記の方法が好き。あんまよくないとおもうけどねぇぃ。
0276デフォルトの名無しさんNGNG
計算自体をクラス化。
コンストラクタで表示先のTextBoxの参照を持っておく。
あとは計算とかあるたびにそれを表示するだけで、ある程度は汎用化できると思うが。
値をクラスのプロパティにしてしまえば、値の代入を捕らえられるから一発だと思うけど。

(クラスにしなくても、一連の関数とグローバル変数でもできるけど、おしゃれじゃない)
0277デフォルトの名無しさんNGNG
ああ、x1,x2,x3は、テキストボックスじゃなくてもいいのか。
なら、クラスでもいいかも。
0278deNGNG
電卓を作っているのですが、桁数を設定するにはどうしたらいいですか?
無限に入力できてしまい見えなくなってしまうのですが・・・。
0279デフォルトの名無しさんNGNG
onchangeかなんかで、入力監視してなんとかしる。
0280デフォルトの名無しさんNGNG
ごめん違うことばと混じった。
changeイベントでした、onchangeってなんだよ。
0281デフォルトの名無しさんNGNG
276だけど、VBのクラスってコンストラクタは引数とれなかったかも(Cいげた勉強中なもんで・・・)
だとしたら初期化専用メンバー関数つくって、そこでTextBoxの参照を渡す。
あとはプロパティーのセットで各変数格納時に計算関数(内部メンバー関数)を呼んで、そこで計算して、
結果をTextBox(の参照)に渡してあげれば。

>>278
単純には、TextBoxのMaxLengthプロパティあたり。
細かくやるなら、ChangeイベントでStaticなりグローバルで入力を確保してLenチェック。
0282デフォルトの名無しさんNGNG
アクセサリに入ってる電卓で二進数の計算をするとき
小数の計算が出来ないのですがどうしてでしょう?
0283デフォルトの名無しさんNGNG
>>282
その前に言ってることのおかしさに気づけ。

さておき、どうしてもそのようなことがしたいなら、桁キャストして整数(?)にしてから計算すればいいじゃんぬ。
0284deNGNG
281>>
すみません、TextBoxが見つからないのですが・・・。
0285デフォルトの名無しさんNGNG
>>284
オォォォィィィィッッッ
0286デフォルトの名無しさんNGNG
Toolbarコントロールについてお聞きします。

私のソフトではToolbarに登録できるようにしたい機能が最大70種類ほどありまして、
それぞれの機能に相当するアイコンをデザインする余裕がありません。
そこでアイコンなしでキャプション文字だけをToolbarに表示したいのですが、
アイコンのImageListの項目を<なし>に設定すると、
アイコンの部分(16x16?)が空白となって表示されてしまいます。
この空白を消すためにToolbar自体の高さを設定しても反映されません。
文字だけのToolbarというのはどうやったらできるのでしょうか?

最悪、テキストを画像化したアイコンを作成することも考えていますが、
いい方法があれば教えていただけないでしょうか?
0287デフォルトの名無しさんNGNG
>>286
そういうのは質問の前に手動かしたほうが早いよ。
ぶっちゃけ無理だと思うし。
0288デフォルトの名無しさんNGNG
どうしてもツールバーのボタンじゃなきゃだめってのでなければ、
ツールバーの中にコマンドボタンやオプションボタンを配置するって手もあると思うけどどうかな。
0289286NGNG
コメントありがとうございます。

>>287
無理なんですか。割と需要はあると思うんですけど。。
アイコン作るのはセンスと時間が要りますから。

>>288
コマンドボタンをツールバーに入れることができるんですか!
それができれば十分です。その方向でトライしてみます。
0290デフォルトの名無しさんNGNG
教えてください。現在、Win2000+VB6(SP6)で開発中ですが・・・、

VB6のコードで『ディレクトリ+ファイル』のパス名を設定する際、
完成したアプリが98,Meで使用される場合を考慮し
関数で得たディレクトリ名の最後尾に"\"が存在するかどうか、その都度チェックしながら
先頭に"\"の無いファイル名を設定しなければならないのですか?

最もスマートな手段を教えて頂きたいです。
よろしくお願いします。
0291290NGNG
すいません追加です。

>関数で得たディレクトリ名の最後尾に"\"が存在するかどうか
なければ最後尾に"\"をつけて
>先頭に"\"の無いファイル名を設定しなければならないのですか?
0292デフォルトの名無しさんNGNG
>>290
9Xだと最後尾の\があるとなんか問題あるっけ?
それはともかくPathRemoveBackslash APIなんかどうだ。
0293290NGNG
私は9xの環境下で開発したことがないので分かりませんが
9x系は"\"付き、NT系は"\"付かないらしいです。

なので最後尾の"\"がダブっても問題がないのか悩んでおりまして・・・。
0294デフォルトの名無しさんNGNG
>>290
それってApp.Pathなんかで取得したパスが、たまたまドライブのルートだと
  C:\

みたいに最後に"\"が付くって話と混同してない?
OSの種類と関係ないと思うが。。
0295デフォルトの名無しさんNGNG
自然数同士の除算を減算の繰り返しで計算するプログラムのコードだれかわかりますか?
余りも考慮して。
0296デフォルトの名無しさんNGNG
>>295
http://pc5.2ch.net/test/read.cgi/tech/1100530682/188
0297デフォルトの名無しさんNGNG
>254
すいません。自分で試したらうまくいきました。
チェック状態を取得するにはまた別のメッセージを
投げないとダメなんですね。
0298デフォルトの名無しさんNGNG
>>255
これに似ているのですが
VBからEXCVELのプレビュー画面出そうとすると
「コンポーネントが使用できません」ってエラーがでます。
何がわるいのでしょうか?

WINDOWSXP-SP2
OFFICE2003pro
VB6.0SP6
0299デフォルトの名無しさんNGNG
EXCVEL
0300デフォルトの名無しさんNGNG
>>298
プレビューの前にエクセルのVisibleをTrueにすれ
0301デフォルトの名無しさんNGNG
>>298
おまえはサポセンに電話する素人か?
それとも細木数子に相談しに行く阿呆か?
それで何がわかるんだよ。

プログラマならば、せめてもう少し状況をきちんと説明しろ。
ExcelをCreateなりGetなりでObjectとして生成できているのか?
その上でPreviewを行うコマンドだけが駄目なのか?
0302デフォルトの名無しさんNGNG
ここがサポセンだと思ってる奴は結構いる
0303デフォルトの名無しさんNGNG
いっぱいいるな。
0304デフォルトの名無しさんNGNG
まあ、そういうやつは、>>301のような洗礼を受けるのが常なので、
ダメプログラマーにならないように、もっとイッテヤレ>>301

誰しも一回は、けちょんけちょんにされて恐れおののいて学習していきますの。
現場を目撃してあういう風になっちゃいけないなとわかる人もいますが。

あたしゃは前者。ちょー初心者の時に
「初心者なんですが〜」から始まって「うごかないんです」「どうでしょう?」という
最悪な質問しましたよ、ええはい。
0305デフォルトの名無しさんNGNG
>>304
まあ、PC○Nに逝って鍛えてもらうのが一番かと。
そういう人に限って、タイトル入力有りの場合の掲示板で。

Title:助けてください。
VB初めて数日の初心者です。
・・・・
よろしくお願いします。

って書くんだよね。

でP○DNだと、皆様から教育的指導が飛ぶと。


0306デフォルトの名無しさんNGNG
>>305
あっこはマジで洗礼ですな。
手厚い教育がほどこされて、半年もすれば、教える側になれますな。
0307デフォルトの名無しさんNGNG
俺が始めた頃はネットといえば草の根BBSの時代だったけど、
こればっかりは昔から構図がかわらんよな。
言われた方は「さっさと答えだけ教えろ」って思うんだろうけど
言う側になると「ふざけてんのか?」って思うもん。

状況/問題点/要望を「他人に」わかるように説明するっていうことが
どれだけ大事なのかってことに早く気が付いてほしいな。

なんかえらそうでスマソ。
0308デフォルトの名無しさんNGNG
>>307
えらそうかどうかはさておき…

でも、(※1)そこは質問する時だけじゃなくて、プログラマーとして最低限必要なことだよな。
一般的にも重要だとおもうけど。

一人でつくって、コメントをつけないですむプログラムならいざしらず、
チームでつくりはじめたら、そのあたり正確に人に伝えられない人はやってけないもんな。

---------------------------
状況/問題点/要望を「他人に」わかるように説明するっていうことが  ←※1「ソコ」


以下余談

しかし、めぐまれてますな、今からプログラム始める人は。(よいことだと思います)
インターネットない時代は、コミュニティーに紹介で所属するか、
近くに詳しい人がいるか、あとは、本にのってる内容をスクラップしたりetcetc
今日ぶちあたった壁に今日質問できることはまれ、ましてや今日回答をいただけるなんて奇跡に近かったもんな。
0309307NGNG
>>308
そうなんだよな。
プログラミングだとかプログラマーって狭い範囲のことじゃなくて
「他人」というものを意識できるようになって
初めて自分の行動の幼稚さや浅はかさってものに気づいて恥ずかしくなったよ。

なんかホント今日は朝から飲み屋の終わりみたいな雰囲気になってるな・・
0310デフォルトの名無しさんNGNG
まあ2chの匿名性により、質問に対して敷居が低いことは良いことでもあり、悪いことでもあり。
普通に会社とかで質問するときに、前もってまとめるべきことはまとめて欲しいよね。

何を試行して、どのような結果が出ている。それは最低でも必要。

あと、何がわからないか、自分で判らない状態で書き込むのは如何なものかと。w
それこそ細木先生に相談して改名なりしてもらってきたほうが。
0311デフォルトの名無しさんNGNG
VB6を使って,dallasのeepromにデータを送受信したいのですが、どうやればいいのでしょうか?
0312デフォルトの名無しさんNGNG
>>311
範囲でかすぎ。
とりあえず、googleで同じことやってる人がいないかどうか調べてこい。
これをやってるんですが、この部分でつまってます。
これが分かれば先にすすめるのですが、どなたか情報ないでしょうか?
この形でやりなおせ。
0313デフォルトの名無しさんNGNG
つか、よく、310までの流れの直後にそういう質問できるな・・。
0314デフォルトの名無しさんNGNG
メール欄にageなんて書いてネタであることをどこかにほのめかさずにはいられない
>>310ってかわいい奴だなw

いやこれ肯定的に言ってるのよ。
こういうのをベタにやってなにか小さな勝利感みたいなのに浸る奴は
むしろ精神病んでると思う。
0315デフォルトの名無しさんNGNG
>>314
311だよな、310が精神的に病んでると言われてしまうと少し傷ついてしまう・・・鬱だ。
0316デフォルトの名無しさんNGNG
dallasのeepromの送受信の媒体はなんだろう。。。。
0317困ったくんNGNG
>>295
ひょっとして、あなたは北●大の学生?
もれもそうなんだけど・・・
0318デフォルトの名無しさんNGNG
教えてください
VBに三項演算子
またはその代わりになるものってないでしょうか?
0319デフォルトの名無しさんNGNG
>>318
IIF
0320デフォルトの名無しさんNGNG
ワロタ
0321318NGNG
>>319
サンクスコ!
0322デフォルトの名無しさんNGNG
教えてください
VBに細木数子
またはその代わりになるものってないでしょうか?
0323デフォルトの名無しさんNGNG
>>322
何だそれは
それが面白いつもりか?氏ねよ
0324デフォルトの名無しさんNGNG
>>322
0325デフォルトの名無しさんNGNG
細木数子キボンってんだから氏ねじゃなくて地獄に落とすって返さないと
0326デフォルトの名無しさんNGNG
>>325

HELL:
  GoTo HELL

こうか?w
0327デフォルトの名無しさんNGNG
>301
答えられない質問に反応するお前がおかしい。
0328デフォルトの名無しさんNGNG
>302
いや、お前らのレベルじゃそんな使い方はできないから
安心しろ。
0329デフォルトの名無しさんNGNG
>312
このスレ一番のアホはこいつだな。存在不要人間。
0330デフォルトの名無しさんNGNG
最近VB.NETのスレでは>>327みたいな奴ばかりで苦笑する。
0331デフォルトの名無しさんNGNG
>330
でもお前も苦笑の意味を調べた方がいいぞ。
0332デフォルトの名無しさんNGNG
>>331
そのこころは?
>>330の用法が間違っている、と?
0333デフォルトの名無しさんNGNG
>332
どう見ても。それも訂正しようがないほど間違っている。
ただ、こんな書き込みをしてしまっているお前の立場からは
一生かかっても理解不能かもしれない。しばらく
国語辞典とにらめっこしてごらん。
0334デフォルトの名無しさんNGNG
>>333
言語感覚腐ってるのは君のほうだと思うがね。
ま、こういうのはわからない奴は何をいってもわからないだろうけど。
0335デフォルトの名無しさんNGNG
>>333
>>331の質問に答えられないんじゃんw
0336デフォルトの名無しさんNGNG
( ・∀・) ニヤニヤ
0337デフォルトの名無しさんNGNG
>335
な
0338デフォルトの名無しさんNGNG
答えだけくれ厨だろ。
多分デスマなんだが無能で出番がなくて、徹夜でいるだけの奴なんだよ。
0339デフォルトの名無しさんNGNG
textboxにフォーカスを移した時、カーソルが点滅しない(非表示)にすることは
可能でしょうか?textboxの上にLabelを重ねて、textboxのchangeプロシージャ
で随時labelのcaptionに上書きしようと考えたのですが、別でもっとシンプル
なやり方があるかと思い教えてください
0340デフォルトの名無しさんNGNG
>>339
それって、入力できないコントロールにしてると思うが、
フォーカスを移動する意味があるのか?
0341340NGNG
340 訂正 よく考えたら入力はできるんでしたね スマン
0342デフォルトの名無しさんNGNG
>>340
違います、やりたい事の説明ができていませんでした。
やりたい事はtextboxにフォーカスが来てる状態で点滅をなくしたいというこ
とです。点滅が無い状態のtextboxに文字を入力したいと思っています。
0343デフォルトの名無しさんNGNG
>>342
無理にテキストボックスのキャレットを消そうなんて考えるより(やってやれないことはないと思うが)
表示にはラベルを使ってフォームのKeyPressイベントあたりでCaptionプロパティいじるほうが
簡単じゃないだろうか。
0344デフォルトの名無しさんNGNG
>>342
糞UIだな( ´,_ゝ`)プッ
0345デフォルトの名無しさんNGNG
ラベルってフォーカス取れないんじゃないの?
0346デフォルトの名無しさんNGNG
フォーカスが取れるかどうかなんてのは重要ではないでしょ。
(必要なら)例えば背景色を変えるとかして入力がアクティブになっているように
ユーザーに見せかけることは可能なのだから、それで必要十分だと思うが。
0347デフォルトの名無しさんNGNG
そもそもなぜカーソルを非表示にしたいという話になったのだろう。
それが問題だ。
0348デフォルトの名無しさんNGNG
>>347
頭が固いなあ。
敢えてGUIというかOSのコントロールっぽい雰囲気を殺したい場合だって
想像に難くないと思うけど。

ビジュアルにこだわりたいアプリってのがわからないかな。
別にビジュアルに特段こだわりなくても、Win標準の電卓みたいなUIだって
考えられる。
0349デフォルトの名無しさんNGNG
>>348
そうかなぁ。
VBなんだから凝ったUIってのは二の次に考えてもいいんじゃない?

確かにVBでやるって所に意義を求めるもアリだと思うけど
それなら中途半端はクソUIになりがちだから
「用意されているコントロールの使用」ってのは捨てるべきじゃない?
そういう意味でカーソル非表示の目的を聞いてもいいような気がするけど、
おいらも頭固いのかなぁ。(ちなみに347じゃないよ)
0350デフォルトの名無しさんNGNG
>>350
アタマワルイネー
0351デフォルトの名無しさんNGNG
だな
0352デフォルトの名無しさんNGNG
>350
おお、自分で頭の悪さに気付いてるのか。えらいぞ、お前。
0353デフォルトの名無しさんNGNG
>348
別にUIとしておかしいなんて一言も言ってないぞ。
その状況次第ではもっといい方法が出るかもしれないし、って事。
たとえばゲームを作りたいってシーンでそういうのが出たなら、ふつう
TextBoxなんか使わず別の方法取るでそ。
0354デフォルトの名無しさんNGNG
ですね。
TextBoxは所詮TextBoxだから、そこから逸脱する仕様を実現するなら、
自分でもどきを作るしかない。

で、VBは正直そういうことには向かない、コントロールを派生できないから。
VCとか.netとか、デルファイとかなら今のTextBoxをベースに派生できる。

あと、確か点滅をなくすことはAPIで可能なはずです。
ただ、仕事場じゃないんで調べようがない。
0355デフォルトの名無しさんNGNG
ActiveXだったら派生できるんじゃないの?
InputManみたいに。
0356デフォルトの名無しさんNGNG
windows2000 VB4.0

テキストボックスに例えば「5」と入力した後ボタンを押すと
入力した5個分テキストボックスを作るようにしたいのですが
その場合初めから非表示で用意してあるのを非表示を解除して表示するしかないのでしょうか?
出来れば入力した個数分をその場で作りたいんです。
それが出来るのかどうかも分かりません。
0357デフォルトの名無しさんNGNG
>>356
1個をコントロール配列にしておいて、Load。
0358デフォルトの名無しさんNGNG
>>357
ありがとうございます
今からやってみます
0359デフォルトの名無しさんNGNG
キャレットを消すならHideCaretでそ?
0360デフォルトの名無しさんNGNG
>359
ん?これはどれへの回答?
0361デフォルトの名無しさんNGNG
>>360
TextBoxのカーソルの話でしょ?
0362デフォルトの名無しさんNGNG
入力した文字列と同じ名前のPublic変数の値を拾いたいのですが
どう処理すれば良いのか分かりませぬ。助けて、ママン。

Public msg As String
Private Sub Form_Load()
msg = "やらないか?"
End Sub
Private Sub Command1_Click()
MsgBox Text1.Text
End Sub

こんなんでは勿論ダメでした。力技で

If Text1.Text = "msg" Then
MsgBox msg
elseif Text1.Te....(略)

延々とこんな処理書くのも何か変だと思うです。
何かしら素敵な解決策は無いでしょうか。
0363デフォルトの名無しさんNGNG
>362
ハッシュにすれば?
0364デフォルトの名無しさんNGNG
BitmapファイルをPictureBox等を使わずに、直接扱うにはどうしたら良いんですか?
0365デフォルトの名無しさんNGNG
>>364
やりたい事を具体的に説明しましょう
0366デフォルトの名無しさんNGNG
例えば、Bitmapファイルを読み込んで、その画像の中から●の位置を検出したいとします。
ただ、この画像全体は大きいので、Formには入りきらないのです。
一方、縮小表示では、●が小さくなりすぎます。
こういった処理の場合、どのようにするものなのでしょうか?
0367デフォルトの名無しさんNGNG
>>366
BMPファイルのフォーマットはご存知か?
自力でOPENして画像情報を処理するもよし、非表示にしたPictureBoxを使うもよし、
方法は色々だが、Formに入らないという理由で検出ができないと言うのは理解できない
●とはどんな物で大きさや検出方法はどうやりたいのかyふじこlp
俺は寝るからあとは誰か頼む。
0368デフォルトの名無しさんNGNG
>367
逃げやがった
0369デフォルトの名無しさんNGNG
>>368
いや、十分だろ。
つか、むしろ逃げたのは、>>366のような。
0370デフォルトの名無しさんNGNG
>369
え?
0371デフォルトの名無しさんNGNG
>362
名前でアクセスする事の是非はともかくとして、お手軽にやりたいなら
Collectionを使うのがよいかと。
0372デフォルトの名無しさんNGNG
0373デフォルトの名無しさんNGNG
VB6.0の質問です。
dlgSaveFile.ShowOpenで既存のエクセルファイルを開きたいのですが、
ダイアログでファイルを指定して開くボタンを押すとダイアログが閉じて
その後何も起きません。何が原因でしょう?
0374デフォルトの名無しさんNGNG
>373
これはネタか?
0375デフォルトの名無しさんNGNG
>373
dlgSaveFileってのは何の変数かぐらい書けよ。
0376デフォルトの名無しさんNGNG
>373
そのダイアログは選択したファイルのファイル名を取得できるだけで
開く機能はないの。

仮に開く機能が付いちゃってたとしたら、開く以外に使えなく
なっちゃうだろうが。ちょっとは頭動かせよ。
0377デフォルトの名無しさんNGNG
>>375
CommonDialogControlの変数です。
0378デフォルトの名無しさんNGNG
>>376
名を取得したファイルを開く方法を教えていただけたら幸いです。
0379デフォルトの名無しさんNGNG
>>378
Shell ShellExecute ShellExecuteEx
0380デフォルトの名無しさんNGNG
VB6を入手したいんだけどどうしたらいいのかな?
納品用なのでオクとか無しで…
0381デフォルトの名無しさんNGNG
>>380
普通にMSのサイトいけばいんじゃないかと。

それか、たとえば、自分の会社にコンピューター納品してる業者はいないのかい?
そっちに相談するのも手ですよ。
0382デフォルトの名無しさんNGNG
>380
納品用の物を2ちゃんで相談か。
お客さんもかわいそうになぁ
0383デフォルトの名無しさんNGNG
すげーな。ほんと、すげーな。
0384デフォルトの名無しさんNGNG
MSからライセンスだけ買うとかって聞いたことがあるけどな
0385デフォルトの名無しさんNGNG
メディアがあって、ライセンスの追加の場合は、上位を購入でOKなはず。
(現状では特にオフィス97とかでよくある)

メディアの入手は正直難しいかもね。大手メーカーの営業とかに知り合いいればなんとかなりそうだけど。
0386デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/purchaseguide/msdnpurchase/
これに入ってないの?
0387デフォルトの名無しさんNGNG
出入りの営業に聞きゃ一発だな。
自分とこでも、ソフト買ってんだろ。客の立場で同じことやってもらってるだけだよ。
0388380NGNG
みなさんいろいろありがとー
ちっちゃな会社なんでMSDN入ってないのよね

まずは出入りの営業さんに聞いてみます
0389デフォルトの名無しさんNGNG
>388
なんて会社?
0390デフォルトの名無しさんNGNG
MSDN入ってないってなんだろ。。
0391デフォルトの名無しさんNGNG
>390
それは分かってやれよ。てか、お前は勝手にコピーして
インストールしてる口か?
0392デフォルトの名無しさんNGNG
>>391はヘルプのMSDNと、開発サポート契約としてのMSDNを混同していないか?
0393デフォルトの名無しさんNGNG
>392
そういうわけじゃないんだけど、普段からソフトを手軽に
コピーしちゃってるから、そういうの疎くなっちゃってんじゃないの?
って感じで。
0394デフォルトの名無しさんNGNG
>>393
意味がわからない。説明してくれないか?
0395デフォルトの名無しさんNGNG
別にMSDN未加入=違法コピーじゃないだろうが。
MS系の開発が主体なら必須に近いしコストパフォーマンスいいけど、
それ以外の業務とかと半々なら、別に入らないでも個別にコンパイラ買えばいいし。
そもそも入って得られる情報っていっても・・・。
0396デフォルトの名無しさんNGNG
>394
ごめん。俺の書き込みに関しては俺も意味が分からなくなってきた。
言いたいことはあったのだが、書いていることは言いたいこととは
全然違ってしまった。
0397デフォルトの名無しさんNGNG
ああ、そういうことか。なっとく、失礼した。(MSDN)
0398デフォルトの名無しさんNGNG
>396
うけるなw まーそういうこともあるか。
0399デフォルトの名無しさんNGNG
なんだったんだ
0400デフォルトの名無しさんNGNG
きっと >>396 が日常的に(ry
0401デフォルトの名無しさんNGNG
(ryって何?
0402デフォルトの名無しさんNGNG
real yard
0403デフォルトの名無しさんNGNG
>402
ウソついてんじゃねーよ、このタゴ作が!
0404402NGNG
なんで俺の名前を知ってるんだよ。おまえはスパーハカーか?
0405デフォルトの名無しさんNGNG
>404
not found
0406デフォルトの名無しさんNGNG
VB6
Win XP

で開発しています
コモンダイアログでEXCELファイルを選択させるのですが
このEXCELファイルにあるすべてのシート名を取得したいと考えています
どのようにすればよいでしょうか?
0407デフォルトの名無しさんNGNG
>>406
えーと、このスレ内で何度も同じようなネタが上がってるので釣りでしょうか?
まず、ファイル名の取得とか、それを元にExcelでファイルを開けていることを前提とします。

その状態でWorkBookオブジェクトからWorkSheetsコレクションを舐めて、それぞれのWorkSheetのNameをみればいいだけ。

前提部分の技術はこのスレにあるからそれを参照。
0408デフォルトの名無しさんNGNG
オプションボタン・チェックボックスをプログラムの中から追加したいのですが
どのようにすればよいでしょうか?
0409デフォルトの名無しさんNGNG
>>408
最近同じ質問があったはず、400程度のスレは読んでみてくれ。
0410デフォルトの名無しさんNGNG
>409
うそつけ。ねーよ。
0411デフォルトの名無しさんNGNG
配列で検索。
それで理解できないんじゃ、作れないよ。
0412デフォルトの名無しさんNGNG
VB6(SP6)
でプログレスバーの出し方がわかりません。過去ログより
>ツールバーのコントロールの選択→MicroSoft Progress Bar
にて、出すことができると書かれていたのですが、
コントロールの中にMicroSoft Progress Barがありませんでした。
どうすれば良いでしょうか?

マイク音量をプログレスバーに出したいと思っています。
0413デフォルトの名無しさんNGNG
>411
根拠は?
0414デフォルトの名無しさんNGNG
>>413
400程度のスレで、>>409->>410間の5分程度しか見ないで無いよといっている人です。
配列で検索すればこのスレに答え書いてありますから、それ見て判らなければプログラマとして論外でしょ。
0415デフォルトの名無しさんNGNG
>>357
>>357
>>357
>>357
>>357
0416デフォルトの名無しさんNGNG
>414-415
それはオプションボタン・チェックボックスを動的に作る話ではない。
>357を見ても同種の話題だと気付かずに質問しているのだから
お前らはレベルを合わせて回答する必要がある。
それができないのであれば回答すべきでない。
プログラマとして論外かどうかはお前らには関係ない。
0417デフォルトの名無しさんNGNG
結論:>414はアホ。
0418デフォルトの名無しさんNGNG
>417
それは違うな。


結論:>414はとてつもなくアホ。救いようがない。
0419デフォルトの名無しさんNGNG
dare ka >>412 ni kotaete yareyo.
0420デフォルトの名無しさんNGNG
>>416からまた同一人物の連書き野郎の荒しですか。
で?
>>357みて判らなければ再度質問すればいいだけ。
いつものように、回答だけ書けってまた暴れるんですか?w
0421デフォルトの名無しさんNGNG
>>412>>419
|-`).。oO(Microsoft Windows Common Controls 5.0…)
0422412NGNG
なんとか自力でプログレスバーを出すことができました。
ただいまマイク入力音量を取得するのに苦戦してます。

>419さん
ありがとうございます。
0423デフォルトの名無しさんNGNG
>420
質問スレだからな。お前らは回答だけ書けばいいの。
0424412NGNG
>>421さん
カキコ気づきませんでした。ご返答ありがとうございます。
0425412NGNG
ライン入力された音(マイク)の大きさを数値として取り込みたいのですが、
音量の取り込み方がさっぱりわかりません。
詳しい方がいましたらご教授願います。
0426デフォルトの名無しさんNGNG
VBは長島茂雄であるといえよう。
0427デフォルトの名無しさんNGNG
>426
字が違います。
0428デフォルトの名無しさんNGNG
>>425
適度な短い録音して、最大の値をとればいい
0429デフォルトの名無しさんNGNG
>>423
へぼい自演なんかして恥ずかしい奴だな
0430デフォルトの名無しさんNGNG
>>428
いや、そもそも音量の数値化の仕方がわからないんじゃまいかと。
俺もわからんが。つか、やったことない。
0431412NGNG
>>428
わかりづらくてすみません。
最大音量の値というよりも、音量値の取得の方法がわからず困っています
>>430
コンポーネント等を用いて簡単にできるようなことではなさそうな感じが
してきました。
0432デフォルトの名無しさんNGNG
>>431
逆にコンポネートになってないと、めんどくさそうだけどね。
あとは、MMCとか、APIであっさり該当なものがありそうな気がす。
てゆうか、そうなってないとVBからでは難しいではないかと。(=なんらかのインターフェイスが用意されてると思う)

まあ、せっかくなので調べ見よう。見つけたら書き込みますわ。
回答じゃなくてごめんね。
0433412NGNG
>>432さん
どうもお手数かけましてすみません。
私もわかり次第、書き込みします。
0434432NGNG
MMCじゃなぃ、MCIだ失礼しましすた。
0435429NGNG
すいません。訂正します。
へぼい自演なんかしてしまって恥ずかしいです。
精神科に通院中なので許してください。
0436デフォルトの名無しさんNGNG
>434
MMR?
0437432NGNG
ちょうどよいのがありました。
MCIではなくて、API使うみたいですね。

ttp://tk.no-ip.info/

このサイトの方が、VBでレベルメータ作ってます。
ばっちりVBのソースがついてるので、参考にしてみては?
私はまだ詳しく読んでませんが、winmmのAPI宣言して、そちらをのみを利用して作ってますね。
DirectXとか、MCIとかはなくてもできそうですよ。
0438デフォルトの名無しさんNGNG
>>435
平然と嘘ついてりゃ社会から弾かれるよな
かわいそうに
0439デフォルトの名無しさんNGNG
>438
自覚があるからまだましじゃん?
0440デフォルトの名無しさんNGNG
>>435の騙り、哀れだ
ほんとに人間終わってる
0441デフォルトの名無しさんNGNG
>>439
自分から病院かよってるから〜なんて言う奴は、
自覚ないよ。
自覚ないっいうか、病院勘違いしてるでしょ、確実に。

ほんとうは、「俺様特殊な病気にかかってることにしたい病」なんだけど、
鬱病ですとか言いたくなっちゃう人んですよ。たぶん。
0442デフォルトの名無しさんNGNG
>435
429になりすましたり自作自演したり、廃人ってほんとにいるんだね。
0443デフォルトの名無しさんNGNG
>441
なるほど
0444デフォルトの名無しさんNGNG
>435
廃人の自作自演って初めて見た
どこまでやれるか見てやろう
0445デフォルトの名無しさんNGNG
ばれても自演を黙々と続けるのが廃人の特徴か
明らかに普通のひととは違う
0446デフォルトの名無しさんNGNG
>435
もう稚拙な自作自演はやめたのか
0447デフォルトの名無しさんNGNG
>>435
騙り屋のチキンっぷりをもっと発揮してみ
0448デフォルトの名無しさんNGNG
つうか、釣られすぎですよ。みなさん。
0449デフォルトの名無しさんNGNG
>435
どうせ人間終わってんだから多少インチキしたって構わねーだろ
もっと下劣なことやってみな
0450412NGNG
>>432さん
どうもありがとうございます。
まだVBをはじめて3日(C/JAVAの経験はあります)なので、
解読に時間がかかってますが、ありがとうございます。
参考になります。
0451デフォルトの名無しさんNGNG
>449
今槍玉にあげられてるのお前だよ?
0452デフォルトの名無しさんNGNG
せめて「>>449」と書け。
0453デフォルトの名無しさんNGNG
>452
なんで?
0454デフォルトの名無しさんNGNG
>>453
クリックできないから
0455デフォルトの名無しさんNGNG
>>453
すぐにピンとこないところが廃人らしいな
0456デフォルトの名無しさんNGNG
>>451なんかほんと廃人らしいね。
嘘ばれても槍玉とか抜かしてるし、最後疑問形だし。
おもしれーからもっとやれよ
0457デフォルトの名無しさんNGNG
>454-455
アホ。そりゃお前がIEで見てるからだろ。
ちなみに「>」と「>>」の違いは理解してる?
0458デフォルトの名無しさんNGNG
>456
最後が疑問形の理由も分からないんだ。
0459456NGNG
>457
え?違いあるんですか?
0460デフォルトの名無しさんNGNG
>>457
自演してもうんこ臭いんだよ、廃人
0461456NGNG
>458
すいません。今分かりました。
0462デフォルトの名無しさんNGNG
>460
どれとどれが自演なの?そしてその証拠は?
0463デフォルトの名無しさんNGNG
>>458
廃人の理屈はわかんねーな
0464デフォルトの名無しさんNGNG
>>458
もっとインチキやれよ、下劣廃人
0465デフォルトの名無しさんNGNG
>>457
なんでもh抜きしちゃう人ですか?
0466デフォルトの名無しさんNGNG
>463-464
もうネタ切れなのね。ご苦労さん。
0467465NGNG
>465の補足です。

質問に質問で返すのは回答できないからです。
0468デフォルトの名無しさんNGNG
>467
あーそう、誰も君の能力の限界以上のことを要求しないよ。
俺が悪かった。
0469デフォルトの名無しさんNGNG
今すげー勢いで書き込み→あと○○秒待ってを繰り返してるんだろうなぁ。
0470デフォルトの名無しさんNGNG
>>466
>釣り(反応したらバカ)
まだ終わんねーよ、もっと廃人らしい卑しいとこ見せつけてみな
0471デフォルトの名無しさんNGNG
>470
え?俺が相手してあげないとダメなの?
君一人じゃできないの?
ん?ボクちゃんは病気だから一人じゃ何にもできないのかな?
0472デフォルトの名無しさんNGNG
>>466
>釣り(反応したらバカ)

自作自演と騙り屋のおまいをもっと晒してやるよ
0473470NGNG
>471
うっせーな。友だちいねんだよ。寂しいんだよ。
相手しろや。
0474デフォルトの名無しさんNGNG
>472
どれとどれが自作自演なのかな?俺は答えを知ってるけど。
0475デフォルトの名無しさんNGNG
>>466
おまいの生き恥もっと晒してやるよ、廃人さんよ
またレス番騙ったら?
0476472NGNG
>474
>420-474が俺の書き込みだ。文句あるか。
0477デフォルトの名無しさんNGNG
>475
どの辺が生き恥になるんだ?
0478デフォルトの名無しさんNGNG
>>466
自作自演してインチキもっとしろよ
生き恥晒せ
0479デフォルトの名無しさんNGNG
>477
あー、そうか。お前の相手してるってことが生き恥になるな。
うわー、こりゃ参ったわー。
0480デフォルトの名無しさんNGNG
>>466
>釣り(反応したらバカ)

廃人のおまいは散々粘着してそのザマか
インチキ野郎、もっとやれ
0481デフォルトの名無しさんNGNG
このスレももう終わりだな。次スレ必要な奴いる?
0482デフォルトの名無しさんNGNG
>>466
>釣り(反応したらバカ)

ぐずぐずしてねーでもっと卑しいことやれよ
0483デフォルトの名無しさんNGNG
>>466
>釣り(反応したらバカ)

もう終わりか、精神崩壊野郎が
0484デフォルトの名無しさんNGNG
>466
廃人独特の屁理屈と嫌味が足りねーよ
0485デフォルトの名無しさんNGNG
おい、どうした。もう終わりか。
相手してくれないと泣くぞ。泣くもん。
0486デフォルトの名無しさんNGNG
>485
ごめんな。オジサンもそんなに暇じゃないんだよ。
メンヘル板ってとこに行ってみたらどう?
0487デフォルトの名無しさんNGNG
>>466
自分に都合のいい自作自演もっとやれよ
この卑怯者が
0488デフォルトの名無しさんNGNG
>>485-486
さっきとパターン同じじゃねーかよ
もっと臭い自演しろよ、廃人
0489デフォルトの名無しさんNGNG
>>485-486
お前の本当の卑しいとこみんなに見てもらえよ
さっさと続きやれ
0490デフォルトの名無しさんNGNG
>>485-486
もっと卑屈になれよ。お前の穢れはこんなもんじゃねーだろ
0491デフォルトの名無しさんNGNG
>>485-486
お得意の猿芝居どうしたんだよ、待たせないでさっさやれ
0492デフォルトの名無しさんNGNG
RELOAD連打して待ってんだよ、さっさとやれ
0493デフォルトの名無しさんNGNG
>>485-486
未熟な思考と精神の壊れっぷりを見てもらってよかったな、廃人さんよ
0494デフォルトの名無しさんNGNG
>493
なんで自分の書き込みにずっとレスしてるの?
自分の中の小さい人と会話してるのかな?
0495デフォルトの名無しさんNGNG
>493
とりあえず気の済むまで一人で続けてて。
1時頃もう1回様子見に来てあげるから。
0496デフォルトの名無しさんNGNG
Dim a, b
b = String(20, ChrW(12288))
a = ChrW(12288) & ChrW(9675) & ChrW(32) & ChrW(44) & b & ChrW(9675) & ChrW(62) & vbCrLf & ChrW(12288) & ChrW(47) & ChrW(-29) & ChrW(39) & ChrW(9734) & b & ChrW(-247) & vbCrLf & ChrW(-241) & ChrW(32) & ChrW(62) & b & ChrW(-241)
msgbox a
a = Replace(a, ChrW(9734) & b, String(15, ChrW(9632))) & vbCrLf & vbCrLf & ChrW(12363) & ChrW(12288) & ChrW(12417) & ChrW(12288) & ChrW(12399) & ChrW(12288) & ChrW(12417) & ChrW(12288) & ChrW(27874)
msgbox a
0497デフォルトの名無しさんNGNG
スマソ誤爆
0498デフォルトの名無しさんNGNG
八行無能
0499デフォルトの名無しさんNGNG
>>494
ひとに擦りつけるのうまいな
自演ばれても平然と続けるあたりが廃人ぽくていい
もっとインチキやれよ
0500デフォルトの名無しさんNGNG
>>494
人間の体をなしてないおまいの廃人っぷりを発揮しろよ
0501デフォルトの名無しさんNGNG
日付も変わった事ですし、気を取り直して次の質問ドゾー
0502デフォルトの名無しさんNGNG
TextBoxに長文を表示するプログラムを作成しています。Timerを使って1文字ずつ
順番に表示する事まではできたのですが、文章が枠内に収まりきらない場合、画面
上で見えていない部分にどんどん文字が追加されていきます。文章が全て表示しきれ
ばスクロールを使って全文読む事はできるのですが、これを表示の最中枠内に収ま
りきらない場合はスクロールを自動的に1段ずらすという事は可能でしょうか?
vb6.0を使用しています。
0503デフォルトの名無しさんNGNG
TextBoxならばマルチラインとかを調べる。

そもそもで、リッチテキストボックスにする。
またはPictureBoxに文字を描画するほうが自分で全て制御できそう。
0504デフォルトの名無しさんNGNG
>>503
マルチラインはTrueに設定しています。
TextBoxでは難しいでしょうか?
0505デフォルトの名無しさんNGNG
>>504
テキストボックスでも、たぶん制御できるけど(前やったことがあるので)
はっきり言うと計算式つくるのめんどいよ。
…というより、テキストボックスってそのあたりシステムにお任せできるのがいいところであって、
あえて、そこを、制御していくなら、>>503の言うように、PictureBoxのがよいと思う。
アドベンチャーゲームの台詞のところみたいなのつくりたいんだよね?
0506デフォルトの名無しさんNGNG
>>505
>アドベンチャーゲームの台詞のところみたいなのつくりたいんだよね
はい、その通りです。以前作成した時はどのような計算式をたてたのですか?
0507デフォルトの名無しさんNGNG
>>506
ピクチャーボックスでやったほうがいいよ。
スクロールはピクチャーボックスを親コンテナにして描画用ピクチャボックスを子にするイメージで。
(見せれば一発なんだが、文章で伝わるか・・・)

文字の縦横はMSDNとかでフォント周りを調べないと駄目。
文字幅とか文字間とかの説明があったはず。
0508デフォルトの名無しさんNGNG
>>502
Text1.SelStart = Len(Text1.Text)
のような処理じゃだめなん?
0509デフォルトの名無しさんNGNG
>>506

Text_LogWindow.SelLength = 0
Text_LogWindow.SelStart = なんちゃら

で、どの部分見せるかっていうのはコントロールできるんだけど、
アドベンチャー的なアレでそれを使おうとすると、まあ、色々あるです。
チャレンジするならやってみて。
0510デフォルトの名無しさんNGNG
>>508
あら、かぶったわ。
単純に最後をつねに、表示しつづけるなら、それでおけだね。
0511502NGNG
みなさんレスありがとうございます。早速チャレンジしてみます。
0512初心者NGNG
あるINTEGR型の変数の値が、1から100までの中に入っているかどうか知りたいです。
if i=1 or i=2 or 1=3 or 1=4 or・・・
と書く以外に、方法はないのでしょうか
0513デフォルトの名無しさんNGNG
>>512
if ( ( i>=1 ) and ( i<=100 ) ) then
  MsgBox "範囲内です。", vbOkOnly, "サンプルプログラム"
end if
0514初心者NGNG
>>513
ありがとうございます。早速試してみます
0515502NGNG
Timerを使って順に文字を表示していく手法をとっているせいで教えてもらった
.SelStartを上手く使えませんでした。スクロールは上手く下にいってくれてい
るのですが画面がずっと点滅してスクロールも上下に動き続けているいるような
状態です。恐らくTimerで1文字ずつ順番に表示してしまっているからだと思いま
す。
0516デフォルトの名無しさんNGNG
>>515
もう、文字単体ではなく絵と割り切ってピクチャーボックスの実装に移ったほうがいいと思うよ。
TextBoxやLabelはあくまで単体の文字や文字列を入出力する為のコントロール。
見え方より入力しやすさを前提に構成されてるから。
0517502NGNG
動作成功しました。
今まではTextBoxに[すでに表示してある文章]+[追加する1文字]を代入していた
のですが、教えてもらった.SelStartと.SelTextを使用することで解決しました
。
1文字追加する前に.SelStartで最後の個所に移動し、そこで.SelTextに追加す
る文字を代入すると点滅もせずスムーズに文章が表示する事ができました。
TextBoxはあきらめてPictureBoxの手法を探そうと考えていたのですが、なんと
かTextBoxのままで済みました。アドバイスを下さったみなさんありがとうござ
いました。
0518デフォルトの名無しさんNGNG
dim Rs as new adors.recordset

do until Rs.eof

'リストボックスに代入
lstList.AddItem Rs.Fields("項目")

loop

リストボックスに値を代入する過程で、MoveNextを書き忘れました。
PauseやBreakが利きません。
タスクマネージャでは応答なしとなっていますが、
プログラム自体は実行されているようです。
大量にリストボックスに行が追加されていますが
このリストボックスって制限行というものは持っているのでしょうか?

OSはXPでVB6 SP5です。
0519デフォルトの名無しさんNGNG
気にする部分が違うような・・・。
EXE実行ならタスクマネージャから殺す。
デバッカなら、コントロール+ブレークで止まるはず。
0520デフォルトの名無しさんNGNG
>>517
色々あるでしょ?

それはさておき、.SelStartってのは微妙に今回のような使い方のためのプロパティではないので、
本来の意味も勉強しといたほうがいいよん。と添えてみる。
0521デフォルトの名無しさんNGNG
>>519
VBは使って5年目になる者ですが、
とめることができません・・。
コントロール+ブレークやファンクション+ポーズでも止まりません。
タスクからキックするとおそらくVBごと落ちてしまいます。
0522デフォルトの名無しさんNGNG
VB 6.0 sp6
Win XP Sp1
です

CSVファイルをLine Inputで1行づつ読み込み、Split関数で配列に分割しようとしています
読込んだデータが
AAA,BBB,CCC
という場合は
 配列(0):AAA
 配列(1):BBB
 配列(2):CCC
とうまくいくのですが

AAA,"BBB,bbb",CCC
という場合次のようになってしまいます
 配列(0):AAA
 配列(1):BBB
 配列(2):bbb
 配列(3):CCC

これを
 配列(0):AAA
 配列(1):BBB,bbb
 配列(2):CCC

というふうに、""で囲まれている場合は無視するようなはできるでしょうか?
よろしくお願いします
0523デフォルトの名無しさんNGNG
VB 6.0 sp6
Win XP Sp1
です

CSVファイルをLine Inputで1行づつ読み込み、Split関数で配列に分割しようとしています
読込んだデータが
AAA,BBB,CCC
という場合は
 配列(0):AAA
 配列(1):BBB
 配列(2):CCC
とうまくいくのですが

AAA,"BBB,bbb",CCC
という場合次のようになってしまいます
 配列(0):AAA
 配列(1):BBB
 配列(2):bbb
 配列(3):CCC

これを
 配列(0):AAA
 配列(1):BBB,bbb
 配列(2):CCC

というふうに、""で囲まれている場合は無視するようなはできるでしょうか?
よろしくお願いします
0524デフォルトの名無しさんNGNG
Split関数をつかわない。
まじめに、一文字ずつよみこんで手動で分割してみし。それで解決。

逆だとめんどくさかったんだけどね。
0525デフォルトの名無しさんNGNG
>>521
Alt+ブレークだったかな・・・。
まあ、デバック時に自動西武していないなら、自分の愚かさを呪うしかない。

ちなみに、Listの限界はヘルプみたいほうがいいとおもう。
多分IntegerかLongの限界値かなんかだと思うが、それ以前にリソース使い果たして落ちるとは思う。
0526デフォルトの名無しさんNGNG
どっちにしろ、その落ち方では、デバッカーにもどってくることはないな。
0527デフォルトの名無しさんNGNG
いや、デバッカ上なら無限ループしてもブレーク+なんかで止まったはず。
最近やらんからすっかり忘れてるけど。
なんで元の人、ブレークとなんかを叩きまくれ・・・もう死んでるかな?w
0528デフォルトの名無しさんNGNG
ちゃうちゃう。リソース
使い果たして落ちた場合ねん。
その落ち方じゃ、デバッカにはもどらんだろうな。
0529デフォルトの名無しさんNGNG
それはその通り。
だから、今頃はよっぽど運良く下手で時間の掛かる処理を書いていなければ、なんまんだ。
0530デフォルトの名無しさんNGNG
なむなむなむ、のんのなーもあみんなーも(うろ覚え)
0531デフォルトの名無しさんNGNG
>523
「"」を長さゼロの文字列にReplaceした後にSplitするとか。

0532デフォルトの名無しさんNGNG
VBってオブジェクト名に日本語使えるんだね。
使ってるソース見てちょっとびびったのでカキコ。
0533デフォルトの名無しさんNGNG
>>523
ADOとかSQLが使えるなら、CSVファイルをODBC接続で読み取ると
””を自動的に消してくれるよ。
0534デフォルトの名無しさんNGNG
いや、””を消したいのではなく、””間を1つの文字列として分割したくないんでしょ?

自分でロジック実装、前から順番に
Interで ” と ,を両方調べて、 ,が先ならそこまで分割、”が先なら次の”までで分割でいいんじゃないの?
0535デフォルトの名無しさんNGNG
変数一個用意して、1を代入
"がでてきたら、その変数に-1をかける。
て処理を作る。

   → "がでてくるたびに、1と-1を繰り返すことになる。

で、
それとは別に
,がでてきたら、その前とその後で分割するって仕組みを作る。

ただし、先に用意した変数が-1の時は、分割せず無視する。

そんな感じではいかが?
0536デフォルトの名無しさんNGNG
>>535
Boolean型使ってもよさそうだな。
0537>>534NGNG
InStrです、はい。すみません。
1文字づつ取るなら>>535さんのやり方でOKだと思います。

0538デフォルトの名無しさんNGNG
>>534
ADOでCSVに接続すると、""間にカンマや改行があっても分割せずに認識しますよ。
検証の為にサンプルを作ってみました。
ただし、手元にVBがないのでVBSで作りました。

set rs = CreateObject("ADODB.Recordset")
sql = "SELECT * FROM nullpo.csv"
con = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:\hoge"
rs.Open sql, con, 0
WScript.Echo ( "[" & rs.Fields(0).Value & "]")
rs.Close

このサンプルだとCSVの1行目を強制的に見出しとして認識するので、
1行目もデータとしてみるために接続文字列を下のように変えてもよいです。

con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\hoge;" & _
"Extended Properties=""text;HDR=No;FMT=Delimited;"";"
0539デフォルトの名無しさんNGNG
リストビューのカラムヘッダを押せなくすることは可能でしょうか。
立体的なまま押せなくなるのでも、フラットになるのでもどちらでも
構いません。

Common Control のバージョンは5.0です。
リストビューコントロールへのメッセージの投げ方くらいは
分かるので、「このメッセージを調べろ」的な情報を頂ければ
後はなんとか調べてみます。

よろしくお願いします。
0540デフォルトの名無しさんNGNG
専用用紙で印刷できる範囲が予め決まっている場合のTextBox等の印刷方法につ
いての質問です。今まではLen()を使って文字数を調べて一定の文字数以上だった
らLeft()とMid()を使って文章を2つに区切って2段に分けて印刷するという方法
でした。しかしこの方法だと全角半角が混ざっていると何だかバランスの悪い状
態で印刷されてしまいます。バランス重視にして2段に分ける場合は文章を半分ず
つにしてみたのですが、今度は端に空白ができてしまい文字数をもっと増やして
も良いのではという話になってしまいました。
2段に分けて印刷する時はどういうやり方でやっていますか?Left()Mid()を使う
以外でもっと効率の良い方法もあるのでしょうか?
0541523NGNG
昨日は連続カキコミすみませんでした

皆様
いろいろなアイデアをありがとうございます
ADOで接続し参照すると望んでたとおりの結果がでました
ありがとうございました
0542540NGNG
お願いします。
0543デフォルトの名無しさんNGNG
教えてください〜〜

HTML HELPをつくってまして
VB6から状況にあったHELPページを開こうとしてるのですが
コンテキストIDの設定方法がわかりません
どこでIDを設定するのでしょう?

HELP側でAliasは設定しました。
これとIDとの定義付けがどこかで必要なんですよね。
ご存知の方よろしくお願いします。
0544デフォルトの名無しさんNGNG
string型の配列内にデータが存在するかを判定したいのですが
やはり配列の先頭から検索するしかないのですか?

環境は
VB 6.0 SP6
Windows XP Home Edition SP1
です
0545浴寳NGNG
浴恊
0546欲恊NGNG
欲恊
0547デフォルトの名無しさんNGNG
VBAから VBを呼び出すには?
0548デフォルトの名無しさんNGNG
Shell "C:\Program Files\Microsoft Visual Studio\VB98\VB6.EXE"
0549デフォルトの名無しさんNGNG
>>547
Shell("VB6.exe")

まあ、VBの何を呼びたいの?モジュール内の関数?フォーム?EXE?
0550デフォルトの名無しさんNGNG
>548-549
ちょっとワラタ
0551デフォルトの名無しさんNGNG
>>540
全角半角を考慮して、1段目をMaxで印刷するやり方が知りたいの?
0552デフォルトの名無しさんNGNG
どなたか>539をお願いします。
0553デフォルトの名無しさんNGNG
>>543
こっちで聞いたほうがいいんじゃない?
http://pc5.2ch.net/test/read.cgi/tech/1083001859/
0554デフォルトの名無しさんNGNG
興味半分でvbいじりはじめたんだけどvb6コモンダイアログで
ファイルセーブのデフォルトのファイルネームって
CommonDialog1.FileName = "hogehoge"みたく直接格納していいの?

コード内でファイルネームをつけるとダイアログ側でファイルネームを
変更した時に反映されずにそのままデフォルト名が渡されて保存されてしまうんだが・・・
File_Saveに渡した時にファイル名を改めて取り直すとばっかり思ってたんだけど
そうじゃないのね?
0555デフォルトの名無しさんNGNG
>>554

>ダイアログ側でファイルネームを変更した時に反映されず

んなこたぁない。ちゃんと反映されるよ。
0556デフォルトの名無しさんNGNG
もの凄く初心者な質問なのですが宜しいでしょうか?

次のようなテキストファイルがあると仮定します。
左の数字は行番号です。

  1| 2ch
  2| 3ch
  3| 8ch

このファイルを1行ずつ 「X」 「Y」 「Z」 に代入したい場合には、
下のようなソースを書けば良いですよね。

  |    Open "data.ini" For Input As #1
  |    Line Input #1, X, Y, Z
  |    Close #1

ところが、逆に書き込む場合にはどうすれば良いのでしょうか?
「Print」 を使うと、スペースで区切られてしまいますし、
「Weite」 を使うと、カンマで区切られてしまいます。
改行で区切って書き込むコマンドがあれば教えて下さい。

お願い致します。
0557デフォルトの名無しさんNGNG
配列を返す関数って作れるの?
配列のサイズとかは関数内部で確保すれば
いいのかな。
0558デフォルトの名無しさんNGNG
>>556
Print #1, X & vbNewLine & Y & vbNewLine & Z

または

Print #1, X
Print #1, Y
Print #1, Z

お好きな方ドゾー
0559デフォルトの名無しさんNGNG
vbnewlineとvbcrlf、どっち使えばいいの?
0560デフォルトの名無しさんNGNG
>>557
簡単に作れるからヘルプ嫁。
0561デフォルトの名無しさんNGNG
ListVIeewの背景画像を指定すると右上に来ますよね?
あれを右下に表示したいんですが、どうすればいいんですか?
0562561NGNG
×右上
○左上
0563デフォルトの名無しさんNGNG
>>559
どっちでもいい。
0564デフォルトの名無しさんNGNG
>>559
vbCrLfは文字コードCRとLFの組み合わせ、vbNewLineはOSに依存した改行コード。
Office for MacのVBAではvbNewLineとvbCrLfではコードが違うはず。
改行という意味ならvbNewLineの方がふさわしい気がするが
多くの場合vbCrLfが改行として使われている。
0565デフォルトの名無しさんNGNG
>>561
ListViewにピクチャーなんとかっていうそれっぽいプロパティがあるから適当にいじる。
詳しくはヘルプを。
0566デフォルトの名無しさんNGNG
間違えて.NETの方に投稿してしまいました・・・

リストビューのレポートスタイルで、カラムをクリックしてソート
したときに▼とか▲をヘッダに出したいのですが、あれはやっぱり
オーナードローとかいうものをしないとダメなのでしょうか。
VBでも可能なんでしょうか。

0567デフォルトの名無しさんNGNG
「Command1」 は、「終了」 というボタンです。

「Command1」 をクリックした時に、「Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)」 と
全く同じ処理をしたいのですが、どうすれば良いでしょうか?

同じ内容をコピペして合計2回書くことも出来るんですが、
複雑化した際に同じものを2つ書くことが非効率な気がして・・・。

お願いします。

  --------------------------------------------------------------------------
  Private Sub Command1_Click()

  〜ここから、下の Sub Form_QueryUnload を呼び出したい。 
  
  End Sub
  --------------------------------------------------------------------------
  
  Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    〜 ここに終了時の処理が書かれている 〜

  End Sub
0568556NGNG
>>558
丁寧な回答ありがとうございます。

Print #1, X 
Print #1, Y 
Print #1, Z 

を使わせて頂きました。
これは便利ですね・・・。
0569デフォルトの名無しさんNGNG
>>567
call Form_QueryUnload
0570デフォルトの名無しさんNGNG
普通に「Unload Me」すれば、QueryUnloadも呼ばれないか?
0571569NGNG
>>570
確かにそのとおりですね。
0572567NGNG
>>569
本当にありがとうございます。
そのコマンドを知るためにどれだけ苦労したかと思うと 。・゚・(*ノД`*)・゚・

友人が.NETに移行するとかで貰ったVB6なんですけど、インストール時にMSDNのCD要求されて
そんなCD貰ってないから無視したら、ヘルプも見れないんですよね
やっぱり、VB6を購入すると、MSDNのCDが付いているんでしょうか・・・

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

>>570-571
試してみたら、Unload Me でも QueryUnload が呼ばれていました。

今まで下のように書いていたのですが、
そう考えると無限ループになりそうですね。

QueryUnload で Unload Me → QueryUnload を呼び出し → また、Unload Me があって
 →QueryUnload を呼び出して・・・・・。

  --------------------------------------------------------------------
  Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 

  〜ここに終了時の処理〜

  Unload Me
  End Sub 
  --------------------------------------------------------------------

でも、何故か無限ループにはなりませんでしたが・・・。
VB君って賢いのかな。

本当にありがとうございました。
0573デフォルトの名無しさんNGNG
既出だったらマジですいません。
分かれば教えてください。
VB4.0で、特定のフォルダに置かれているVBAが記述されているExcel2000を開きます。
このときマクロの「有効・無効」のポップアップが出てしまうのですが、これを出さないようにVBで制御できますか。

ちなみに、セキュリティーレベルは「中」以上の設定にしておくという条件あり。
0574デフォルトの名無しさんNGNG
>573
>既出だったらマジですいません。
そこまで謝るならなぜ事前に過去ログを調べないんだ?
0575デフォルトの名無しさんNGNG
どなたか>566をお願いしますorz
0576デフォルトの名無しさんNGNG
>>573
そんなことするのはウィルスっぽくてどうかと思うけど。

VBだけで可能か知らないけど、
新しいスレッドを作成してダイアログを定期的に監視させ、
ダイアログが開いたらすかさず閉じさせるっちゅうのはどう?
0577デフォルトの名無しさんNGNG
>573
http://office.microsoft.com/ja-jp/assistance/HP052012011041.aspx
 これでも読んで良く考えよう。
 Excelのマクロにデジタル書名をつければ済む事なんだがな。
0578デフォルトの名無しさんNGNG
>>577
573ではないが、おもしろそうな資料をありがとう。
実は私もマクロにデジタル署名をつける実際をしりませんですた。
使わないしなぁ・・・個人でやってる分には。
0579デフォルトの名無しさんNGNG
色々とレスありがとうございます。

今までEXCEL95を呼び出していたんですけど、今度EXCEL2000を呼び出すことになり、
使用者に「ポップアップが出てそそままEnter押すとマクロ動かないよ!」と言われてしまったため、
先ほど記述の作業が必要になってしまった次第です。

現在、他のVBでの作業に追われて過去ログ調べずに書き込みしちゃいました。
落ち着いたら過去ログ調査します。

>576
>577
ありがとうございます。参考にして挑戦してみます。
0580デフォルトの名無しさんNGNG
>579
http://office.microsoft.com/ja-jp/assistance/HA010550371041.aspx
 577出だしたのは良く見たら、Excel 2003だったので、
Excel2000はこちら。
0581デフォルトの名無しさん NGNG
書庫内のMP3ファイルのヘッダーを取得する方法を知っている人いない?
0582デフォルトの名無しさんNGNG
>>581
書庫ってなんやねん。ZIPやLHAで圧縮されているファイルのヘッダか?
ファイルを展開するのがいやなら自前で展開ルーチン書くしかなかんべ。
0583デフォルトの名無しさんNGNG
教えてください。
次のようなアプリケーションを作ろうとしています。
「スタートアップをsub mainにして、sub main内でformを明示的にインスタンス生成し、
 formがuserによって閉じられたらアプリケーションも終了させる。」
このときインスタンス破棄をどのタイミングでして良いのか分かりません。
生成は次のように行っています。

Sub Main()
Set gForm = New frmMain
gForm.Show
End Sub

WM_DESTROYを待って
Set gForm = Nothing
すべきなんでしょうか?
0584デフォルトの名無しさんNGNG
>583
ネタか?これは。
やれるもんならやってみな。
0585デフォルトの名無しさんNGNG
>>583
まったくわかってない。最初っからやり直し。
0586デフォルトの名無しさんNGNG
>585
このスレは何のスレだ?







あほ
0587デフォルトの名無しさんNGNG
なんつーかすげーな。
何語使いなんだ君は。
0588デフォルトの名無しさんNGNG
WinAPIだけで画面作っていた、VC以前のC使いだろうか・・・。
Mainが無いと落ち着かない。メッセージループは理解してる。なのにVBを全く勉強していない。
0589デフォルトの名無しさんNGNG
それにしても、Main関数からスタートさせられるように、
プロジェクトのプロパティ変更できるなら、
…つーか、そもそも、フォーム作成の段階で気づきそうなもんだが。
0590583NGNG
ご指摘のとおりC&SDKでしか開発していない化石PGです。
form一つで良いならスタートアップをformにしとけば良いと思うのですが、
複数のformを開いて(つまりソース中のgFormをcollectionもしくは配列にして)、
全てのformが閉じられたらアプリケーションの終了としたいのです。
0591デフォルトの名無しさんNGNG
あなたの流儀・知識と、VBでの流儀・VBの振る舞いは違うのですから、
まず、VBのそれらをきちんと覚えることが先決だと思いますが。

付け焼刃で自分の流儀でVBの動作を捻じ曲げると、メンテする人が参ります。
Winアプリの基本線が判ってるんだから、それほど苦労せずにVBを理解できると思いますが。
基本的にVBはクローズされた箱庭ツールと認識してかからないと駄目。
0592デフォルトの名無しさんNGNG
>>590
暗黙のなんちゃらとか、暗黙のインスタンスとか、
そんなものが色々できまくるので、それらを、把握するところまででいいと思われますよ。
VBは、その暗黙のなんとか生成させないようにしようとすると泥沼にはまりますので。

Formで言うと、普通にFormから起動したりloadで呼ぶと、
Form名と同じ名前のインスタンスが暗黙に生成されますねん。
消滅するのは、参照してるものが全部なくなった時。

後は、参照を格納してる変数の寿命がどこで消滅するか把握しとけば、
set ○○=nothing発行必要有無、ENDの発行タイミングはわかると思いますが。
0593583NGNG
一応MSDNは目を通したんですが、
いまいち参照変数の寿命の部分がよくわからんかったのです。
VBでは「作動中の関数が無く、全てのformがunloadされた段階でアプリケーションのが終了する」
と捕らえているのですが、
>>592さんの意見からの自分の解釈では
全formがUnloadされる → アプリ終了=変数寿命キター
 → formインスタンス消滅 = set ○○=nothing必要ない
というわけですね?
0594デフォルトの名無しさんNGNG
>>593
VBはいい加減なもんだから、
細かな事気にする必要は無い。

終了は、「end」 これだけ。
フォームも全部一気に閉じて最強。

ファイルをクローズする必要もフォームを閉じる必要もない訳だ。
0595デフォルトの名無しさんNGNG
なんか、
アプローチの仕方が根本的に違う気がするが・・。

作動中の関数が無くて、すべてのFormがUnloadされた状態で、
どうやってset **=nothingするんですかい?
自分で書いたレスよく読んでみると、なんか変なこといってるのが分かると思いますよ。

コードありきじゃないんですよVBは、オブジェクトありきなんですよ。
0596デフォルトの名無しさんNGNG
オブジェクトありきっつうか、暗黙で生成されるインスタントありき・・ですな。
でも、なんか自分で書いててひねくれた言い方だなって思う。
0597デフォルトの名無しさんNGNG
>>594
いやまあ、それだとたまにプロセスのこるプログラムになっちゃうけどねん。
0598デフォルトの名無しさんNGNG
>>594
元質問者の質問を汲んでないぞ。

複数の同格のフォームを全て表示して、それらが全て終了したらアプリ終了。
ってことをやりたいんだと思う。

私なら設計時点で仮でもいいから、メニューのみのフォームでも作って親をきめるけど。w
0599デフォルトの名無しさんNGNG
>>598
俺もそうするなw
いっそのこと、生成された瞬間にHideでもいいしなw

ぶっちゃけ、そんなもんよVBって。
0600デフォルトの名無しさんNGNG
元質問者の考えで、もし実現するなら以下の方法かな?

隠れた仮メインフォームを作成。
仮メインがロード時に他のフォームを起動、そのインスタンス管理は仮メイン。
各フォームはアンロードイベントで、仮フォームの自分のインスタンスフラグかなんかを落とす。
仮メインはタイマーで回っていて、全てのインスタンスが無くなったら終了。

タイマー云々と仮ー他フォーム連携部分はWindowsメッセージで置き換えも可能。
その場合はサブクラス化で検索。
0601583NGNG
さすが昼時は人が多いすね。感謝。

>>595
>作動中の関数が無くて、すべてのFormがUnloadされた状態で、
>どうやってset **=nothingするんですかい?
なもんでメッセージループ組んでWM_DESTROY待つんかなと最初は思ったわけです。

やりたいことは>>598さんのおっしゃるとおりのことです。
dummy親を作っとくわけですか。。。なんとも効率の(ry
タイマーやVBでのサブクラスがあまり好きでないので
form管理用にスレッドを一つ作って、セマフォとかで管理ってのもありですかね?
0602デフォルトの名無しさんNGNG
>>601
あのさ、VBのやり方って言ってる意味理解してる?
APIごりごり、スレッド使いたい云々だったら、それ用の言語でやればいいだけ。
DelだってVCだってBCCだって何でもあるよ。

VBでやりにくいことをワザワザVBでやるのは無意味。
0603デフォルトの名無しさんNGNG
>>601
いや、なんちゅーか、VBつかわないほうがいいよ。本気の話で。
向いてないと思う。やりたいことと、あなたの気質に。
別に、馬鹿にしてるわけでもなくて、素でいっとるのよ。

>>601
ちゃうちゃう。だから、その発想がそもそもの間違いなんだって。
JavaでもCでも、

メイン関数  → オブジェクトとしてのフォーム管理
  ↓
多種制御

で、メイン関数ありきでしょ。

VBは。
             己の管理
               ↑
メインフォーム + 他フォーム + 他フォーム
    ↓                   ↓
メインフォームの管理のみ       己の管理

という形か

(つづきます)
0604デフォルトの名無しさんNGNG
続き

>>598や>>599で提案しているように。

メインフォーム → 他子フォーム
   ↓
各種制御

という形で、

コードはあくまでメインフォームに付属するものなんですよ。
(自動で生成される暗黙のインスタンスをもった)オブジェクトありきなんですな。

そのあたりを勘違いしてるのかと。
0605デフォルトの名無しさんNGNG
もし、マルチで動く監視コンソールみたいのを作りたいなら。
VBで作るなら1本のEXEでマルチスレッドは考えないほうがいい。
複数のEXEでそれそれ別プロレスにしてしまえ。
0606デフォルトの名無しさんNGNG
それかOCXにするかだな。つかいずらいと思うが。
EXE複数に一票。
0607583NGNG
そもそもVBっつーもんはランタイムの隠し制御は気にせず、
かつ、DLL等はあまり使わずに標準機能で楽しろと。
なるほど。勉強になりました。
&納得できました。有難うございました。
0608デフォルトの名無しさんNGNG
なんかまだ勘違いしてる気がするが、その解釈で問題あるかというと、ない。
0609デフォルトの名無しさんNGNG
教えてください。

TextBoxに入力することが出来ない文字があります。

IME標準では変換せず、IMEバッドの手書きで、
入力させるような文字です。
旧字体というやつだと思います。

入力させる方法はあるのでしょうか?


0610デフォルトの名無しさんNGNG
windows2000以上で、
VBにきっちりサービスパックをあてて、
かつ、テキストボックスのフォントを、該当フォントにしてみたらだめかね?

とゆうか、その文字ってのが、何語の何なのかはっきりわかれば、
もうちょっと違うアドバイスができる気がす。
0611609NGNG
読みは「リュウ」という文字です。

この字「隆」に草冠をつけ、「生」の上に
横棒が追加している文字になります。

SPは3まで当ててあります。


0612デフォルトの名無しさんNGNG
IMEパッドではCJKお構いなしに表示されるからUnicodeに収録されているCK由来の漢字だろう。
0613デフォルトの名無しさんNGNG
蕯

0614609NGNG

>>613

どうやって入れたの?
0615デフォルトの名無しさんNGNG
>614
アホ
0616609NGNG
?
0617609NGNG
蕯
0618デフォルトの名無しさんNGNG
蕯蕯蕯蕯蕯
0619デフォルトの名無しさんNGNG
文字コードは興味なかった人はほんとわからんよ。
そういぢめてやるな。

まあとりあえず、SP6まで当てることと<実際は、5,6あてるだけ。4までは5に含まれるから。
テキストボックスの表示フォントをUNICODE対応のフォントにかえてみるとか。
それで出たら問題解決。
0620デフォルトの名無しさんNGNG
>>583-608のあたり、レベル低いやり取りみたいな進行だが
本当はレベル高い話だな。これがVBか、、、
0621デフォルトの名無しさんNGNG
>>619
TextBox自体はUnicodeでの入出力ではなかったような・・・。
プログラム側から取れるのはUnicodeなんだけど、外(=人)とのやり取りはANSIだったような・・・。
0622デフォルトの名無しさんNGNG
>620
は?
0623609NGNG
外字登録することにしました。

色々とありがとうございました。
0624デフォルトの名無しさんNGNG
お前さんがそれでいいってんならそれでいいや。
人様のPCの外字をいじくるようなことをしなければ。
0625デフォルトの名無しさんNGNG
>624
人様のPCの外字をいじろうが、お前には関係ない。
0626デフォルトの名無しさんNGNG
>>583に触発されていろいろ調べてたんだけど
ttp://www.surveytec.com/prog/vb/kouza/chap3.html
でSub Mian内でUnload Form1をする必要あるのか?
0627デフォルトの名無しさんNGNG
>>626
Form1という変数で示される、実行と同時に暗黙的に作成されたForm1型のインスタンスを消滅させてるんでないかい?
FormX()っていう変数でForm1型のインスタンス(群)を管理するために。

別にそのままの残しておいてもかまわないっちゃかまわないような気もす。
無駄だけどね。
0628デフォルトの名無しさんNGNG
どうでもいいけど Main 内でモーダルで開くってのはなしなの?
0629デフォルトの名無しさんNGNG
Excelのなかに入っているVisual Basic EditorでVBの勉強を始めたのですが、
ここで作ったものを動かすには、やはりVBのソフトが必要でしょうか?
0630デフォルトの名無しさんNGNG
VBじゃなくて、Excelが必要。
0631デフォルトの名無しさんNGNG
>>583
つーかさ、何がしたいわけ?
変数ってのはグローバルな物以外は関数を抜けたとき寿命がくる。
VBってのはガベージコレクションを持っているのだから
アプリケーションが終了したらグローバルな物も勝手に消える。

通常ガベージコレクションをもっている言語ってのはC/C++でいう
deleteなんてインスタンスを削除する命令は無い。
あるのはインスタンスを参照している変数をクリアする命令(VBでいえばNothingの代入)
インスタンスはどこからも参照されなくなった時点で勝手に削除される。(というかこれがガベコレなんだが)

Mainから起動したとしても、何もせずともフォームが
すべてUnload(フォームを閉じても同じ)された時点でアプリが終了するようになっている。
(どこからも参照されなくなった時点ではない)
Main関数を抜けてもフォームがLoadされているのならアプリは終了しない。
暗黙に作成された変数がアプリ終了時点で(Unloadされた)フォームを参照していても
ガベコレの動作の設計どおりにアプリ終了時点でクリアされるから問題ない。
これはオブジェクト指向らしいきちんと設計された動き。
0632デフォルトの名無しさんNGNG
まあ要するにゴチャゴチャ言わず
For Each frm In Forms
 Unload frm
Next
にしとけってこったw
0633デフォルトの名無しさんNGNG
VBよくわかってない奴が変なイメージを植え付けようと
変なことばっかり言っているね。>>632とか。
0634デフォルトの名無しさんNGNG
>>633
そんなこといったら>>627や>>628もじゃんよ。
0635632NGNG
おれは確信犯だってば。
wから読み取ってくれよ。
確信犯という言葉は・・・って指摘は勘弁な。
0636583NGNG
まだやってるこの話題、、、なんか申し訳ない

>>631氏
VBてガーベージコレクションがついているのですか。
結構高級言語なんですね。勉強になりました。
0637デフォルトの名無しさんNGNG
ついてません。
0638デフォルトの名無しさんNGNG
>>636
そりゃ、昔のBASICの時代からついてるじゃん。
0639デフォルトの名無しさんNGNG
要するにガベージコレクションがついていないと思って
Nothingの代入がインスタンス削除命令(C/C++のdelete)だと勘違いして
自分で削除しなくてはならない。いつどうやってやるのかと悩んだってことでFA?
0640583NGNG
>>639
FA
0641デフォルトの名無しさんNGNG
なんつーか、やっぱりすげぇな。
0642デフォルトの名無しさんNGNG
というより、今VB6手に入れるの難しいって知ってた?
販売とっくに中止していてプレミアが付いているからね。

でも、VB.NET は使い物にならないじゃん。
Microsoft .NET Framework がインスコされているパソコンじゃないと、
VB.NET で作ったアプリは動かないんだろ?

だったら、Windows 2000 や XP のデフォルトの状態じゃあ使えないからね。

VB.NET で作ったソフトをフリーソフトとして配布したとしても、
.NET Framework 入れるのが面倒という理由で使ってもらえないんじゃね?

ということで、VB6は必須だな
0643デフォルトの名無しさんNGNG
「VB6」 の 「Timer」 の 「Interval」 に、
65536ミリ秒以上の値を指定したのですが、
どうすれば良いでしょうか?

約1分ちょっとの時間しか指定できないのならば、
ラーメンタイマーすら作れませんよね。

原始的に、Timerを2つ設置して、
1個が限界になったら、もう1個が作動するみたいな
仕掛けを作るしかないんですか?

教えて下さい。
0644デフォルトの名無しさんNGNG
つり?
0645デフォルトの名無しさんNGNG
>>643
別にTimerを二つおかなくても1分を2回待てば2分。
1000回待てば1000分だろ。
0646643NGNG
>>645
ユーザーが入力した時間毎に作業をさせたいんですよ。
例えば、「5」分「31」秒と入力したら、その時間毎に・・・。

5分の時点で1分を5回待って、31秒を1回待つようにすれば良いんですよね。
教えていただきありがとうございました。

というか、タイマーに時間制限を設けるなんて不便でしょうがないですよね
65537ミリ秒ごときでオーバーフローなんて20年前のPCじゃないんですから!
0647デフォルトの名無しさんNGNG
そのアプリだけを起動しているのならともかく、
5分も待てば相当誤差が発生するだろうけどな。

俺なら数秒単位のIntervalにして
残り時間が少なくなったときに目標時間までの残り時間をセットする。

たとえば5分31秒なら、10秒ごとに残り時間をチェックして10秒以上
残り時間があれば10秒。10秒を切っていれば残りの秒数とか。
0648643NGNG
>>647
ありがとうございます。
参考にして一定期間ごとに分割する事にします。
0649デフォルトの名無しさんNGNG
グローバル変数に起動時間を記録。
1秒毎タイマーで起動時間と現在時刻の差を計算。
それだけじゃないの?
0650デフォルトの名無しさんNGNG
>649
解雇
0651デフォルトの名無しさんNGNG
>>649
割り込みの回数的に、>>647がスマートかと。
普通のアプローチならそれでいい。
0652デフォルトの名無しさんNGNG
>>647の取り方にもよるけど、残り時間の管理をタイマーのインターバル値でやったら駄目だよ。
タイマーはあくまで指定時間”以上”の間隔の保証。
だから、25秒を10秒×2+5秒とした場合、その3回のイベント毎に誤差が生じる。

毎秒っていう負荷を気にするならば、残り10分あれば1分毎、それ以下1分まで10秒毎、1分切ったら毎秒(かそれ以下)
っていう間隔で、起動時間との差を取ればいいじゃないですか。
起動時間との差は絶対値だから誤差はほとんど生じない。
0653デフォルトの名無しさんNGNG
ID , Name
100,佐藤
200,田中
ABC , 木村

という形式のCSV(M_NAME.csv)をADOで読込もうと思ってます
SQLに
SELECT Name FROM M_NAME.csv WHERE ID = 100
とやると「佐藤」を取得できるのですが

ABCのようなコードの場合エラーとなってしまいます
数値型と文字型が混在いているからでしょうか?
どんな型でも読込めるような方法はあるでしょうか?
よろしくお願いします

VBは6.0 SP6
OSはXP HOME SP1です
0654デフォルトの名無しさんNGNG
クオートしたら解決とかそんなオチだったりしない?
かなり骨髄レスしてるが。
0655デフォルトの名無しさんNGNG
WEHRE ID='100' じゃないの?
0656デフォルトの名無しさんNGNG
俺もそうだと思う。
それ、100の場合は「例外的に」なぜか「うまくいっちゃってるだけ」だよ。たぶん。
0657デフォルトの名無しさんNGNG
質問お願いします。
VBでうまく文字列のポインタ渡しをする方法はないでしょうか?
状況説明ですが、VBでテキストエディタ作ってます。そのときテキストを
一行ずつ文字列型変数にして、動的配列に持たせています。
ここで、例えば改行等をすると、文字列のコピーを下のループのようにさせています。

  'モジュールレベル宣言
  Dim m_Buf() as String
  Dim BufCnt as Long    'BufCntは行数で常にReDim m_Buf(BufCnt)してある

  '改行されたら
  ReDim m_Buf(BufCnt)
  For i = BufCnt to NowIdx + 1 Step - 1
    m_Buf(i) = m_Buf(i - 1)   '(A)
  Next i
  BufCnt = BufCnt + 1

としています。ただこれだと行数が6万行ほどからかなり時間がかかるようになります。
原因は(A)の部分で文字をメモリを再割り当てしているからであるようなので
そこで「VBでのString型変数はStrPtr関数の戻り値と同じ値を格納している、
つまり文字列のポインタ」ということを利用して(A)を
  Call CopyMemory(ByVal VarPtr(m_Buf(i)), ByVal VarPtr(m_Buf(i-1)), 4)
もしくわループ自体を
  Call CopyMemory(ByVal VarPtr(m_Buf(NowIdx + 1)), ByVal VarPtr(m_Buf(NowIdx)), 4 * (BufCnt - NowIdx))
としました。Cでいうポインタ渡しです。結果として文字はコピーされ、速度も高速なのですが、
しかしここで問題発生で、この後m_Buf()の要素にアクセスしようとすると何度目かでメモリエラーになります。
VBで文字のポインタ渡しをうまくできないでしょうか?よろしくおねがいします
0658デフォルトの名無しさんNGNG
>>657
後者の場合、コピーするメモリ領域が重なっているのでCopyMemoryがうまく動かない可能性がある。MoveMemoryにしろ。
但し、それだけで解決するとは思えないがな。
0659デフォルトの名無しさんNGNG
>>657
前の添え字
文字列
次の添え字

なんて構造体?にして
先頭から順に並べるなんてどうなんだろう。
#僕はプログラム書きではないから当てにならんけど。
0660659NGNG
雰囲気でいうと双方向連結リスト
ttp://www-ise2.ise.eng.osaka-u.ac.jp/~iwanaga/programming/stl/list.html
0661デフォルトの名無しさんNGNG
双方向リストで管理でOKでしょうね。
VBでメモリー操作をやるという発想がまず間違いな訳で。

でも、そもそもリッチテキストボックスとかで、文字列をプログラムが管理して改行とかしてるのか?
その辺りって適当にコントロール標準でやってくれるんじゃないの?
0662657NGNG
>>659
双方向リストやってみます。

>>661
いろいろ特殊機能付けたかったので標準コントロールは使わずに
TextOutで描画してます。
0663デフォルトの名無しさんNGNG
Visual Basic 6.0で開発して、そのプログラムをインストール用にEXE作りました
で、そのEXE起動させてみてもインストール出来ません

オリジナルのVBじゃないからインストール出来ないんでしょうか?
0664デフォルトの名無しさんNGNG
ディストリビューションウィザードを使う。
又は、このあたりを参考に
ttp://dobon.net/vb/installer/index.html
0665デフォルトの名無しさんNGNG
>>663
インスコ用のソースを見せてもらわんとなんともいえね
0666デフォルトの名無しさんNGNG
とゆうか、オリジナルのVBってなんじゃら?
なんとなくわかるようなわからないような。
0667デフォルトの名無しさんNGNG
まさか割れ(ry
0668デフォルトの名無しさんNGNG
商品売上の明細部分を作成する場合VBでは何を使うとやりやすいでしょうか?
Access出身でSubFormが使えない事が分かって、どういうやり方でやるか困っ
ています。
参考になるサイト等もあるのでしょうか?
0669デフォルトの名無しさんNGNG
>>668
もすこし詳細キボンヌ
0670668NGNG
>>669
レスありがとうございます。
無理矢理文章での説明になってしまうのですが、今回販売購買のソフトを作成する
ことになりました。私が担当になったのは売上プログラムです。
売上プログラムは顧客名を入力し、何の商品をいくつ購入したかを保存します。
Accessで作業をしていた時は顧客データを入力する所を親Formとし、明細部分には
[オートフォーム:単票形式]で作成したFormをSubFormとして親Formに組み込んで
いました。VBでも同じやり方ができればと考えていたのですが、SubFormは使用で
きないと知り、何とかこれに近い方法を探しています。
私の会社では今まで、FormにTextBoxを並べていました。明細の数が多くなる場合
にはScrolBarを使って、下にずれていっているように見せる方法をとっていました
。
ただもっとシンプルに作成できるのではないかと思い質問しました。
VB6.0使用者です。よろしくお願いします。
説明不十分のところがあれば教えてください。
0671デフォルトの名無しさんNGNG
>670
伝票入力系のOCXを使うがよろし。
うちはDenpyoMan使ってた。
0672デフォルトの名無しさんNGNG
VB6でCSVを読込んで処理をするプログラムを組んでいます

ID,NAME,NO
1,佐藤,100
2,鈴木,A100
3,木村,"100,200"

というCSVに対してADOで接続しているのですが
2レコード目以降の「NO」の項目がNULLになってしまいます
いろいろ調べたのですが
1レコード目の「NO」の値が数値だからのようです
1レコード目の「NO」を"B111"に変更すると
すべて読むことができます
データの型に関係なく読み取るような処理はできますでしょうか?
0673デフォルトの名無しさんNGNG
ADOを使用せずに、普通にファイル読み込みを行う。
ADOはDBアクセスを前提にしてるんだから、データに型があることは前提です。
0674668NGNG
>>671
情報ありがとうございました。早速上司と話してみたのですが、購入予定は無い
そうです。
VaSpredとMSFlexGridというコントロールはあるのですが、使い方が理解できて
いない状況です。このどちらかを使えば>>670のような方法も可能になるのでし
ょうか?
0675デフォルトの名無しさんNGNG
どちらを使用しても可能じゃない。

SpreadはExcelのスプレッドの粗悪品、FrexGridはDataControlとあわせればAccessの一覧表部分だけ再現可能。
AccessはあくまでAccessで、VBで標準のみでUI作るなら、その範囲内で要件を再検討するほうが良いと思うが。
0676669NGNG
>>670
さて・・・サブフォームというと
いわゆる一枚の明細に沢山商品名が書いてあることを
メインとサブと考えていいのかな?一般的に

もしそうだとしたら・・・グリッドがどうとか言う前に滅茶苦茶簡単だと思うんだが・・・

なんか勘違いしてたらスマソ
0677669NGNG
ゴバ━━━━(゚∀゚)━━━━ク!!!!

一般的なサブフォームの考えっぽ orz

____________________________
| | | 例えばこんな感じで左で顧客データ
| | | 右に明細 とかって・・・アカン?(´・ω・`)ショボーン
| | |
| | |
|_____|_____________________|
0678デフォルトの名無しさんNGNG
Denpyomanって6万くらいだべ?せいぜい2〜3人日。
作るアプリの規模がどれくらいかわかんないけど、普通に考えて元は取れるでそ。
0679デフォルトの名無しさんNGNG
>>678
横レスだが、値段の問題じゃなく、こういう市販を嫌う人って多いのよ。
なんでも自分でやるって考えみたいな。
0680デフォルトの名無しさんNGNG
>>679
俺が昔勤めてた会社も自社専用ライブラリとか作ってやってたよ。
小さな会社だったけど。
0681デフォルトの名無しさんNGNG
そんなもんか。
俺的には外部OCX使って楽してこそのVBだろって思うんだが・・・
データアクセス部分を自前で書いてライブラリにする、とかならともかく、
正直UIには手間掛けたくないなぁ。
0682デフォルトの名無しさんNGNG
まあ考え方は色々だからねえ
後々買ってきたライブラリでは処理できない事にぶつかったり
OSのバージョンアップでそのライブラリが使えなくなったり
そのライブラリ作った会社がつぶれたりサポートがetc.
した場合を言い出したらきりがないが。
俺はあるのなら買ってくる派だが、自社ライブラリは悪いとは思わないな
0683デフォルトの名無しさんNGNG
 VB6.0に標準で入っているコンポーネントの中で、AccessのSubFormに
一番近い雰囲気を持たせられるコンポーネントは他にあるんだね。
 DataRepeaterコントロールと言うのがそれで、後は下記リンク参照。

http://www.microsoft.com/japan/developer/library/VBCon98/vbconusingdatarepeatercontrol.htm
0684デフォルトの名無しさんNGNG
>>672
set rs = CreateObject("ADODB.Recordset")
sql = "SELECT * FROM kuma.csv "
con = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=C:\hoge"
rs.Open sql, con, 0
rs.MoveFirst
Do Until rs.EOF
WScript.Echo ( "[" & rs.Fields("NO").Value & "]")
rs.MoveNext
loop
rs.Close

おかしいなー。VBSだけどこれで問題なく動くよ。
どんなコードを書いてるの?
あと環境は?
当方WinXPSP1、MDAC2.7。

con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\hoge;" & _
"Extended Properties=""text;HDR=Yes;FMT=Delimited;"";"
もしかしたらこれで正しく動くかも。
0685668NGNG
みなさんたくさんのレスありがとうございました。OCXは今までに何個か購入して
使っているのですが、新しく「Denpyoman」を買うつもりはないみたいです。
>>678さんのいう通り、事務処理系のソフトを作っている自分の会社なら6万円で
も十分に元がとれると思ったのですが、値段が高いそうです。
>>683さんの教えてくれた「DataRepeater」は興味があるのですが、誰も使った
ことがないので、時間をゆっくりかけて調べて行きたいと思います。
今回の作業に関してはSpreadを使う事になりました。そこでSpreadについて質問
させてください。Spread内でのGotFocusプロシージャとはないのでしょうか?
列が移動する度にステータスバーに何を入力するかを表示したいと考えています。
0686デフォルトの名無しさんNGNG
2重起動防止の処理としては下記のコードが有効ですよね。

If App.PrepInstance Then
End
End If

でも、先に起動していたほうを(強制)終了することを試みたのですが上手くいきません。
ちなみに次の操作を行いました。

クラス名を"ThunderRT6Main"、キャプションを"App.Title"としてFindWindowでハンドルの取得を試みたのですが、
そこで得たハンドルに"WM_QUIT"を送りつけた。
結果、上手く終了しませんでした。

有効な方法をご存知の方はみえませんか?
0687デフォルトの名無しさんNGNG
ごめんなさい。上の文章では自分でも何を言ってるのかわかりません。

2重起動防止の処理として、先に起動していたほうを(強制)終了したいのですが上手くいきません。
試した処理は下記のとおりです。

・クラス名を"ThunderRT6Main"、キャプションを"App.Title"としてFindWindowでハンドルの取得
・取得したハンドルに"WM_QUIT"を送る

有効な方法をご存知の方はみえませんか?
0688デフォルトの名無しさんNGNG
OSは?
この手の話は95系とNT系で若干異なる。

まあ、二重起動ってことは、殺される側も自分なんだから、死に易いようにきちんと作ればいいんじゃないのか?
0689デフォルトの名無しさんNGNG
あと、一応 ExitProcessとTerminateProcess が該当するけど、きちんとヘルプ読んで慎重に使用しましょう。
0690デフォルトの名無しさんNGNG
>>688
OSは、2000/XPです。
>殺される側も自分なんだから、死に易いようにきちんと作ればいいんじゃないのか?
ごもっともです。勉強します。

>>689
プロセスIDを取得するとき、ウィンドウハンドルが必要になりますよね。
上記のハンドル取得方法には問題ないのでしょうか?
0691デフォルトの名無しさんNGNG
ベタだけど、アプリ正常起動時にプロセスIDをどっかに出力しておく。
後起動側はインスタンスを確認し、存在したらそのプロセスIDを殺しに行く。
0692デフォルトの名無しさんNGNG
LeaveCell イベント
0693デフォルトの名無しさんNGNG
>>692 は >>685 へのレス。
0694668NGNG
>>692
ありがとうございます。成功しました。
Spredでもいろいろできるんですね、まだまだ勉強が必要ですが。
0695687NGNG
>・クラス名を"ThunderRT6Main"、キャプションを"App.Title"としてFindWindowでハンドルの取得
ハンドルを取得してから、プロセスIDの確認してみます。
とりあえずもう少し悩んでみようと思います。
皆さん、ありがとうございました。
0696668NGNG
連続質問で申し訳ないのですが、調べてもわからなかったので教えてください。
SpreadSeetで行ヘッダを選択し、行全体を指定している時に[Delete]キーを
押すと、その行を削除するという動作をさせたいです。
行の削除方法はすぐに見つかったのですが、行全体をしていしているという判
断をどのプロシージャで行えばいいのかわかりません。
ご存知の方がいましたら是非お願いします。
0697デフォルトの名無しさんNGNG
>696
SpreadのOperationModeが「単一選択モード」になってるのなら
SelModeIndexプロパティから行番号を得られます。

そうでないのなら、Clickイベントでヘッダがクリックされるたびに
その行番号をどっかに保持しておく、ぐらいしか思いつきません。
ごめんなさいね。
0698デフォルトの名無しさんNGNG
>>696
"ActiveRow"っていうプロパティがあったと思ったが…
0699デフォルトの名無しさんNGNG
VB.NETの質問はここでしていいのですか?
昨日購入し、まだ条件分岐を覚えたレベルです。
binフォルダにあるexeはVBがインストールされているPCでしか使えない。
という事ですが、配布されている方はどうやってexeを作っているのですか?
アプリケーションをうまく初期化できませんでした?見たいに表示されるみたいです。
自PCじゃないので詳細なエラーメッセージがわからないのですが、宜しくお願いします。。
0700デフォルトの名無しさんNGNG
>>699
良くない。>>1に書いてあるだろ…

相手のPCに.NET Frameworkが入ってないとか…
0701668NGNG
>>698
はい、ActiveRowというプロパティは調べました。実際にDelete処理を行う時に
使うつもりです。今自分ができないところは行ヘッダを選択しているのをどうや
って知るかです。行ヘッダを選択してもActiveColは列の1番目を認識していて
、この状態でDelete処理を入れると、単に列の1番目でDeleteキーを押しても行
を削除してしまうのです。
0702デフォルトの名無しさんNGNG
よろしくお願いします。
�@Timerの時間は、最長何分位まで設定可能なのでしょうか?
 60数秒に設定したらダメで、60秒(60000)はOKでした。

0703デフォルトの名無しさんNGNG
MaskEdBoxで、日付型変数(dat)を表示したいのですがうまくいきません
MaskEdBox1.Format = "ggge年m月d日"
MaskEdBox1.Mask = "&##年##月##日"
MaskEdBox1.Text = dat

MaskEdBox1にdate型変数(dat)を入れようとすると
「実行エラー380 プロパティの値が不正です」と出ます。
.textの位置を.maskの上に持っていくと.textに代入したdate変数の値は失
われます。
1週間悩んでます誰か助けて下さい(涙
0704デフォルトの名無しさんNGNG
>>702
2^16-1 = 65535(ms)
65秒とちょっと。
0705702NGNG
>>704
ありがとうございます。
では、65秒以上のタイマーイベントは使えないのでしょうか?
更に長い時間のタイマーを使える方法等ありましたら、
教えていただきたいです。

よろしくお願いします。
0706デフォルトの名無しさんNGNG
シーケンシャルアクセスファイルについて

ただ今、

Dim strbuff As String

Open "C:\a.txt" For Input As #1

Line Input #1, strbuff
MsgBox strbuff

T1.Text = strbuff

Close #1

↑このようにし、テキストボックスをファイルに書き出す事をしています。
この場合、"C:\a.txt"にしておりますが、
ゆくゆくは、実行ファイルと同じディレクトリ内にファイルを作成したい
と思っております。
このディレクトリは、あちこちのドライブ&ディレクトリに動かします。

こんな場合でも、ファイル(設定ファイル)を読み書きするにはどのような
記述をすればよろしいのでしょうか?

よろしくお願いしますm(__)m

0707デフォルトの名無しさんNGNG
>>705
タイマーイベントの中に static な変数を宣言して数える。
0708デフォルトの名無しさんNGNG
>>705
0.5秒とか0.1秒ごとにtimerで監視して行う
Windowsのタイマーイベントは精度があまりよろしくないので
どのみちこんなやり方しないと誤差がひどくなる
0709デフォルトの名無しさんNGNG
>>706
App.Path & ”\a.txt”
レジストリやDocuments and Settings\usrname のほうがよくない?
0710デフォルトの名無しさんNGNG
>707
解雇
0711デフォルトの名無しさんNGNG
Longで宣言した変数の下位1バイトだけをとりだして、Byteの変数の移したいのですが、どのようにすればいいのでしょうか?
0712デフォルトの名無しさんNGNG
>711
ネタ?
0713711NGNG
>>712
ごめんなさい。ネタじゃないんです。
何かすごく基本的なことを忘れてるような気はするんですが…
0714デフォルトの名無しさんNGNG
>713
マスクかけるだけ
0715デフォルトの名無しさんNGNG
>>714
マスク、ですか…?
やってみます。
0716711NGNG
>>714
すいません。マスクってANDとかORのことですよね?
それならもうやってるんですが、どういう風にマスクをかければいいんでしょうか?
0717デフォルトの名無しさんNGNG
OR 255
0718デフォルトの名無しさんNGNG
>717
ごめん。ウソ。AND 255
0719デフォルトの名無しさんNGNG
AND 255
0720デフォルトの名無しさんNGNG
下位1バイトを取り出すってことは 2進で
00000000 00000000 00000000 11111111
ってやつとAND計算すれば、上位3バイトは0になって下位1バイトだけ残る。
といわけで>718が合ってる。
0721711NGNG
>>717-720
。・゚・(ノД`)・゚・。 ありがとうございます。できました。
なぜかOR 255 にしてました。
散々悩んでたのが氷解しました。
本当に感謝です。
0722デフォルトの名無しさんNGNG
>>706
>このようにし、テキストボックスをファイルに書き出す事をしています。
チミのソースコードに”ファイルに書き出す”処理は見当たりません。

もう少し日本語勉強してから質問してね(はぁと
0723デフォルトの名無しさんNGNG
はじめまして。
あるソフトを自動でクリックしつづけるソフトが作りたいのですが。
人間がではなくVBがマウスをクリックする・・・というのは、どうすればできるでしょうか??
メッセージを送ればいいのかなぁ・・・とも思いますが。
0724デフォルトの名無しさんNGNG
>>723
SendMessage
0725デフォルトの名無しさんNGNG
>722
ここまで物事が分かってない奴がいるとどうしようもないな。
君はプログラム未経験者かな?
出直してください。
0726デフォルトの名無しさんNGNG
補足
>725は706じゃなくて722のことだよ。
0727デフォルトの名無しさんNGNG
4年前私はマイクロソフトのCOM+2.0の評価メンバーに誘われました。
私の興味はASPの組み込みオブジェクトに興味があったのですがそれでも参加することにしました。
COM+2.0の仕様書を見て私は驚愕しました。
すべての言語の境界がなくなり、さらに便利で強力なクラスが膨大に盛り込まれていたのです。
それは後に.NETと名づけられました。
0728デフォルトの名無しさんNGNG
ネーミングセンスが最悪なわけだが
0729デフォルトの名無しさんNGNG
使用OS:WinXP
VBバージョン:VB6(SP5)

ADO接続でcsvを読み込み、FlexGridに表示したいのですが、

CN.ConnectionString = "Provider...
CN.Open

strSQL = SQL文
RS.Open strSQL, CN, adOpenStatic, adLockOptimistic, adCmdText
Set FlexGrid.DataSource = RS
  ↑
この行で「オブジェクト変数またはwithブロック変数が設定されていません」というエラーが出ます。
原因がわかりません・・・。よろしくお願いします。
0730デフォルトの名無しさんNGNG
写真を保存するデータべースソフトを作ろうと思っています。
フォームにイメージがあり、それに画像を読み込むとします。
例えば、プログラムを起動した後、
img1.bmpという画像を読み込んだとします。
読み込んだ画像を、プログラムを終了したときにセーブし、
次回プログラムを起動したときに自動的に読み込むためには
どんな関数を使えばいいでしょうか?
0731デフォルトの名無しさんNGNG
>>729
原因は「オブジェクト変数またはwithブロック変数が設定されていません」ってことです。
エラーの発生する行に「オブジェクト変数」がありますよね?
それが空だってことです。

自分が何をどの様に使っているのかを理解しないといけません。
コードだけを教えてもらったり、どっかからコピーしてきただけでは
それを理解することは難しいでしょう。
自分の書いたコードの全ての行の意味を理解しましょう。
0732デフォルトの名無しさんNGNG
>727
マルチうぜー
0733デフォルトの名無しさんNGNG
>>731
できました。ありがとうございます。
0734sageNGNG
使用OS:WinXP
VBバージョン:VB6(SP5)

メインのプロジェクトより複数の外部EXEファイル(VBで作成)を起動させ、
メインプロジェクト終了と共に、外部EXEを全て終了させたいのですが
どうにもうまくいきません。

APIやレジストリを使えばうまくいくのかもしれませんが、
使ってはいけないとの制限です。(ここらへんは追及しないでください・・・)
色々調べましたが「不可能」という回答もちらほら見かけます・・・。
もし、可能であればご教授願いたく、書き込みしました。

初心者的なことなのかもしれませんが、よろしくお願いします・・・。

0735734NGNG
うう・・・
ひさびさに書き込んだらageてしまいました・・・
もうしわけありません・・・。
0736デフォルトの名無しさんNGNG
API使っちゃダメなら不可能じゃないか?
0737734NGNG
>>736

返答ありがとうございます。
Shellで起動してタスクID拾って、メインプロジェクト終了時に
ID調べてSendkey(ALT+F4)とか無理やりやってみたりもしましたが・・・
どうにもできなかったです。(2重起動不可にしてもIDが一意でなくなります)

メインの起動コマンドコントロールをFalseにすれば一意性を保てますが、
外部EXEを単体で終了させると制御が戻ってこないのでFalseのまま・・・

やっぱり不可能なんでしょうか・・・。
0738デフォルトの名無しさんNGNG
マルチうぜー
0739デフォルトの名無しさんNGNG
>>730
そのファイル名をレジストリ、iniファイル、その他任意のファイルに記録するだけ。
0740デフォルトの名無しさんNGNG
>737
あのさ、API使っちゃダメって言ってるけど、そのAPIってのは
何のAPIのことを指している?
0741734NGNG
>>740

API関数です。
現在ひらかれてるウィンドウのハンドルとか取得できますよね?
他にもAPIっていわれてるモノあるんでしょうか?

初心者なものですいません。
0742デフォルトの名無しさんNGNG
マルチうぜー
0743デフォルトの名無しさんNGNG
APIってのはApplication Programming Interfaceのこと。
Win32APIだけがAPIではありません。

Win32APIを使うな、ということですか?
だとしたらやりたいことは実現できないと思います。
追求しないでと言われていますが、どうしてWin32APIを
使ってはいけないのか知りたいです。
0744デフォルトの名無しさんNGNG
>>734
API禁止はたぶん宿題かなんかだからだろう。
さてこういうのはどうだ?但し絶対ありえない原始的な方法。

外部EXEではTimerか何かを使って一定時間ごとにある特定のファイルがあるかを調べ、
あれば自分の名前をファイルに書き込み、自分は終了する。
メインプロジェクト側では終了時にその特定のファイル名を持ったファイルを作り、
そのファイルに終了したいプログラムの名前が全て書き込まれるまで待つ。
その後そのファイルを削除し、自分も終了。
0745デフォルトの名無しさんNGNG
>744
いやすぎるな・・・w
0746734NGNG
レス遅くなりました。すいません。

>>744
するどいご指摘。そんなかんじです。
744さんの方法もおもしろいですね。
でも、根本的になにか間違ってる気がしてきたので、
少し問題について問い詰めてみようと思ってます。
(実際には外部EXEには手を加えない、なので)

お答えくださった方々、ありがとうございました。
0747デフォルトの名無しさんNGNG
外部EXEをActiveX EXEで作るというのはだめでしょうか?
<外部EXE-Class1>
Public Sub form_open()
Form1.Show
End Sub

Public Sub form_close()
Unload Form1
End Sub

<呼び出し側>
Private ob As Object

Private Sub Form_Load()
Set ob = CreateObject("Project1.Class1")
End Sub

Private Sub Command1_Click()
Call ob.form_open
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call ob.form_close
End Sub
0748デフォルトの名無しさんNGNG
うざっ
0749デフォルトの名無しさんNGNG
VBでDBを読み込み、それをある条件で抽出したいのです。
ある条件とは、チェックボックスを用意して、それのチェックで条件が変わります。
例えば、
病気DBがあり、そのDBは、病名フィールドと症状フィールドで1つのレコードとなっており、
チェックボックスは、発熱、頭痛、腹痛、嘔吐、めまい、などの症状があり、チェックされた症状の全てを含む病気レコードを抽出したいのです。
以上のためには、どのようにやる方法があるのでしょうか。

他のところで質問したところ、罵倒を浴びたのでこちらに書かせて頂きます。
0750デフォルトの名無しさんNGNG
質問です。

VBには、Quick BASICのinkeyに相当する命令ってあるのでしょうか?
例えば、プログラムを実行して、処理の途中で、
画面に"Press any key to continue"と表示して、
何かキーを押すと処理を続けるようにしたいのですが、
VBでも可能でしょうか?

もしわかる方がいたら、教えてください。
お願いします。
0751デフォルトの名無しさんNGNG
>>749
DBの形式は何ですか?
0752デフォルトの名無しさんNGNG
>>750
ClickイベントとかKeyDownイベントでしょうか。
0753749NGNG
DBの形式というのは…Accessであってますか?
0754デフォルトの名無しさんNGNG
>>753
どんな罵声を浴びたか知らぬが、1から10まで手取り足取り教えないといけないのか?
本屋にでも行って入門書買いあさってきてくれ
0755デフォルトの名無しさんNGNG
ざ
0756749NGNG
一応5、6冊見たんですけどわからないんですよ。
例として書いてあるのは、チェックボックスが2つとかで、
if使ってどちらかが…て感じだから使えないし。。。
だから、ヒントだけでもと思って質問してみました。
0757デフォルトの名無しさんNGNG
>>756
そうか。あなたにプログラムの才能が無いのはよくわかりました。
近くにソフト会社は無いのですか?そちらに作成してもらって下さい。
0758749NGNG
すいません。
あなたのおっしゃるソフト会社に入る為に勉強をしているんです。
何か良い本とかサイトとかヒントとか教えていただけないでしょうか?
0759デフォルトの名無しさんNGNG
そうなのか。_| ̄|○
適当にがんばってくれ。
0760デフォルトの名無しさんNGNG
>>749
ADOでAccessファイルを読み込む
SQL文で任意のレコードを抽出

てな辺りを調べてみるとか。
0761749NGNG
任意のレコードを一つの条件だけで抽出なら既に出来ました。
ただ、今回作っているものは毎回条件が変わるので、そうするとどうすればいいのかわからないんです。
0762デフォルトの名無しさんNGNG
>>752
ありがとうございます。
参考書があっても、どこを見たらいいのかわからない状態だったので、
とても助かりました。
0763デフォルトの名無しさんNGNG
>>761
WHERE条件がわからんの?
チェックされてる時だけ AND 症状 でつなぐ。
0764749NGNG
>>763
とりあえず、一つの条件で抽出する時は
Main.rscmdMaster.Filter = "症状 like *頭痛*"
って感じに書いたんですけど、、、

チェックされてる時だけっていうのは、
If Check1.Value = 1 Then
ってのから書き始めるんですか?
0765デフォルトの名無しさんNGNG
>>764
そんな感じ
0766749NGNG
>>765
いやぁ、実はここまではもう行き着いてたんですが、この先がわからないんです。
If Check1.Value = 1 Then
Main.rscmdMaster.Filter = "症状 like *頭痛*"
End If
If Check2.Value = 1 Then
Main.rscmdMaster.Filter = "症状 like *発熱*"
End If
じゃできないですし、入れ子にしても駄目でしたし、、、
0767デフォルトの名無しさんNGNG
文字列を連結したいなら
s = s & "a"
s = s & "b"
ってな感じで出来るで。
0768デフォルトの名無しさんNGNG
スマソ、>>763これ間違い。
"OR 症状"
でつながないと駄目だ。
0769749NGNG
教えてくださった皆さん。
本当にありがとうございました。
何か出来そうです。
ありがとうございましたm(_ _)m
0770749NGNG
すいません、749です。
また新たな問題が…

If Check1.Value = 1 Then
Ref = Ref & "症状 like '*頭痛*' and "
End If

If Check2.Value = 1 Then
Ref = Ref & "症状 like '*発熱*' and "
End If

Ref = Replace(Ref, " and ", "")

deMain.rscmdMaster.Filter = Ref

このように記述したところ、
チェックボックスを1つチェックしただけならきちんと抽出出来るのですが、
2つチェックするとエラーが出ます。

どこが間違ってるのでしょうか?
0771デフォルトの名無しさんNGNG
>>770
エラーならエラーメッセージくらい書け
質問するのはもう少しVBの基本的な使い方覚えてからにしたほうがいい
疑問が出るたびにここで質問するつもりか?
0772749NGNG
>>771
すいません。
エラーは、「引数が間違った型、許容範囲外、または競合しています。」です。

これって、基本的な間違いをしてるんですか?
0773749NGNG
772の追加で
実行時エラー 3001 です。
度々すいません。
0774デフォルトの名無しさんNGNG
>>773
ちっとは自分で考えろ。
人をあてにするな。
0775デフォルトの名無しさんNGNG
>>773
デバッグの仕方覚えた方がいいよ
0776デフォルトの名無しさんNGNG
>>770
何の為に" and"を削除してる?
0777749NGNG
すいませんすいません。
必要なところまで修正・削除してました。
これが正しいやつです。

Ref = Ref & """" '先頭に「"」を入れる

If Check1.Value = 1 Then
Ref = Ref & "症状 like '*頭痛*' and "
End If

If Check2.Value = 1 Then
Ref = Ref & "症状 like '*発熱*' and "
End If

Ref = Ref & """" '最後にに「"」を入れる

Ref = Replace(Ref, " and """, """") '最後のandを削除(「 and "」 を「"」に置換)

deMain.rscmdMaster.Filter = Ref

771さんのおっしゃるとおり基本的なことが出来てませんでした。
すいませんでした。
0778デフォルトの名無しさんNGNG
757みたいな奴に反応したら負け。俺も負け。
0779デフォルトの名無しさんNGNG
>771
いや、別にあなたのような人には聞いてないのですが。
そんな不快ならあなたが書き込まなければ済む話でしょ?
脳みそは少なめのようですね。
0780デフォルトの名無しさんNGNG
>>779
あなたが解答すれば済む話でしょ?
脳みそは少なめのようですね。
0781デフォルトの名無しさんNGNG
zai
0782デフォルトの名無しさんNGNG
まさか新大阪か?
0783デフォルトの名無しさんNGNG
久々に「ホームラン級のバカだな」って言葉を使いたくなった。
0784デフォルトの名無しさんNGNG
ファイル選択ダイアログの出し方教えてください
ぐぐってみまましたがあるようでないみたいです
できれば、ツリードライブ検索でネットワーク対応があれば最高です
お願いします
0785デフォルトの名無しさんNGNG
まるちはマジでうざい
0786デフォルトの名無しさんNGNG
つか、ageで、マルチかい。
でもって、ぐぐったらやまほど出てくるから。もっかい探せ。
…そのまえに、MSDNにもばっちりかいてあるとおもうぞ。
0787デフォルトの名無しさんNGNG
>>785-786
キーワードください
0788デフォルトの名無しさんNGNG
VB6.0SP6
OSは2000SP4

昨日からプログラム始めましたよろしくお願いします。
コマンドボタンのCaptionをLabel.Alignment=0のように左揃いで出したいのですが
そのプロパティがないのでできません。(自動で中央揃いのみ?)
なんとかできませんか?デカいボタンが好きなんです。
0789デフォルトの名無しさんNGNG
>>788
台詞の右側に適当に空白つっこんだらだめかね?
解決じゃなくて、回避だけど。これじゃ。
サイズ変更なんかしないんだから、これでいんじゃない?
0790784NGNG
っていうかMSDNで顧問ダイアログみたけど
そんなんじゃない。もっと高機能つーかツリー系のやつ
たぶんCreateObject("????.SEHLL") ← こんな感じでつかえた
過去に使ったけど忘れたからきーてるワケ
0791デフォルトの名無しさんNGNG
>>790
SHxx系のAPIを調べる。
あとは自分でどうにかしろ。
0792788NGNG
>>789
レスありがとうございます。
しかし、Capitionの内容はLogの状況でころころ変わり、
ウィンドウサイズを変更するとそれに合わせて
目的のコマンドボタンの幅も変わるようになってるので
(できるだけボタンを大きく取りたい)
適当な空白数を計算する策は私にとっては難しいです・・、どうかよろしくお願いします
0793デフォルトの名無しさんNGNG
>>790
なんで質問してるのにそんなえらそーなん?
だから、普通にぐぐれば見つかるから探せよ。
高機能でツリーな奴もAPIで一発だろ。そのままずばりを解説したHPもあります。
てめーがサーチ能力もないクズだからみつからねぇワケ。
0794初めて4日目の名無しさんNGNG
ググるときのキーワードを教えていただけませんか?
お願いします><
0795デフォルトの名無しさんNGNG
やかましい、今さら泣いてもおそいんじゃぼけぇぇっっ
つか、こんなとこでうだうだやってる間にまじめに探せばみつかるんじゃ、あほがぁぁ
SHGetPathFromIDListA
これくれてやるから、とっととうせろ、この、くれくれたこらふぇちやろうがぁぁ。
0796デフォルトの名無しさんNGNG
クソまじめに努力するこたぁない!
>795に任せりゃケツに答えを突っ込んでくれる!
0797デフォルトの名無しさんNGNG
>>792
なろほろ、そういう用途なら、決めうちではいかんですな。
んじゃ、ひたらす回避路線ですが、コマンドボタンの上にラベルのっけたらだめなの?
0798デフォルトの名無しさんNGNG
まあでも、この程度の奴がSH系のAPIを使うのは非常に危険に思える。
正直、やめといたほうがいい。
ダイアログを自作しちゃったほうがマシにも思える。
0799デフォルトの名無しさんNGNG
>>798
危ないおもちゃを与えてしまった気分満タン。
0800デフォルトの名無しさんNGNG
>>797
ボタンの上にラベルって乗っかるか?

>>792
コマンドボタンのキャプションが変わるっつーインターフェイスに疑問があるが・・・
イメージBOX&ラベルで無理やりつくるか
ピクチャBOXで作るかじゃだめなのか?
0801デフォルトの名無しさんNGNG
>799
君ごときが人に何か与えられるなんて思い上がらない方がいいよ。
0802デフォルトの名無しさんNGNG
VB6(SP5)なんですけど、データベースを使ったソフトを作って配布しようと思っています。

しかし、再配布できるDBエンジンって何があるのかがわからないのですが、どなたか詳しい方は、教えていただけないでしょうか?
ちなみに、現在、"Microsoft DAO3.6 Object Library" が参照されていますが、これは再配布できなかったように思います。
また、これ以降(.net)には、再配布可能なDBエンジンはついているのでしょうか?

#・・・データベースを使ったソフトを作る場合って、どうするのが一般的なんだろうか・・・

0803デフォルトの名無しさんNGNG
>>800
やってみた。どうあっても後ろに引っ込むな。だめだこりゃ。すまんかった。
0804デフォルトの名無しさんNGNG
>>802
DAO=JETデータベースエンジン=MDBファイルは再配布可能。

あと、MSDEも再配布可能・・・だけどインストール先に十二分以上に確認しないと文句言われます。
(SQLServerそのものですから重い)
0805デフォルトの名無しさんNGNG
>>801
なんだこれ?
0806デフォルトの名無しさんNGNG
>>805
馬鹿は無視しろ。
0807デフォルトの名無しさんNGNG
>802
DAOは3.5も3.6も再配布可能なパッケージがあるから探せ。
細かいVer.とかサブセット版もあるから注意しろ。
国内サイトじゃほとんどないから海外サイト探せ。

それがダメならADOで組み直せ。
ADOならMDAC入れりゃいいから問題なかろう(MS純正・再配布可能だし)

あと肝心のDBの種類が書いてない。それに依存する話なら上記は忘れろ。

>788
まずFormのサイズに合わせてCommandButtonのサイズも変わるというクソな仕様を止めろ。
止められないなら見えない場所にLabelを貼って、AutoSizeをTrueにしろ。
それでLabelのCaptionに適当な文字列ブチ込みゃWidthが文字列に合わせて変わるから、
その数値を元にCommandButtonの幅なりCaptionに突っ込むスペースなり適当に計算しろ。
0808784NGNG
>795よ、とにかくもらっとくよ
SHGetPathFromIDListA
ほんとはVBなんでオートメーション系をきぼんぬだったが

            T H X!
0809802NGNG
>>804
>>807
ありがとうございました。
ソフトウェアは、これから作るので、データベースの種類は、これ、っていうのはないんです。
ソフトをインストールするだけで、すぐに使えるようにしたいので、自作ソフトと一緒にデータベース関係のファイルを再配布したいのです。

で、一応、血眼になってぐぐってみたのですが、

http://support.microsoft.com/?scid=kb;ja;233002&spid=3042&sid=global

こんなのが見つかりました。
これを読む限りでは、dao3.6 + jet4.0 は再配布しても良いように思えるのですが、Microsoft Visual Studio6.0 ユーザーに対するものなのか、今一つわかりません。
0810デフォルトの名無しさんNGNG
>808
まあまあ、このスレのレベルじゃ期待通りのものが出てくる
ことはあまりないから。
0811デフォルトの名無しさんNGNG
このスレにはよく低レベルの煽り厨が出てくるが無視するのがいい。
0812デフォルトの名無しさんNGNG
>>749-759
こらお前ら、飲んでたほっとレモン
キーボードに吹いちまったじゃねーかw

0813デフォルトの名無しさんNGNG
キーボードイベントをメモ帳やwordなどから拾いたいのですが、どうすればよいでしょうか?

VBで作ったフォームからキーボードイベントは拾えるのですけど、他のアプリから
拾う方法がわかりませんでした。

どなたかヒントください。宜しく御願い致します。
0814デフォルトの名無しさんNGNG
>802
807だ。
これから作るにしてもDBの種類ぐらい決めておかないとそのうち質問すら出来なくなるぞ。

で、DAOとJETは再配布してもよい。MDACもだ。でなけりゃMSのサイトからDownload出来る訳がなかろう。
俺が書いたDAOは、このページに書いてあるDLL単体じゃなく、インストーラ付きの
エンドユーザ向けランタイムパッケージだ。必ずあるから死ぬ気で探せ。

でだ、DAOにしろJETにしろMDACにしろ、いずれかのDBエンジンはOSによって
最初から入ってる/入ってない、もしくは入ってるVer.の違いというものがある。
例えばMDBの場合、Win2k以降ならMDACを入れなくてもADOなら動く(ただしMDACのVer.は古い)
そこらへんキッチリ調べておかないと、ユーザに古いDBエンジンを上書きインストールさせる羽目になるぞ。
0815814NGNG
>814は無視してください。
0816804NGNG
>>809
だから、DBMSとして、JETでもMSDEでもただで手に入るんだって。
JETは2000前のACCESSのDBMSそのもの。
MSDEは制限つきのSQLServer。

上記に対するミドルウェアとして、DAOでもRDOでもADOでもVBを持っていて、
そこからインストーラーを作成してれば再配布可能。
0817デフォルトの名無しさんNGNG
VB6SP5を使っているのですが、フルパスを渡してそれがファイルなのか
フォルダなのかを判別するにはどうしたらいいでしょうか?
Dir関数の使用例に
'ビット単位の比較を行い、フォルダかどうかを調べます。
If (GetAttr(Path$) And vbDirectory) = vbDirectory Then Msgbox "これはフォルダです"
のようなものがあるのですが、これを使ってみるとなぜかフルパス中に半角スペースが含まれているとエラーになります。
Path$ = """" & Path$ & """"
と入れてみましたがやはりエラーになります。
0818817NGNG
ごめんなさい、SP6でした。
0819デフォルトの名無しさんNGNG
>>818
特にエラーは出なかったが、どんなエラーだ?
0820817NGNG
>>819
えぇ、そんなはずは・・・、と思ってもう一度ソースを見てみたら
判別する前の状態で半角スペースがあるときは["]を付加してありました。
それを取り除けばできました。
申し訳ないです orz
0821デフォルトの名無しさんNGNG
807だ。
>815
お前は誰だ?(w
0822デフォルトの名無しさんNGNG
再配布可能ファイルとそうでないものはどのように判別できますか/してますか。
0823デフォルトの名無しさんNGNG
>>822
ちゃんと書かれている。TXTを読めばわかる。
0824デフォルトの名無しさんNGNG
>>823
使用範囲を広げた再頒布可能コードってどういうことですか?

TABCTL32.OCXなんですけど。
0825デフォルトの名無しさんNGNG
>>810
まあまあ、その質問の仕方じゃ回答があっただけでも奇跡と思えって話だぞ。
回答の催促に情報小出しつつもらった回答への難癖とぎりぎりまでお礼なし。
しかも、一番最後に「本当は○○がほしかった」おっしゃられる。
最初にそれ言えば一発じゃんよ。
調べるのにつきあってたやつ乙。
0826802NGNG
了解しました。

dao3.6 + jet4.0

で行こうと思います。
ありがとうございました。
0827784NGNG
>825が助けふねをだしてくれたようなので
仕切りなおしたいと思います

オートメーションで呼び出せる「ファイル選択ダイアログ」はないでしょうか?
よろしくお願いします
0828デフォルトの名無しさんNGNG
>784
>827

おもしろそうだからオレもまぜてクレ

Windowsのエクスプローラーのようなダイアログがほしいのか?
とりあえずツリー型のサンプルとか投下してみるテスツ
ttp://www.mvps.org/btmtz/vbexplorer/
0829デフォルトの名無しさんNGNG
microsoft common dialog controlみたいな名前のコントロールでいろんなダイアログが使えるよ
0830デフォルトの名無しさんNGNG
糞だなw
0831デフォルトの名無しさんNGNG
助け舟じゃなくダメ出しだよな・・・。
まあ、IEインストールで入れられるActiveXでその類があったように思うけど、自分で調べろって感じかな?
SHxxxのAPIのHPとかを見ていったり、そこでのキーワードで再度グーグルしたりすれば、たどり着いたような薄い記憶はある。
まあ、環境限定がAPIの場合より厳しいので使わなかったからうろ覚えだけど。
0832822NGNG
>>823
どのtxtでしょう?
sp6のredist.txtは見たが、これだけではないよね。
たとえば、cmct2jp.msmが再配布可能かどうかはどこでわかりましょう?
0833822NGNG
つまり、最初のredist.txtと最新spのredist.txtを見ても
中間のspで再配布可能となったと思われるファイルについては何も分からないけど
どこで分かるのか、ね。
0834デフォルトの名無しさんNGNG
>>832
VBのヘルプを再配布とかインストーラをキーに検索して、その辺りを兎に角読む。
0835デフォルトの名無しさんNGNG
>>788
SendMessage
0836デフォルトの名無しさんNGNG
>>833
中間のSPのredist.txtを入手して読む。
あるいは>>834
なにか、最近もらった回答に難癖つけるような物言いする人が多いのね。
0837784NGNG
>835
ちゃんとメッセージまでかかんとわからんだろ?
コマンドボタンに左寄せがないって言ってる椰子にSDKレベルで(ry
いやがらせか?
0838デフォルトの名無しさんNGNG
>>824
0839デフォルトの名無しさんNGNG
>>836
回答が役に立たたなかったら、率直に伝えた方がよいでしょ。
0840デフォルトの名無しさんNGNG
>>839
難癖つけるような物言い。
言い方があるでしょってお話し。
役にたたなかったら、役に立たないということは正常かと。
0841デフォルトの名無しさんNGNG
VBでADOを使ってアクセスデータベースに接続したいのですが、
SQLに、VBA関数を使ったクエリを表示しようとすると

実行時エラー '-2147217900 (80040e14)'
式に未定義関数 '関数名' があります

という、エラーが返ります。
このエラーの対処法を教えていただけないでしょうか?



0842デフォルトの名無しさんNGNG
>841
それだけじゃ何も分かりません。
0843デフォルトの名無しさんNGNG
>841
 Accessで慣れると必ずやるんだよな、これ。
 対処方法? VBAの関数を使わないクエリにするしかない。
 (この場合、DAOでもVBAの関数は使えない)
 でなければ、素直にAccessで作る。

 要件(規模含む)次第だが、この場合、VBを使わないでAccessを
使った方が生産性高いかもな。(どちらも長短がね)
0844デフォルトの名無しさんNGNG
>843
お返事ありがとうございます。

つまり、外部からaccessのクエリを利用するには、
そのSQL分は、標準のSQL関数しか使えないという事でいいでしょうか?

別の実装方法を考えたいと思います。
ありがとうございました。
0845813NGNG
自己解決しました。お騒がせしました。
0846デフォルトの名無しさんNGNG
VB6.0使用
shellを使って、バッチファイルを呼び出しているのですが、うまくいきません。
バッチファイル内部では別のプログラムを呼び出していて、そのバッチファイルを
ダブルクリックで起動した場合は、正常に動くのに対して、
VBから呼び出した場合に、エラーを吐き出し、正常に終了しません。

Dim path As Variant 
Dim procID As Variant
Dim cmd As Variant
path = batPath.Caption   '実行するバッチファイル格納場所
procID = ID_param.Text   '実行パラメータ
cmd = cmd & path & " " & procID
Shell (cmd), vbNormalFocus
プログラムは現在このようになっています。

バッチのエラーから、おそらくVBでのバッチ実行時のパスに問題があるのではないかと
思うのですが、なにか、対処法ありますでしょうか?
0847デフォルトの名無しさんNGNG
>>846
できればエラーの内容を書いてほしいんだけど…。

バッチファイルのパスに空白が含まれているのかも。
試しに path の前後を二重引用符で囲んでみよう。

あと、cmd = cmd & path & " " & procID となってるけど、
cmd は元々空白だから cmd = path & " " & procID
と同じことだよね。これは意図通りなのだろうか。
たぶん問題なかったと思うけど
バッチファイルを Shell 関数に直接渡して実行できるんだっけ?
0848デフォルトの名無しさんNGNG
>>846
こうじゃないの?
Shell (cmd), vbNormalFocus → Shell (cmd, vbNormalFocus)
0849デフォルトの名無しさんNGNG
1.ShellExecuteEXで関連付けでバッチを起動させる。(やったことない)

2.cmd.exe?comか忘れたが、UNIXとかでいうところのShellに引数を与える形式
コマンドプロンプトで CMD /? を実行してみればわかると思う。
Shellに渡すコマンドは・・・。
 CMD バッチフルパス オプション
でいけると思う。
細かい部分は自分で試してください。

0850デフォルトの名無しさんNGNG
どこかのサイトで
フロントエンドのユーザインタフェースはVBで。
バックエンドのサーバ側はJavaで。
という例を見たのですが、こういうのって最近多いのでしょうか。
VB単体、Java単体で動かすのは理解できるのですが、これらの連携というのがイマイチイメージできません。
VB側からJavaを呼ぶって具体的にどうやるのでしょう?
サンプルのコードなんかがあるサイトを教えて下さい。
0851デフォルトの名無しさんNGNG
>>850
良くあるかはしらんが、普通に昔から三階層風に作ることはある。
サーバー側C言語で、クライアント、サーバー間はソケット。
サーバ側は管理プロセスが通信の送受信とその受信したデータのサーバ側プロセス(スレッド)への割り振りを行う。
同じように単にJAVAにしてるだけじゃないの?

上記の管理プロセスは1プロジェクトで作るには豪華すぎるから、売ってるものもあるはず。
(タキシードとかってこの類でしたっけ?)
0852デフォルトの名無しさんNGNG
>>850
VBからJAVAよんでるって発想するとどつぼにはまるかもね。
>>851さんが書いてくれてるように、
単純に二つのアプリケーション(フロントエンド・バックエンド)がプロセス間通信してるだけだよ。
ソケットでも、ファイルでも、介在するものはなんでもいいんだけど。
たぶん、VBからJAVA、あるいは、JAVAからVBに制御はかけてないと思われ。
0853850NGNG
あーなるほど。そういう訳ですか。
VB+COMで作る3階層C/Sみたいな仕組みが用意されているのかと思ってました。
0854デフォルトの名無しさんNGNG
>853
この人本当に分かったのか疑問。
0855デフォルトの名無しさんNGNG
VBで自明のバグを列挙しませんか?
iif関数
iif(A,B,C)Aが真の場合B,Cを実行する
しかし結果はB
0856デフォルトの名無しさんNGNG
はあ?
何が問題なんだ?

IIF関数のTrueパートとFalseパートが両方評価されることはバグではなく仕様で明記されてるし。
0857デフォルトの名無しさんNGNG
。・゚・(ノД`)・゚・。
0858デフォルトの名無しさんNGNG
釣りかな・・・しかし結果がBって。
彼は何をバグと思って、どのような結果が正常だと思ってるんだろうか。
0859デフォルトの名無しさんNGNG
>855
まずお前の日本語をどうにかしろ。
0860デフォルトの名無しさんNGNG
VB5.0の話。

Dir("path\*.*")で、指定したパスに存在する最初のファイル名が得られ、
その後Dir("")を繰り返すと続きのファイル名が得られる。
それはいいとして、、、

どうやら、Dir("path\*.*")はFindFirstFileで
Dir("")はFindNextFileに相当するらしい。
で、Dir("")の戻り値が "" だった場合、
自動的にFindCloseが呼ばれてるらしい。

そのため、Dir("path\*.*")だけを繰り返し実行していると
FindCloseされず、ハンドルがどんどんリークしてしまう。
昔このせいでハマったことがあった。
とりあえずFind〜系のAPIを直接呼ぶことで回避した。

これって有名な話? VB6.0ではどうなのかな。
0861デフォルトの名無しさんNGNG
>>860
VB6でAPIMonitor使ってみてみたけど、
一回目は開いていないから当然FindCloseはしないとして、
二回目からは前のをFindCloseしているようだよ。
0862861NGNG
ついでにVB5.01CCEが入っているの思い出したから
見てみたけど、それも二回目からはFindCloseしているよ。

ちなみに、使ったAPIMonitorはこれ。
http://www.rohitab.com/apimonitor/
0863デフォルトの名無しさんNGNG
>>861
うおっ、レスはやっ。
そうか、VB6では問題ないのか。あの頃VB6があれば…。

あと、おかげさまでAPI Monitorの存在を知りました。
今まで自分でAPIフックのコードを書いていたよ…。orz
0864860NGNG
API Monitor使ってみました。これは便利だ。

で、手元にあったVB5.0 SP3で早速試してみたら、
ちゃんとFindCloseしてるじゃん!!

あの当時リークがあったのは間違いないので
SPを当てていないバージョンだったのか、それともVB4だったのか…。
なんにせよ、少なくともSPを当てていれば問題ないようなので
>>860は忘れてください。>ALL

なんか釣り師みたいになっちゃったな…。
0865デフォルトの名無しさんNGNG
バグではないが、
VB5では INT(100@/1@) がIDE/P-Codeでは100、ネイティブでは99となる。
VB6ではどっちも100。

どっかの掲示板で知って開発環境か実行環境かの判断につかったことがある。
(もちろんジョークでだが)
0866デフォルトの名無しさんNGNG
>>855
詳しく!

なにか問題あるの?
Aが真ならBを
偽ならCを返すんじゃないの?
0867デフォルトの名無しさんNGNG
>>866
他の言語とは動きが違うってこったろ
Aが真ならBだけを実行すればいいのにCまで実行するのは
男の仕様だよな
0868デフォルトの名無しさんNGNG
つうかそういう動作で遅くなるの判ってるから殆どの香具師がIIF使わないんじゃないのか・・・
醜くなるから漏れは使わないのもあるのだが・・・・
0869デフォルトの名無しさんNGNG
AccessのSQL文の中でたまに使う。VBでは使わん。
0870855NGNG
バグではなくて私がバカでした
ヘルプもろくによんでませんでした、てへ
ごめんね、つりじゃないよ
>動作で遅くなるの判ってるから殆どの香具師がIIF使わないんじゃないのか・・・
すきか嫌いかで言うと俺は
IF
 処理
ELSE
 処理 
END IF
   ↑嫌い
IF 処理 THEN 処理 
   ↑好き
ついでに三項演算子みたいなのもすきだイテレータはこのんで使う主義
0871デフォルトの名無しさんNGNG
IIFって文字列作成(SQL文のWHERE節)とかで使うけどね。
AND条件を羅列するときに、既に条件があればANDをつけるとか。
WHERE A AND B AND C とかで、 WHERE以降のABCがアリ無しあるとき。

IF A <> "" THEN
hoge = IIF(hoge <> "", " AND " , "") & SQL条件文
ENDIF

一々IFで書くよ可読性が悪い。 A<>""もIIFでかけるけど、それをやるとIIFが二重になるから避けてる。
0872855NGNG
>871
なるほど、おいらはIIF関数の使いどころがずれていたみたいだね
IF文の代用に使っていたから.......
さすがにおいらもIIFの入れ子はしないさ
0873デフォルトの名無しさんNGNG
単純にBOOL->文字列変換と割り切ればいい。
兎に角、両方が評価されるという仕様をきちんと理解してれば問題なし。
0874デフォルトの名無しさんNGNG
>>866
無駄な計算をする。

Private Sub Form_Load()
Dim a As Long, b As Long, c As Long
a = 5
b = 2
c = IIf(a > b, a, Test(a))
End Sub

Private Function Test(c As Integer)
Debug.Print "通過"
End Function
0875デフォルトの名無しさんNGNG
>>874
だから、IIF関数のもっとも基本的な仕様に関して、それを言ってどうするの?
そもそも最初の人の無知が始まりだけどさ。
0876デフォルトの名無しさんNGNG
すいません、初心者的な質問なのですが
MDI親フォームの背景に画像を並べて表示をする事は可能なのですか?

一枚の大きい画像を表示するのはPictureプロパティにセットすれば良いと
いうのは分かるのですが、小さい画像をパネル状に並べる事は出来るのでしょうか?

開発環境は
OSはWinXp Pro VB6.0のSP4という環境です

方法等分かる方、よろしくお願いします
0877デフォルトの名無しさんNGNG
>>876
ブラシ
0878デフォルトの名無しさんNGNG
>>877
ブラシというのは、gdi32APIを使うと言うことでしょうか?

以前に、単色で塗りつぶしには使った事があるのですが
外部のビットマップファイルを読込んで使えると言うことですか?
0879786NGNG
>ブラシ
プゲラまたいやがらせだな
>878
並べて表示の機能を使う

0880デフォルトの名無しさんNGNG
ちょっとした疑問なんですが変数宣言でdim idx
とするとある時とつぜんIDXと大文字になるんです
idxは予約語かなにかでしょうか?
0881デフォルトの名無しさんNGNG
>>879
えっ、ブラシでというのはデマなのですか?
並べて表示というのはどうやるのでしょうか?

詳しいやり方などを教えていただけるとありがたいです
0882786 NGNG
>881
デマかどうか知らんが>ブラシの一言で何か分かったかどうか疑問
結局>881がじらされて面白がってるだけだと        思うよ
フォームをブラウザビューにしてHTMLで並べて画像の表示すれば
いいんじゃないかと思うがどうかなぁ 
0883デフォルトの名無しさんNGNG
>880
どこか他の場所ですでに大文字のIDXという変数が宣言されているのでは。
0884デフォルトの名無しさんNGNG
初心者ですまそ。

VBAなんかから関数を呼び出す場合、foo(arg1, arg2,..)とか書く場合と
foo arg1, arg2, ...とか()を書かない場合がある気がしますが、何の
違いがあるのでしょうか?
0885デフォルトの名無しさんNGNG
違いはない
0886884NGNG
Cばっか書いてたから・・・。

VBでは関数の()はあってもなくてもいいのですか。
>>885 氏サンクス。
0887デフォルトの名無しさんNGNG
>>884
Callステートメントの説明読めば理由が分かるよ。
0888デフォルトの名無しさんNGNG
>>885
いや、確かそうとも言い切れないケースがあったはす。
確か参照渡しの引数を一つ取る関数を括弧をつけて呼び出すと、
括弧をつけたことにより変数の参照ではなく値が渡されてしまい
期待するのと違う結果になる、みたいな話だと思ったが。。

VBに限らないけど、プログラミング言語ってちょっと触ってないと
どんどん忘れていくな。
0889デフォルトの名無しさんNGNG
>873
0890デフォルトの名無しさんNGNG
>873
ExcelのIF関数と同じと思えばいいのかな?
0891デフォルトの名無しさんNGNG
括弧をつけない
MsgBox "hoge"
MsgBox "hoge", vbOkOnly
MsgBox ("hoge")         ←───
MsgBox ("hoge"), (vbOkOnly)

括弧をつける
Call MsgBox("hoge")
n = MsgBox("hoge", vbYesNo)
n = MsgBox(("hoge"), (vbYesNo))
0892デフォルトの名無しさんNGNG
>871
WHERE句の最初に必ず満たす条件を
つけとけば判定1回づつで済まない?
例:
 strSQL = "SELECT * FROM TABLE"
 strSQL = strSQL & " WHERE 1 = 1"
 If A <> "" Then
  strSQL = strSQL & " AND " & SQL条件文1
 End If
 If B <> "" Then
  strSQL = strSQL & " AND " & SQL条件文2
 End If
0893デフォルトの名無しさんNGNG
IIf はパフォーマンスが悪いのも問題だが、
IIf(x = 0, 0, 1 / x)
みたいな書き方ができなくて不便でもある。
0894デフォルトの名無しさんNGNG
>893さん
なんでできないの?
0895893NGNG
>>894
上で散々話題になってるじゃん。
IIf って結局ただの引数が3つの関数だから、
関数に値が渡されるときに x = 0 のときでも、1 / x まで評価されて
0 除算エラーになってしまう。
0896デフォルトの名無しさんNGNG
>>892
SQL文に余計な条件をつけることで、万が一にパフォーマンス等に影響があったら論外なのでパス。
完全なプログラマ都合じゃん 1=1なんて。
0897デフォルトの名無しさんNGNG
テキストボックスに入力したファイルパスが存在するか調べるにはどうしたらよいですか?
c:\test\test.txtのように入力したときとかです
0898デフォルトの名無しさんNGNG
500とか600の値を時間としてh:nn:ssの形式で表示させていのですけど、
どうすればいいのでしょうか?
0899デフォルトの名無しさんNGNG
>>897
InstrRevで一番右の¥位置を取って、それより左をフォルダパスとして保持。
Dir関数で第二パラメータにvbDirectoryかなんか指定。

>>898
数値は何の値?秒数?文字列?(500は500秒?、5:00?)
0900デフォルトの名無しさんNGNG
>>899
すいません。秒数です。
0901デフォルトの名無しさんNGNG
60*60で割った商がH、60で割った商がM、60で割った余りが秒。
0902デフォルトの名無しさんNGNG
>>901
ありがとうございます。
0903デフォルトの名無しさんNGNG
>>899
ありがとうございまた
0904デフォルトの名無しさんNGNG
VBコードを変換したいのですが正規表現で置換しようと
思っていますが妥当でしょうか?アドバイスよろしくお願いします
<次の文字列は右のように変換する>
MLdbdata(hDBProc, 1) -> rs1.Field(0).value
MLdbdata(hDBProc2, 10) -> rs2.Field(9).value
法則1hDBProcはrs1に読み替える
法則2hDBProc1,10の10は常に-1する

0905デフォルトの名無しさんNGNG
>>904
すでにVBの話じゃないよな? 妥当? 好きなようにやればいい。
0906904NGNG
>905
わかった。ありがとう
秀丸板さがします
0907デフォルトの名無しさんNGNG
>899
解雇
0908デフォルトの名無しさんNGNG
┐(´-`)┌
0909デフォルトの名無しさんNGNG
マルチスレッドでグローバル変数の値を読んだり書いたりする際に
注意すべきことってありますか?
0910デフォルトの名無しさんNGNG
ADOである名前のテーブルが存在するかどうかはどうやってしらべるのでしょう?
SQL="Table Exist('NorthWind')"
conn.execute(SQL)
みたいなものだと予想してます
0911デフォルトの名無しさんNGNG
>910
え?
0912デフォルトの名無しさんNGNG
>>910
ADOXを使うとか。
ADODB.ConnectionオブジェクトのOpenSchemaメソッドを使うとか。
0913デフォルトの名無しさんNGNG
自己解決してたけどどーも


Const adSchemaTables = 20
rc = conn.openschema(adSchemaTables)
で、データベース内のいくつものテーブル名はコレクションとしてとりだされるから
rc("TABLE_NAME").valueをさらにFor EachとかDo whileで1個ずつとりだせた。


do until rc.eof
S+=rc("table_name").value
rc.movenext
loop

debug.print S
0914デフォルトの名無しさんNGNG
>913
さすが
0915デフォルトの名無しさんNGNG
>>909
VBのバージョンは?マルチスレッドの実現方法は?
0916デフォルトの名無しさんNGNG
>915
VB6.0で、実を言うとマルチスレッドと言うか、1つは
DLLからのコールバック関数で、もう1つはタイマーイベント
なんです。そもそもこれってマルチスレッドって言うんですかね。
0917デフォルトの名無しさんNGNG
>>916
スレッドのIDを表示させてみたら分かる。
0918デフォルトの名無しさんNGNG
>>916
開発環境はOKで、コンパイルするとNGってパターンじゃない?
そもそもVB6は普通のマルチスレッドには対応してなかったと思う。
「動く時はある」だろうけど、やっちゃいけないことではないかと。
0919デフォルトの名無しさんNGNG
VBのマルチスレッド処理は昔のVBマガジンにある。(前世紀かも・・・。w)
あと、PCDNとかでサンプルあるかもしれん。

マルチスレッド、出来る出来ないは出来る。でも、わざわざVBでやらんほうがいい。
0920デフォルトの名無しさんNGNG
>919
タイマ使ったらそれだけでマルチスレッドではないの?
0921デフォルトの名無しさんNGNG
>>920
だいぶ違うと思うぞ
0922デフォルトの名無しさんNGNG
>921
マジで。タイマーたくさん作ったらそれぞれ別スレッドで動いてると思ってた。
0923デフォルトの名無しさんNGNG
Windowsのメッセージについてきちんと勉強したほうが良いと思う。
それと、VBのDoEventsと、一般基礎知識としてのプロセスとスレッドの勉強。
0924デフォルトの名無しさんNGNG
>923
そかー。サンクス
0925デフォルトの名無しさんNGNG
>>922
だから、スレッドのIDを表示させてみろって。
0926デフォルトの名無しさんNGNG
>925
どうやるの?
0927デフォルトの名無しさんNGNG
>>926
GetCurrentThreadId

> 解説
> スレッド ID は、そのスレッドが終了するまで、システム上でユニークな(一意の)値となります。
0928デフォルトの名無しさんNGNG
>927
ありがとう。確かに一緒でした。
0929デフォルトの名無しさんNGNG
>927
DLLからのコールバックはスレッドIDが別でした。
というのもDLL内でスレッドを起動しているので当たり前なのですが・・・
というわけでやはりマルチスレッドなのですが、グローバル
変数を読み書きする際に注意する点はあるでしょうか。
0930デフォルトの名無しさんNGNG
>>929
>923。
質問が漠然としすぎ。
0931デフォルトの名無しさんNGNG
>>929
マルチスレッドは、複数の処理が同時に進行する。
例えばグローバル変数を G、ローカル変数を L とするとき、

L=G
L=L+1
G=L

が2つのスレッドで同時に処理されたとしたら、Gの最終的な値は保証できない。
(2人の人間に上記の処理をさせたことを想像してみるといい)

簡単な指針としては、グローバル変数の値を変更するときは
InterlockedIncrement 等の Interlocked 系 API を使う。

処理が複雑で、これらの API を適用できないときは
処理の前後を EnterCriticalSection と LeaveCriticalSection で囲む。
パフォーマンス低下やデッドロックにならないよう使い方に注意すること。
0932931NGNG
それにしても、VBでやることじゃない気がする。
0933デフォルトの名無しさんNGNG
>931
ありがとうございます。InterlockedExchangeでうまくできそうです。

>932
色々事情がありまして・・・

とにかくありがとうございました。
0934デフォルトの名無しさんNGNG
31×31の配列idata(i,j)にあるデータをランダムアクセスで
書き込み、読み込みをしたいのですが、これで書き込みしたのを読み込みできません。なぜでしょうか?
Sub failsave()
Open "c:\back.bin" For Random As #1 Len = LenB(idata(1, 1))


For i = 0 To 30
For j = 0 To 30
k = 1
temp = idata(i, j)
Put #1, k, temp
k = k + 1
Next j
Next i

Close #1
End Sub
0935デフォルトの名無しさんNGNG
>>934
プログラミング以前だね。
まず人に読んで理解してもらえるよう文章を推敲することを覚えるべきだ。
そういうの「片手落ち」って言うんだよ。
0936デフォルトの名無しさんNGNG
演算子\と/はどう違う?
0937デフォルトの名無しさんNGNG
>>934
読み込みが失敗してるなら、
読み込み部分も提示しなきゃどうしようもねぇだろ。
エラーがでてるのかどうなのかも書いてないしな。

っていうか、Option Explicit入れてエラーが出ないコードにしてから
出直して来いって感じだな。(たぶんその辺じゃないかと思うけどさ)

片手落ちっていうか9割落ちだな。必要な情報が1割もねぇ。
0938デフォルトの名無しさんNGNG
自己解決しました
kが1づつ増えないといけないのに、
k=1の位置がおかしなとこにあるから
kが1,2を交互に繰り返してしまいました_| ̄|○
ご迷惑おかけして申し訳ありませんm(_ _)m
0939デフォルトの名無しさんNGNG
すまん。教えてくれ。
stdoleのIPictureやらIUnknownの型を扱ってるんだが、
コイツらはオブジェクトではないのか?
IsObjectでfalseが返ってきちまう。
0940デフォルトの名無しさんNGNG
>936
MSDN読めばきっちり書いてあるんだが。
商の結果が整数か浮動小数点数か、の違いだ。
0941デフォルトの名無しさんNGNG
>935
>そういうの「片手落ち」って言うんだよ。
いや、違うと思います。
0942デフォルトの名無しさんNGNG
片玉落ちにしとけ
次どぞー
0943デフォルトの名無しさんNGNG
チョイト、相談受けたんだが…誰か分かるもん居るけぇ?
オイラじゃ ムリぽ(^^;
VB6で、システムにフォントをインストールしてやるにはどうすれば良いのだ?
大抵、フォントの追加って、
[コントロールパネル]→[フォント]で、
フォントファイルをドラッグか[メニュー]→[フォントのインストール]をしてやれば、
自動的にインストール始まるよな。
そのインストール作業をVBからさせたいらしいのだが
どうにも方法が、いまいち分からんのだと。
単なるフォントフォルダ取得してフォントファイルのコピー&ペーストじゃ
当然ダメだっつーことは分かった。
フォント専用のインストーラでもあるんかいな?

0944デフォルトの名無しさんNGNG
>>943
コピペでいいんじゃないのか?
0945デフォルトの名無しさんNGNG
>>943
コピーした後、レジストリのHKLM\Software\Microsoft\Windows\Fonts
(NT系だとWindowsNTだった気がする)に直接書き込め。
0946945NGNG
すいません。どうかしてました。

書き込んでください。の間違いです。
0947デフォルトの名無しさんNGNG
グレープシティーのインストーラーにその機能があったようななかったような。
フォント自体にもライセンスあるから、コピーにはご注意を。
0948デフォルトの名無しさんNGNG
>>946
おまえいい奴なのかそうじゃないのかどっちだ?
ただのおちゃめさんな気もしないではないが。
0949デフォルトの名無しさんNGNG
2GB近くあるバイナリファイルから、特定のパターンを持つ要素だけを
切り出すコードを書こうとしたのですが、読み込みの段階で躓きました。

ファイルを全部メモリに読み込んでから処理しようとすると
配列がデカくなりすぎて、ReDim時にエラーが出るのです。

そこで、ファイルを分割して読み込もうと考えたのですが
Open関数でファイルを開く際、特定のbyte数から
読み込みを開始する方法は無いでしょうか?
0950デフォルトの名無しさんNGNG
>>949
そのままずばり、オープンモードの使い分けってのが、
Open関数のMSDNヘルプからたどれるとこにあるから、参考にするといいかと。

やりたいことに対するアプローチの仕方はまちがってない、そのままがんばれー。
0951デフォルトの名無しさんNGNG
パターンの見つけ方って、ベタにやると大変なことになるから、文字検索とかの基礎をちゃんとしたほうが良いと思う。
2GBを頭から馬鹿みたいに舐めたらあかんぜよ。

パターンマッチングに絶対の正解はないですから。
あれば誰も検索速度を競わない。
中のデータとか、こっちの探す元パターンとかで最善のやり方が異なりますんで。

0952デフォルトの名無しさんNGNG
開発環境上でプログラム実行中にブレイクポイントを張るやり方って
ありますか?
まさに実行中のソースコードにずばりブレイクポイント張りたいんですが....
0953デフォルトの名無しさんNGNG
>>952
実行中ならブレイクポイント張らずに、いきなり止めたい場所で中断したらだめなの?
0954デフォルトの名無しさんNGNG
>>953
中断の操作方法はどうやるんですか?
0955954NGNG
試しにCtrl+Breakしたけど実行中のソースコードにフォーカスがいかなかったけど
何か間違ってますでしょうか...
0956デフォルトの名無しさんNGNG
環境:VB6SP5 OS:WinXP Proです。

一つのCSVファイルに数千行のデーターが入っているのですが、
これを一行一行読みながら置換などの処理を行い、元のCSVファイルに
書き込んでいきたいと思ってます。
Openステートメントを見る限り、読み取り専用と書き込み専用モードしか
無いようなんですが、DBのレコード操作のように、一行一行を
UPDATEみたいなことはできないんでしょうか?
0957デフォルトの名無しさんNGNG
ランダムアクセス。

でも、一端別名ファイルに保存して完了した時点で元削除してリネームでいいんじゃないか?
0958デフォルトの名無しさんNGNG
a.wavファイルを実行ファイルに含めたいのですが
無理ですかね?
ウエーブを鳴らすAPI使ってまして
APIの引数にファイルのパスを指定しています
どうにかプログラム内のリソースを指定する感じで組みたいのですが
可能でしょうか?
Public Declare Function sndPlaySound _
Lib "winmm.dll" _
Alias "apiPlay" _
(ByVal lpszSoundName As String, _
ByVal hModule As Long, _
ByVal dwFlags As Long) _
As Long
0959デフォルトの名無しさんNGNG
ちょっとお聞きします
Reference=とObject=に続くコード+DLL名またはOCX名の
コードの部分は毎回同じになりますか?
手動で参照orコンポーネントの追加を自動でするには文字列を挿入するだけで
OKぼくじょ?
0960デフォルトの名無しさんNGNG
環境:VB6SP4 OS:WinXP Proでございます
コントロールの"TextBox"にマウスがオーバーしたら
ツールチップコメントを表示させるにはどうすたらよいでしょうか?
ツールチップコメントとは、タスクバーにマウスをフォーカスしたら
っぽこっとメッセージがでてくるやつです
0961デフォルトの名無しさんNGNG
>>960
プロパティをよく見たの?
0962デフォルトの名無しさんNGNG
>>958
waveファイルをリソースファイルに加える。
んで、そのままではwaveを読めないみたいだったから
一旦Tempフォルダか何かにwaveを書き出して、
書き出したwaveを鳴らす、みたいなことをやったことがある。
0963デフォルトの名無しさんNGNG
>>958
WINMMのAPIつかってる限り、どうやっても一回ファイルにしないとだめじゃないかな。
0964956NGNG
>>957
なるほど、ランダムとはそういう時に使うのですか。
別名保存のリネームも視野に含めて作成したいと思います。
ありがとうございました。
0965958NGNG
>962さん、ありがとうございます
少し手間がかかりそうですね
パソコンゲームでは画像や音楽ファイルを見かけることが少ないので
実行ファイルに全て入っていると思っていました
>waveファイルをリソースファイルに加える。
から挑戦してみます

>963さん、ありがとうございます
>WINMMのAPIつかってる限り、どうやっても一回ファイルにしないとだめじゃないかな。
APIとダイレクトサウンドの両方使っていますが、ダイレクトサウンドでは
実行ファイルに含められそうですか?

0966デフォルトの名無しさんNGNG
>>965
MCIコントローラーそのものが、VBとは独立したWINDOWSの機能で、

VB → コマンド送信 → MCIコントローラー(デバイスオープン/管理)  → サウンドデバイス(ファイル/CDetc)

なので、仕組みを考えるとどうやっても無理かと。

ダイレクトサウンドのほうはわからん。調べてみよう。

VB → サウンドデバイス

て、接続ができるなら、直にデータ流し込めるから、埋め込みデータでもいけるんじゃない?
0967958NGNG
>966さん、
>なので、仕組みを考えるとどうやっても無理かと
私はプログラムの経験が少ないので>966さんのおっしゃることが
難しくて理解できない状態ですが、がんばってみます

>ダイレクトサウンドのほうはわからん。調べてみよう。
お手数かけます。

>て、接続ができるなら、直にデータ流し込めるから、埋め込みデータでもいけるんじゃない?
なんとか埋め込みデータで行きたいと思います
0968デフォルトの名無しさんNGNG
>>961
ありました!ありました!どもです!
0969デフォルトの名無しさんNGNG
まつがった。。

VB → コマンド送信 → MCIコントローラー(デバイスオープン/管理)  → 実際に音ならすとこ
                            ↓↑
                     サウンドデバイス(ファイル/CDetc)

※コマンド送信「あっこのファイル(CD)の面倒みてくれや」

こーなってて、あくまでVBから送るのは「コマンド」だけって話でした。


   VB → 実際に音ならすとこ
   ↓↑
サウンドデバイス(ファイル/CDetc)


こーなれれば、VBから渡すのはファイルじゃなくて「データ」になれるから、実現できるねって話。
…で、こーなれるのかどうか調べます。
0970デフォルトの名無しさんNGNG
ダイレクトサウンド使った方法ではこんな感じらしいのですが、
 ttp://www.mb.ccnw.ne.jp/garger-studio/vbgame/113.html
 ttp://www.mb.ccnw.ne.jp/garger-studio/vbgame/114.html

「次にバッファを用意し、Waveファイルを読み込んで格納します。

 Set dsBuffer = ds7.CreateSoundBufferFromFile(soundFileName, bufferDesc, waveFormat)

 Waveファイルのフルパスを引数に渡すことでバッファへの格納が行われます。」

て、やってる(=ファイルを直接オープンしているわけではない)から、
このCreateSoundBufferFromFileの代わりに、
直接バッファにデータセットする方法がわかればいけるんでないかな?
具体的には、DirectSoundのバッファの形式と、
リソース内のWavFileの形式がわかればいけるかも。

で、実際のそのやり方は、時間なくなってしまったので、誰か詳しい人にパス。すまん。
0971デフォルトの名無しさんNGNG
>969
説明ありがとうございます。MCIコントローラのことが少しは分かったような
きがします。

>   VB → 実際に音ならすとこ
>   ↓↑
>サウンドデバイス(ファイル/CDetc)
>直接バッファにデータセットする方法がわかればいけるんでないかな?
>具体的には、DirectSoundのバッファの形式と、
>リソース内のWavFileの形式がわかればいけるかも。
お時間とらせてすいません。
レスをヒントに自分でも調べなおしてみます
ありがとうございました。

0972デフォルトの名無しさんNGNG
VisualBasicの初心者なのですが、質問です。
プログラマ板で質問したのですが板違いだったようなので移動してきました。

アクセサリ形のプログラムを作っているのですが、
「スタートアップに登録する」機能をつけたいのです。
ショートカットを作る方法からわかりません。初心者過ぎてすみませんが教えてください。

あと、スタートアップはOSによっても違うし、
ユーザーが分かれているときは、
そのユーザーのスタートアップフォルダにだけ入れなくてはいけなくなると思うのです。
0973デフォルトの名無しさんNGNG
>>972
CSIDL_STARTUP
CSIDL_COMMON_STARTUP
0974972NGNG
>>973
ありがとうございます。
すみませんが、よく意味がわかりませんので、解説をお願いいたします。
0975デフォルトの名無しさんNGNG
>>974
まずはGoogleなどで検索しろ
今日はたまたまページが開いてるし酒でいい気分なのでアドレス貼るがな
ttp://www.bekkoame.ne.jp/~ilgg/VBMain/VB/Folder/Specfold.html
0976デフォルトの名無しさんNGNG
VB6のコンボボックスについて質問です

コンボボックスのクリックイベント内で、
そのコンボボックスのリスト内容を入れ替え、その後代入すると
コンボボックスの値が反映されずに、消えてしまいます

たとえば、
Private Sub Combo1_Click()
Combo1.Clear
Combo1.AddItem "OK"
Combo1.AddItem "NG"
Combo1.Text = "OK"

End Sub

Private Sub Form_Load()
Combo1.AddItem "OK"
Combo1.AddItem "NG"
End Sub

というコードで、コンボボックスを選択すると、
値が消えます
この動作原理を説明して頂けないでしょうか?

0977デフォルトの名無しさんNGNG
VB6.0で作った画面からVC6.0で作ったDLLを呼び出す際、
引数にVBの関数のポインタを渡し、DLLからそれを
コールするような処理を書いてみました。

問題なくコールできたのですが、DLL内でスレッドを生成し、
そのスレッド内からコールすると、「ハンドルできない例外」が
発生してしまいます。このような呼び出し方はやっては
いけないことなのでしょうか。

ちなみにデバッグで起動すると問題ないのですが、
VBでexeを作って起動すると失敗します。

0978デフォルトの名無しさんNGNG
>>977
あー、それ俺も経験ある。
時間もなかったので、あきらめて構成を変えちゃったんだけど。

この辺が関係するのかも。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/Vbcon/html/vbconScalabilityMultithreadingInComponents.asp
0979デフォルトの名無しさんNGNG
>>977
VB6でマルチスレッドは、
ちゃんとその仕組みを分かってないなら使わない方がいいよ。
そういう意味では「やってはいけないこと」だね。
0980デフォルトの名無しさんNGNG
>978
ありがとうございます。読んでみます。

>979
うぅぅ・・・・すいません。
0981デフォルトの名無しさんNGNG
俺もロクにググりもせず質問する奴や質問が他人に理解されるかどうか
ろくに推敲もしない奴は今まで大いに叩いてきたが、>>975はそいつらと
同レベルの下衆だな。きっと不幸な奴なんだろう。
0982デフォルトの名無しさんNGNG
>>981
そっか?ヒントになることを書いている分だけ、
俺やお前のように他人の行動を非難するだけのクズよりは
世の中のためになる奴だと思うけどなぁ。
0983980NGNG
Cのランタイムライブラリを使っているのにCreateThreadとExitThreadを
使っていたのですが、これもまずかったのですかね。
ヘルプには_beginthreadと_endthreadを使うように書いてありますが。
とりあえず明日試してみます。
0984デフォルトの名無しさんNGNG
DDEについての質問です。

VB6にてDDEサーバを作ろうとしているのですが、
なかなか解説サイトが見つかりません。

Helpを眺めてもVB用のサンプルが見つからないので困っています。
DDEサーバはどのように作ればいいのでしょうか。
よろしくお願いします。

VB6 sp6
win2k
0985デフォルトの名無しさんNGNG
>>984
DDEは.NETから廃止となります
DDEじゃないと絶対に駄目な場合でなかったら別のやり方を選択しましょう
0986デフォルトの名無しさんNGNG
>>958
これじゃダメなのか?

Private Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByRef lpszSound As Any, ByVal fuSound As Long) As Long

Dim bytBuf() As Byte
bytBuf = LoadResData(リソースID, "リソース型名")
sndPlaySound bytBuf(0), SND_SYNC Or SND_NODEFAULT Or SND_MEMORY
0987958NGNG
>986さん、ありがとうございます。
まだレス拝見しただけですが、できそうな予感です
>LoadResData(リソースID, "リソース型名")
試してみます、ありがとうございました。
0988デフォルトの名無しさんNGNG
>>985

レスどうもです。
古いソフトなのでOLEが使えずDDEでやろうと思ってたのですが。。

どうやらDelphiでDDEが使えるようなので
VB捨ててDel厨になろうと思います。
0989デフォルトの名無しさんNGNG
>>988
MSDNのDDEを読んでどこがわからなかったの?
読んでないなら論外。出直してこいと。
0990デフォルトの名無しさんNGNG
質問なんです。
初期値と終了値を入れる時で、
1000以上の値を入れるとおかしくなるですが
解決策ないですか・・。
0991デフォルトの名無しさんNGNG
なんの初期値っすか・・それだけじゃにんともかんとも。
0992デフォルトの名無しさんNGNG
VB6のSP4(OSはXPです)

MDIの親フォームの背景(Pictureプロパティ)に画像を表示し
画面に表示中に別のファイルをロードしたのですが、背景が変わりません。
一旦最小化させ、また開くと変わっているので再描画されていないだけだと思うのですが
MDIの親フォームを再描画する方法が分かりません。

MDIFormってRefreshなどのメソッドを持っていないみたいなのですが
再描画って可能なのでしょうか?
0993デフォルトの名無しさんNGNG
質問なんですが、
Winsockでネットワークを利用した多人数でできるゲームを製作しているのですが、
チャットも搭載したいのですが、
サーバー側のプログラムとクライアントのプログラムと分けているのですが、
クライアント側がゲームのデータとチャットの文字データと2つのデータを送るつもりなのですが、
Senddataで送り、Getdataで受信するのですが、これだと1つのデータしかやりとり出来ません。
文字データとゲームのデータ2つを分けてやりとりしたいのですが、どうすればいいでしょうか?
0994972NGNG
>>975
ありがとうございました。
これからはまず検索します。すみませんでした・・・
0995デフォルトの名無しさんNGNG
>>993
1つに纏めて送信し、受信したら二つに分けれ。
0996デフォルトの名無しさんNGNG
WinXP VB6 SP6 です。

ディストリビューション ウィザードで作成したセットアップファイルに
ライセンス等の同意確認画面を入れたいのですが、参考になる画面の
サンプルソースで、何か良いのありませんか?

よろしくお願いします。
0997デフォルトの名無しさんNGNG
>993
ですがですがと連呼して読みにくいぞ。

>Senddataで送り、Getdataで受信するのですが、これだと1つのデータしかやりとり出来ません。
>995方式でもいいし、クライアント-サーバ間でやりとりするデータにヘッダなり何なりを
付加して受けとる側が判断する方法もある。
0998デフォルトの名無しさんNGNG
特定のウィンドウを前面に出すにはどうすればよいのでしょうか。
0999デフォルトの名無しさんNGNG
ume
1000デフォルトの名無しさんNGNG
10000getu!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。