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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
VB(6.0以前)の質問スレです。
VB.NETの話題はできるだけひかえてください。

前スレはこちら
(pc2サーバ壊滅で見れない。pc2をpc5に変えれば見れる。
過去ログの場所がどうなるのか良く分からんので次スレ立てる人修正よろ)
  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://pc5.2ch.net/test/read.cgi/tech/1077216109/


【VB.net関連スレ】
VB.net質問スレ (Part5)
http://pc5.2ch.net/test/read.cgi/tech/1078134703/
【Win32 API関連スレ】
Win32API質問箱 Build17
http://pc5.2ch.net/test/read.cgi/tech/1077470361/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NETの話題できるだけひかえる。
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
  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
0003デフォルトの名無しさんNGNG
Visual Studio 6.0 Service Pack 6 正式リリース
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
0004デフォルトの名無しさんNGNG
構造体の内部に変数ではなく定数を持たせたいのですが
どうすればいいでしょ?
0005デフォルトの名無しさんNGNG
>>4
不可能。
なんでそんな機能が欲しいの?
用途によってはクラスで代用できるかもしれないけど。
0006デフォルトの名無しさんNGNG
プロジェクト内にてパブリック宣言の凄い数の定数があるんですが
グループ事に分けて分かりやすい構造体として宣言できれば
呼び出す場所でラクだなあと
0007デフォルトの名無しさんNGNG
>>6
enum使え。
0008デフォルトの名無しさんNGNG
列挙型ってクラスでもつかえますか?
0009デフォルトの名無しさんNGNG
やってみりゃ一発でわかりますよ?
0010デフォルトの名無しさんNGNG
すいません質問の仕方があやまっていました。
プロジェクト内というのは
プロジェクトの集まりの誤りです。グループに追加したまとまりです
なので 外部コールになります
0011デフォルトの名無しさんNGNG
すいません 紹介させてください。
もし興味がございましたらのぞいてみてください。
VBと非常に似た文体でVB経験者も多いです>>NS Basic/Palm

もしPalmもお使いのVBゆーざーがいらしたら参加してくださいね
あちらこちらに貼ってすいません

【nice】初心者!PalmでNS Basic/Palm【smart!!】01
http://pc4.2ch.net/test/read.cgi/mobile/1080549560/


0012デフォルトの名無しさんNGNG
>10
タイプライブラリが必要
0013デフォルトの名無しさんNGNG
tlbって拡張子のファイルですか
コンパイル時のみ必要で配布不要なんですよね確か 一度試してみます。
ありがとうございます
0014デフォルトの名無しさんNGNG
他のプロジェクトのenumは普通に参照設定するだけで使える。
プロジェクトの外にenumを公開するにはクラスに書かなければならない。
0015デフォルトの名無しさんNGNG
VB6でインターネット上のサーバに接続してデータを取り込み
その内容を用いて、データを操作しそれを再度アクセスして
更新するというようなことは可能でしょうか?
ADOとODBCで可能らしいというのはきいたのですが、
具体的な方法や文献がさがしたけど見つかりませんでした。

どなたかアドバイスをお願いします。
0016デフォルトの名無しさんNGNG
>>15
サーバーがインターネット上にあろうがLAN上にあろうが
プログラムは変わらない
0017仮人 ◆Qy2chZzA.A NGNG
配列に一気に値を挿入するってできまつか?
教えて君でスマソ。
0018仮人 ◆Qy2chZzA.A NGNG
>>弐.質問する前に MSDN などで調べてみる。
あ、MSDNで調べてないや、スマソ・・・。
0019デフォルトの名無しさんNGNG
以下の問題で困ってます、どうかお助けを!!
VB6で作ったプログラムをWinXPで動かした場合だけ
以下のようなエラーが発生します。
発生する場所は不定で、負荷の高い処理で発生しやすいです。

ハンドルされていない例外 は xxx.exe (NTDLL.DLL) にあります: 0xC0000005: Access Violation。

同じような経験をされた方はいらっしゃいませんか?
VB6はXPに対応していないということでしょうか。
0020デフォルトの名無しさんNGNG
>>19
してない。
0021デフォルトの名無しさんNGNG
>>17
CopyMemoryは挿入じゃないな。
できない。

>>19
再現できる最小のコードを用意汁。
002219NGNG
>>21
最小のコードを用意しようとしてエラーの発生箇所にアタリをつけて
いろいろと調べていると、DLLからの文字列渡しの問題であることがわかりました。

DLLからの文字列渡しをファイル渡しに変更したところ、一応問題は解消しました。
しかしファイルで渡すなんてドンくさいことはしたくないので
正しい文字列渡し(DLL->VBアプリ)の方法を調べているところです。
なぜXPだけで起こるのかも不思議です。
0023デフォルトの名無しさんNGNG
文字列渡しとかファイル渡しとか夜霧の渡しとか意味わかんないんだけど
これって一般的な用語なの?
0024デフォルトの名無しさんNGNG
>>23
うちでは使ってるよ。 言語問わずに・・・
0025デフォルトの名無しさんNGNG
>>19

・文字列渡す
Dim s As String
s = "Hoge"
Call DllFunc1(s)
(何も考えなくてよい)

・文字列受け取る
Dim s As String
s = Str(vbNullChar, 120)
Call DllFunc(s, 120)
(事前に必要な文字列分の長さを確保してからコールする。
 120はsに確保されたメモリの領域サイズの意味)

MSDNに1から10まで書いてあるから、よく読むこと
0026デフォルトの名無しさんNGNG
VBで作成したバッチ処理でOutlook Object Modelを使っているのですが
http://support.microsoft.com/default.aspx?scid=kb;ja;821679
これが原因のMSGが裏で表示されるためOutlookのアドレス帳に
アクセスするところで処理がとまってしまうんですが
回避方法ありませんか?
0027デフォルトの名無しさんNGNG
>>26
Javaをお勧めする。
0028デフォルトの名無しさんNGNG
>>26
C#をお勧めする。
0029デフォルトの名無しさんNGNG
>>26
強力にJavaをお勧めする。
0030デフォルトの名無しさんNGNG
>>26
セキュリティ強化の弊害だね。まあ仕方ないといったところか。
普通のやり方ではそこに書いてあるとおり
アクセスを許可する時間を毎回指定する必要があるのだろう。

> COM アドイン プログラムはデフォルトで信頼されており
もしかしたらユーザが作ったプログラムを信頼させる方法があるかもね。

ウインドウをプログラムで操作してなんて奥の手も考えられるけど
なんかオススメできない感じ。

>>27,29
それは無理だろうw
もし出来たらJavaはセキュリティを破ることが出来る事になっちゃうよ。

>>28
C#(.NET)ではアクセスするための新しいオブジェクトでもあるのか?
0031デフォルトの名無しさんNGNG
winNT4.0+VB5.0sp3で開発しています。
ツリービューコントロールへ256色アイコンを表示しようと思ったのですが
16色へ減色されてしまいます。
256色アイコンを表示する方法はありませんでしょうか?
0032デフォルトの名無しさんNGNG
>>31
VB5CCEでBMPを取り込む限りフルカラーに対応しているっぽいので
BMPを使うか16色パターンを含まないアイコンで試してみては?
0033デフォルトの名無しさんNGNG
>>32
BMPでもOKなんですか?やってみまつ。さんくすー
0034デフォルトの名無しさんNGNG
>>32
できましたー
でもicoでいうところの透明色っていうのはbmpではないですよね。
まあ、余白のところは白にしておけば問題ないということにしました。

0035デフォルトの名無しさんNGNG
>>34
icoファイルは一つの画像ではなく、
いろんな大きさ・色数の画像の集まりで、
使用する個所によって適切なものを選択するので
icoファイルがおかしいか、Windows上の制限じゃない?
0036デフォルトの名無しさんNGNG
VB6SP6で作っています。
MSFlexGridの列見出しをクリックした時、その列がソートするようにしたいのですがどうすればいいのでしょうか?
.NETだとAllowSortingプロパティをTrueにするだけらしいのですがVB6にはそれらしいプロパティが見つからないので・・・。
0037デフォルトの名無しさんNGNG
VB6.0でコマンドボタンにフォーカスがある状態でEnterキーを押したときのCommand_Clickイベントを無効化する方法はないでしょうか?
0038デフォルトの名無しさんNGNG
>>37
Enterキーを窓から投げ捨てろ


なんでそんな機能が欲しいのかな?
0039デフォルトの名無しさんNGNG
>>37
必要な理由がさっぱりわからん。
イベント関数の頭で、嫌なら抜けるっていうIF文を書けば?
0040>>39NGNG
送信したところで、なんとなくやりたいことがわかった。

で、コマンドボタンはEnterを受けるのが仕様、だからコマンドボタンを使わずに、
自作のボタンを作成するか、PictureBoxなどで代用。
0041デフォルトの名無しさんNGNG
>>37
いったんCommand_Click()に入って、if条件ですぐexit subするだけじゃダメなのか?
004239,40NGNG
>>41
多分彼は、不用意にEnterを押された場合にボタンを機能させたくないんだと思う。
だから、その方法だと呼び出し元・方法の特定ができないVBではNGだと思う。
0043デフォルトの名無しさんNGNG
>>38-42
説明不足だったようですみません。
理由は42さんがおっしゃったような理由でマウスクリックのみ拾いたいということでした。
ありがとうございました。
0044デフォルトの名無しさんNGNG
要はGetFocusしたらすぐにほかのコントロールにフォーカスを移すこーど書いて、
フォーカスを持たないようにすりゃいいだけなんじゃないの?
0045デフォルトの名無しさんNGNG
>>36
 MSFlexGridってオマケですよ。
 色々機能が欲しいなら、VSFlexGridを買うべし。
 で、そこら辺の機能も削除されていたような?

>>35
 NT4.0って、256色アイコンに対応していましたっけ?
 表示関係はWindows95レベルだと思ったけど・・・
004636NGNG
>>45
MSFlexGridでは出来ないんですね。
ちと高いけどVS-FlexGrid買うことにします。
レスありがとうございました。
0047デフォルトの名無しさんNGNG
>>46
FlexGridじゃなくてListViewのViewをReportにしてグリッド表示にすれば
普通にできると思うんだけど。
0048デフォルトの名無しさんNGNG
VBで配列を返す関数を作るとき、
 Function func1() As Double()
  ...
  func1(i) = 0.1
  ...
 End Function
とすると、func1(i)を関数呼び出しと誤解してエラーがでます。

とりあえず回避するには一度別の配列に返り血をセットした後、
コピーすればいいと思いますが面倒です。

みなさんはこういうのどのようにコーディングしてますか?
0049デフォルトの名無しさんNGNG
 Function func1() As Double()
Dim data() As Double
ReDim data(10)
data(0) = 0.1
data(1) = 0.2
func1 = data
 End Function
005049NGNG
中途半端にコピペしたからインデントが変になったw
0051デフォルトの名無しさんNGNG
どのように、って>>49のように書くしかありえないと思うんだが。。
[配列を返す]ってことの物理的な意味がわからずにこういうコード書くと、
いつかどこかで痛い目に会うことになるような気がするなあ。
0052デフォルトの名無しさんNGNG
VirtualFree使ってめもり開放しようとしてるんですが
確保した領域が空き領域を埋めるだけで開放されません・・・

どなたか助言よろしくお願いしまふ。
0053デフォルトの名無しさんNGNG
ファイル名を変更する方法を教えてください。

Dir関数でファイルを検索することはできます。
0054デフォルトの名無しさんNGNG
>>52
なんで開放されてないってわかるの?

>>53
Name ステートメントは?
0055デフォルトの名無しさんNGNG
>>1
お疲れさまでした。安らかに............
005653NGNG
>>54
できました!
ありがとうございました。 m(_ _)m
005752NGNG
>>54
プログバーにバリュー値としてGlobalMemoryStatusの使用状況を入れてるから
増えていくのがわかりまつ。
005836NGNG
>>47
ListViewでできました。ありがとうございました。
0059デフォルトの名無しさんNGNG
>>52
もちろんVirtualAlloc使ってるんだよね?
006048NGNG
自分では、
 Sub SetArrayVal(Byref ary As Variant, Byval index As Long, Byval val_ As Variant)
  ary(index) = val_
 End Sub
なんてのを考えました。少しは楽になります。
006152NGNG
>>59
はいな。使ってまつ。
0062デフォルトの名無しさんNGNG
>>52
そう見える理由の予想はつくが、APIスレで聞きなおすといい。
0063デフォルトの名無しさんNGNG
前スレ989は、どうでしょうか?


989 :デフォルトの名無しさん <> 04/04/03 12:02
すいません。
特定のWebページを保存するプログラムって簡単に書けますか?
VBSで書けると助かります。

やりたい事は、
ある特定のWebページを
[日付].html
例えば
2004.04.03.html
というファイル名で保存するプログラムが欲しいのです。

これをジョブに入れて、
毎日更新されるWebページを
毎日決まった時間に保存し、
後からさかのぼってみれるようにしたいのです。

何卒宜しくお願い致します。
0064デフォルトの名無しさんNGNG
990は無視ですか。そうですか。
0065デフォルトの名無しさんNGNG
VBのフレックスグリッドについて質問なのですが
カラムとか設定していって
実行したとき一番右へスクロールすると灰色の部分みっともないですよね
どうやってコードで見栄えよくすればいいでしょう?
0066デフォルトの名無しさんNGNG
>>65
>>46
0067デフォルトの名無しさんNGNG
>>66
イエ そういう回答を求めてるのでは
なくコーディングでカバーできる範囲の技術をお伺いしているだけであって
。。。。。
0068デフォルトの名無しさんNGNG
>>67
ない。
おとなしく>>46買え。
0069デフォルトの名無しさんNGNG
>>68
いやありますよ絶対ある。 ライセンス系のコンポーネントは
後がウザイのでなんとか技術でカバーしないと
スクロールとかで取得できるイベントがあるんですから
なんとか列幅変更の合計値Xを最大mxで定義した定数の範囲内で
サイズ制限するなどなんかあるはずです。それを教えて
0070デフォルトの名無しさんNGNG
>>69

        い    や    だ
0071デフォルトの名無しさんNGNG
問題は「灰色の部分」をみっともないと感じるか、美しいと感じるかは
見る人次第ってことじゃないのか?
0072デフォルトの名無しさんNGNG
>>70
じゃあおまえさんには気管 へっへーんだ

>>71
いや普通に見てみっともないと思います
0073デフォルトの名無しさんNGNG
そうだな灰色の部分に浮世絵でも描いてみるのはどうか?
0074デフォルトの名無しさんNGNG
>>73
あえていおう






ぬるぽ
0075デフォルトの名無しさんNGNG
俺はあのまったくもって役立たずな「灰色の部分」には、密かに愛着を
もっている。喩えて言えばそうだな、ビル最上階のおどり場のような・・・
0076デフォルトの名無しさんNGNG
ナニ〃ヵゝらー、灰色出る迄待τッτ言ぅωτ〃£ヵゝ?
0077デフォルトの名無しさんNGNG
不満があるなら自分でコントロール作っちゃえばいいのに…
0078デフォルトの名無しさんNGNG
まああの灰色はまさに
http://intermezzo.cool.ne.jp/report/Lupin/R3_temp.swf?inputStr=%82%CA%82%E9%82%DB

だな ふーじこちゃん
0079デフォルトの名無しさんNGNG
まあ俺のOCX作成テクをもってしたら
おまけコンポーネントよりは上を行くだろうな。
ただ 後の保守がめんどくさい。
仕様なんて言い分けが通用せんのよ顧客ってさ
おまけオプションを限りなく利用しつづけることが
作業量を減らす得策なのよ
業務かじってれば理解できるよね?
0080デフォルトの名無しさんNGNG
EXCELを起動する
↓
新規ワークシートを開く
↓
Ctrl + 右矢印キー
↓
「灰色の部分」出現(w

あのEXCELでさえ(以下略
0081デフォルトの名無しさんNGNG
何だよ。
オマエの「灰色の部分」には見られて困ることでも書いてあるのか?
そんなもん気にするな。
0082デフォルトの名無しさんNGNG
>>80 つまり無駄にでかければ気にならないと。
0083デフォルトの名無しさんNGNG
「灰色の部分」ってさぁ、役立たずみたいなこと言われて
酷い扱いされてるけど。ホントはここからさきは何もないよ
ってことをユーザーさんに通知する、重要な任務をまかされ
てるわけよ。それを消そうって奴は地獄の業火に焼かれて(ry
0084デフォルトの名無しさんNGNG
ワシもIV65536に初めて辿り着けたときはそりゃあもう・・・
0085デフォルトの名無しさんNGNG
あのなあおまえらヴィジュアルベイシックの
なんたるかを理解してないだろ
ヴィジュアルは見栄えだ 要は見栄えなんだよ
無知な顧客がないようをしらずに最初にいう
クレームの内容だよ!!
そこにスムーズに対応できる人間が才能あるPGってもんだろ
0086デフォルトの名無しさんNGNG
すまんが、浮世絵がダメだというなら
どういうのが良い状態で、どうだとダメなのかを教えてくれ。
0087デフォルトの名無しさんNGNG
>>83
結構そういうのあるよね。説明しにくいけど、
ある人にリストビューの詳細表示で右側の空白をクリック
(つまりファイルの詳細表示画面のファイル名の右の空白をクリックすること)
しても行選択されないといわれたことがあるんだが、
自分が普通に使っているとその空白をクリックしてフォーカスを当てて
スクロールをしているからクリックで行選択されたら困ることに気づいた。

スタイルの違いってのがあるんだろうけどWindowsはWindowsで
使いやすいようにちゃんと考えているんだよな。
0088デフォルトの名無しさんNGNG
>>85
だったら2chで訊くなよ。あ、自分は才能ありませんってオチか?
0089デフォルトの名無しさんNGNG
>>86
センスが悪い事が一番の問題

>>88
才能ないのはあんただろ
2chに頼るのは手軽に対処法がでるからだよ
様様ですよ
0090デフォルトの名無しさんNGNG
>>89
だから、その行動が才能ない奴の典型だっつってんだろうが(w
0091デフォルトの名無しさんNGNG
「灰色の部分」を愛でる余裕の無い奴は負け組み!
0092デフォルトの名無しさんNGNG
VS-FlexGridでも「灰色の部分」出ない?
どうなったら解決なのかいまいちわからん。
0093デフォルトの名無しさんNGNG
>>90
必然的に回答をすっぱりもってこれない
あなたも同じ域だろw
まあ無能どうしなかよくやろうや(笑)
0094デフォルトの名無しさんNGNG
>>92
おれもVSとかスプレッドシートは
つかったことないからわからんが
理想はエクスプローラーの詳細表示した項目部分の
制御方法が近いな
0095デフォルトの名無しさんNGNG
>>93
ようやく自分に才能がないことを認めてくれたね。が、俺はまだ認めんよ(w
0096デフォルトの名無しさんNGNG
くだらん言い争いは他でやってください。
0097デフォルトの名無しさんNGNG
>>96
だってー>>95がチュウボウみたいに絡んでくるんすよ
0098デフォルトの名無しさんNGNG
最初は答えをしっててあえて知らない、というか
そんなことはできないことにするゲームをしているのかと思ったが、
どうやらそうじゃなくてこのスレの人たちは本当にどうやったら「灰色の部分」を
無くせるのか知らないようだ。。

しかしまじめな話にはちっともレスがつかないが、
ちょっと厨房な話題になるとどっからともなくVB●(以下自主規制)が
沸いてくるな。
009998NGNG
マジレス:
インデックス0の列のwidthを0に汁。
010098NGNG
あ、Colwidthね。
0101デフォルトの名無しさんNGNG
┐(´∇`)┌
0102デフォルトの名無しさんNGNG
>>98
そーなんすよ
普通だったら2行くらいでアドバイスのひとつでも出てきそうな
ものでしょ?
スキル豊富なら余裕なはず。俺もたのまれれば
ちょっとVBあげて試作 みたいにしてるはず。
0103デフォルトの名無しさんNGNG
正確な情報じゃないから今まで黙っていたが、
昔「灰色の部分」だったと思うものを無くす努力をしたことがある。
そして確か無くせたという記憶がある。
しかし、それが何のコントロールだったか忘れた。
0104デフォルトの名無しさんNGNG
99 :98 :04/04/04 22:47
マジレス:
インデックス0の列のwidthを0に汁。


100 :98 :04/04/04 22:47
あ、Colwidthね。
ありがとうごぜえます。このようなレスをまっておりました
さっそく作業にかかります。ありがとうござますた

>>103
なんですとー!!このやくたたず

0105デフォルトの名無しさんNGNG
>>98-100
釣り・・・なのか?
0106デフォルトの名無しさんNGNG
そして灰色の部分って何のことかわからなくなったオレだけが残されたわけか・・・
0107デフォルトの名無しさんNGNG
98は読解力0
0108デフォルトの名無しさんNGNG
>>106
スクロールバー用の幅とかなんかそんな感じだったと思う。
0109「灰色の部分」保存会NGNG
FixedColsやFixedRowsなどと一緒にされるのは極めて遺憾だ。
0110デフォルトの名無しさんNGNG
色を変えたいならプロパティにあるけど、そういうことでもないの?
011198NGNG
もちろん半分釣りに決まっとる。
本当はもっと簡単に行ヘッダなんて無くせるし。

ていうか質問者そのものがたぶん釣りだろう。
プロパティページちょっといじれば誰でもすぐできるようなこと
真顔で聞いてるとしたらちょっと頭の性能疑う。
0112デフォルトの名無しさんNGNG
天然のようだ。┐(´∇`)┌
0113デフォルトの名無しさんNGNG
この擦れでの展開的に素っ頓狂な質問してくる香具師は
ただの暇つぶし込み釣りという罠
0114デフォルトの名無しさんNGNG
まあ、>>65から続いているわけだから途中参加の>>98が勘違いするものムリはないか
ってヲイ!
0115デフォルトの名無しさんNGNG
98の言っている「灰色の部分」ってオレらの「灰色の部分」とは
かなりの確率で違うと思うけど、
聞いてきたヤツが納得していなくなったみたいだから、
結果的には良しとするか。
011698NGNG
ああ、そういうことね。小学校4年生の算数の比率計算じゃんこんなの。

答え:
1.本当に必要な列のほかにダミーの列をひとつ一番右に追加する。

2.各列の幅の比率と、ダミー列の幅をあらかじめ決めておいて、
フォームのロード時かなんかに全部の列の幅の合計がFlexGridのWidthと
等しくなるように各列の幅を計算で求める。
0117103NGNG
>>116
あ〜。なんかそんなことやった気がする。
なんか微妙に幅ずらしてあわせたり。
0118デフォルトの名無しさんNGNG
いや、サイズを揃えるためにある余白を見栄えが悪いとかいう理由で
他のサイズ自体を変えてしまうのはどうかと思うんだけど。
0119デフォルトの名無しさんNGNG
>>118
そんなの、人の考えによりけりでしょ?
ダメと決め付けることは出来ない。
0120デフォルトの名無しさんNGNG
>>116
ダミーのカラムがFlexGridのWidthいっぱいに広がる可能性もあるわけで・・・
それはそれで醜い(w
0121デフォルトの名無しさんNGNG
別に醜くないと思うが?
0122デフォルトの名無しさんNGNG
聞きたいんだけどフレックスとやらに
チェックボックスってもうけられる?
やっぱ文字列”レ”しか方法はないでしょうか
0123デフォルトの名無しさんNGNG
あとは、アレだ。コントロールのサイズ自体を変えて余白ができなくする。
0124デフォルトの名無しさんNGNG
>>122
その話は後にしてくれないか?
0125デフォルトの名無しさんNGNG
「灰色の部分は気にすんな」の一言で済む。そう思っているのは俺だけか?
0126デフォルトの名無しさんNGNG
>>122
フォントを変えれば記号のような文字を使うことができる。

ってそういう話じゃないってのは分かってるけどw
0127デフォルトの名無しさんNGNG
なんでこんなに盛り上がってるのか 灰色
めずらしい展開ですね
0128デフォルトの名無しさんNGNG
>>125
客が言うこともあるんだよね。どうしてもって。
0129122NGNG
わかりました 今は『灰色』ってテーマで討論の最中なのですね
ならわたくしも はいいろ(はいりょ)します
では失敬
0130デフォルトの名無しさんNGNG
>>128
その客に会ってみたいな。そしてこう聞いてみたい
「どうして灰色の部分がそんなに気になるの?」
0131デフォルトの名無しさんNGNG
>>130
「どうして気にならないの?」
0132デフォルトの名無しさんNGNG
灰色部分はユーザーとしたら気になるでしょう
フレックスグリッドをコンポーネントでデザインした時
何も初期化せずそのまま実行すれば理解できると思う。
いわば火星のようなもの。
素人であれば気にしないのはあたりまえだが
神経質な10人といろのユーザにとってケチのつく唯一の色彩
それが灰色
要はユーザーにとっての灰色は使用できないいわば Enable = False
の状態を言う そんな色彩がスクロール時にドバっとでてきたら
つっこみどころ満載なわけで、しかもライセンスとか説明したとき
ごねるのもユーザー
0133デフォルトの名無しさんNGNG
使用できない領域やコントロールが灰色ってのと
いままで白い部分が移動などの制御によって灰色化するのでは
意味が違う
013465NGNG
わはは まだやってるんすか もういいすよ解決しますた。
なんでこんなにもりあがってるんすか(笑)
結局 ロード時の処理でフレックスグリッドの幅を取得し
それを列サイズ幅合計に収まるように設定し、ドラッグアンドドロップの
処理でイベントをゲットし、ロード時の合計値を越えた場合に
カーソルをバッテンに切り替えイベントを無効にするようにしましたよ
0135デフォルトの名無しさんNGNG
Scrollイベント使ってLeftCol弄れ。
0136デフォルトの名無しさんNGNG
その違いを客にちゃんと説明して納得させるのは大変だろうな。
「そんなのいらないから」で終わらせられるのがオチ。
0137「灰色の部分」保存会NGNG
「灰色の部分」にイチャモンつける客のほとんどはA型。そのうち半数はハゲてる。
間違いない。
0138デフォルトの名無しさんNGNG
そんなん言われたことないけど、色のせいなのか?
白にしておけば、文句言われにくいのかな?
0139デフォルトの名無しさんNGNG
>>133のレスを真にうけると
灰色の部分はバグとなるが
0140デフォルトの名無しさんNGNG
フォームに25個ぐらいコンボボックスを置いてるんですが、
表示に時間がかかるんです。表示を早くする方法ってありますか?
0141デフォルトの名無しさんNGNG
フリーですばらしいGrid系のocx作りたいよね みんなで
0142デフォルトの名無しさんNGNG
>>141
禿胴!是非、作りたいね みんなで
0143デフォルトの名無しさんNGNG
>>140
そんなことでは全然遅くならないぞ?
0144デフォルトの名無しさんNGNG
>>140
データ読み込み時に Visible = False
0145デフォルトの名無しさんNGNG
WinXP では問題なく動作していたVB6コードを
Win2000 のPCにコピーして実行したところエラーとなってしまいます。
コードの内容は、

Dim n As Integer

n = 12

Format(n, "@@@")

"Format"の部分が反転して『コンパイルエラー プロジェクトまたはライブラリが見つかりません。』
と、表示され停止します。何が原因なのでしょうか?

Format関数は複数のプロジェクトで使用していますが、いずれのプロジェクトもFormatの部分で
エラー(停止)してしまいます。

自分でも調べてみたのですが、解決できません。
どなたかわかる方、教えて下さい。よろしくお願いします。
0146デフォルトの名無しさんNGNG
>>145
http://www.google.com/search?num=100&hl=ja&ie=Shift_JIS&q=%BA%DD%CA%DF%B2%D9%B4%D7%B0%81@%CC%DF%DB%BC%DE%AA%B8%C4%82%DC%82%BD%82%CD%D7%B2%CC%DE%D7%D8%82%AA%8C%A9%82%C2%82%A9%82%E8%82%DC%82%B9%82%F1&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0147デフォルトの名無しさんNGNG
>>145です。解決しました!!

>>146さん、ありがとうございます!!
014898NGNG
>>65
2chでこんなこと書くのも馬鹿げてるかもしれないけど、
もうちょっと「恥ずかしい」って感覚あってもいいんじゃない?

このレベルの問題が自力で解決できないってのは
煽り抜きでかなり情けないことだと思う。
0149 ◆8000km/3JQ NGNG
RSSファイルを読みたいのですが
UTF-8からShift_JISへの変換方法が分かりません。
御教授御願いします。
0150デフォルトの名無しさんNGNG
UTF-8で書かれたテキストファイルを読みたいのなら、
「UTF-8からShift_JISへの変換」は必要無さそうだけど、
ttp://homepage1.nifty.com/MADIA/vb/vb_bbs2/200310_03100055.html
015165NGNG
>>148
いえいえ自力で解決しましたから。ご丁寧にどうも
0152デフォルトの名無しさんNGNG
ActiveReportを使用して帳票PGを組んでいます。
ほぼ同じ内容のページを2枚ずつ出力したいのですが、
Canvasの複写とmainへの追加は、どのように行えば良いのでしょうか?
宜しくお願いします。
以下、現在のソースです。

iPageMax = wActiveReport.Pages.Count
For iPage = 0 To iPageMax - 1
Set wCanvas1 = wActiveReport.Pages(iPage)
wActiveReport.Pages.Add wActiveReport.Pages(iPage)
'wActiveReport.Pages.Add (wCanvas1)
Set wCanvas2 = wActiveReport.Pages(iPage + iPageMax)
Call zArLabelPut(wCanvas1, X, Y, "", 14, 0, 0, 0, 0, "パターン1", "", 100, 100) '違う部分
Call zArLabelPut(wCanvas2, X, Y, "", 14, 0, 0, 0, 0, "パターン2", "", 100, 100) '違う部分
Next iPage
0153デフォルトの名無しさんNGNG
ttp://bookweb2.kinokuniya.co.jp/htm/4881354922.html
Visual Basicゲームプログラミング―Visual Basicで創るArtistic Game World

なんですが、DirextXを使ったものでしょうか?それとも初期のbitdrawのものでしょうか?
VB4のときに出たらしいのですが個人的には、ビットマップ作画だったらありがたいのですが。

この本を持っていらしてる方、ちょっと内容を教えてください。
通販しようかと思っているのですが。
0154デフォルトの名無しさんNGNG
VB4の時代には、DirectXはVBから使えなかったような気がする。
読んだことないけど、多分DirectXは使ってないんじゃないか。
0155デフォルトの名無しさんNGNG
>>152
ActiveReportって何?どこでダウンロードできるの?
0156デフォルトの名無しさんNGNG
>>153
VBからDirectXを扱えますが、きっとWinGでしょう
0157デフォルトの名無しさんNGNG
>>154
>>156

情報ありがとうございます!
使ってないだろうと言うことが分かって嬉しいです
検索してみたのですが、目次が載って無くて。当時だったらあったかもしれません。
個人的にはVBでビットマップ作画のいい参考書を探しているのですが。
(PDAで作ってるため VBに近い言語です)

親切にしていただけて嬉しく思います。ありがとう
0158デフォルトの名無しさんNGNG
>>152

外しているかもしれないが
二つ用意しておいて Visible の切替えってのはだめ?



0159デフォルトの名無しさんNGNG
>>150
有り難う御座いました。
0160デフォルトの名無しさんNGNG
private sub combo1_change()
this.text = "hoge"
end sub

みたいにそのイベントのコントロール、つまり自分自身を
指すthisみたいなのないですか?
0161デフォルトの名無しさんNGNG
デバッグ用にテキストを出力したいのですが、
現在実行中のファイル名と関数名って取得できないのでしょうか?
Cでいうところの__FILE__、__LINE__ みたなのが使いたいです
ご教示願います。
0162デフォルトの名無しさんNGNG
sSource = "http://xxx.xxx.xxx/index.html"

例えばこの文字列を例にとりますと
この文字列から"index"の部分と".html"の部分を抜き出すには
どうしたら良いでしょうか?
0163161NGNG
また、できれば現在のクラスモジュール名を得ることはできないのでしょうか?
0164デフォルトの名無しさんNGNG
>>162
a=split(sSource,"/") ' / で分解
b=split(a(ubound(a)),".") '.で分解

これで b(0) に "index" が b(1) に "html" が入る。
0165161NGNG
>>163
はわかりました。
TypeName(Me)
0166デフォルトの名無しさんNGNG
>>160
特定のスコープの中では、宣言されてもいない
暗黙のローカル変数が存在するような言語怖くて使えますかって。

>>162
そんなのヘルプ検索すればすぐわかるはず。
逆にいうとヘルプみても解決法がわかんないならプログラミングなんて
やめといた方が身のためと思う。

雑誌のおまけの試用版とか使ってるのならしょうがないけど、それなら
参考書ぐらい買えばいいのに。

InStrとかMid$とか、VB6ならSplitとか、使えそうな関数いっぱいあるじゃん。
0167デフォルトの名無しさんNGNG
>特定のスコープの中では、宣言されてもいない
>暗黙のローカル変数が存在するような言語怖くて使えますかって。

schemeのlambdaなんかはどうよ?ちょっと違うか。

というか話が違うんじゃない。
イベントを発生させたオブジェクトをsourceとかでイベントの引数に渡してくれたら
便利なケースは考えられると思うし、俺もあったらうれしいことはあるとは思う。
160への解答としては、そんなことはできないってことになる。
Combo1_Clickというプロシージャ名にイベント発生源のオブジェクト名が入っていて
ユニークになってるから、Combo1.Text="Hoge"で別に問題は無い。
何で困っているのかもう少し具体的に書いてもらえれば、なにか代替案を示すことはできるかもしれないが。
0168160NGNG
private sub combo1_change()
call hoge(me.activecontrol)
end sub

private sub combo2_change()
call hoge(me.activecontrol)
end sub

みたいなことがしたいんですが
me.activecontrol=そのイベントを呼び出したコントロール
でいいのでしょうか?
0169デフォルトの名無しさんNGNG
>>168
ActiveControlはフォーカスを持っているコントロール。
普通はイベントを起こすのはフォーカスを持っているコントロールだけど例外もあるから。
0170160NGNG
>>169
ですよねー
やっぱだめかな
0171デフォルトの名無しさんNGNG
>>170
コントロールをユーザコントロール(やクラス)でラップして、
イベントをユーザコントロール側で受けてそこでイベントを処理する方法もある。

もし違う処理を行いたければイベントの処理はイベントの処理を行うクラスを
ユーザコントロールに登録して行うという、Java風の仕組みを作れば
望みのことが出来なくは無い。

まあ一番手軽なのはコントロール配列にしてインデックスで区別する方法だけど。
0172デフォルトの名無しさんNGNG
現在グリッドを持つアプリケーションを作ろうと考えております。
コンポーネントを見ていると、いくつかグリッドが存在するのです、
それぞれの特徴があると思いますが、どれが使いやすいのでしょうか?

それぞれの機能を紹介したサイト等はないでしょうか?

0173デフォルトの名無しさんNGNG
>>172
そんなことをこんなところで聞くような横着な人に
グリッド系のコントロールなんて使いこなせないと思う。

簡単なことならどれ使ったって大差ないし。
0174デフォルトの名無しさんNGNG
グリッド系は重い
0175デフォルトの名無しさんNGNG
>>172
 使いやすさは人によって違うと思うから
 試用版とかまず試してみたら?
0176デフォルトの名無しさんNGNG
DataGridよりはMSFlexGridの方が好きだな
0177デフォルトの名無しさんNGNG
非常に基礎的な質問で恐縮なのですが宜しくお願いします。

フォーム1からフォーム2に設置してある
オプションボタンのValue値のTrue・Falseを読み取りたいのですが、
どうしたらいいでしょうか?

フォーム2内でグローバル変数を宣言してそれに値を格納してフォーム1で読み出す。
という方法は思いついたのですが、できれば直接読み取りたいです。
0178デフォルトの名無しさんNGNG
>>177
vb6以前ってコントロールは全部Publicじゃなかったっけ?
......って言ってもたぶんわからないんだよね。

上のコードエディタで"form2."って打ってみて。
インテリセンス働くと思うんだけど。
0179デフォルトの名無しさんNGNG
直接読み取りたいのなら直接読み取ればいいじゃない
0180178NGNG
「上の」って言葉は不要でした
0181デフォルトの名無しさんNGNG
Form2!Option1.Value
0182デフォルトの名無しさんNGNG
>>178-181さん
返信ありがとうございます。

コードエディタ上で form2 と打ち込んで実行するとエラーはでるのですが
インテリセンス(文法チェックですよね?)は働かないようです。

今まで
Form.Option1.Value と書いていたのを
Form!Option1.Value としてみたのですが
やはりForm2を閉じるとValueの値が真に戻ってForm1から真・偽を読み取る事ができません。
0183デフォルトの名無しさんNGNG
訂正

Form2.Option1.Value と書いていたのを
Form2!Option1.Value としてみたのですが

です。2が抜けていました…すいません。
0184デフォルトの名無しさんNGNG
えっ!閉じたform2の値を読もうとしてるの?
0185デフォルトの名無しさんNGNG
Form2閉じるときUnloadしてるんじゃないか?
で、Option1.Valueにアクセスしに行ったときに再度ロードされて、初期状態の
やつを参照してるとか。
今進んでいる所は、たぶん鬼門だろうから、初心者本でも読み返したほうが
いいかもしれんね。
0186デフォルトの名無しさんNGNG
定義されていない変数を読み取れないと言ってるようなもんでつね。
0187デフォルトの名無しさんNGNG
>>184
はい、その通りです。

>>185
その通りです。Unloadしております。
鬼門ですか…。初心者本を読んで調べたのですがよくわからないのです(汗
0188デフォルトの名無しさんNGNG
Property Getとかを使おうね。クラスのインターフェイスになるよ。
(Formモジュール)=(Classモジュール+Window)を理解しようね。

C++やJavaとかでいう他クラスとのやり取りに、Publicなインターフェイス用関数を使って、Privateな変数にアクセスする要領と同じ。
0189デフォルトの名無しさんNGNG
>>187
'Form1のコード
Dim Result As Boolean
Load Form2
Form2.Show vbModal ,Me
Result = Form2.Option1.Value
Unload Form2

'Form2のコード。OKボタンにでも書いといて
Me.Visible = False

Load,Unload,New,Nothingについて調べてみるといいよ。
0190デフォルトの名無しさんNGNG
上手く言えないんですが、フォームモジュール、標準モジュール、
クラスモジュールの使い分けと言うか、コードの書き分けって、どう
言う指針で行うのがいいんでしょうか?
0191デフォルトの名無しさんNGNG
ていうかもう釣り確定じゃん。なにマジレスしてんのみんなオボコいな。
しかしこの「別のフォームの......」って愚問は定期的に湧いてくるな。
次スレからは1のテンプレに入れてほしいよ。
0192187NGNG
>>186、188-189さん
ただいま教えていただいた事について勉強してきます(汗
こんな夜更けにご丁寧にありがとうございました。
0193187NGNG
>>191さん
いえ…釣りではないです。本当にわかってません(汗
ちなみに >>190さん は私ではないです。
0194デフォルトの名無しさんNGNG
本職なひとの辞書に、夜更けという文字はありませんでつ。_| ̄|○
0195190NGNG
>>193
(´・ω・`)ショボーン

0196187NGNG
>>190さん
あれ?何かまずい事書いたかな…(−−;
もし、私の質問だと思われてたら私の質問はもう区切りがついたので、このままスルーされそうだな〜
と思ったのでそう書いたのですが(汗
0197デフォルトの名無しさんNGNG
いらっしゃーい、Perlのコーディングで困ってる人のスレです。
0198デフォルトの名無しさんNGNG
>>190
それぞれ「そうすべきもの」で使い分ける。
ウインドウを表示するならフォームを使うのが常道とかね。


ひょっとして釣られた?
0199デフォルトの名無しさんNGNG
>>191
オマエが釣り確定。あげんじゃねえよカス
0200デフォルトの名無しさんNGNG
>>199
ワラタ
0201デフォルトの名無しさんNGNG
191って臭そうw
0202デフォルトの名無しさんNGNG
とりあえず心得を読め
0203デフォルトの名無しさんNGNG
>>191
>> 「別のフォームの......」って愚問

これをまったく知らないで、
何から何までグローバル変数使ったり、
フォームイベントの発生要因とかまったく知らなかったり
する愚者が多数いるよ。

しかもそういう人に限って、VBだからVBらしくコーディングしているんだ、と意味不明なことを嘯くんだよな。
0204デフォルトの名無しさんNGNG
>>187
混乱させるようで悪いが・・・

'Form1のコード
Dim Result As Boolean
Form2.Show vbModal, Me
Result = Form2.Result

'Form2のコード
'関数の外に
Public Result As Boolean
'OKボタンに
Result = Me.Option1.Value
Unload Me
0205190NGNG
>>198
釣りじゃなかとですよ。

クラスモジュールはクラスを作るために使えばいいと思うのでまだいいのですが、
標準モジュールとフォームモジュールが曖昧になってしまうんですよね。

ぶっちゃげた話、>>198さんのいうとおり、フォーム周りのコードをフォーム
モジュールに書けば、フォームモジュールと標準モジュールを分離して再利用
する事も出来るはずなのですが、標準モジュールでフォームのインスタンスを
生成してフォーム上のコントロールにアクセスしたり、フォームモジュールから標準
モジュール上のパブリックプロシージャ-をコールしたりすると、標準モジュールと
フォームモジュールは独立しなくなる訳で。

かと言ってフォームモジュールに全部書く、ってのは宜しくないそうで、どのように
分ければいいのかなと悩んでしまう訳でして。

用法を間違ってるかも知れないですが、恐らくフォームモジュールと標準
モジュールとの間のインターフェイスが決まってないと言うか曖昧になってるのが
原因じゃないかなと思う(言葉の意味がよくわかってないので違ってるかも知れ
ない)のですが、標準モジュールからフォームのコントロールにアクセスしたい時に、
どのようにやるのがスマートなのかなぁ?

0206デフォルトの名無しさんNGNG
VBはVBらしく適当に作って破綻しそうになったら
思いつきでリファクタリングでもして
つないでいくのがよい
0207190NGNG
>>206
リファクタリングって、確か元の仕様を変えずに中身と言うか実現方法を変更
したり新たな仕様を追加する事でしたっけ? 似たような事はよくありますねぇ。
例えば、最初は独立したコントロールで書いてたけど、結局同じ処理のプロ
シージャ-になっちゃった、って場合にコントロール配列にしてIndexで制御する
方法に書き換えたりとか。(うわ、なんか違うっぽいしレベル低いなぁ俺(´・ω・`) )

最初に仕様をガチガチに決めればそう言う事にはならないのだろうけど、一人
で開発やってると、書いてる途中で、もっといいアイディアや実現方法を思い
ついたりすると書き直しちゃいますしねぇ。
0208デフォルトの名無しさんNGNG
以前に構造体のような宣言内部に定数をもたせたい
という件で質問させていただきました
Enumを使用するといい という回答を頂いていたんですが
この列挙型といわれる宣言内部に数値やアドレスではなく
文字列を持たせる事も可能なのでしょうか?
0209デフォルトの名無しさんNGNG
>205
そもそも、標準モジュールでフォームのコントロールを直接参照する必要があるのかって所から検討すべき。
コントロールを直接参照する事は即ちフォームに依存だからぬ。
そのへんのやり方は>188が指摘してるぞ。

標準モジュール上にForm1.TextBox1 = ・・・
なんて書くのは愚の骨頂。
無難な線として
Public Sub Hoge(ByRef frm As Form1)
みたいな感じで引数でフォームへの参照を受けて以後その引数を利用してアクセスすれば良い。
0210デフォルトの名無しさんNGNG
>>209
そこなんだよね、綺麗にできるかの違いって。
コントロール自身を引数にできるということを知らない人が多すぎ。

それをやるだけで、結構おしゃれな処理とかできるし、
グローバル変数とか馬鹿でかい参照範囲の変数とか、ほぼ撲滅できるし。
0211デフォルトの名無しさんNGNG
>Public Sub Hoge(ByRef frm As Form1)
これってフォームにオモイックソ依存してないか?
Form1ってハードコーディングしちゃってるし。
0212デフォルトの名無しさんNGNG
>>211
それは単なるタイプミスだと思われるけど、重大なバグになるタイプミスだな。
0213デフォルトの名無しさんNGNG
>>205
標準モジュールがあるからVBって気もするけどなぁ
うちの会社の先輩が言ってたけど、
VBは標準モジュールにバリバリ書いて、コントロールを使う形にするのが楽らしい
コントロールを使ってれば標準モジュールもそんなにひどくならないそうな
だから、設計してコントロールつくるやつが上にひとりいて、
それ使ってコーディングする奴が何名かいるのがいいらしい
実際、その人APIとかクラス化して投げてくるんだけど、やりやすいのはたしか
ただ、そういうやりかただと悲しいかな、俺の勉強になんないんだよな(w
0214デフォルトの名無しさんNGNG
>211
>209の趣旨は、引数として受け取るようにする事で、少なくとも暗黙のインスタンスを
参照するという行為は避けられるよ、って事でつ。
インタフェースの使い方覚えるのは次の段階かなと思ったんで。
0215デフォルトの名無しさんNGNG
>>214
引数で受け取るのも「暗黙のインスタンス?」を参照してるってことに
早いとこ気付けよ。
VB6.0ではオブジェクトの解放がどの時点で行われるか知ってっか?
0216デフォルトの名無しさんNGNG
スレの流れ理解してなくて申し訳ありません。
皆様の知恵を拝借したいと思って来ました。

テーブル1のフィールドAの値に対してテーブル2のフィールドBの付随情報を
抽出したいと思っています。双方のフィールドは0から始まる電話番号形式の文字列です。

フィールドAには正式な電話番号(09012345678とします)が格納されており
フィールドBには電話番号の範囲になるような4桁以上11桁以下のデータが格納されています。
例えば「09012」のようなデータです。

フィールドBのデータをDBから抽出後に降順でソートし、フィールドAのデータの
先頭数文字(フィールドBの文字数)を検索条件とし、最初に合致したものに対するデータを
さらに抽出したいと思っています(例えばCSV形式のファイル等に)

長すぎると怒られたので分けます。
0217デフォルトの名無しさんNGNG
以下は例です

例→フィールドAの格納データ「09012345678」に合致するフィールドBの付随データを抽出

フィールドB   データ
0902    付随データ  この場合「0902」と「0901」2345678で比較→合致しないので次へ
09013   付随データ  この場合「09013」と「09012」345678で比較→合致しないので次へ
09012   付随データ  この場合「09012」と「09012」345678で比較→合致するので抽出
09011   付随データ

合致するデータがない場合はエラー処理になります。
フィールドAのデータ分だけ抽出処理をして終了という形です。
ただしフィールドBのデータの桁数は一定しておらず4桁の場合もあれば
5桁の場合もあるという感じになっております。
こういった処理を行なう場合、どのような感じで作ればよいのでしょうか…。

フィールドBのデータを毎回Len関数でチェックしてフィールドAのデータをLen関数で
返ってきた値だけ切り出してチェックとかがいいんでしょうか…。

VB6.0、DBはOracleでADO接続でやるつもりです。
VBから離れて期間も経っており、ほとほと困り果ててこちらに参りました。
詳しい方いらっしゃったら宜しくお願いします。スレ違いでしたら申し訳ありません。
0218209NGNG
>215
>209の引数frmはあくまで呼び元から渡されたインスタンスを参照するのであって、
暗黙のインスタンスを参照する訳では無いと思うのだが・・・
呼び元で
Call Hoge(From1)
とか
Dim f As New From1
Call Hoge(f)
なんてやられたらそりゃNGだけど、それは呼び元の責任でぁ。
もっと良いやり方があればご教授願いたい。

オブジェクトが解放されるのは参照カウンタがゼロになった時。
だが少なくとも、>209のメソッド内では解放を意識する必要は無い。
間違ってる所があったら指摘キボンヌ。
0219デフォルトの名無しさんNGNG
初心者でよくわからんのだが
標準モジュールでForm1を参照するのって悪いの?
AS Objectとかにして、クラス使って再利用性を高めるんならそれもそうだろうけど
メモリに常駐してる時点でグローバル関数とかわらんと思って
標準モジュール上でForm1参照しちゃってるんですけど
やっぱ関数化すべきなのかな・・・
0220デフォルトの名無しさんNGNG
>219
Form1のインスタンスはLoadされている保証は無いし、複数ある可能性もある。
0221デフォルトの名無しさんNGNG
>>216,>>217
VBで判断するのか、SQL(DB側)で判断するのかをまず決める。
まあ、普通にDB上でやればいいんじゃないの?
前方一致検索でしょ。
0222デフォルトの名無しさんNGNG
>>221
激しく同意
せっかくオラクルを使うのならちんたらコーディングするよりSQL
でするべき
オラクルならADOよりoo4oのほうが親和性がたかいよ、、
0223デフォルトの名無しさんNGNG
ORACLEのバージョンにもよるけど、一時表とか駆使すれば一回で取れると思うんだけど。
検索された中で最大の云々かんぬん

まあ、ここを見て参考にしてみれば?
ttp://homepage1.nifty.com/kojama/works/rdbms/ont.html
0224デフォルトの名無しさんNGNG
>>222
懐かしいフレーズを聞かせてもらったよ、ありがとう。
0225デフォルトの名無しさんNGNG
醜いSQLはあまり好きではありません。
0226デフォルトの名無しさんNGNG
リストビューのカラムヘッダーの幅が変更されたことを
知るイベントはありませんか?
0227226NGNG
何がしたいかといいますとリストビューの変更された幅を
iniファイルに保存して次回起動時にはその幅に戻したいのです。
0228226NGNG
ちがった。
2つのリストビューを片方が変更されたらもう一方も
追従するように同じ幅にしたいのです。
0229デフォルトの名無しさんNGNG
>>44
とんでもなく遅レスがありがとうございます。
なるほどです。
0230デフォルトの名無しさんNGNG
>>216-217
AからBを引っ張ると考えるからややこしく思えるんだろうけど
実際は単純な総当り検索で、条件を前方一致にして(+)付けるだけ。
0231デフォルトの名無しさんNGNG
指定した色を透明色にする方法はありますか?
0232デフォルトの名無しさんNGNG
>>226
ない。

と思う。
0233デフォルトの名無しさんNGNG
>>231
ある。
0234226NGNG
(´・ω・`)ショボーン
0235デフォルトの名無しさんNGNG
>>226
イベントは無いけどメッセージは飛んでる。
なんか面倒な気もしたが、がんばれ。
0236231NGNG
ゲームを作っているのですが、キャラの背景の透明化に
使いたいと思ってます。VB初心者なものでよろしければやりかたを教えてください。
0237226NGNG
>>235
じゃあ、サブクラス化すればゲットできますね!
0238デフォルトの名無しさんNGNG
サブクラス化なんてキッケンなことしなくても
タイマイベントでカラムヘッダが変更されてないかチェックして
変更があったら同期するようなコード書いたらいいんじゃない?

秒五回ぐらいなら遅延もそんなに気にならないし、
cpu時間の消費もほとんど無視できるレベルだと思うけど。

エレガントじゃないのはいや、ってか。
それをいうならサブクラス化だってそれ以上に.....。
0239デフォルトの名無しさんNGNG
>>238
VBのサブクラス化がエレガントじゃないっていのは同意するけどタイマーはなぁ。
業務でそれやったら「こいつ大丈夫か?」って思われちゃうだろうな。
自分しか使わないツールだったら許せるけど。
0240240NGNG

MDIアプリで、OracleのDBをいじるアプリを書いています。
漏れが担当しているのは、その一部の画面なんですが、
そのフォームから、更に別のフォームを子フォームとして
開いて、public 変数を介して情報のやり取りをしようと
しているのですが、うまくいきません。

親フォームを frmParent、子フォームを frmChild とします。

うまくいかないのは
・親フォームの Public strPText As String を子フォームから
 frmParent.strPTest の形で参照すると、何も入っていない文字列
 になる。(親フォームでは文字列を代入しています。)
・親フォームのサードパーティ製のスプレッドを子フォームから
 frmParent.Spread の形で操作しようとすると何も反応がない。
などで、

0241240NGNG
・子フォームの Public strCText As String には、親フォームから
 frmChild.strCText の形で代入できる。
・同様に子フォームの Public objForm As Form にもアクセスできる
 ので、親フォームから、親フォーム自身を objForm に代入して、
 これを使って上記のうまくいかない形のアクセスを行うと、ある程度
 はうまくいく。(プロパティの代入と参照)
  例) objForm.strPText
    objForm.Spread
・この方法でもスプレッドのメソッドは動作しなかった。

・親フォームの Public Function は子フォームから実行可能。

上記のような状況です。Visual Soucesafe を使って、複数人で
開発しています。
0242240NGNG
同じような経験をされた方、おられないでしょうか?
シンプルなプロジェクトを使って試したら、Public 変数には
何の問題もなくアクセスできたので、いったい何が問題なのか
検討もつかない状況です。

objForm を使うと冗長になりますし、IDEのインテリセンスが
使えなくてやりづらいです。
0243デフォルトの名無しさんNGNG
>240
 frmParentがfrmParentとして宣言されて開かれたのではなく・・・

 Dim objForm As frmParent
 Load objForm
 objForm.Show

 と言う風に開かれているのでは無いかと思えるが。
 LoadされていないフォームのPublic変数にアクセスした
場合と同じ動きをしているような感じだから。
 試しに、親フォームのPublic変数を参照しても空文字が
帰ってくる部分の直後にfrmParent.Showってやってみて
くれないかな?
0244240NGNG
>>243
Childではなく、Parentの方ですよね?
私も全体像は分からないのですが、起動(エントリポイント)は
標準モジュールから行っているみたいなので、そういう形で
起動している可能性はあります。

いまは自宅で、会社にいかないと詳細が分かりませんので
後で確認したいと思います。

ちなみにChildの起動は
frmChild.Show 0
で起動しています。

0245240NGNG
>>244
うーん。子ウインドウは frmChild.Show でやってるから、
親から子には問題なくアクセスできるのかな。
少し暗雲に光明が差し込んできた感じです。
ありがとうございます。

今日はこのワケワカメなバグでぐったりしてしまいました。
0246デフォルトの名無しさんNGNG
>>240
原因はたぶんフォームの「クラス」と「インスタンス」を混同していることと、
変数のスコープを忘れていることにあると思う。

フォームのインスタンスへの参照が常にグローバルレベルへで存在しているとは
限らないよ。

Form1内の複数のスコープから、Form2型のForm2という名前の同一のオブジェクトに
アクセスしたいなら、「オブジェクトForm2」への参照をForm1のモジュールレベルで
保持しなきゃ。

そうでなきゃ、たとえば同じ"Form2"にアクセスするつもりのコードを
Form1のロードイベントとForm1のコマンドボタンのクリックのイベントハンドラに
書いても、それぞれ「暗黙の宣言」によって生成された別々のForm2型の
インスタンスに対するアクセスになってしまうよ。
0247デフォルトの名無しさんNGNG
>>245
 それなら、子ウィンドウをfrmChildで呼び出しても
問題なくアクセスできますね。
 やっぱり、最初に親ウィンドウを開いている所に
原因がありそうですね。
0248190NGNG
>>209
> 無難な線として
> Public Sub Hoge(ByRef frm As Form1)
> みたいな感じで引数でフォームへの参照を受けて以後その引数を利用してアクセスすれば良い。

なるほど、そのHogeプロシージャーをフォームモジュールに書くんですね?
フォームのコントロールを触る処理はフォームモジュールに書いて、フォーム
に依存しない処理を標準モジュールに書けばいいのかな。


>>210
コントロールを引数にするのは非常に便利なのでしょっちゅう行ってるんですよ。
フォームに載ってるコントロールの特定のプロパティやオブジェクトを一斉に操作
したい時なんか、For eachと組み合わせて使うととても重宝してますです。Fontオ
ブジェクト弄ったり、MouceIconプロパティ弄ったりと。
0249240NGNG
>>246
なんか難しいんですね。C++の経験はあるんですが、
VBはじめて2ヶ月くらいなので、暗黙の宣言とかはまだ
よく分かってないです。
0250デフォルトの名無しさんNGNG
いや、>>210の意見はずれてると思うよ。
彼自身が冒頭に書いているとおり、(つまり>>210の文章は矛盾してるんだが)
いったいどこにフォーム上のコントロールをいじるコードを
フォームモジュール以外に書いてわざわざ見通しを悪くする必要がある。

それに標準モジュールにはAPI宣言と構造体の定義、サブクラス化するときの
ウィンドウプロシージャ等、VBの言語仕様上標準モジュールにしか
書けないコード以外書くべきでない。

当該のフォーム以外で発生するイベントをトリガーにして
フォーム内のコントロールをいじりたい、ってのなら相手に自分の参照を
引数で渡すなんてわけの分らんことしないで、フォームモジュール自身に
イベント発生源のオブジェクトへの参照をメンバ変数としてもたせて
イベントを受信するようなコードを書けばいい。

もっとも、これらはある程度の規模以上のプログラムを設計する場合の話で、
「〜を標準モジュールに書くべきかどうか?」なんて悩んでいるってことは
つまりどこに何を書こうと十分に見通せる程度の規模のコードってことで、
それなら「言語厨」に何を言われようと別に好きなように書けばいいと思うんだが。
0251デフォルトの名無しさんNGNG
>>249
 いや、>246の意見は一見正しいけど、VB6.0(以前含む)での
挙動ではない。(Unloadを実行していれば別だが)
 VBのフォームは暗黙にPublic宣言されている様な存在なので。

 試しに、検証してみたら、Form1.Showで開いた場合、何処からでも
Form1のPublic変数はForm.hogehogeで値が取れる。
 それぞれのプロシージャ内でローカルに宣言したオブジェクト変数の
Form1なら話は別だがね。
 もひとつ検証して、>243で書いた通りの事をすると、確かに
frmParent.strPTextでは空文字になる。
 >243では、Loadの直前に「Set 〜 = New frmParent」が必要ですが。
0252本日新規NGNG
VBというかVCというかどっちの問題なのかわからないのですが
ピンときたら教えてほしいっす
VCで作成したDLLをVBからデクレア?で宣言してその関数をフォームから
呼び出すと ファイルが(関数をもっているDLL)みつかりません
ってでるんすよ パスの通った場所にいれてるのですが
再起移動かけようが環境変数追加しようが事象がかわりません
ちなみにMFC DLL作成スケルトンで作ったファイルでTelnetの処理をしてます
0253デフォルトの名無しさんNGNG
>>252
IDE上で実行するときは、dllは相対パスで指定したりパスの通ったフォルダに
置くのはだめで、フルパスで指定する必要がある気がした。

コンパイルすればいいんだけど。
0254デフォルトの名無しさんNGNG
>>252
ちゃんとDLLの関数はエクスポートしている?
0255デフォルトの名無しさんNGNG
>>253
VB6.EXEのあるディレクトリにDLLをほーればよいのさ。
0256本日新規NGNG
みなさんレスありがとう
いろいろ心みましたが なんかうまくいきません
VCよりの話になりますが
スケルトン作成時の設定でスタティックライブラリ使用か
MFC共有DLL使用の選択で影響ってでるものですかね?
0257デフォルトの名無しさんNGNG
>>256
VBから使いたいDLLが他のDLL等に依存しているなどの理由で起動できないときは同様のエラーがでますよ。
0258デフォルトの名無しさんNGNG
>>256
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=VB+DLL+DEF&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
ここらへんを見てみる。>>254の話題だけど。
0259デフォルトの名無しさんNGNG
すいませんフォームの事で教えてください。
現在ロードされているフォームの名前を取得する方法ってあるのでしょうか?
また、特定のフォームがロードされているのかアンロードされているのか調べる方法でも結構です

0260デフォルトの名無しさんNGNG
for each hogehoge in forms
0261259NGNG
>>260
ぐぐってみたらアンロードするときに使われるっぽいループ?みたいですね・・・
初心者には難しいかもしれませんがIF文でもかまして改造してみます
↓こんな感じですが、合ってますかね?

Dim frm As Form
Dim Nam as string
For Each frm In Forms
Nam = frm.Name
If Nam="AAA" then
なんとかかんとか
Else
Next frm
0262240NGNG
>>240です。

皆さんのご指摘どおりでした。
>>243の形で起動されてました。

これですっきりした気持ちでプログラムが組めます。
ありがとうございました。

今日は打ち合わせで11時帰宅。
明日はまた9時からです。

手短で申し訳ないですが今日はこれで失礼します。
0263デフォルトの名無しさんNGNG
UNCパスに存在するOCXやActiveX DllをREGSVR32で登録出来ますか?

自分が実験したところでは、成功したと言うダイアログが表示されるけど
実際のところは登録されてないようなのですが、自分のやり方が悪くて
登録出来てないのか、それとも本当に登録出来ないのかが分からない
ので、その辺をはっきりさせたいと思いまして…

0264デフォルトの名無しさんNGNG
チェックボックス付きリストビューのチェックボックスの状態を
取得したいのですがどんなメッセージを送ればよいでしょうか?
0265264NGNG
ret = SendMessage(hWnd, &h1000 + 44, idx, &hf000)
if ret = 8192 then
true
else
false
end if

で取れたんだけど大丈夫かなぁ
0266264NGNG
8194もでした。
0267デフォルトの名無しさんNGNG
リストボックス.Selected(ゼロから始まる行インデックス)
0268デフォルトの名無しさんNGNG
Checkedだろ。
0269264NGNG
あひゃひゃひゃ
VB6.0にはあった。checkedプロパティ
VB5.0なんです。
0270デフォルトの名無しさんNGNG
>>269
死ね
0271264NGNG
なんでやねん
0272Option1NGNG
Optionボタンをクリックするとイベントが発生しますが、
Option1.valueに値を直接代入した場合にもイベントが
発生して困っています。
 値を代入したときは、イベントを発生したくないのですが、
なにか方法はないのでしょうか?
 お願いします。
0273デフォルトの名無しさんNGNG
>>272
フラグ使うしかないねぇ。てか、値を直接代入した場合とクリックした場合
とで挙動を異なるものにするって設計はよくないと思うよ。
0274Option1NGNG
 そうかなー?
たとえば、フォームを立ち上げたとき、データベースのデータで
Optionの状態を設定したい場合はある。
 これは初期化だから、論理的にはEVENTは発生しない方がいい。
もしイベントが発生すると、
初期化にもかかわらず、初期化以前の状態を意識する必要が生じる。
これは、「純粋な初期化ができない」ことを意味する。
 そういうわけで、イベントはDisableできるのが、まともな設計だと
おもう。
 そもそもエヴェント駆動でありながら、この辺が手落ち。
 個別のイベントのイネーブル、ディスエーブルと同時にユニバーサルな
イネーブル、ディスエーブルが当然あるべき
だと思う。(たとえばコンテナ上のイベントはすべてディスエーブルなど)

0275デフォルトの名無しさんNGNG
>>274
 仕様ですから・・・
0276デフォルトの名無しさんNGNG
VB6.0は騙しながら使っていくしかないのです。
0277デフォルトの名無しさんNGNG
>>272
ついこないだほとんど同じ内容のレスと回答があったはずだと思うんだけど。
コードでVaueプロパティ変えてClickイベントが発生して困る、ってんのなら
Clickイベントでなくほかのイベント、たとえばMouseUpイベントで
マウスのクリック拾えばいい。

それに
>イベントはDisableできるのが、まともな設計だと おもう。
普通にできますけど。MSのVBの設計者だってそんなに馬鹿じゃない。
あなたごときにそんな風にいわれたかないだろう。
言語厨が馬鹿にするようなVBの糞な部分だって、実はいろんな
トレードオフの結果だったりする。
0278デフォルトの名無しさんNGNG
>>277
興奮しているところ悪いけど、
>>イベントはDisableできるのが、まともな設計だと おもう。
>普通にできますけど。MSのVBの設計者だってそんなに馬鹿じゃない。
これ、教えて頂けないでしょうか。
長いことVB使ってるけど、やり方がわからないです。
0279デフォルトの名無しさんNGNG
>>278
失礼。正確にはコードで特定のプロパティを変えたときの
イベントそのものを無効にすることはできないね。

しかし、イベントハンドラの最初の行にたとえば
If Not Option1.Enabled Then Exit Sub
みたいに書けば機能的に等価だとおもうんだけど。
0280デフォルトの名無しさんNGNG
>>272
俺が質問したのと同じかな。
発生するのはClickイベントだっけ?

フォームのprivate変数で
Dim bDisabler As Boolean

とやって

bDisabler = true
Option1.Value = true

とやって、

イベントの先頭で

0281デフォルトの名無しさんNGNG

if bDisabler = true then
 bDisabler = false
 Exit Sub
end if

とやればよかったと思う。

最近気づいたんだが、VBってのは例えば
SetFocusメソッドを行っても、すぐにイベントが発生しないのね。

bDisabler = true
cmdButton.SetFocus
bDisabler = false

なんてやっても、GotFocusイベントが呼び出される前に
bDisabler = false が実行されちゃうんだわ。
というわけで、俺も>>276さんと同じ感覚でやってます。

0282デフォルトの名無しさんNGNG
>>281
フォーカス移動なんかはVBだからじゃなくてWindowsのメッセージ待ちだからじゃないのかな?
などと適当なことを書き込んで寝る。
0283デフォルトの名無しさんNGNG
>>282
WinAPIの SendMessage は送ったメッセージが
消化されるまでリターンしない仕様だったと思います。
(消化前に返したい場合はPostMessageを使う)

MFCなんかでは SetFocus はイベント終了まで
戻らない仕様になってたと思うんですが。
(ちとオボロゲ)

0284デフォルトの名無しさんNGNG
となりの席のコボラーが最近社内システムかなんかでVB6立ち上げて
なんかしきりに作っているんですが 構造体とか宣言とかクラスとバスの違いとか
セットフォーカスとかモーダルがどうとか 調べもしないで無関係な
俺に聞いてきてウザイ 作業とまんだよこのヤロー
俺はVC専門だから知るカー こんちきちー
ちなみに普通にVBさわれんだけどね(笑)
どうしたらいいですか?VC担当なのでVB知りませんとかは言いたくない
うまい逃げ手を内気なおいらにおしえてくれ
0285デフォルトの名無しさんNGNG
>284
辞表出せ
0286デフォルトの名無しさんNGNG
そうだな、辞表出せ
0287284NGNG
藻舞らひとごと杉 月曜が鬱なんだからさー
まじめに考えてくれよ
たとえば高度な技術過ぎる為 メモリを食いつぶしてあぼ。。。ry
0288デフォルトの名無しさんNGNG
まあ、世の中自分の重い通りにばかり逝くわけではない
0289デフォルトの名無しさんNGNG

最近、害虫ばかりのヘボチームにいれられますた。

日本語の変数名と
日本語の関数名と
大量のグローバル変数と
暗黙のフォーム変数地獄

に悩まされています。

日本語の変数・関数ぐらい辞めさせたいんですが、

バカどもに辞めさせる良い方法なんかないですか?

0290デフォルトの名無しさんNGNG
>>289
俺、新人PGだけど、うちのチームもなんでも
かんでも標準モジュールに置こうとしていて、なんかよく
分からんよ。VBはじめて2ヶ月なんだけど、
こんなもんなのかなぁ。3行程度でできる
初期化処理まで標準モジュールの関数使えというんだよ。


0291Option1NGNG
>Clickイベントでなくほかのイベント、たとえばMouseUpイベントで
>マウスのクリック拾えばいい。
なるほど、これはいい方法だね。みんな苦労しているんだ。

>言語厨が馬鹿にするようなVBの糞な部分だって、実はいろんな
>トレードオフの結果だったりする。
 大事なことは、トレードオフしないでくれ。
0292デフォルトの名無しさんNGNG
16進数の色 #FFFFFF
RGBの色 (255,255,255)
をお互いに変換するソフトをつくりたいんですけど計算方法がわかりません。

テキストボックスに
#abcdefと入力して変換ボタンを押すと
(xyz,pqr,stu)
という文字列が別のテキストボックスにでてくるし、逆の変換もできるというやつです。
0293デフォルトの名無しさんNGNG
>289
MSのサポート情報見せりゃいいじゃん。
変数やオブジェクト名に日本語を用いた場合結果は保証しんないと書いてある。
0294デフォルトの名無しさんNGNG
>292
RGB、HEXあたりを使う。
計算方法については
ttp://www.atmarkit.co.jp/icd/root/63/5783563.html
ttp://www.atmarkit.co.jp/icd/root/62/5783562.html
を読んで理解しろ
0295デフォルトの名無しさんNGNG
>>292
たぶんこの程度のことでいちいち人に聞くような人に、
掲示板でのやり取り程度で方法を完全に理解してもらうのは無理。

なのでヒントを1つだけ。
16進を10進整数に変換する方法が分った時点で、たぶん与える16進数によっては
得られる10進数が負になる、という問題にぶつかるはず。
そのときは「型宣言文字」を試しましょう。
0296292 ◆ExGQrDul2E NGNG
00〜FF=0*0〜16*16=000〜256
だが、なぜRGB表現はMAXが255に設定されているのだろうか?
0297デフォルトの名無しさんNGNG
>>296
 ぉぃぉぃ
 256を16進数に変換してみれ
0298デフォルトの名無しさんNGNG
つまらんネタにこれ以上釣られるなよ。
0299292 ◆ExGQrDul2E NGNG
そうか、16*16だとケタあがりしちゃうから16*16-1が"# AA BB CC"内のAA,BB,CC各値の取れる最大値だな。
それで256-1=255だな。
0300292 ◆ExGQrDul2E NGNG
それにしても
ホームページの色指定に使う#FFFFFFは16進数じゃないようにおもわれる。
もし16進なら
RGB=255,255,255=0x100-1,0x100-1,0x100-1であり、FF-1と0x100-1はちがう値だし。
0301デフォルトの名無しさんNGNG
>>300
なんでFFから1を引くんだ?
0から255の16*16=256段階ということだぞ。
0302292 ◆ExGQrDul2E NGNG
>>294の計算もわからんかったし、
オレだったら
Select case String
case "00"
String2="0"
・・・
case "FF"
String2="255"
End select
で256回Select Caseするしかないようだ。
0303292 ◆ExGQrDul2E NGNG
そういえば
ChexとかCdecとか変換関数があったような気もする。
0304デフォルトの名無しさんNGNG
こんなの小学生のころやったよ。
オマエらレベル低すぎ
0305292 ◆ExGQrDul2E NGNG
どうやら
256段階
という時点で、変換する計算では目的の10進数が求まらないような気がする。
なぜならたとえば
FE=16^1*16+16^0*15=256+15=271
で、255の値を超えていて、単なる16進→10進変換ではRGB表現に変換できないのがわかる。
さてと・・・うーむ
0306292 ◆ExGQrDul2E NGNG
Select Caseを256個も書きたくない
0307デフォルトの名無しさんNGNG
>305-306
二進数の勉強をしてこい。
頭痛がするので、終了。
0308292 ◆ExGQrDul2E NGNG
ついに2桁の16進を10進に変換するプログラムが完成した。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
16*H1+H2←今さっき開発した公式1

使い方
まずは配列を宣言して、Fを15に対応させるようなテーブル参照を記述しておく。
Dim Hary(15) as string
Hary(0)="0"
・・・
Hary(15)="F"

それから公式1を使い
FF=16*15+15=255
と無事求まった。
0309デフォルトの名無しさんNGNG
日記は他所でやれ馬鹿
0310292 ◆ExGQrDul2E NGNG
F=16であると勘違いしていた人はハマったと思う。
ただしくはF=15
0311デフォルトの名無しさんNGNG
292さん、初心者のボクには参考になりました。応援してます。
0312デフォルトの名無しさんNGNG
ちゃんちゃらおかしいw
0313デフォルトの名無しさんNGNG

イベントプロシージャの挿入位置って変更できないのかな?
コードの最後に追加していく方法にして欲しい。
0314デフォルトの名無しさんNGNG
>>313
お前、292だろ?
0315デフォルトの名無しさんNGNG
初心者な質問で申し訳ないのですが、
ダブルクォーテーションを文字列に入れるには、どうしたらいいんですか?
¥”じゃだめですよね?
どなたかご教授ください、宜しくお願い致します。
0316デフォルトの名無しさんNGNG
>>315
vbDQuot
0317デフォルトの名無しさんNGNG
>>315
"""
0318デフォルトの名無しさんNGNG
頼むー誰か答えてくれ

解像度取得して規定位置にフォームおきたいんだけど
解像度別のスクリーン座標の最大とかが今一わからぬ
0319デフォルトの名無しさんNGNG
>>318
 Screen.TwipsPerPixelX、Screen.TwipsPerPixelY、Screen.width、Screen.Height

 Screenオブジェクトのプロパティについて調べてみれ
0320318NGNG
即答サンクス!

恩にきますです。
0321デフォルトの名無しさんNGNG
◆ExGQrDul2E をGoogleに探させると・・・
こりゃまた酷いな
0322デフォルトの名無しさんNGNG
更にGQrDul2Eで検索
0323デフォルトの名無しさんNGNG
APIのCallBack関数中でグローバルオブジェクトにアクセスすると
落ちてしまうのですが、アクセスできる範囲というものはあるのでしょうか?
一部のグローバル変数にはアクセスできます。

ご教授願います。

VB6
0324323NGNG
追加といたしまして、簡単なコードをつけます。
タイマーを作って、タイマーのCallBack関数が呼ばれます。
そのCallBack関数内で MsgBox "Timer" としています。
VB上からデバッグとして実行すると動作するのですが、
exeファイルを作って動作させると不正な処理となって強制終了されてしまいます。
MsgBox "Timer"が無い場合は正常に動作しています。
何が原因なのでしょうか?

ご教示願います。
環境 VB6、WinXp

以下コード
Form1上で
Private Declare Function CreateTimerQueue Lib "kernel32.dll" () As Long
Private Declare Function CreateTimerQueueTimer Lib "kernel32.dll" (ByRef phNewTimer As Long, ByVal TimerQueue As Long, ByVal Callback As Long, ByVal Parameter As Long, ByVal DueTime As Long, ByVal Period As Long, ByVal Flags As Long) As Long
Private hQueue As Long
Private hTimer As Long
Private Sub Form_Load()
hQueue = CreateTimerQueue()
Command1.Caption = "Start"
End Sub
Private Sub Command1_Click()
If hTimer = 0 Then
CreateTimerQueueTimer hTimer, hQueue, AddressOf TimerCallBack, ByVal 0&, 0, 5000, 0
End If
End Sub
標準モジュール上で
Public Sub TimerCallBack(ByVal lpParameter As Long, ByVal TimerOrWaitFired As Long)
Debug.Print "Timer"
MsgBox "Timer"
End Sub
0325デフォルトの名無しさんNGNG
推測だが、
コールバックされた関数が別のスレッドで走ってるなら、
VB自体がスレッドセーフになっていない可能性が高いので、
落ちたりもするかも。
0326デフォルトの名無しさんNGNG
質問です。
500行程度のクラスモジュールを作成して、フォームのロード時に
インスタンス化してるのですが、フォームアンロード時に
そのクラスを開放するのに2秒程度掛かってしまいます。
できればスパッっとはぎれよくフォームを閉じたいのですが
何が問題と思いますか?
0327デフォルトの名無しさんNGNG
>>326
アンロード->開放する前にMe.Hide。
0328デフォルトの名無しさんNGNG
TextBoxの中を右クリックしてもポップアップメニューがでないようにしたいのですが、
どうやったらいいのでしょうか?
知っている方教えてください。
0329デフォルトの名無しさんNGNG
>>327
ネ申
0330デフォルトの名無しさんNGNG
と思ったけど、画面消えた後フリーズするやん
0331デフォルトの名無しさんNGNG
スイマセン、今、データグリッドを使って作業をしてるのですが
accessデータのフィールドに ID,名前,Yes/Noフラグ と三つの項目があって
複数のブックマークを選択した時に選択したIDに順ずるフラグを
NO→YESに変えたいのです。

ブックマークがひつとなら
DataGrid1.Col = 0
DataGrid1.Row = DataGrid1.Bookmark - 1

Dim DGdata As Long
DGdata = DataGrid1.Text

strSQL = "update テーブル set 削除フラグ = yes where ID =" & DGdata
ADOConnect.Execute strSQL

で何とかなるのですが、複数のブックマークの時はどう書けばよいのでしょうか?
0332デフォルトの名無しさんNGNG
>>326
頭悪いにもほどがある。
こういう人の「フリーズ」ってのが本当にフリーズをさしているかどうか
怪しいが、そんなの単にあんたのコードがクソだからだろうが。
0333デフォルトの名無しさんNGNG
>>332
フリーズっていういいかたは悪かった。
0334デフォルトの名無しさんNGNG
>>326
コードに問題があるんだろ? 普通はそんなことない。
それだけの情報じゃこれ以上のコメントは出来ない。
0335デフォルトの名無しさんNGNG
>>334
問題あるんかのー
動的配列使ってるのがダメ?
0336デフォルトの名無しさんNGNG
>>335
サイズや、終了時の開放の仕方にもよる。
ループの中でEraseとかReDimなんかしてたらもう・・・
0337デフォルトの名無しさんNGNG
>>336
ループでredimはしてます。でもeraseはterminate時だけです。
0338デフォルトの名無しさんNGNG
まずどこで時間がかかっているか調べてみ。
サイズを小さくしたりコメントアウトするとかして時間を計る。
そういう専門のツールを使ってもいいけど。
0339デフォルトの名無しさんNGNG
よく考えるとredimといってもnewしてすぐアンロードしても
遅いのでredimのループは通ってないんですよねー
んー。くまった。
0340デフォルトの名無しさんNGNG
どっか根本的に間違いがある。
0341デフォルトの名無しさんNGNG
まさかVB5.0だからってことは・・・・んなわけないな
0342326NGNG
クリーン印すとした環境にディストリビューションウィザードで
exeを配布したら一瞬で閉じられました。
どうやら環境の問題のようです。お騒がせしました。
0343デフォルトの名無しさんNGNG
ある文字列(漢字、数字なんでもあり)からチェックデジットのようなものは算出できるのでしょうか?
その文字列が改ざんされていないことを確認したのですが・・・
0344デフォルトの名無しさんNGNG
>>343
こういうことがしたいんかな?
ttp://www.atmarkit.co.jp/aig/02security/hashfunction.html
0345343NGNG
>>344
そうです。これって具体的に関数ってあるのでしょうか?
.Netにはそれらしいのがある感じですが、VB6ではどうなんでしょう?
0346190NGNG
191って臭いね
0347344NGNG
>>345
この汎用コンポーネントにMD5の機能があるから試してみそ。
フリーウェアだし商用利用も認めてくれてる。

ttp://www.hi-ho.ne.jp/babaq/basp21.html#0046
0348デフォルトの名無しさんNGNG
質問させて下さい。

VBを学ぶのに良いテキストをご存知の方、教えていただけませんでしょうか。

宜しくお願いします。
0349デフォルトの名無しさんNGNG
月並みだが、MSDN。
0350デフォルトの名無しさんNGNG
>>346
臭いわな。
0351デフォルトの名無しさんNGNG
hage
0352デフォルトの名無しさんNGNG
VB6を使ってデータベースを作っていますが、商品の画像を表示させることは
不可能ですか?

データグリッドで1つの商品を選択し「詳細」コマンドをクリックしたらアクセスの
データベース内の写真フィールドにある画像データの保存先を参照しそのフォルダ
内の画像を表示することができるような気がするのですがどうしたらいいでしょうか。
0353デフォルトの名無しさんNGNG
>>352
できるっしょ。
0354デフォルトの名無しさんNGNG
>>353
ついでにそのやり方も教えろやボケェ
0355デフォルトの名無しさんNGNG
> データグリッドで1つの商品を選択し「詳細」コマンドをクリックしたらアクセスの
> データベース内の写真フィールドにある画像データの保存先を参照しそのフォルダ
> 内の画像を表示することができるような気がするのですがどうしたらいいでしょうか。

そのまま言葉をコードに置き換えていけばできそうだけど?
0356デフォルトの名無しさんNGNG
>>355
レス遅すぎ。使えねぇ奴だな。
0357デフォルトの名無しさんNGNG
>>356
うっせぇ、ハゲ。
0358デフォルトの名無しさんNGNG
Zip圧縮やろうとおもってZip32J.dll使ってやってまして
can't load zip32とかでてできません。
環境はwin98vb6sp5です。
UNLHA32つかったlzh圧縮はすんなり出来たんですけどね、、
お約束の間違いとかあるんですかね〜
0359デフォルトの名無しさんNGNG
CPU占有率についてなのですが、
ループ処理のあるプログラムでCPU負荷を下げるのに、
どういった点に気を付けたほうがいいでしょうか?
それともCPU占有率を制限する方法とかありますかね・・・。

VB6SP5です。
0360デフォルトの名無しさんNGNG
VB6.0でポインタ制御ってできるんでしょうか?
0361デフォルトの名無しさんNGNG
>>359
DoEventsをかますか、タイマーで処理するか。気休め程度にSetThreadPriorityを使ってみたり。
>>360
Byval/Byref、ObjPtr、VarPtr、StrPtr、AddressOfについて調べてみる。関数ポインタは取得のみで呼び出せません。
0362359NGNG
>>361
DoEventsをかますか、タイマーで処理でも変わらずでした。
SetThreadPriorityは。。ちょっと調べてみます。
0363デフォルトの名無しさんNGNG
>>362
Sleep入れてみれば?
0364デフォルトの名無しさんNGNG
>>358
単体でzip32j.dllって使えたっけ?他にも圧縮には必要だったような
0365358NGNG
>>364
zip32.dll入れたらできました;;
ありがと〜
0366デフォルトの名無しさんNGNG
自身を自動アップデートするアプリケーションを作りたいのですが
VBのランタイムライブラリの問題があります。
ランタイムライブラリのバージョン違いなどで
予期せぬエラーが発生する場合があると思いますが
みなさまはどのように対処されていますか?
0367デフォルトの名無しさんNGNG
予期せぬエラーってーのはその発生を予測できないって事なので
事後処理しかないのでは(w

てかVBのバージョンアップが止まってるのに
これから作るアプリケーションで
ランタイムのバージョン違いなんて発生するの?
0368デフォルトの名無しさんNGNG
>>367
にゃるほど
0369367NGNG
って、367はただの揚げ足取りだから納得されても困るんだが。
VBランタイム以外でも付随するDLLやらOCXやらある(かもしれない)わけで。

そもそもどうやって自動更新しようとしてるの?
EXEは自身を更新できない(起動中のEXEファイルを置き換えることはできない)ので
自動更新したいプログラムをAとすると、
Aを更新・起動するプログラムBを別途作成し
ユーザーはBを起動するように仕組む。
とすると付随する何やらもまとめて更新するようにBを作ればいいわけだ。

さらに言うと、バージョンアップしていくに従って
更新対象ファイルが増えたり変わったりする。
となるとBも更新しなくてはならないので
Bを更新・起動するプログラムCを別途作成し、
ユーザーはCを起動するように仕組む。

俺はこんな風にしてるけど
もっと良い方法知ってる人いたら教えて。
0370デフォルトの名無しさんNGNG
>>369
マジれす。。さんくす。
更新用アプリAで本アプリBを更新しようと思ってます。
大幅なアップデートの場合は担当者がインストールして
まわればよいのですが、バグ修正などでいちいち全国を
まわるのはあほらしいので。
でも、予期せぬエラーなんだから事後処理しかないと
いうのは納得しますた。
まぁ、オレが納得して済む話じゃないんですけどね。
0371デフォルトの名無しさんNGNG
>>367
2004年3月29日にSP6がリリースされているのだがどうか?
ttp://www.microsoft.com/japan/msdn/vstudio/downloads/sp/VS6SP6.asp



#尤も、これでSPは打ち止めだと思うけどね。
0372デフォルトの名無しさんNGNG
初心者が唐突の質問で申し訳ありません。
VBの印刷で、プレビュー画面の作成でいまひとつ悩んでいます。
別フォームに表示した内容をそのまま印刷しようと思っているのですが、
印刷対象がA4、しかしデザイン時のフォームの大きさがA4相当にできないでいます。
(そのフォームは非表示です)

知識ある方のお力添えがいただけましたら、幸いです。

Windows xp Professional SP1
VisualBasic 6.0 SP6
業務ではありません。
0373デフォルトの名無しさんNGNG
>>370
ClickOnce

>>372
A4 サイズが表示できる解像度にする。ってのがだめなら、フォームの
内容をそのまま印刷するってのはあきらめたほうがいい。
0374デフォルトの名無しさんNGNG
えと、もしかして、画面上の大きさをA4にしたい、って事?
0375372NGNG
なるほど…
A4縦の上半分にImageと、下半分にカレンダーコントロールを張った
簡易的な画像付きカレンダーを作ってみたいと思っているのです。
となると、コントロールの内容等を直接位置指定しながら出力する他
ないのですかねぇ…できれば、出力する時の内容がデザインで確認
しながらの方が出来るのであれば、やり易いですが。

どちらにしても、A4サイズの非表示フォームを作成して、その内容を…
というのは無理ですか?
0376デフォルトの名無しさんNGNG
直接位置指定だと位置を変更するたびにコード書き換えなきゃじゃん。
比率計算すればいいんじゃ?
0377358NGNG
環境はwin98vb6sp5でZip圧縮しようとしているんですが
フォルダ名にスペースがあったりすると誤作動してしまいます。

zip32.dllにコマンド送る際にスペースのせいでアドレスじゃなくなってるのは
わかるんですが解決策がわかりません。空白以外の区切り方とかあるんですかね?
0378デフォルトの名無しさんNGNG
>>375

A4 サイズのフォームを作るのは、実は面倒だったりする。というのも、
画面の解像度を超えるフォームってのは、ちょっと特殊なことをしないと
作れないから。

なので、そういう場合はピクチャーボックスを代わりに使う。ピクチャーボックスは
画面のサイズより大きなものが作れるので。

>>377

やったことないけど、"" でくくるとか、ショートパスを使うとかでどう?
0379デフォルトの名無しさんNGNG
アンダースコア のキーコード(16進数)教えてください
0380デフォルトの名無しさんNGNG
>>379
ttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=ASCII+CODE
0381358NGNG
>>378
両方試してみましたが無理でした。
0382デフォルトの名無しさんNGNG
>>372
ひょっとして「印刷」ってのはプレビュー用のフォームのPrintFormメソッドで
実装するものだと思ってない?
だとしたらそれはものすごい思い違いをしている。

ちゃんと印刷関連のヘルプを読んだほうがいい。
というよりヘルプも読まずに印刷するアプリ作ろうなんて無謀もいいとこ。
印刷ってそんなお手軽にできるようなことじゃないよ。
別に難しくはないと思うが最初の敷居は結構高いはず。
0383デフォルトの名無しさんNGNG
>>379
イミディエイトウィンドウに

Debug.Print Asc("_")

と打って、エンターキー押してごらん。
0384デフォルトの名無しさんNGNG
あ、ごめん。アスキーコードじゃないのか。
0385デフォルトの名無しさんNGNG
>>377
引数をダブルクオート(")で囲めば問題ないはず。
知ってるとは思うんだけど、"は引数の前後に普通につけてもだめだよ。
Argu = """" & "c:\hoge 00\" & """"
みたいにエスケープするか、chr$使わないと。
0386デフォルトの名無しさんNGNG
質問させてください。
Webbrowserコントロールを使用して、CGIにデータをPOSTしたいのですが、
思うように動作してくれません。
データはURLエンコードを行い、ヘッダにContent-type: application/x-www-form-urlencoded
をセットしているのですが、CGIから結果が戻ってきません。
お分かりになる方がおられましたら、宜しくお願いします。

WindowsXP
VisualBasic6.0 SP6
0387デフォルトの名無しさんNGNG
TextBoxにフォーカスが当たった時、
SelStart=0
SelLength=Len(TextBox1.Text)
とする事でそのテキストボックス内に入力されている全てのテキストを選択状態にする
というのはお馴染みの手段だと思うのですが、コントロール数が多い場合、全ての
テキストボックスのGotFocusイベントにこのソースを書かねばならず面倒です。

これを一発でやるような方法はないでしょうか。
ActiveControlを使えば現在フォーカスが当たっているコントロールを拾えるので、あとは
「フォーム上でフォーカスの移動が発生した」事を知る方法がわかれば実現できそうなの
ですが、その手段がわかりません。
 FormのKeyDownでは、当然マウスクリック等によるフォーカスの移動を拾えないのでNGです。

フォーム上でフォーカスの移動が発生した事を知る手段は無いでしょうか。
もしくは、それ以外の手段でテキスト全選択を実現した方はいますか?
0388379NGNG
>>380
>>383

教えていただきありがとうございます。
迷惑ついでにもう一つ教えてください。
APIでkeybd_event()ってあると思うのですが

$ ! ' & " ( ) _ ? # 等 どうやって渡せばいいか分からないんです
VK_SHIFT と同時押しの部分でなんとかなる文字もあるのですが

_ アンダースコアの場合 ASCIIの対応表みて16進ひらいだしても
全然違うキーが呼ばれます
0389デフォルトの名無しさんNGNG
すんまそん。

ランダムアクセスでテキストファイルにレコードを追加する場合、
改行して次の行に書き込むことって出来ますか?
何度やっても改行されずに書き込まれてしまいまして。

よろしくご教授おねがいいたします。
0390デフォルトの名無しさんNGNG
>>389
ランダムアクセスファイルに改行もクソもないよ。
ていうか自分で「レコード」って書いてるのに意味分ってないのかな?
こんなとこで聞く暇にヘルプよく読もう。
0391デフォルトの名無しさんNGNG
>>389
 ランダムアクセスの意味を考えれば、行を分ける事に
意味は無い事が分かると思うが。
 ランダムアクセスで作成されるファイルは人間が読む為に
あるのではない。プログラムで読むファイルだ。
0392デフォルトの名無しさんNGNG
>>387
>「フォーム上でフォーカスの移動が発生した」
フォーカス移動をタイマー監視か、テキストボックスをすべてコントロール配列に。
あるいはフォームのメッセージを横取りして以下略

>それ以外の手段でテキスト全選択を実現した方
フォーム上のコントロールを列挙して、それぞれに対し機能を拡張するライブラリを作りかけてある。
配列化されてないコントロールに対しては有効に働いてるっぽ
0393デフォルトの名無しさんNGNG
>>392
でもここでこの程度のこと質問する人に限って
そういうタイマとかコントロール配列とか使う泥臭い方法を
「エレガントじゃない」とかいって嫌うんだよな、まあかなりの確率で。
0394デフォルトの名無しさんNGNG
まあ、あれだ。
水面を優雅に進んでいる白鳥だって
水面下ではウンコ漏らしてたりするもんだ。
0395デフォルトの名無しさんNGNG
泥臭いといっているお前も同レベル
0396デフォルトの名無しさんNGNG
>>393
 サードパーティのコントロールを買えば、って思ったけどね。

 あと、VB6なんだから、カスタムコントロールを自作する手もあるし。
 その方がスマートではあると思う。

 でも、それくらい自分で考えて欲しいわな。折角ある機能だから。
0397デフォルトの名無しさんNGNG
>>396
そのサードパーティのコントロールも、泥臭いことやってたりするんだけどね。
0398デフォルトの名無しさんNGNG
VBとハンディターミナル間で
シリアルポート通信でデータ送受信やったことある人いますか?

今度ハンディターミナル新しい機種に取り替えるんだけど
VB側の処理って機種に依存して変わっちゃう部分あるんでしょうか?

詳しい人おながいします
0399デフォルトの名無しさんNGNG
ageんの忘れた
0400デフォルトの名無しさんNGNG
>>398
ハンディーターミナル(以下HTと表記)次第だと思うがどうか。

例えば、HTにコマンドを送信する場合、コマンドとコマンドの間を
数msあけなきゃならないとか、デリミタが規定されているとか。

ただまぁ、シリアルポート通信ってのは恐らくRS-232Cを介して
の通信だと思うけど、RS-232Cでの通信の基本的な実装はHT
だろうが計測器だろうがバーコードリーダーだろうがそんなに
変わらないと思われ。
0401デフォルトの名無しさんNGNG
>>398
「ハンディターミナル」なんて抽象的な一般名詞だけ書いたって
具体的な装置名も分らなきゃ通信プロトコルも誰にも伝わらないわけで
最低それから説明しなきゃ回答は得られんだろう。

。。ってこんなことから説明が必要な人に、何をどう説明しても無駄なような
気もするが。
0402デフォルトの名無しさんNGNG
>>393
タイマは使い方を語ると力量がばれる諸刃の剣。
例えばの話として出したのかもしれんので、こういうのは無粋かもしれんが、
キャレットの更新で使うのはお勧めできない。
0403デフォルトの名無しさんNGNG
>>402
アップダウンコントロールを暫く押しっぱなしにした時に
増分が増える機能を実装したんだけど、タイマ以外の
実現方法を思いつかなかったおいらは逝ってよしですか?

0404デフォルトの名無しさんNGNG
>>402
ばれるのは「力量」じゃなくて現実的な機能主義者か
自己陶酔型の人間かどうかの違いでしょ。

キャレットの更新なんて話はしてないぞ、ってのは置いといて
「お勧めしない」のは機能主義的な理由か?つまり客観的な合理性がある?

ないでしょ。要するに単に「エレガントじゃないから」なんじゃないの?
それ以上の理由があれば言ってみて。
0405デフォルトの名無しさんNGNG
>>403
押し始めの時間を記録しておけばタイマーを使わなくてもできるんじゃない?
0406デフォルトの名無しさんNGNG
>>404
「エレガントじゃない」という言葉で誤魔化しちゃいかんよ。
実際は表示の更新のタイミングが不自然とか、
場合によってはバグが表面化するとか、
保守性が悪くなるとか、不必要にCPUを使用するとかあるもんだ。
0407デフォルトの名無しさんNGNG
>>404
タイマーでフォーカスが当たっているコントロールを監視して、別のやつ移ったら
SelStartとSelLengthを更新するというのを提案したのだと思ってた。
違ってたらスマソ。

で、その処理をタイマーで処理すると、フォーカスが移った時から、SelLengthを
更新するまでの間に、なんらかの操作が行われる可能性があるというのと、
普通にWindowsからあがってくるメッセージを処理すればいい話なのになんで
タイマ使うかなというのが理由。
ウィンドウのサブクラス化ってやつで、安全に処理できるなら、そっちを使えば
いいと思ったのよ。

重ねて言うが、俺が思っていた前提の処理と違って、それに対して愚痴みたい
なの言ってたらゴメンネ。
0408404NGNG
>>406
そこまでいくとほとんどギャグだな。
そういう「自分が見えない」人のことを自己陶酔型、っていうんだよ。
>「エレガントじゃない」という言葉で誤魔化しちゃいかんよ。
ごまかしてないじゃん。合理的な理由はあるのか?って聞いてるんだから。
「ゴマカシ」というのは

>表示の更新のタイミングが不自然(これは一理はあるが)
>場合によってはバグが表面化する
>保守性が悪くなる
>不必要にCPUを使用する

こういう「詭弁」のことを言う。保守性やバグは別に大麻使うことと関係ないし、
CPU食うって、ノーマルペンティアム時代だって大麻なんてほとんど無視できる
レベルなんだが。

それから、私は実際大麻使って似たような処理すること多かったけど、
更新のタイミングの遅れなんて、確かに皆無とは言わないが普通の人には
(つまり、どうでもいいことにこだわる一部の「変な人」以外には)ほとんど
気にならないレベルだよ。Interval = 100程度にしとけばね。
0409デフォルトの名無しさんNGNG
なんでもタイマーで解決する人って高卒か専門卒だよね
0410デフォルトの名無しさんNGNG
>>408
「詭弁」と言う方がよっぽど詭弁。
問題点は明確に出ている。
君が気づかないだけだ。
0411 NGNG
>>4069
VB使ってる時点で高卒並でつ
0412デフォルトの名無しさんNGNG
五.荒らしは相手しない。
0413358NGNG
>>385
"""" 変数 """"で囲むとうまくいきました。
初の本格的?なプログラムが完成しそうです!
ありがとうございました。
0414387NGNG
なんだか私の質問のせいで荒れたようで申し訳無い。

>392
ども。後だし情報でスマソですが、タイマ使用とコントロール配列というのは試しました。
コントロール配列を使うほうは、テキストボックスが配列化されていない場合はオブジェクト名の変更等が必要になる為NGとなりました。
タイマの方はほぼ期待した通りの動作をしてはくれるものの、より良い方法があるのではないか?という気がし質問しました。

フォームのメッセージを・・・っていうのは、サブクラス化という奴ですよね?
こちらはまだ試していませんので、これをキーワードにチャレンジして見たいと思います。

>それぞれに対し機能を拡張するライブラリ
VBHelperみたいなイメージ?
VBの機能のみで実現されているのでしょうか?

>396
ユーザーコントロールの事でしょうか?
何かのサンプルで一度触った事があるだけなので、思いつきもしませんでした。
こちらもチャレンジしてみます。
0415387NGNG
>404
より良い方法があれば知りたいと思うのもNGでしょうか?
0416デフォルトの名無しさんNGNG
vb6.0でFormを一部透明化するのはどうやってすればいいでしょうか?

検索した所、vb.netではTransparencyKeyでできるようなのですが、
vb6.0ではどうやってすればいいのか判らなかったのでご教授戴きたいと思います。
0417デフォルトの名無しさんNGNG
>>416
http://www.alato.ne.jp/kazu-/vb/tip22.htm
0418デフォルトの名無しさんNGNG
>>416
一部なら、色を指定して SetLayeredWindowAttributes()、Windows 2000/XP
以外の環境なら、リージョンを作って・・・ だね。
0419デフォルトの名無しさんNGNG
>>417-418
ありがとうございました。
さっそくやってみます。
0420358NGNG
またまた質問なんですが、Win98vb6sp5の環境だとちゃんと機能するのですが。
WinXPvb6sp5の環境だとZip32.dllのところでオーバーフローしてしまいます。
これって直せるんでしょうか?ちなみにこんな感じです。
Dim FN As String
Dim SendStr As String
Dim Ret As String * 255
SendStr = "-r9 " & """" & FN & ".zip" & """" & " " & """" & pasu & "\" & """" & " " & """" & FN & ".bmp" & """"
Zip Me.hWnd, SendStr, Ret, 255
Retの数上げても意味ありませんでした。
0421デフォルトの名無しさんNGNG
VB5.0のWinsockコントロールっておかしいですね
0422デフォルトの名無しさんNGNG
VB6.0を使ってます。
ボタンを押すとある関数に入り、
ボタンを元にもどすと、関数から出てくるということをしたいのですが、
どのようにすればいいでしょうか?
よろしくおねがいします。
0423デフォルトの名無しさんNGNG
>>408
真面目に言ってるのか、煽りで言ってるのかよくわからないが、
王道の処理をすっとばして、いきなり脇道を初心者(でもないかも
しれないが)に薦めるってのはどうかと思うよ。
ウィンドウプロシジャで処理すれば、タイマーよりは品質の良いものが
作れるし、本来の処理もそれなんだし。
必要以上にコストをかける人を毛嫌いするってのは分からないでもないが、
初心者でも1日あれば理解できる処理を、あえて回避してるのはなんか
意図があるの?
0424デフォルトの名無しさんNGNG
喧嘩はやめて♪
0425デフォルトの名無しさんNGNG
ふたりをとめて〜♪
0426デフォルトの名無しさんNGNG
わたし〜のため〜に〜♪
0427デフォルトの名無しさんNGNG
争わない〜で♪
0428デフォルトの名無しさんNGNG
なんかタイマコントロール使うなって言うの、GOTO使うなってのと似てきたな
0429404NGNG
>>423
文脈の読めない人だ。

ウィンドウプロシージャにフックかけるような処理が「初心者でも
1日あれば理解できる処理」ってのは大いに疑問だが(あなた、本当は自分で
その手のコード書いたことないんじゃないの?)それは置いといて、

>薦めるってのはどうかと思うよ。
別にタイマ使うことを「薦め」たりしてないって。少なくともこれまではね。
あなたがいう「本来の処理」を回避すべきとも言ってない。

タイマでポーリングするような処理をする奴はお里が知れる、みたいに取れる
レスがあったんで、タイマ使うのを「あえて回避」すべき合理的理由はあるのか?
って聞いてるんでしょ。

PGだったらこういう「論理」には敏感でなきゃ?
たとえ話をすれば、「飛行機を使うな、新幹線を使え」なんていった覚えはなくて
「新幹線を避ける合理的理由は?ただ<嫌い>なだけでは?」って言ってるの。

しかし、ここで初めて私の意見を書けば、>>387みたいな処理にサブクラス化を
使うのは、やはりあまり合理的な選択でないと思う。

少なくとも私にはサブクラス化によってフォーカスの移動を検出するコードが、
保守性の点でタイマを使ったコードより勝るとは思えない。バグが致命的な
ものになる可能性は比較にならないと思う。気軽にブレイクポイントや実行停止が
できなくなる、というおまけも付く。

フォーカス取ったら全選択するコントロールを作るのが一番エレガントかつ
問題がないと思うんだけど、面倒くさいんだよね、いろんな面で。
0430392NGNG
>>414
VBHelperとやらを使ったことがないけど、完成すれば多分似たようなものになるはず。
同一プラットフォームである以上、そんなに変わった考えがでるとは思えない。
0431デフォルトの名無しさんNGNG
Private Sub Command1_Click()
 bFlag = True
 Func1
End Sub

Private Sub Command2_Click()
 bFlag = False
End Sub

Function Func1()
 ... Do Someting ...
 DoEvents
 If bFlag = True Then Goto EndOfFunction
 ... Do Someting 2 ...
 DoEvents
 If bFlag = True Then Goto EndOfFunction
 ... Do Someting 3 ...
EndOfFunction:
 bFlag = False
End Function

みたいにすれば、Command1をクリックすると処理が開始され、Command2をクリックすると処理を中断できる。
ポイントは、関数の処理を中断すべきか判断するためにフラグを立てることと、フラグチェックの前にDoEventsすること。
(詳しくはヘルプでDoEventsの項を見てくれぃ)
Do Sometingが繰り返しで処理できるような形なら、Whileループとかを使えば、よりスマートな感じになる。
0432431NGNG
431は422への回答な。
ちなみに、422みたいなことはVBだと素直にはできない。
0433デフォルトの名無しさんNGNG

コントロール配列を関数の引数として渡すことは
できないのでしょうか?
自分で宣言したコントロールのリファレンスの
配列に代入したら、関数に渡すことができたのですが。

結構重要なことだと思うんだが、MSDNにも
林ハルヒコの参考書にも書いてなかったでつ。

VBの基本は簡単に習得できたけど、突っ込んだ議論って
どういう本で勉強したらいいんですか? イベントの
作り方とかもあるようですが。

0434デフォルトの名無しさんNGNG
>>431
回答になってないと思う。2つの意味で。
まず>>431は>>422が要求していることとは違う。おまけにフラグの扱いに
バグがある。

さらにコードの書き方が酷すぎ。こういうコードは条件が成立したら無限ループを
抜けるように書くのがセオリーだよ。

繰り返しで処理できるような形なら〜、どころじゃなくて
意味がある処理の必要があろうがなかろうがループするんだよ。
こんなコード書くとVB厨っていわれちゃうよ。
0435デフォルトの名無しさんNGNG
>>433
そのぐらいのことなら実際いろいろ試せば分るんじゃないの?
それがお手軽にできるのがVBのいいとこなんだし。

仮引数Variantにしてみたら普通にできたよ。
0436デフォルトの名無しさんNGNG
>>435
そうですか?
Variant でもうまくいかなかったのですけど、
土日に時間があればサンプル作ってみるかも。

ちなみにうまくいかなかったのは、コンボボックスの
配列を関数に渡して、その関数内でコンボボックス
(複数)の操作を行うものです。

0437デフォルトの名無しさんNGNG
Combo1って名前のコンボボックスのコントロール適当に配列作って
下のコードやってみたけど問題ないみたいだよ。
Private Sub Command1_Click()
Call Hoge(Combo1())
End Sub

Private Sub Hoge(cbo As Variant)
Dim c As ComboBox
Dim i As Integer

For Each c In cbo
i = i + 1
c.Text = "Hello World" & i
Next

End Sub
0438デフォルトの名無しさんNGNG
>>436
VariantよりもObjectの方がいいと思う。
Debug.Print TypeName(Combo1)
なんてするとコントロール配列の型がわかる。

でも、コントロール配列を渡すんじゃなくて、
一つのコントロールに操作を行う関数にして
呼び出し側でコントロール配列をループした方が良いと思う。
場合にもよるけどね。
0439デフォルトの名無しさんNGNG
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37102&lngWId=1
サブクラス化ダッタラコレシカナイ
0440438NGNG
もし呼び出し側でコントロール配列をループするコードを書くのがめんどくさいと思ったら・・・。

作ってみたのでサンプルとしてどうぞ。
[clsFuncObj]
Option Explicit
Public Event func(ByVal ctrl As Control)

Public Sub raisefuncevent(ByVal ctrl As Control)
  RaiseEvent func(ctrl)
End Sub

[Module1]
Public Sub ForEachControl(ByVal ctrls As Object, ByVal FuncObj As clsFuncObj)
  Dim i As Long
  For i = ctrls.lbound To ctrls.ubound
    FuncObj.raisefuncevent ctrls(i)
  Next i
End Sub
というのを一度用意しておくだけで、
0441438NGNG
あとはこんなに簡単。ってコーディング量的にはあんまり変わってないかw
[Form1]
Private WithEvents comboinit As clsFuncObj

Private Sub comboinit_func(ByVal ctrl As Control)
  Debug.Print ctrl.Index
End Sub

Private Sub Form_Load()
  Set comboinit = New clsFuncObj
  ForEachControl Combo1, comboinit
End Sub
0442デフォルトの名無しさんNGNG

データベース(オラクル)に ##.## (例:10.23)や ###.##(例: 103.98) という
形式の数値を格納したいのですが、格納前に入力されたデータ
(テキストボックスを使っています)の桁数が適切かどうかを確認する
必要があります。

こういう目的に適したVBの関数なんてあるんでしょうか?
自作するしかないですか?
0443デフォルトの名無しさんNGNG
>>442
痒い所に手が届かなかったりくせがあるけど既存のものならIsNumeric等。
単純な形式だったらlike。複雑な物だったら正規表現。

いずれにしろ、関数にして内部でチェック方式(likeを使うか正規表現を使うか)や
形式(##.##や###.###)を変えられるようにしておくのが吉
0444デフォルトの名無しさんNGNG
>>442
vb6ならMaskEditControlが使える可能性があるんじゃない?
0445デフォルトの名無しさんNGNG
エクスプローラのツリーとリストビューをプログラムの中で実現したいんだけど、
FindFirst/Nextでファイルリストを取得して、TreeViewとListViewにセコセコと
セットして行く以外に簡単な方法、コントロールなどはございませんでしょうか?
0446デフォルトの名無しさんNGNG
ガントチャートコントロールでフリーか数千円レベルの低価格で使えるものって
ありますか?
0447358NGNG
自己解決しましたどもでした。
0448デフォルトの名無しさんNGNG
>>405
ソレダ(・∀・)
0449デフォルトの名無しさんNGNG
VBでDBへSQL文を投げて
抽出結果をExcelファイルを出力するプログラムを
作っているのだが
配布前日になって、
インストールする際に
「OCXが入らないぞゴルァ」とパソコンからメッセージが出て
インストールが完了しないのだが
どういった原因が考えれらるでしょうか?

状況
・開発PCとMyPCではインストールは完了する
・VBランタイム・プログラムで使用しているOCXが
入っていないパソコンで上記のようなエラーが起こる。

・・・・OCXが壊れているのかな・・・・
0450デフォルトの名無しさんNGNG
>>449
>壊れているのかな
いや、入ってないんでしょ。
0451デフォルトの名無しさんNGNG
>>450
ディレクトリヴィーションウィザートで
パッケージを作成する際に
そのOCXもパッケージの中に入るようにしていまつ・・・

0452デフォルトの名無しさんNGNG
>>449
VB製アプリが常駐してないかチェック
0453デフォルトの名無しさんNGNG
>>452
VB製アプリは常駐していないです。
パソコンによっては全く常駐ソフトがないでつ

0454デフォルトの名無しさんNGNG
そのOCXのファイル名を答えよ
0455デフォルトの名無しさんNGNG
>>454
imText
imCalendar
imDateX
imDTCalcX
imTZoneX
等のOCXファイルでつ
0456デフォルトの名無しさんNGNG
>>455
 あのな、名前からして、InputManだと思うが、
だったら付属のマニュアル読めよ。
 ReadMeにも色々書いてあるだろう。
0457デフォルトの名無しさんNGNG
2バイト文字が怪しいと言ってみるテスト
0458デフォルトの名無しさんNGNG
少し高度な技術なんですが知ってるかた教えてください。
ソースのないDLL(多分セルフレジスター無なのでCにより作成?)
VBアプリのBASファイルでDeclereにより宣言し、その内部の関数を
Form1のボタンによりコールします。おそらくDLL側の初期化が上手く行われて
いないのかVBからのアプリより1度キックすると二度目が動きません。
そこでVBのアプリを終了してから もう一度起動するとうまく(一度だけ)
動きます。
この場合VB上で一度コールした外部関数DLLのプロセス?をコロすような方法は
ありますか?※もちろん VBアプリは終了しないで
たとえば参照設定でいけるActiveXDLLだと
new と nothingで実装可能なのでこの場合も何か方法があるのかな?
と思いました。
0459デフォルトの名無しさんNGNG
目的のDLLをラップするDLLをVCとかで作って
ラッパーでLoadLibraryやらなんやらうわなんだなにをするやめr
0460458 NGNG
>>459
そそーーんなーー
途中でもっていかれないで

なんとなくわかりそうなんでもう少し!!
0461デフォルトの名無しさんNGNG
Winsockで複数の鯖に同時に繋ぎたいのですが
winsock(0)で鯖Aに接続して、winsock(1)で鯖Bに接続すると、winsock(0)の方が切断されます。
これ、どうにかなりませんか?
0462デフォルトの名無しさんNGNG
>461
んなわきゃないだろ
おまいの使い方が悪い
0463デフォルトの名無しさんNGNG
同じオブジェクトを使ってんだろ
レコードセットするときのDBと一緒
0464デフォルトの名無しさんNGNG
>>460
とりあえず、問題のDLLの使い方に間違いがないかを確認するのが先決じゃないのか?
あるいはDLL自体が問題を抱えていないか?
対症療法だけじゃいずれ泥沼。
0465デフォルトの名無しさんNGNG
VBで、ボタンを押すとある関数に入る(無限ループの処理)
(Peekmessageなどでwindowsに処理は返している)
その状態で、あるボタンを押すと関数から出てくる(処理を中断する)
にはどうすればいいでしょうか?よろしくおねがいします。
0466デフォルトの名無しさんNGNG
>465
氏ね
0467458NGNG
>>464
レスありがとうございます。DLLのソースがないので
なんとも作りがよくわからないのです。(多分DLL側のバグ?)
EUCをCRLF&SJISに変換する機能なのですが
自社でもう作成した人がおらず。添付のReadMeテキストで
呼び方だけ判明したのです。いちから作る稼動もないので
できればこのまま使える事を前提にコール側で対処できたらなあ
とおもいました。
※顧客へ出ていくアプリではなく社内内部ツールを作成してるので
あまりシビアなものでもないのです。
0468465NGNG
>>466
レスありがとうございます。氏でぐぐってみましたが中国のサイトだらけで
わけわかめでした。もう少しヒント下さい。
0469デフォルトの名無しさんNGNG
>>468
ボタンクリックでフラグを立てる。
ループ内ではdoeventsしつつ先のフラグをチェックする。
0470デフォルトの名無しさんNGNG
山田クン465の座布団全部持ってけ!
0471デフォルトの名無しさんNGNG
VB6.0でお勧めの本はありますか?
一応、初心者は卒業した感じです。
0472デフォルトの名無しさんNGNG
ACCESSのレポートのプレビューで、
プレビュー画面を終了するまで他のアプリに制御が移らないように
したいのですが、できません。
できればAPIを使用しないやり方が知りたいです。
よかったら教えてください・・もうだめぽ。
0473デフォルトの名無しさんNGNG
モーダル
0474デフォルトの名無しさんNGNG
スリーカ
0475デフォルトの名無しさんNGNG
oleAccess.DoCmd.OpenReport strReportName, acPreview, strQueryName, WhereCondition:=strWhere ', windowmode:=acDialog
だめなんですもだーるでも・・・・!!
なんか他のアプリに制御うつっちゃう!
0476デフォルトの名無しさんNGNG
何故そんな行儀の悪いプログラムを作りたいのかね
0477デフォルトの名無しさんNGNG
仕様です。。害虫な僕は雇われる身。
0478デフォルトの名無しさんNGNG
仕様なだけにしようがない

あはははははは
0479デフォルトの名無しさんNGNG
そりゃぁ、他のアプリに制御は移るだろう。
その仕様が腐ってるだけだと思うー。
0480デフォルトの名無しさんNGNG
必死であがいた結果、ACCESSのプロパティをいじり
APIを駆使してなんとか仕様を満たす方法を発見しましたが、
これは避けたいです・・・。
0481デフォルトの名無しさんNGNG
WithEventsでは配列が定義できないという点で困っています。
コントロール配列からのイベントを受け取る事は言語仕様上無理なのでしょうか?
0482デフォルトの名無しさんNGNG
>>481
すんなりやる方法は無い。
やりたのならフォームでコントロールのイベントを直接受け取らず、
クラスを作り、その一つのインスタンスに一つのコントロールを代入し、
クラス側でイベントを受け取る。必要ならイベントをフォームに転送する。
0483デフォルトの名無しさんNGNG
構造体で、ひとつのデータのまとまりを配列のように使いたいのですが、どうすればいいですか?
配列のように、添え字を使いたいです。
0484465,468NGNG
>ボタンクリックでフラグを立てる。
これはわかりました。
>ループ内ではdoeventsしつつ先のフラグをチェックする。
実は、実行部はC++です。VBの変数をC言語で使えるのでしょうか?

関数抜け出しボタンを押す→flag立てる→C言語内でflagチェック?(できますか?)
0485 NGNG
>>484
まあ釣りだろうけど、正直この程度のこと聞いてる人が
C++使うってそのほうが問題だと思う。
0486デフォルトの名無しさんNGNG
>>484
できるよ。
ポインタは分かるでしょ。それでやれば。
0487デフォルトの名無しさんNGNG
>>483
質問は明確に。
それはCの共用体みたいなことができないか、って意味かい?
それとも構造体のメンバにインデックスをつけて、そのインデックスでも
メンバにアクセスできるようにしたいってこと?

前者ならVBに共用体はないから、かなり工夫をしないと無理だろう。
後者なら、構造体じゃなくてそういうクラス書けばいいだけだと思う。
0488デフォルトの名無しさんNGNG
すいません。質問以前の事なんですが、

ふとVBをやろうと思いました。
本などを読んで勉強しているのですが、どんな事が出来るのかイメージが全く付かず、
モチベーションがなかなか上がりません。

java scriptくらいしかプログラミングは出来ません。

何か導きがあればご加護を・・・。
0489デフォルトの名無しさんNGNG
>>488
2ちゃんねるブラウザ、Web巡回ツール、画像ファイルビューア、メディアプレイヤー、
Flashプレイヤー等々、ありあわせの部品を組み合わせて、小便利なツール作るのが
得意分野かな?
テキストデータの処理が得意で、バイナリデータの処理が苦手。画像解析なんかは
C使ったほうが簡単だったり。
DBとの連携が得意だけど、個人ではあんまり使わないなあ。

やりたいことがあるんなら、それがVBむきなのかを直接きけば?
0490デフォルトの名無しさんNGNG
>>489
なるほどー。
参考になりました。

何かプログラムを覚えようと思ったのですが、
実はやりたい事が無く、VBを覚えておけばワードとかのマクロなんかも組めるようになるって話を聞いて、
VBを選択した次第です。

ありがとうございました。
0491デフォルトの名無しさんNGNG
>>490
VBに限らずだけど、目的が無いなら面白くないし、プログラミングも上達しないよ。
仮に、仕事にしたいと思ってたとしたら、今からVB6を選択するメリットは少ないからやめとけと言いたい。
たぶん、目的がある分、Excelのマクロに直接行ったほうが幸せなんじゃないかな。
0492デフォルトの名無しさんNGNG
>>482
たしかコントロール配列のイベントを捕ろうとするとその方法でも無理があった気がする。
今ものすごく眠いので夢を見ているかもしれないけど
0493デフォルトの名無しさんNGNG
>>492
無理じゃないよ。
0494デフォルトの名無しさんNGNG
>>493
えっ、どうやってやるの?
コントロール配列をsetしようとした段階で、「イベントセットをサポートしていません」ってエラーが出るんだけど。

試したコードはこんな感じ。
Dim WithEvents obj As PictureBox

Private Sub Form_Load()
Set obj = Picture1(0)
End Sub
0495481NGNG
>482 >492-494
ども。
私もまさしく>494の状況。
これが出来るだけで随分と楽できるんですが・・・
今の所、当面の回避策として、コントロール配列の使用を止めてます。
0496デフォルトの名無しさんNGNG
ていうか言葉は正確に使おうよ。
オブジェクト変数の配列は「コントロール配列」じゃないよ。
オブジェクト変数の配列は、イベントハンドラを持つことはできません。

コントロール配列はできます。
0497デフォルトの名無しさんNGNG
授業で( )や演算子(+ - * /)の優先順位どうりに計算して結果を出す電卓を作るのですが、どんな感じのアルゴニズムにしてよいかいまいち思い浮かびません。アドバイスお願いします。
0498デフォルトの名無しさんNGNG
逆ポーランド記法
0499デフォルトの名無しさんNGNG
ttp://www.tcp-ip.or.jp/~a-kawai/vbtext/vbtext4/vbtext4.htm
0500デフォルトの名無しさんNGNG
>>496
コントロール配列のイベントをとるためにオブジェクトの配列を用意したいけどそれもできないってことじゃないの?
0501デフォルトの名無しさんNGNG
あるごにずむage
0502デフォルトの名無しさんNGNG
>>500
釣り?いや、なんかマジ臭い気が。。
あなた、かなり恥ずかしいこと言ってますよ。
0503デフォルトの名無しさんNGNG
VB6+oo4oで、初めてのデータベースプログラミングに挑戦しています。
そこで教えていただきたいのですが、VBにおけるBoolean型のデータは、
どのようにOracle8iに格納したらよいのでしょうか。long型であれば
NUMBER (9,0)とかinteger型であればNUMBER (4,0)とかは調べられたの
ですが、Boolean型がどうも調べきれません。

VARCHAR2 (5)と定義しておいて INSERT文にてBoolean型の変数を代入
すれば、自動的に'False'とか文字列に変換してくれるのでしょうか。
また、その逆に、SELECTした結果は blnFlag=oradyn.Fields(0).Value
とすれば、検索結果の文字列をBoolean型に変換して代入してくれるの
でしょうか。

実験してみれば簡単なのでしょうか、その方法がもっとも望ましい方法
なのかは判別できません。どのような方法がよいのか、安全なのか、
お教えいただければ幸いです。よろしくお願いします。
0504デフォルトの名無しさんNGNG
>>499
>>498
ありがとうございます。
ちなみに、(-2+spr(2^2-4*1*3))/2と入力すると計算結果が表示されるという感じにするにはどんな感じにすればいいですかね?初心者なもんで考えると頭の中がゴチャゴチャになってしまって解法がみつかりません!ご教授を
0505デフォルトの名無しさんNGNG
>>503
うちの会社は CHAR か VARCHAR2 に 1か0を入れてるな。
0506503NGNG
>>505 事例を教えていただき、ありがとうございます。

そうすると、INSERT文を組み立てるときに、if blnFlag=True then 〜
というふうにされているのでしょうか。

これだと、INSER文の組み立てがごちゃごちゃになって、ちょっと
綺麗じゃないなぁ、と思って質問した次第です。

oo4oとかVB側に変換関数があるとか、暗黙の変換ルールが存在して、
それに則って自動変換してくれれば綺麗だと思うんですが…

0507デフォルトの名無しさんNGNG
>>504
http://www.amazon.co.jp/exec/obidos/ASIN/4781905854/
読め。
字句解析、逆ポーランド記法でググるといいよ。
0508デフォルトの名無しさんNGNG
>>506

IIf、Switch、Chooseなんか使うと多少は楽じゃないかな。
0509デフォルトの名無しさんNGNG
VB6で新しいクラスを創った時に Public 変数や Let/get の定義で
プロパティは創れるんですが、プロパティ無しで直接クラスに値を
出し入れしたいんです。

つまり、

Dim hoge as New MyClass ' MyClass には Public Value as Integer があるものとする。
hoge.Value = 1

ではなくて、

Dim hoge as New MyClass
hoge = 1 ' MyClass のインスタンスにプロパティなしで直接入れる。

としたいのですが、どうすればいいでしょうか?
0510デフォルトの名無しさんNGNG
hoge.ValueをMyClassの既定プロパティにするってのはどうでしょうか?
0511509NGNG
回答ありがとうございます。
度々すみませんが、その規定プロパティを設定する為の具体的なコードは
どうすればいいでしょうか? 規定 プロパティでググってみましたが
解りませんでした。
0512デフォルトの名無しさんNGNG
>>511
プロシージャ属性
0513デフォルトの名無しさんNGNG
>>509
なんか時代に逆行してるような気が。

そんなことすると、作った当初は便利だと思っても
後々結局は自分の首を絞めることになる気がするなあ。

まあ、小規模なアプリなら問題ないかもしれないけど。
0514デフォルトの名無しさんNGNG
>>503 Trueは-1、Falseは0。そのままつっこめるんじゃないの?
>>506 1と0にしたけりゃAbs(blnFlag)
0515デフォルトの名無しさんNGNG
>>513
一つの変数を特別な処理して保持する必要があるなら分からんでも無いけど。
ちょうどStringみたいな。
0516デフォルトの名無しさんNGNG
>>511
色んな方法がある。

(1)[ツール]-[プロシージャ属性]で、名前をValueにして[詳細]ボタンを押して、
プロシージャIDを(既定値)にする。これは>>512が書いている方法だなや。

(2)[アドイン]-[クラスビルダーユーティリティ]を使う。Valueプロパティののプロパティを
開いて既定プロパティのチェックボックスにチェックすればいい。

ちなみに、既定プロパティを設定したら一度保存して、クラスモジュールをテキスト
エディタで開いてみるといい。

Attribute Value.VB_UserMemId = 0

って行があると思う。これが既定プロパティを設定してるのさ。

>>513
んだなぁ。.NETでは既定プロパティをサポートしなくなったしね。既定プロパティはバグ
になる可能性があるから俺も明示的に指定する方が好き。
0517デフォルトの名無しさんNGNG
すいません。既出のような気がしますが、
VB6でヘルプファイルが見れなくなりました。
普通のは見れますが、EXCELオブジェクトなんかのヘルプを見ようとすると(F1で)
エラーが出るんです。
どうしたら直りますか?
環境は、WinXpでVB6,VB.NET、OfficeはXPが入ってます。
よろしくお願いします。m(__)m
0518509=511NGNG
 皆様回答ありがとうございます。

 動機は「ちょっと楽をしたい」と言う程度の物で、その手抜きが後に禍根を残したり、
コードの可読性を下げては元も子もないので、折角教えて頂いたのですが、
規定プロパティは使わずに全部明示する事にしました。

 大変ありがとうございました。
0519デフォルトの名無しさんNGNG
見よう見まねで書いたVBScript を添削していただきたいのですが、
このスレでいいですか。

スクリプトはこっちに書きました。
http://pc5.2ch.net/test/read.cgi/tech/1021881540/267

とりあえず、
「WshShell.Run Noah & " -x " &...」の部分をもっとスマートに
表現できないだろか、とか
変数名がへんチクリンなのではなかろうかとか思ってます。
他にも我流ゆえに変なところがあるんじゃなかろかと。

スクリプトを書いた動機は、ここ。
ttp://pc5.2ch.net/test/read.cgi/win/1068321422/98-100

WinXP SP1 を使ってます。
0520デフォルトの名無しさんNGNG
>>506
OO4Oなら、databaseオブジェクトから Dynasetオブジェクト
を作って、そこで AddNew 使わないですか?
INSERT文を組み立てるより、コードがすっきりしますよ。

dynaset作るときに条件として
WHERE ROWNUM = 0 とすれば、SELECT文の
実行で時間がかかることもないし。

0521デフォルトの名無しさんNGNG
VBからgoogleに検索をかける方法ってありますか?
Inetコントロール使って
 OpenURL("http://www.google.co.jp/search?q=test&ie=UTF-8&oe=UTF-8&hl=ja&lr=")
とかしたら、「403 fobbiden」とか返されてしまったです・・・
0522デフォルトの名無しさんNGNG
>>521
http://www.google.com/apis/
これと・・・・

http://www.microsoft.com/japan/msdn/vstudio/downloads/soaptoolkit/default.asp
か
http://www.microsoft.com/downloads/details.aspx?FamilyID=c943c0dd-ceec-4088-9753-86f052ec8450&displaylang=en
を組み合わせて頑張れ
0523デフォルトの名無しさんNGNG
WebBrowserコントロールで、

Private Sub Command1_Click()
 WebBrowser1.Navigate "http://www.google.co.jp"
 Do
  MsgBox "ページが表示されるまで待つ"
 Loop While WebBrowser1.Busy

 With WebBrowser1.Document.Forms("f")
  .Item("q").Value = "検索"
  .Submit
 End With
End Sub
0524デフォルトの名無しさんNGNG
>>521
InetコントロールはUser-Agentで判断されて制限されている。
0525デフォルトの名無しさんNGNG
>>522-524
素早いレスどうもありが�d

そして、制限されてたのかorz
とりあえず523の方法でいけたですよ。
これでガシガシコード書けるのです。

どもどもありがとうございました〜♪
0526デフォルトの名無しさんNGNG
VB6 SP6を使ってるんですが

Do
  i = i + 1
  Debug.Print i
Loop While i < 3

と、

Do While i < 3
  i = i + 1
  Debug.Print i
Loop

を実行したら、どちらも
1
2
3
と言う結果を得ました。前者の場合は、
1
2
となると思ったんですが、そうならないのは何故でしょう?
0527デフォルトの名無しさんNGNG
>>526
ループを条件判断に置き換えて、一周ずつトレースしてみそ。
0528デフォルトの名無しさんNGNG
脳内実行で普通にそうなるけど。
試してないがiを1で初期化してi=i+1とprintを逆にすればうまく行きそう。
0529デフォルトの名無しさんNGNG
違いは初回に条件チェックするか否かだけ
0530デフォルトの名無しさんNGNG
>>527
>ループを条件判断に置き換えて、

と言う意味がよく分からなかったので、>>526をトレースしてみました。

前者のループの場合、Doは1回だけ実行されて、i=i+1からLoopの行が3回実行されました。
後者のループの場合、Doが4回実行されて、i=i+1からLoopの行が3回実行されました。

むう。この場合、どっちもDo〜Loop内の命令が実行される回数は同じなのか(´・ω・`)
0531デフォルトの名無しさんNGNG
やっぱ最初だけか。ややこしいから普段はforしか使ってない。
0532デフォルトの名無しさんNGNG
そんなんどっちでもいいっぺや

実際デバッグして思う結果にならない場合はなるよう
加工すやいいだけ
0533デフォルトの名無しさんNGNG
>530
Loop文の繰り返し終了条件のフローチャート書いてみ。
すぐ理解できるよ。
0534デフォルトの名無しさんNGNG
物議を醸す程度のもんとは思えんのだが
ってゆーか釣られ杉 >>527-534
0535デフォルトの名無しさんNGNG
>>532
思うようにならない場合に、何故思うようにならないのかを
突き止めないと、よくないと思います。

例えばこう言う事例があったそうです。ある関数で何故か戻り
値が期待する値の1/2になってしまうバグが発生し、関数を書
いた人に連絡すると、すぐに修正版をリリースしたそうです。

受け取った人は早い対応だなと思ったそうですが、ふと、関数
を書いた人に、どこを直したのか尋ねると、戻り値を返す直前
で単純に2倍したそうでして…

バグの原因が本当に2倍し忘れなのであればそれでいいのですが、
そうじゃないかも知れないし、もしそうでないのであれば、単純
に2倍にすると、別のバグが発生するかも知れないですね。

>>533
どうも有難う御座います。>>529のレスと、ステップ実行の
結果を見て、自分が
1
2
になると思ったのは自分の勘違いだと気付いた次第です。

>>534
済みません。朝からデバッグしててちっと頭が煮詰まっていたよう
です。ちょいと気分転換してくるよ。
0536デフォルトの名無しさんNGNG
VB6でWindowsタスクマネージャのアプリケーションのところに
表示されないソフトを作るのはできますか?
0537デフォルトの名無しさんNGNG
VB6じゃなくてもできないんじゃないかな
サードパーティのソフトでそんなんできるOSは怖いような
0538デフォルトの名無しさんNGNG
Windowsタスクマネージャのプロセスのところには表示しても
いいのですがアプリケーションのところには表示させたくないのです。
0539デフォルトの名無しさんNGNG
基本的な質問なんだけど
反転したリストボックスをいったん別のフォームに移動して
戻ってきたときその値を元の値で反転さすにはどうすればいいのかな?
デフォルトで反転なんてできるのかな?
教えて
0540デフォルトの名無しさんNGNG
>>538
ウィンドウスタイルを変えてやれば良いんじゃない?
APIを使う事になるけれども。
0541デフォルトの名無しさんNGNG
>>539
基本的なことだが、このスレに言葉に依らずに他人の考えがわかるエスパーはいない。
意味不明な質問に回答を与えられる奴もいない。

「反転」ってなんのこと?「別フォームに移動」とは?
0542デフォルトの名無しさんNGNG
すんません・・・激しくしょぼい質問で申し訳ないのですが
関数で使用した変数を2つ以上使用した場合の
変数の受け渡し方が全然わからんのです・・・
1つだけならcall のところに変数名を入れればオッケー
なんですが変数を複数返したい時の方法を
どなたか教えてください・・・

sub main()
call syori()
C = A + B
end sub
sub syori()
A = 1
B = 2
end sub
↑こんな感じでAとBをmainでも使いたいのです。
0543デフォルトの名無しさんNGNG
>>542
配列を引数、変数にするとか、或いはByValで直接a,bを関数側で
変更かけちゃうとか。
0544デフォルトの名無しさんNGNG
>>542
変数をパブリックに持たせりゃいいんじゃね?
0545542NGNG
>>543
>>544
ありがとうございます。
ためしにその方法でやってみようと思います。
0546デフォルトの名無しさんNGNG
>>542そんな回答で納得しちゃだめだって。(ていうか、それを言うなら
ByValじゃなくてByRefね>>543)

関数の返り値を構造体にする、これが正解。
構造体なんて知らない?別に難しくないからヘルプ読んでみ。
0547デフォルトの名無しさんNGNG
>>546
パブリック変数を馬鹿にしたなおまえ
0548デフォルトの名無しさんNGNG
>>547
数が増えると管理がメンドクセ。
0549デフォルトの名無しさんNGNG
>>548
>>542を見てたら数増えそうにないだろ
初心者はまずパブリックから始める
そして構造体宣言 そして関数間でのパラメタ引継ぎ引き渡しが
順序ってもんだろー
0550デフォルトの名無しさんNGNG
構造体使うのも面倒だから、
その程度だったら参照渡しでいいんじゃないの?
0551デフォルトの名無しさんNGNG
>>549

>>542はただの例なんだから、それを基準に数がどうこう言っても仕方ないでしょ。
それと、用語が変ですよ。初心者に教えるなら正しく。

×構造体
○ユーザー定義型

×パブリック
○グローバル
0552デフォルトの名無しさんNGNG
確かに構造体とユーザー定義型は言い換えても通じないことはないが、
(とは言え、C言語の構造体と見た目が似ているだけで、C++の構造体とは別物だが。)

が、パブリック変数とグローバル変数は通じるかも知れないが、誤解が生じる可能性もあるな。
クラスやフォームのパプリック変数は、全くグローバル変数ではないからな。
0553デフォルトの名無しさんNGNG
確証はないけどvbのユーザー定義型とcの構造体って、
単に互換性があるだけじゃなくてデータ構造も完全に同じような気がするけどなあ。
(Stringをメンバに持つ場合は話が違うだろうけど)

でなきゃAPIの引数でユーザー定義型をByRefで渡せたりしないと思うんだけど。
それから>>551に突っ込むんなら、それを言うならパブリックでもグローバルでもなく、
モジュールレベル変数だろ、って言わないと。
0554デフォルトの名無しさんNGNG
根拠無いなら書くなよ
0555デフォルトの名無しさんNGNG
根拠はある(現に示しているし。。)が確証はない、と言ってるんだが。
0556デフォルトの名無しさんNGNG
恥の上塗りするために現れるなよ
0557デフォルトの名無しさんNGNG
>>526
こういうのは試しにIfとGoToに置き換えてみそ。ほとんどの制御構造は
IfとGoToで表現できる。本番でそう書けとは言わないが、その反面、
置き換え方がわかんないというときは、その制御構造をよく理解してないって
ことになる。
フローチャートで言えば、反復の記号を使わずにひし形で書けるかどうかと
いうことだ。
0558デフォルトの名無しさんNGNG
ていうかさあ、もし>>526が釣りとかネタとかじゃないとしたら、
>>526はプログラミングの才能ないと思う。

煽るつもりは全然ないけど、こんなの全然悩むようなことじゃない。
私は中1からプログラミングしてるが、中学生当時ですらこんなことで
躓いた記憶はない。

このレベルのことがすんなりわからない、ってことはアルゴリズミックな思考能力が
ないってことだろう。帰納的な思考の初歩の初歩だよこれ。

適性がないことを続けるって、不幸な場合が多いと思うんだよね。
0559デフォルトの名無しさんNGNG
>>557
というか、ほとんどじゃなくて、「全ての制御構造は」なんだが・・・
全然、本筋とは関係ないけど。
0560デフォルトの名無しさんNGNG
>>558
君は、>>526の上司かね?
趣味にケチ(ry
0561デフォルトの名無しさんNGNG
>>558
バグ出しで頭が煮えてたんだよ(´・ω・`)ショボーン
0562デフォルトの名無しさんNGNG
MS−DOSの時代にBASIC使ってました。
このとき、変数にたくさんのデータを割り振るのに
for a=1 to 10
read atai(a)
next

data 18,15,14,22,31,14,62,82,91,10

などとすれば簡単だったんですがVBでも同じような
ことができますかしら?

今はいちいち  atai(1)=18 :atai(2)=15・・・・・・・・
などとやっていてめんどくさいことなにうえないんです。

0563デフォルトの名無しさんNGNG
Dim atai As Varian
atai = Split("18,15,14,22,31,14,62,82,91,10", ",")

ほかにもやり方があった気がするけど、わすれた
0564デフォルトの名無しさんNGNG
いかん、tが抜けた。寝る。
0565デフォルトの名無しさんNGNG
>>564
ここはSplitぢゃなくてArrayぢゃの。

VB6って配列の初期化が出来ねぇってのが厳しいよのぉ。
Variant使いたくないのに(´・ω・`)ショボーン
0566デフォルトの名無しさんNGNG
Splitでいいと思うけど。

ところでプログラミング作法的には、こういうのはリソースファイルを使うんだろう。
VB6でないと開発環境だけではリソースファイル作ることも
編集することもできないけどさ。
0567デフォルトの名無しさんNGNG
>>566
うあ、>>563をよく見てなかった。最後にセパレーターを指定してんのか。

然しわざわざセパレーターを指定すんのは冗長だと思うなぁ。cvsファイル
を読み込むなら分かるんだが。

俺なら

atai = Array (18,15,14,22,31,14,62,82,91,10)

って書くけどどう?
0568デフォルトの名無しさんNGNG
VB5でもリソースファイルをいじれるよん。
アドインを落としてこなきゃダメだけど。
0569デフォルトの名無しさんNGNG
ソースに値を埋め込むよりリソースや外部ファイルからとってくるのがWindows風って事なんじゃないだろうか。
0570デフォルトの名無しさんNGNG
>>569
んだなぁ。ただあれだ、データ数が少ないのにリソースや外部ファイル使うっ
てのも大げさな気がする。小さい配列ならリテラルで初期化しちまっても
いいんじゃないかと思ったり。

>>562
データ数が多くなるようなら、Excel辺りに打ち込んでcsvファイル吐かせて
実行時に配列に読み込むってのも手だぞ。
0571デフォルトの名無しさんNGNG
すみません、VB6でSPSSを制御する方法知ってる方いますか?
SPSSにはSaxBasicと言うものがありますが、機能不足ゆえVBで作らないと、
だめっぽいです
0572デフォルトの名無しさんNGNG
現在VB6(SP5)-Win2000で.mdbのデータを表示するものを作成しているのですが、
フォームに貼り付けたラベルに「&」を含むレコード(テキスト型)を表示しようとすると
正しく表示されません。

例).mdbのレコード → A & B
  ラベルの表示  → A _B

と、なってしまうのですが。どうすればレコードの内容をそのまま表示できるでしょうか?
教えて下さい、よろしくお願いします。
0573デフォルトの名無しさんNGNG
>>572
A && B
0574デフォルトの名無しさんNGNG
UseMnemonicのほうがいいだろうな
0575デフォルトの名無しさんNGNG
>>573
572です。レスありがとうございます。
しかし.mdbのレコードをいじらずに、コントロールの設定などを
どうにかして表示する方法はありませんか?
0576デフォルトの名無しさんNGNG
意図的に無視してるのか。そうか。
0577デフォルトの名無しさんNGNG
>>576
違います。書き込みしてる間にレスがあったものですから・・・。
0578デフォルトの名無しさんNGNG
WindowsXPにVisualStudio6.0のインストールを試みたのですが、
「DCOMが作成できません」と表示されてしまいます。

なぜでしょうか。よろしくお願いします。
0579デフォルトの名無しさんNGNG
>>578
DCOMが作成できないから。
0580デフォルトの名無しさんNGNG
>>574
>>576
572です。UseMnemonic を False に設定したら正しく表示出来ました。
ご教授ありがとうございます!!
0581デフォルトの名無しさんNGNG
>>578
MSの技術サポート情報を検索すればそのものずばり


ttp://support.microsoft.com/default.aspx?scid=kb;JA;257413
&Product=vstudioJPN
0582デフォルトの名無しさんNGNG
DataGridの内容をtxtに保存しているのですが
DataGridの方で画面に表示されている行より下の行(スクロール後)
にいくとエラーが発生して書きこんでくれません。
行数が多くない場合は正常に動作するのですがスクロールが入ると
うまく動いてくれません。
お助け下さいませ
0583デフォルトの名無しさんNGNG
もうね、どんなエラーがコードのどこで発生しているかも書かずにお助け下さいなんて、アフォかと。
0584デフォルトの名無しさんNGNG
うふん、そんなこといっちゃいや
0585デフォルトの名無しさんNGNG
カレンダーコントロールでカレンダーの文字が表示できない。
なぜでしょう。
カレンダーコントロールのバージョンは11
0586デフォルトの名無しさんNGNG
↑送信してしまいました。
開発環境はVBです。DLL HELL?
ネットで調べても似たような例がないんです。
たぶん、バージョンの違い?
古いOCXにするのがいい?
だれかご教授お願いします
0587デフォルトの名無しさんNGNG
>>585
フォームに置いただけで普通に表示されてるけど。

ちなみにうちの環境はVB6.0(SP6) + Office2000 Professional
MSCAL.OCXのバージョンは9.0.0.3620だなや。

バージョン11ってのは、どのバージョンのOfficeに入ってるんだろう?
0588デフォルトの名無しさんNGNG
>>585
アクセス付属でなくVB6付属を使いなVerは8.0
アクセスでもバージョンによって互換性に問題あり
Google検索でトップにでてくるよ
0589デフォルトの名無しさんNGNG
VB6付属のMSCAL.OCXってあったっけ?
0590デフォルトの名無しさんNGNG
588様
お返事ありがとうございます。
クライアントに配布するときにカレンダーの文字が化けるのです。
EXEだけではだめなのですね。
OCXをクライアントのSYSTEM32にコピーすればいい?
がんばります
589さん
microsoft calendar 8.0のことです。
0591デフォルトの名無しさんNGNG
VB6.0ですが、CreateObjectでエクセルにアクセスするとき、EXCELがプリント画面を
開いていると、「コンポーネントが応答しないため、この操作を
完了できません、、、、、」のメッセージがでてしまいます。
何とかならないでしょうか?
 このメッセージが出るとタイマーもとまります。
0592デフォルトの名無しさんNGNG
>>590
オイオイ VBはexeコピーだけでは、今回のようなエラー
がでるよ。
OCXを使う場合は、レジストリに登録する必要があるのでディストリ
ビュージョンウイザードから配布用パッケージを作成する事
0593デフォルトの名無しさんNGNG
>591
OLEの問題だね。まあ使いもんにならんということだ。
別のプローセス間通信を使う以外にない。
0594デフォルトの名無しさんNGNG
>>593
そういう問題と違うと思う。
プリント画面、ってのが何のことかよくわからないが、
要はエクセルがモーダルのダイアログ開いている間はエクセルが
応答しない、ということを>>591は言っているんじゃないだろうか。

これはOLEの問題とかXXの問題とかそういうことじゃなくて、
モーダルのダイアログを開いている場合の「正常な」動作だろう。

一番簡単で現実的な対策は、ユーザーにそういうモーダルなダイアログが
開くような操作をしないように頼むことだと思うけど、どうしても強制的に
問題の発生を防ぎたいなら、Interactive(だと思ったけど自信ない)プロパティ
何かでVB側で操作している間はユーザーに干渉されないようにするしか
ないんじゃないかな。
0595デフォルトの名無しさんNGNG
>>592
いや、EXEPressなんかでインストーラ組んで、regsvr32で登録する
BATファイルをインストーラに実行させればよい。

もち、OCXはsystemフォルダにぶち込むようにしてね
0596デフォルトの名無しさんNGNG
>594
>これはOLEの問題とかXXの問題とかそういうことじゃなくて、
>モーダルのダイアログを開いている場合の「正常な」動作だろう。

いやそれが「正常な動作」とされているのが問題なのです。
 Interactiveというのが何かよくわからないけど、そういう機能が
 あるとしても
  一旦XCELに自由な動作を許したあと、XCELがモーダル状態に
 入っているのを検出する方法がない。 検出に行った途端に
 注意画面がでてしまう。
  これはちょっと酷いと思う。
0597デフォルトの名無しさんNGNG
>>596
設計が悪い。ってか使い方を誤ってる。
0598デフォルトの名無しさんNGNG
うん。やり方をかえればどうにでもなると思う。
0599デフォルトの名無しさんNGNG
>597
そんなことは無いとおもうよ。
 VBからモーダル状態のXCELにアクセスして、勝手にメッセージが
 でるとしたら、そのメッセージを押さえ込むのは、通常の方法では
 できないだろうからね。
  XCELの設計がわるい。
 第一、XCELはブレークしたら、クラスのインスタンスが飛ぶし、
 VBに比べるとかなりいい加減。


0600デフォルトの名無しさんNGNG
UIと本体のスレッドやメッセージキューが同一なのか…
使えないね
0601582NGNG
書きこみ忘れてたけど、自己解決しました。役に立たないね
0602デフォルトの名無しさんNGNG
メッセージを許容するか、そーゆーメッセージを出させないようにするのが
正しい使い方だと思うんよ。
>>599は前提条件で、どーしても合わなければ
Excelを使うという判断には至らないと思うんよ。設計段階で。
てなわけで>>597に一票。
0603デフォルトの名無しさんNGNG
どうせおまいらにはExcelは作れないだろ
0604やまごろNGNG
毎度お世話になってます。
VBでプログラムから音(例えばMP3)を鳴らしたり止めたりする時は普通どうするんですかね?
とりあえず、コンポーネントにメディアプレイヤーが有ったんで貼り付けてみたものの、使い方全く不明。
98/NT/2000/Xp全部で動くexeにしたいので、APIとかはなるべく使いたくないな〜。
0605デフォルトの名無しさんNGNG
VBを実行するとオフィスのインストーラが実行される。
VBはだめか?
NETに移行した方が楽か。
SDKはインストールするには時間がかかるが
0606デフォルトの名無しさんNGNG
>>604
VBMP3.DLLとか。
0607デフォルトの名無しさんNGNG
>>602
モーダルの時にアクセスしないという処理を作る場合、Excelに
現在の状態を教えてくださいよとお願いしないといけない訳だね。
で、その時にメッセージが出てしまったら、メッセージが許容できない
という要件では使えないということになる。
それを回避する方法があるのかどうか。

と、Excelと連携する物作ったことの無い漏れの素朴な疑問。
無いならExcelで作るって言い出したやつが悪いんだろうな。
でも、メッセージ出るのは漏れも嫌だと思うなぁ。
0608デフォルトの名無しさんNGNG
>>604
>98/NT/2000/Xp全部で動くexeにしたいので、APIとかはなるべく使いたくないな〜。
前者と後者の関係が不明。
0609デフォルトの名無しさんNGNG
>>608
よく分からんがWindowsのバージョンに依存するAPIを使いたくないって
ことじゃねーか?

つか、MP3鳴らしてなに作るのか知らんけど、今更98とNTをサポートせな
あかんのかと思ってみたり。
0610デフォルトの名無しさんNGNG
>>609
シェアウェアで一儲け企んでるんじゃねぇの?
0611デフォルトの名無しさんNGNG
>>610
Σ(゚Д゚;エーッ!

>>604にシェアウェア開発は無理だろ。
0612デフォルトの名無しさんNGNG
>>607
そもそもモーダル状態にさせなきゃいい。
エラー時にエラーメッセージが出るのは至極当然な事。

0613デフォルトの名無しさんNGNG
>>612
>そもそもモーダル状態にさせなきゃいい。
エラー時にエラーメッセージが出るのはいいとして、そもそもこういうことが実際に
できるかどうかってことだよね。
できるできるって話は進んでるけど、機能を聞くとちっともできそうも無い感じなので、
どうやってやるのかちょっと興味があっただけなんすけどね。
0614デフォルトの名無しさんNGNG
初めて質問します。ピクチャボックスにボタン画像を貼り付けて
ロールオーバー機能を持たせたいのですが、マウスがボタン上から
離れたことを知るにはどうすればいいのでしょうか?
また、作ったものをユーザーコントロールとして使うつもりです。
何か有効なAPIなどあれば教えてください。
0615デフォルトの名無しさんNGNG
>>613
だからApplicationのInteractiveプロパティを使うべし、
と最初から言っているじゃないか。
0616デフォルトの名無しさんNGNG
>>614
タイマーコントロールでマウスの座標しらべればいいじゃん?
0617デフォルトの名無しさんNGNG
>>614
MouseMoveでSetCaptureとReleaseCaptureでグニョグニョ。
0618デフォルトの名無しさんNGNG
>>614
WindowFromPointとか。でも>>617が一番無難。
0619デフォルトの名無しさんNGNG
 だけどそうするとマクロを起動するボタンなんかも、全て、無効になってしまうよ。
そうするとすべてVBで全部制御しないといけなくなるから大変だ。
できたら、マクロのボタンだとか、プリント機能なんかはプレビューとか便利だし、
XCELにやらせたい。
0620デフォルトの名無しさんNGNG
>>619が何を言いたいのか全然わからないんだが私だけか?
0621デフォルトの名無しさんNGNG
>620
 同士よ。
 ユーザーに自由に触らせたい場合は、ShellExecuteで
開かせて放置だけどな。
0622614 NGNG
>>617,618
ありがとうございます。
無難に再現できました^^
0623デフォルトの名無しさんNGNG
質問させていただきます。
VBA(Access2000がメイン)で、ラベル等に表示する文字列の表示幅を
取得する方法はあるでしょうか?
例えば、ラベルに MSゴシック10pt. で「プログラマ」と表示したとします。
その「プログラマ」の文字列の表示幅をTwipなりcmなりの単位で取得する方法
が知りたいのです。
よろしくお願いします。
0624デフォルトの名無しさんNGNG
TextWidth
0625623NGNG
>>624
試してみましたが、Accessの場合はレポートオブジェクトしかサポートしていないようです。
まさかこんなところでVBとAccessの違いがでるとは・・・・

もし、APIなどでこの手の機能をご存知でしたら教えていただけますか。
APIならばAccessでも使えると思うので・・・
0626デフォルトの名無しさんNGNG
>>625
興味があったんで調べてみた。(結構簡単に調べがついたので、本当は
あんた自分で何にも調べてないんじゃないの?と突っ込みたいところではある)

GetTextExtentPoint32というapiが使えるんじゃないだろうか?
0627623NGNG
>>626
ありがとうございます!さっそく調べてみます。

今「文字列幅」でググり直したら一発で出てきた(汗、、スマソ
(俺の探したキーワードが間抜けでした。
 文字列長の求め方が出てくるの嫌って「文字列」以外のキーワードでやってたら
 変なのばっかだったので・・・)
0628デフォルトの名無しさんNGNG
リソースの.aviや.wavや.mp3をWindows Media Playerで再生したいのですが
どうやったらいいのでしょうか?
Media Playerの起動はShell関数ぐらいしかわからなくて^^;
宜しくお願いします
0629デフォルトの名無しさんNGNG
>628
一旦ファイルに書き出して再生
つーか、やりたいことをもう少し詳しく書いたほうがいいと思うぞ
0630デフォルトの名無しさんNGNG

1. ftpでデータを取得するバッチファイルを動的に作成(temp.bat)
2. shellでtemp.batを起動。(プロセスIDをとって、終了まで待機)
3. 数分おきに繰り返す。

というようなプログラムを作ってます。
ところがまれにcmd.exeが終了せずに処理が止まってしまいます。

そこで、途中で止まっているtemp.batを
強制終了させたいのですが、どうすればよいのでしょう?

calc.exeを起動して、終了させるサンプルプログラムを
使ってもうまくいきません。
(calc.exeのかわりにtemp.batを起動・終了させようとしても
起動するだけで終了しません)


「ftp」とだけ記述されたバッチファイルを
起動・終了させる例を示していただけると助かります。
0631デフォルトの名無しさんNGNG
なんでbatじゃないとだめなわけ?
0632NomUrakunNGNG
VBでキーボード操作(十字キー)にはどんな関数を使えばいいんでしょうか?
0633デフォルトの名無しさんNGNG
sendkeys?
0634NomUrakunNGNG
いや、自動的に操作するのではなくて任意に操作する関数です(N88BASICのINP関数みたいなもの)。誰か知りませんか?
0635デフォルトの名無しさんNGNG
DirectX使ったら?
0636デフォルトの名無しさんNGNG
複数のキーの押下状態を取得したいってことかな?
GetKeyboardState,GetAsyncKeyState,GetKeyStateあたりのWindows APIでどうだ?
0637デフォルトの名無しさんNGNG
>629
説明不足ですね、すいません。
aviファイル自体は見えないようにして、
フォームのボタンを押すと既存のアプリで再生しようと思ってます。
あまり意味なさげですが、wavとかavi自体をプログラムからしか
起動しない且つ、いつも使ってる再生ソフトで見れるようにしたいのです。

一旦ファイルに書き出すとなると再生開始に時間がかかっちゃうぽいですよね?!
どうしようかな。

0638デフォルトの名無しさんNGNG
正直、自分のやりたいことを明確に表現することすらできない人には
Windows時代のプログラミングは無理だと思う。

>いや、自動的に操作するのではなくて任意に操作する関数です
>(N88BASICのINP関数みたいなもの)。
これ、書いた本人以外に意味を理解できる人がいるだろうか?
0639デフォルトの名無しさんNGNG
>>637
WindowsMediaPlayerでいいんなら、これで可能。(VB6/WMP9)
1.ツールボックスで右クリック、コンポーネントを開きコントロールタブの"Windows Media Player"をチェック、適応、OKする
2.ツールボックスにWMPのアイコンが現れるので、これをFormに貼り付ける。
 オブジェクト名はWindowsMediaPlayer1。プロパティでVisibleをFalseに。
3.任意のファイルの演奏は次のメソッドをコマンドボタンにでも貼り付けておく
  WindowsMediaPlayer1.openPlayer "hoge.mp3"
 新しいWMPのインスタンスが生成されて(つまりWMPが起動されて)演奏がはじまる。
0640デフォルトの名無しさんNGNG
>>638-639
意味がわかってないなら書き込まなきゃいいのに。
0641630NGNG
気を取り直して、
「バッチファイルプログラミング質問スレ」
の方に聞いてみます。おじゃましました。
0642デフォルトの名無しさんNGNG
なんか知らんけどこの板って感じ悪い香具師多いね。決まった香具師が常駐してんだろうな。
0643デフォルトの名無しさんNGNG
>>642
VBはもう終わったと思われてるからねぇ
すっごいぺーぺー新人か、ベテランか
その2つの層しかいないんじゃないかな?
0644デフォルトの名無しさんNGNG
今がGWという事もあるだろう
0645デフォルトの名無しさんNGNG
>>643
中堅以外は感じ悪いってのは悲観的すぎるんじゃないかと(^^;
0646デフォルトの名無しさんNGNG
>>643
つーか、新人が半年たつとえらそーに先生ぶりたいのってプログラマーの特性かね?
これはVBに限らずだけどさ。ある程度ベテランになるとかえってそういことがないような。
0647(゜Jし゜)NGNG
VB6.EXEをコマンドラインから起動するようなMakefile書いて、
Makeとかでビルドってできそうなんですけどやったことある人いますか?
0648デフォルトの名無しさんNGNG
>>647
可能。
コマンドラインからVB6 /?してみて。
コマンドラインオプションが表示されるよ。
0649デフォルトの名無しさんNGNG
>>647
単にコマンドラインから「プロジェクトをコンパイル」することはできるけど
VBは、(内部的にはともかく、明示的には)Cのコンパイラみたいに
ファイルごとに一旦オブジェクトファイルにコンパイルしといてそれをリンクする、
という仕組みにはなってないから、MakeFileってのは意味ない気がするのだけれど。

あるいは、MakeFileに相当するのがプロジェクトファイルだ、というべきなのかな。
実際、これって単なるテキストファイルだし。
0650デフォルトの名無しさんNGNG
内部的にはVB6.EXEと同じフォルダに有るlink.exeが呼ばれている。
このlink.exeはVCなどについているlink.exeと同じ物。
このlink.exeを自作のプログラムに置き換えてオプションを変えて
最適化するなんて技もあったりする。
話ではこれを利用してVBでActiveXでない通常のDLLも作れるらしい。

なんてことができるんだから、オブジェクト生成とリンクの処理を
分けてくれれば良いのに。
0651デフォルトの名無しさんNGNG
そうじゃなくてmake使いたいのはソースのbackup取ったりバージョン管理
(例えば複数フォルダの同期とか)したりってことじゃないの?
0652デフォルトの名無しさんNGNG
VB2では.vbpじゃなくて.MAKだったっけな。名前だけは。
0653デフォルトの名無しさんNGNG
>>651
そんなことはmakeとは関係なくできる。
0654デフォルトの名無しさんNGNG
VBScript で質問いいっすか?
いまHTA書いてるんですが *.exe をパラメータ付けて
起動させたいんですが、どーすればイイか教えて下さい。
あと、Perlにある pack(); と同等の関数ってありますか?
おながいします。
0655デフォルトの名無しさんNGNG
>>654
すれ違い。

消えろ。それを許した場合、VBAやらなにやら全部ここで聞くつもりなのか?
0656(゜Jし゜)NGNG
誘導
VBScriptの話題はこちらで

http://pc5.2ch.net/test/read.cgi/win/1058829737/
0657デフォルトの名無しさんNGNG
>>655
参.VBScript もこのスレでOK。
0658デフォルトの名無しさんNGNG
>>656
やさしいな、あんた

それに比べて655
おまえってやつは・・・人間じゃねぇ
0659デフォルトの名無しさんNGNG
最近、自分の非常識や独りよがり、説明能力の欠如を棚に上げて、
それを指摘されると逆切れする幼児的な奴が多すぎ。

俺はそういうい奴は端的にウザいから>>655みたいな態度を断固支持するね。
他人同士がコミュニケートするんだから、最低限の配慮をするのは当たり前だろう。
0660デフォルトの名無しさんNGNG
煽ったり叩いたりすんのもある意味優しさだと思うけどな。
リアルでやったらさすがに引くけど。
0661デフォルトの名無しさんNGNG
655必死すぎ(笑)
ちなみに結論は>>657ででてる
0662デフォルトの名無しさんNGNG
まあ、それ以前に壱と弐を満たしていないわけだが
0663デフォルトの名無しさんNGNG
なによりも、スレタイに6.0というバージョン指定があるのが
なによりもね。

VBScriptにも確かにヴァージョンはあるが、それを指して
いるわけでは決してない。

.netが駄目なのにScriptはいいという命題は成り立たない。
そもそも、VBScriptもこのスレでOKと勝手に決めた>>1に
大きな問題がある。

VBScriptがだめで、じゃぁ、VBAは?JavaScriptは?という
具合にどんどん拡大解釈できる。

おまけに、WSHもいいですかね?とかなる。
0664デフォルトの名無しさんNGNG
心得
壱.質問する前に 過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.質問する者は エスパーの必要が無い内容で書く。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NET、VBScriptの話題できるだけひかえる。
0665デフォルトの名無しさんNGNG
>壱.質問する前に過去ログにも目を通してみる。
>弐.質問する前に MSDN などで調べてみる。
>参.VBScript もこのスレでOK。
>四.インストーラーなどの質問もOK。
>五.荒らしは相手しない。
>六. VB情報募集中。
>七.VB.NETの話題できるだけひかえる。

0666デフォルトの名無しさんNGNG
ふーん勝手に決めた1のせいにして
自分で勝手に決めるわけですか?解釈するわけですか?
ま、いいけどね
嫌いじゃないよ、その必死さ
GWだし、誰も文句言わんよ
0667デフォルトの名無しさんNGNG
お前ら、終わった言語で熱くなってんじゃねぇよ。
0668デフォルトの名無しさんNGNG
さすが*だなぁ
0669デフォルトの名無しさんNGNG
test
0670669NGNG
あっごめん誤爆でした。

ところで皆さん半角で「GW」とカキコするとどうなります?
なんかユーザーネームに化けません?
どうやっているんだろう?
0671デフォルトの名無しさんNGNG
>>667
Del厨氏ね
0672(゜Jし゜)NGNG
今日、仕事中にVBをビルドするMakefile書いてみました。
で、Xyzzyとかでソース書いて、Makeコマンドでビルド。
デバッガとの連携がやりにくいのはナニですが、
ひたすらコード書きまくるような状況では結構いいかも。
0673デフォルトの名無しさんNGNG
心得に引っかかりそうなのですが6.0ならVB.NETみたいに
わざわざ.NET Frameworkをインストールをしなくても
すぐにどのPCでも起動するのですか?
0674デフォルトの名無しさんNGNG
NO
0675デフォルトの名無しさんNGNG
>>674
.NETみたいに何かインストールしなければアプリは開けないんですか?
手軽さでオークションなので人気かと思ってました。
0676デフォルトの名無しさんNGNG
今勉強中で、データベース(Access)にデータを入れたり出したり変更したりしてるんですけど、
手書きで Set やら DataField やら設定すると、MoveNextとかでカレントレコード移動したとき、
テキストボックスの中を変更してあると、自動的に更新されるんですが、
Data Environmentを使うと、テキストボックスの中が変更されてるとエラーになります
どのように解決すればいいんでしょうか
0677デフォルトの名無しさんNGNG
>>672
なんか厨房がいきがって書いてるようにしか思えない。

いまどき、MakeFileが生きてくるような環境、つまりあえて
不要なファイルのコンパイルを避けないとコンパイルに時間がかかって
仕方がないような環境ってありえないと思うのだが。

いまどき、どころか俺のくたびれたペンティアムII-300MHzのPCでも
コンパイルに時間が掛かってムキーってことはまずないし。

MSオフィス並みの巨大アプリ作ってるのなら話は別かもしれないが。
0678デフォルトの名無しさんNGNG
>>675
WindowsXP以上はデフォルトで6.0ランタイムは入っているので
動く。

Windows2000は確か5.0が入っている

ただ、4.0や3.0、2.0は入っていないはずなので別途入れる必要
がある。
0679デフォルトの名無しさんNGNG
>>678
Win98には5.0が入っている。
0680デフォルトの名無しさんNGNG
RubyからExcelの操作をしようと思っています。
Rubyスレで質問すると、VBSの使い方を勉強すればわかるよって言われたんですが、
次の操作をVBSでどうするかわかりません。ヒントでもいいので教えてください。

すでに開かれてるエクセルのブックにアクセスするには、どうすればいいでしょうか?

つまり
エクセルファイルとして存在してるブックを開いて、操作するやり方はわかったのですが、
(Workbooksオブジェクトにaddメソッドで、ブックを登録)

すでに開いてるエクセルファイルを、VBSから操作する方法がわかりません。
(VBAeditorみたいな感じでの、VBSの使い方を知りたいです。)

VBSではどうするのでしょうか?


うまく説明できないんですが、どうかよろしくお願いします。
0681680NGNG
VBSでのやり方はいまいちわからなかったのですが、
rubyでは
excel_instance = WIN32OLE.connect('EXCEL.Application')
で、すでに開いているエクセルのアプリケーションオブジェクトを
取得できました。
失礼しました。
0682デフォルトの名無しさんNGNG
>>680-681
 勉強するなら、VBSじゃなくて、ExcelのVBAじゃないと。
 VBSって言った人、絶対勘違いしている。
 ExcelのヘルプにVisual Basic(VBA)のヘルプもあるので、
それを熟読して、VBAの文法などの方は入門書を買うと良い。
 後オブジェクトの操作で分からない部分は、Excel専門のスレが
あるから、そっちで聞いた方が絶対に早い。
0683680NGNG
>>682
Thanks!
0684デフォルトの名無しさんNGNG
>>682
RubyからExcelの操作といっているのでたぶんVBSでいいのでは?>>681が正解だと思うよ。
ちなみにVBSではこんな感じ。CreateObjectではなくてGetObjectになるね。

Set xlApp = GetObject( ,"Excel.Application") 'カッコ内カンマあり(第1項省略、第2項クラス)
Set xlBook = xlApp.ActiveWorkbook 'ファイル名を指定するときは⇒xlApp.WorkBooks("hoge.xls")

Msgbox xlBook.Name

xlBook.Close
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

0685デフォルトの名無しさんNGNG
Form_Resize イベントをフォームがある大きさになったときに
無効にしたいんだけど、何か方法ないですか?
0686デフォルトの名無しさんNGNG
>>685
If Me.Size.Width > 1000 And Me.Size.Height > 500 Then
MsgBox("無効")
Exit Sub
Else
MsgBox("Form1_Resize")
End If
0687デフォルトの名無しさんNGNG
>686
ごめんなさい。

"メソッドまたはデータメンバが見つかりません。"
と出ます。
0688デフォルトの名無しさんNGNG
>>685
EnabledプロパティがTrueの場合はイベントの発生そのものを抑制することはできないが、
別にイベントの生成そのものを殺す必要なんてない。

イベントが発生したときに行う処理を、ある条件(この場合はフォームが
ある大きさ以上?以下?)が成立する場合だけ実行するようなコードを
書けばいいだけの話。

>>686が言いたいのはそういうことでしょう。
0689デフォルトの名無しさんNGNG
>Form_Resize イベントをフォームがある大きさになったときに
>無効にしたいんだけど、何か方法ないですか?

Form_Resizeに

If Me.Width > 1000 Then
  Me.Width = 1000
End If

If Me.Height > 500 Then
  Me.Height = 500
End If

って書く

綺麗に制御したかったらサブクラス化しな
0690デフォルトの名無しさんNGNG
>>689
それは「フォームがある大きさを超えないようにする」処理であって、
「Form_Resize イベントをフォームがある大きさになったときに無効」にする
処理ではないと思うけど。。

天然なのか、それとも質問者に的確な表現力がないとみて意訳してるのかな?
0691デフォルトの名無しさんNGNG
サブクラス化すればForm_Resizeイベントは起きないので後者はあってる模様。
0692デフォルトの名無しさんNGNG
あっ、「リサイズはしてもイベントを起こさない」ってのは無理か。
0693デフォルトの名無しさんNGNG
>>684に
Set xlApp = GetObject( ,"Excel.Application")
と書いてあるんですが、
"Excel.Application"っていうキーワードは、どこで調べればいいんでしょうか?
例えば、IEを、操作したいときは、なんて書くんですか?

あと、それぞれのアプリケーションのメソッド(?)は、どこで調べればいいんでしょうか?
Excelは、VBEditorを起動して、オブジェクトブラウザから、メソッドとか調べられるんですが
それ以外は、どうすればいいでしょうか?
(VisualStudioを買うしかないですか?)
0694デフォルトの名無しさんNGNG
>>692
サブクラス化してメッセージを破棄しちゃえばイベントは起こらなくできたと思う。
Resize以外のイベントではそうやって無効になったことがある。
きっと質問者がほしいのはそういう情報でないとは思うが。
0695デフォルトの名無しさんNGNG
>>693
 Visual Studioにも、大して載っていません。(IEのはあったとは思うが)
 「Excel.Application」は、Excelのヘルプに載ってます。
 Excelのヘルプ内のVisual Basicの項にある。
 オブジェクトブラウザでは説明が無いし。
 WordはWordのヘルプ、AccessはAccessのヘルプに
載っています。

 ちなみに、Visual Studioと言っても、プログラミング用の
情報が欲しいだけなら、MSDN Onlineとして公開されているので、
それを見るのが良いと思う。(MSDN ライブラリ)
 http://www.microsoft.com/japan/msdn/default.asp

 そう言う意味でVBSを勉強すると言うのは不正解なんだがねぇ。
 と嫌味。
0696デフォルトの名無しさんNGNG
>>689
VBでもサブクラス化ってできるんでしょうか?

CではSetWindowLongを使って試したことがあるんですが、
VBでのやり方はどんな感じになるんでしょう?

GotFocusをキャンセルして別の処理(子ウインドウにフォーカスさせる)
をさせたいのですが、GotFocus内で処理すると、一瞬、ウインドウが
表示されてしまうので。

0697デフォルトの名無しさんNGNG
http://www.google.com/search?num=50&lr=lang_ja&q=%EF%BD%96%EF%BD%82%E3%80%80%E3%82%B5%E3%83%96%E3%82%AF%E3%83%A9%E3%82%B9%E5%8C%96
0698デフォルトの名無しさんNGNG
>>697
ども。簡単ではないみたいですねぇ。
0699デフォルトの名無しさんNGNG
>>698
>>439を使えばIDEは落ちないし、レジストリも汚さないから、多少はマシかと。
0700デフォルトの名無しさんNGNG
連続で花火ができるようなプログラムを教えてもらえませんか?
初心者なのでどのようなことができるのかも
いまいちわからず、いい発想がでてきません。
0701デフォルトの名無しさんNGNG
>>695
ほれ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/modcore/html/deovrworkingwithofficeapplications.asp
いずれもこれらOfficeのActiveXコンポーネントの多くはVBからでもVBSからでも
さらには接続する機能のあるRuby等他言語からでも共通に利用可能だ。
そういう意味で区別して勉強する必要はない。
第一RubyからVBAは動かないし、勉強ねぇと嫌味。
0702デフォルトの名無しさんNGNG
>>700
打ち上げ花火の着火装置をVBで自動制御するという事ですか?
具体的にどんなインターフェイスで接続されているのかを書いてもらわないと、レスが書き辛いですね
0703デフォルトの名無しさんNGNG
初心者で失礼いたします。
VB6.0で、ファイルをアーカイブするツールを作成しているのですが、
ファイルアーカイブ中に画面が固まらないように、ダイアログを表示し
そこによくファイルを転送しているときにWindowsで、ダイアログが表示されるな
イメージのダイアログを表示したいのですが、何かいい方法はありますでしょうか?
具体的な方法ありましたら教えてください。
0704デフォルトの名無しさんNGNG
>703
まずは他人が読んで理解できる日本語を書く事をお勧めします。
単にAVIアニメーションを表示したいだけ?
0705デフォルトの名無しさんNGNG
>>703
マルチ。某掲示板でもおなじことを(ry
0706デフォルトの名無しさんNGNG
初心者です。と言う人にまともな人は居ないな。
0707デフォルトの名無しさんNGNG
>>702
花火を描画するスクリーンセーバーみたいなのと考えればいいんじゃね?
0708デフォルトの名無しさんNGNG
>>701
 そのオブジェクト群の説明や用法がVBAのヘルプに入っている。
 VBSのヘルプや解説には、簡単な例がある程度なのだから、
サンプルや情報が遥かに充実しているVBAを勉強した方が早い。
 Excelにでは、実現する方法が分からない時に、自動マクロ記録
機能を使って出来たコードを参考にする方法もある。
 何から使うにしても、VBAで説明されている情報が充実している。
 Rubyで記述するにしても、VBAを理解して損になる事は無いが、
あなたがそこまでVBSに拘る理由はなんだ?
0709デフォルトの名無しさんNGNG
perlで書くとこういうことをしたいんだけど、
VBでどうやってファイルの存在を知ったらいいかわからないです。
if(-e $file){
 do_something()
}
0710デフォルトの名無しさんNGNG
>>709
Dir
0711デフォルトの名無しさんNGNG
>>708
横レスだけどさ
使い方によるんじゃねぇ?
俺はVBSやってCOMがらみでVBA(この場合階層構造になるんだろうけど)を使うって感じだけどな
人によってはマクロからVBAなんだろうけど、それってWORDとEXCEL覚えるのと変わんないしな
0712デフォルトの名無しさんNGNG
>>711
 この場合、VBA = ExcelやWordのコンポーネントで良いのかな?
 VBSからでも、使うオブジェクトの情報を見る時は、VBAのヘルプを
見るわけだよね?
 ネットで情報を検索しても、VBAでのサンプルが多いから、VBAで
見た方が早いよね。
 VBSはVBAのサブセット版だから、VBSには無い部分を除けば、
違和感無く理解できるよね。
 マクロからでも、VBSからでも、VB.NETでもWordやExcelを覚えるのと
変わらないのは同じなんだが・・・ (Delphiでも同じく)

 対象を変えて、ADOのコンポーネントを使うとしよう。
 この場合、ADOの勉強をするよね。
 で、例文はVisual BasicやC++で記述されているんだよな。
 例文の記述に使われている言語を例文のコードの流れを
理解できる程度には勉強しておくと、他の言語で記述する時に
楽なんだが。

 それと全く同じレベルでExcelやWordのVBAって訳なんだが。
 Excelの「VBA」のヘルプには、言語仕様の説明ももちろんあるが、
コンポーネントの説明も充実している。
0713711NGNG
んーとVBSがVBAのサブセットってのが違うと思うんだけど
VBのサブセットにVBSがあるんでは?
VBSはあくまでロジック書くための規則でしょ
でそれにのっとってVBAが使えるだと思ってたんだけれど
それにADOの例えがあってるとしたら、なおさらVBの知識要るよね
0714デフォルトの名無しさんNGNG
>713
 間違っている訳ではないぞ。

 http://yougo.ascii24.com/gh/31/003135.html
 ちなみに、VBAにあって、VB5.0には無くて、VBScriptにある
関数があった。(同じ時代のバージョンで)
 VB6.0になると、その関数(Replaceとか)が言語仕様に盛り込まれて
VBAとVBで言語仕様に実質的な差は少なくなった。

http://www.microsoft.com/japan/msdn/columns/scripting/html/vbsvjs.asp
MS自身が昔とは違う説明をしているのだな・・・
この年度を見ると、VBScript3.x辺りからから変わったんだな。

http://www.google.co.jp/search?q=VBScript+%E3%82%B5%E3%83%96%E3%82%BB%E3%83%83%E3%83%88&ie=UTF-8&oe=UTF-8&hl=ja&lr=lang_ja
 VBのサブセットと言う説とVBAのサブセットと言う説の両方が
あるが、VBSが登場した頃は、VBAのサブセットと説明されていた
のです。

 VBSは規則でないのだが・・・(明示的な変数型が無いし)
 VBSはVBSで一つの言語、簡略化されたVB。

 VBAはVBから派生したVisual Basic for Applicationsで記述する。
 言語仕様的には、VBAにしかない関数があったり、VBAには無い
関数があったりする程度でほぼ共通。
 だから、言語的には VB = VBAとしても同じ事。
 ところで、あなた、ExcelやWordのコンポーネントをVBAと呼んで
いるの?
 コンポーネントはVBAじゃ無いんだが。VBAは記述する言語部分。
0715711NGNG
>>714
そうだったのか
勉強不足でした

>ところで、あなた、ExcelやWordのコンポーネントをVBAと呼んでいるの?
マクロがVBAだと思ってました
0716701NGNG
お前等どうでもいいが、ヘルプが引きやすいとかそんな下らないことで
人に嫌味いうほどのことじゃねーと思うぞ。(>>695のことな)

アドバイスもいいが押し付けになってはいかんでしょ。
勉強の仕方や考え方も言語の使い方も人それぞれなんだからさ。

質問スレなんだから、答えるつもりがあるなら、まず聞かれたことを
できるだけ正確に答える。人にこうしろどうしろなんつー態度は
正直大きなお世話、周囲が迷惑いらないよ。

しかし、この板、質問スレで威張りたいセミ素人が、なんでこんなに多いんだろ?
正直傍目にカンジワルイな。
0717デフォルトの名無しさんNGNG
正直、人に命令するな、と命令する自己中クンってよくいるが
平気で自分を棚上げできる神経が理解できない。

俺様だけは特別、とでも思ってるのか。
ソープ嬢にこんなところで働くな、説教するオヤジとか
説教強盗みたいでなんか笑えますな。
0718デフォルトの名無しさんNGNG
ツッコミどころ萬斎だけど・・・とりあえずみんな落ち着け。
おれは今日はWindowsの地雷パッチのせいで疲れちまった、何で日本の役人がこんな粗悪パッチを入れるように促してんだかスレ違いsage
0719716=701NGNG
>>717
まぁまぁ、ヒス女や爺みたいな逆切れ説教嫌味はカコワルイに同意だよ。粘着でキモイもんな。
(一応いっとくが漏れは716&701しか書いていない。他は知らんよ。)
願わくはあなたのカキコが勘違いで自己再帰していませんように...。
0720デフォルトの名無しさんNGNG
何事もなかったかのように次の質問
↓
0721デフォルトの名無しさんNGNG
あのー初心者なんですが、
0722デフォルトの名無しさんNGNG
VBとアクセスのDBでプログラムを作っているのですが、IDが未入力だった場合にエラーを
出したいのですが、データを書き込む前に全てのIDが登録できるデータかどうかチェックして、
1つでも登録できないIDがあったらエラーメッセージを表示出したいのですがどういう方法があるのでしょうか?
0723デフォルトの名無しさんNGNG
>>718
これのこと?
ttp://www.atmarkit.co.jp/fwin2k/hotfix/hfb20040507/hfb20040507.html

まーデグレード起こしたMSもどうかしてると思うが、パッチが地雷かどうかを見極めるために
本番環境に当てる前にテスト環境で評価しないか?
0724デフォルトの名無しさんNGNG
>>722
何をしたいのはよくわからないけど、
思いのままプログラミングするだけだろ。
0725デフォルトの名無しさんNGNG
>>709
プロジェクト→参照設定で「Windows Scripting Runtime」とやらを
参照するようにして、それのオブジェクト群を使え。
オブジェクトやメソッドの一覧はF2キーでオブジェクトブラウザを開く。
詳しいことはヘルプに出てる。
ファイルが存在するかどうかはFileSyetemObjectオブジェクトの
FileExistsメソッドでどうぞ。
0726デフォルトの名無しさんNGNG
VBからWSH呼び出すのってなんか気分悪い。俺だけ?
0727デフォルトの名無しさんNGNG
check boxのコントロール配列で、check(1), check(2),check(3),check(4)
とあって、チェックされている数を数えたいんですが、例えばcheck(1),check(2)
と2つだけチェックされていれば2と返すような関数などあるのでしょうか?
0728デフォルトの名無しさんNGNG
>>727
そんなFunctionあるかなー?
漏れならシンプルにループでカウントするけど。
0729デフォルトの名無しさんNGNG
>>727
そういう発想(関数)をするとVBやってる奴はやっぱOOもわかんない厨房ばっかだ、
って言われても否定しづらくなるから止めれ。
0730かみや ◆QkRJTXcpFI NGNG
VB6.0 Pen�U333 で、

当方、4月から前の業者の作ったプログラムを受け取り、前の仕様書もなしでVB6.0にて開発しています。
途中まではハングアップもせずに、導火線の火花さえも、ありませんでした。。。。
ところが!!!!!!納期直前、打ち合わせ直前になって!!!!
開発環境下で、ステップアップで実行初めても、すぐにハングアップしてしまいます。。。
いちおうDoEventsを盛り込んでも、ステップを終了してもハングアップして
VBが落ちてしまいます。。。打ち合わせ直前でこうなりやがって焦ってます(>_<)
考えられるトラップはどこでしょう?

今、自分なりに考えたのですが、全モジュールにOption Explicit
してて、Dim文がズラーっと並びまくってます・・・これって、逆効果ですよね???
むかーし1から作ってたときなんか、宣言がある一定の数を超えたとき
ハングアップした記憶があります。。。
ほかには何か、テクニックがありますでしょうか?

玄人サマ、アドバイスお願いします!!!!
0731デフォルトの名無しさんNGNG
> 考えられるトラップはどこでしょう?
あんたのプログラミングレベルが低いから。
書いてあるコードの意味。なんにも分かってないでしょ。
0732デフォルトの名無しさんNGNG
>>730
むしろプログラム自体より環境に問題がありそう
他のプログラムはちゃんと動く?
他のソフトやレジストリだとかDLLだとか
VBやプログラムを動かなくする要素は沢山あるから

動かないならまずVB、関連のランタイム、OSその他もろもろを戻す
問題ないならおかしくなる直前の段階までコードを戻す
戻したら書き換えた部分を詳しく検証
出来ないなら受け取った場所から一からやり直し
0733かみや ◆QkRJTXcpFI NGNG
>>730
どんぴしゃだ・・・
確かに、少しおかしくなった後すぐに再起動して、
立ち上がったらすぐに何かのアプリケーションをアンインストールしたんだとおもう。
そのときに、何かでっかいやつを消して、DLLを消してしまったんだとおもう。。。
んー、
とゆうことは、VB6.0を、入れ直し。すれば元に戻る可能性が出てきますな!
むしろこれで開始当初から悩んでいた
行 782: クラス MSDBGrid.DBGrid(コントロール dbgStress) はロードされていません。
とかのコントロールエラーも解消されそうだ!!!
しかし、もう打ち合わせには間に合わない・・・
極力のことはやる。だが、しかし、
>>731
よ、たぶんキミはマでもSEでもないただの学生だろう。実際にそう思う。
ソフト屋、ハード屋目指すにせよ、かみやのような考えをもつような奴にはなるな・・・
決して
「奇 跡 が 起 こ る プ レ ゼ ン 1 時 間 前  時 間 が 止 ま る」
などと現実逃避するような奴にはなるな!
0734デフォルトの名無しさんNGNG
なんか香ばしい人が現れましたな。
本人はネタのつもりなんだろうけど、ネタ師としても(もちろん、PGとしては推して知るべし...)
才能なさそうだからあんまり相手にしないほうがいいと思うがどうだろう。
0735デフォルトの名無しさんNGNG
ネタっていうか、なんだろね
GW明けで、思わず会社辞めてしまった新人って感じがするけど
0736デフォルトの名無しさんNGNG
たかがVBで熱くなるなよ、
HSPに毛が生えたようなもんだろ。
0737デフォルトの名無しさんNGNG
 質問で申し訳ありません。

OSは「WindowsXP Personal Edition」です。
「RasDial」でRASの接続を行い、
「RasHangUp」でRASの切断を行う処理を行っております。
プログラム起動をして初回の接続は問題無く動作し、
切断する事も出来ます。
ですが、続けて同じRASに接続しようとした場合
エラーコード「668」(接続を終了しました。)
が返されてしまい、接続する事が出来ません。
Wind98SEでは正常に動作しておりました。
この現象について何かご存知の方はいらっしゃいますでしょうか?
0738デフォルトの名無しさんNGNG
スレ違いでした。申し訳ありません。
0739デフォルトの名無しさんNGNG
>>725
「関数」を作るなら、For Each ... Nextで数えるようにすれば
Indexに欠番があっても使えるからそうするように。
引数はObject型にしてCheck(x)ならCheckを渡し、戻り値で
チェックされた個数を返すようにする、というのが一例。
Public Function GetCheckedCheckBoxCount(ByVal CheckBoxes as Object) As Long
  ...
  For Each C In CheckBoxes
  ...
みたいな。
引数を増やして「チェックしていない数」「グレーの数」を取れるように
するのもありだ。
0740デフォルトの名無しさんNGNG
コントロールからイベントを受け取るために、クラスモジュール内にWithEvents句を使って
オブジェクト変数を宣言しています。
そのコントロールが存在するフォームと、WithEventsを使ってイベントを監視しているクラスの
両方に同じイベントプロシージャがある場合、どういう順番でイベントが発生するかという点は
何によって決まるのでしょうか?

ちなみに、両方のイベントプロシージャにブレイクポイントを置いて調べてみましたが、あるとき
はフォームのイベントが先に走り、またあるときはクラスの方のイベントが先に走ります。
0741デフォルトの名無しさんNGNG
>>740
たぶん、登録した順だと思うけど仕様としては定まっていないと思う。
COMの仕様としては定まっているのかな?
だとしたらその仕様のとおりだろうけど、VBのイベントプロシージャが
COMの仕様で実現されていると定まっていないような。

悩みすぎ?w
0742デフォルトの名無しさんNGNG

コントロールの配列ってFor Each 使えなかった気がする。
VBって変な制限多すぎだよ。

0743740NGNG
>741
どもです。
私の方もぐぐったりして調べてみましたが、やはり発生順は不定という結論に落ち着きそうです。
とりあえず今回は、フォームとクラスのイベント両方に同じコード書くというベタな方法で回避しますた。
0744デフォルトの名無しさんNGNG
回避って何を回避したんですか?
0745デフォルトの名無しさんNGNG
使えるよ。
あやふやな知識で書き込むなよ。

ただし、配列と言う割には UBound() と LBound() が使えない。
0746デフォルトの名無しさんNGNG
激しくガイシュツだが「コントロールの配列」と
「コントロール配列」は違うよ。

こんなことも知らん奴に限って口調が尊大なのはなぜだろう。
0747740NGNG
>744
イベントの発生順に依存する処理を書いてしまったがために発生した不具合を、です。
言葉足らずスマソ
0748デフォルトの名無しさんNGNG
>>764
おおそういうことか。
それはスマンかったな。

しかし、コントロールの配列でも For Each は使えるよ。
ただ変数の型が Variant でないとダメと言われてしまうから、「変な制限」というのには同意するよ。
0749デフォルトの名無しさんNGNG
FileSystemObjectのメソッドが、ノートン先生に不正なスクリプト扱いされたんだが、いったいどうすればよいの?
0750デフォルトの名無しさんNGNG
文句はノートン先生の産み親にどうぞ
0751デフォルトの名無しさんNGNG
>>732
ランタイムだけでなく、

DB系なら、Jetのバージョン、MDACのバージョン、独自に使用している
コンポーネント、dll、iniファイル 等々、それこそきりがない。

DB系は特にこれに注意したいところだ。
0752デフォルトの名無しさんNGNG
For Each...Nextって、In... のところには
IUnknownインターフェースを持ったオブジェクト型の変数を返すメソッドを
持ったコレクションを指定するということになってるんじゃないっけ?
だから自作コレクションクラスではFunction NewEnum() As IUnknown
だっけ?こんなのを作るとFor Each...Next対応になるし。
コントロール配列は実態はコレクションだから対応しているんだろう。
For Each...Nextで配列変数を扱うときはIUnknownを返すメソッドが
ないから、カウンタ変数(?)の側をVariantにすることでエラーに
ならないようにしている・・・ということだと理解してるんですが。
違うっけ?なんか最後の説明があやふやだな。
0753デフォルトの名無しさんNGNG
>>730
マシンスペックからするとOSはWIN98?
それならリソースに制限があるので常駐ソフトがおおければ
常駐ソフトの使用状況でハングするよ。特にlistboxを多く使
っていない?

atokも悪さをするから要注意だね。
0754デフォルトの名無しさんNGNG
atokが悪さというのは体験したことが無いのだが、どんなことをするのだ?具体的に聞きたい
0755デフォルトの名無しさんNGNG
>>754
割り込みをかけまくったりメモリを喰いまくったり。
というのをDOS時代には経験した気がするけどWindowsでは気にしたことはない。
0756デフォルトの名無しさんNGNG
こうやってヘッポコPGに言い訳の理由を与えてくれるMSって慈愛に満ちてるよな。
ま、現実にはMSのXXのせい、とか言ってる奴の9割方は単に自分の無能を(その自覚もなしに)
責任転嫁してるだけなんだが。
0757デフォルトの名無しさんNGNG
MDIちっくで、常時表示の窓についてはフロートできたりドッキングできたりする
インターフェースってあるじゃないですか。
VB6自体みたいな、コードのウィンドウとフォームのウィンドウはMDIっぽく処理できて、
イミディエイトとかプロジェクトエクスプローラとかプロパティウィンドウは、
ドラッグしてフロートにしたり、画面のハシにドラッグしてドッキングできたりするじゃないですか。
そんな感じのインターフェースを自作のソフトで使いたいんですが、
どうしていいのか、どう調べていいのかわかりません。
そもそも可能なのかもわかりません。
教えてください。
0758デフォルトの名無しさんNGNG
>>754
あんた阿波徳島の人だね。あまりかっかせずにね?

特定のバージョンatokがONの状態でフォントを変更した時にハング
する事がある。
VB6ではないがoffice2000で終了時にかならずエラーに
なる(これは、自動文章作成ツールをキャンセルすれば解消
するが。。。)

>755
win98(ME)以下は残念ながら16ビットをベースにしたOS
なので、リソースにDOS時代の制限があるよ何なら、常駐ソフト
をいくつか常駐させた状態でコンボボックス辺りを数張ってコンボ
ボックスデータをadditemしてごらん、見事に動かなくなるよ、、、
0759デフォルトの名無しさんNGNG
>>754
おお、2chに阿波徳島の人いるのか?
うちのかーちゃんが「家」の家計簿パックのファンだぞ。3年も愛用してV3にVerUpもしたぞ。
入力がとっても楽だそうだ。ラベル印刷もいいな。(ごめんAtokは使ってないけど。)
データをExcelに書き出すADDIN作ってくれ。税金対策で独自に年集計やりたいんだそうだ。
0760デフォルトの名無しさんNGNG
>>758
特定のバージョンのってあんたなあ
atok=悪さをするというような書き方するなよ
一度でもバグのあったソフトは悪さをするから注意しろだと?ふざけてるな
しかも内容がVBと関係ないし。たちのわるいクレーマーのようだな
0761デフォルトの名無しさんNGNG
>>758
755は"DOS時代のATOK"について話しているような
0762デフォルトの名無しさんNGNG
>>757
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=44409&lngWId=1&txtForceRefresh=51020045375786745
ここらへん。
0763デフォルトの名無しさんNGNG
>>762
理想的です。
なんか難しそうですががんばってみます。
ありがとうございました。
0764デフォルトの名無しさんNGNG
>>763
すまんです。旧バージョンのアドレス書いちまった。↓が最新版。
ttp://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=46061&lngWId=1
0765デフォルトの名無しさんNGNG
>>764
TabDockでサイト内検索して、そっちの最新版を落としましたので大丈夫です。
わざわざどうも。
0766デフォルトの名無しさんNGNG
On Error Goto Err_Syori

Do
〜

Next_Syori:

Loop

Exit sub
Err_Syori:
〜
Goto Next_Syori
End sub

このように複数回エラー処理を行いたいのですが、
2回目の実行時エラーからはエラー処理に飛ばずに実行時エラーが出てしまいます。
この方式だと複数回のエラー処理は出来ないのですか?
0767デフォルトの名無しさんNGNG
>766
質問する前に、MSDNくらい見てください。
0768デフォルトの名無しさんNGNG
>>766
errorからの復帰はgotoではなくresumeを使う。
0769デフォルトの名無しさんNGNG
>>767
エラー処理ルーチンがアクティブになっている間 (エラーの発生と Resume、Exit Sub、Exit Function、
または Exit Property ステートメントの間) は、カレント プロシージャのエラー処理ルーチンはエラーを処理できません。

この辺が原因ですか・・・?
つまりResume、Exit Sub、Exit Functionまたは Exit Propertyがくるまでは
エラー処理ルーチンはアクティブなままなので
上記ソースでは2回目は実行時エラーになってしまうということでしょうか。
0770デフォルトの名無しさんNGNG
>>768
ResumeもしくはResume Nextを使うと
エラーの起こった行もしくはエラー発生行の次の行に
処理が移ってしまいますよね?

それがしたくないのでGotoを使ったのですが
どうやらマズイみたいですね。
(DB登録処理でSQL文が失敗したデータは無視して、
次のデータ処理に移るというプログラムを作りたかったのです)

エラーが起こる処理前にOn Error Resume Nextをしておいて
その後にErr.Number<>0だったらエラー処理行に飛ばすようにします。
0771デフォルトの名無しさんNGNG
まてまて。
Goto Next_Syori
じゃなく
Resume Next_Syori
0772766NGNG
>>771
Σ(゜д゜|||)ハッ
そうだよ、それがあったんだ・・・すっかり忘れていた

もれドキュソすぎだな
みなさんごめんなさい
逝くわ・・・(´・ω:;.:...
0773デフォルトの名無しさんNGNG
スライダーのつまみって、2つ以上に増やせないですか?
2つのつまみの間の数値を読み取ったりしたいんですが....
さらに4つのつまみで、それぞれのつまみの間の数値を読み取ったりなどできないでしょか?
0774デフォルトの名無しさんNGNG
上司か誰か前からいる人が書いたコードで
設計上の問題があるのですが
言ったほうがいいでしょうか?言わないほうがいいでしょうか?
0775デフォルトの名無しさんNGNG
>>771
もまえ>>768か?
やさしいな・・・このスレで人間に出会えるなんて

>>774
そんな質問すんじゃねえっ
0776774NGNG
>>775
ごめんなさい。
0777775NGNG
>>774
なんでだっ、なんであやまるんだっ
これじゃあ、俺が悪者みたいじゃないか
畜生、俺だってこんな人間になろうとしてなったわけじゃないんだああ




えっと、こっからどうして俺がこんな人間になったかって話になるんですけど
ちょっと長くなるけどいいですか?
0778デフォルトの名無しさんNGNG
SP5時代にコンパイルし、ディストリビューションウィザードを使ってランタイムごと配布したアプリケーションを、
VB6が入っていないマシンにインストールしました。

その後SP6でコンパイルしたバージョンアップしたexeを、そのマシンのインストールした場所に
上書きコピーをすると、それは動作しなくなりますか?
0779デフォルトの名無しさんNGNG
導入先にVB6ランタイムが既に入ってて、それ以外の外部ファイル依存してなけりゃ動くんじゃない?
っていうか、試してみたほうが早いかと。
0780デフォルトの名無しさんNGNG
2つのバイト配列があって、たとえば
dim a() as byte
dim b() as byte
ってあって、
a,bそれぞれ50byteのデータが入っているとして、
そこでaの末尾にbをくっつけて、
aが100byteのバイト配列になるような処理を書きたいんですが、どうするといいですか。

ReDim Preserveでbのぶんだけaのサイズ拡張して、
ループ回して一つ一つ代入していったら、一応できたんで、まぁこれでも良いかとも思うんですが、
もっといい方法はありますか?
0781デフォルトの名無しさんNGNG
>>780
CopyMemoryっていうAPI使え。
0782780NGNG
>>781
ども。
なんかよく使い方わかりませんが、ぐぐるさんに色々質問しながらやってみます。
0783デフォルトの名無しさんNGNG
>>780
>>781の通りCopyMemoryが速くて良いと思うけど、
だいぶ機械よりの処理するから諸刃の剣。
たいして速度を求めないならループによる代入で良いと思う。
0784デフォルトの名無しさんNGNG
VBを実行できるフリーソフトでイイのありませんか?
0785デフォルトの名無しさんNGNG
>>783
関数化すりゃええやん
0786デフォルトの名無しさんNGNG
昔々作ったゲームで、MIDIを鳴らすのに"mciSendString"を使ってます。
が、何故かWindowsXPではOpenする時に5秒程度のWaitが発生してしまいます。

CompileしたのはVB4.0とかなり古いのが原因なのかとも思っていますが、
別にこの辺りにVersionなんて関係あるのかと疑問。
同じ構文でもVCなら問題なく動きますし。

もし何かご存知の方がいらっしゃいましたら、御教授下さいませ。

ちなみに、APIの宣言は以下の通りです。

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
 (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
 ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
0787デフォルトの名無しさんNGNG
>>786
MIDI音源の関係と予想。
0788デフォルトの名無しさんNGNG
>>780
A = CStr(A) & CStr(B) でできるべ。

Byte型の配列は文字列と相互変換できるから。
0789デフォルトの名無しさんNGNG
まあでも>>788はメモリ食いで遅いかも知れないけどな・・・・
0790デフォルトの名無しさんNGNG
>>788
それって中身が文字データじゃなくても問題ないの?
0791デフォルトの名無しさんNGNG
>>790
今しがた、配列Aに0〜49、配列Bに50〜99入れて確認。
合体後の配列Aは0〜99まで100要素ちゃんと出来てます。
この場合、CStr(A)は文字コード&H0001, &H0203・・・しめて25文字50バイト
の文字列になる。(UNICODE)
それと同様にCStr(B)も文字列化していて、それらの
連結結果がバイト型配列に代入されるとき、また0, 1, 2・・・98, 99に
分解されるという仕組み。
0792デフォルトの名無しさんNGNG
>>788
CStrなんか使っちゃダメでしょう。
使うならMidB$とかLeftB$みたいにBが付いた文字列関数を使わなければ。

それから、バイト型の動的配列でないと文字列は代入できないはず。
0793デフォルトの名無しさんNGNG
>>792
?
0794デフォルトの名無しさんNGNG
>>793
文字コードにかかわる問題を少しでも知ってる人なら
CStrなんて動作が明示的に定義されてない関数は怖くて使えない。

「動的」配列云々の話はやってみれば猿でもわかる。
0795774NGNG
>>794
恐れちゃだめだよ
勇気を出して立ち向かわなきゃ
0796デフォルトの名無しさんNGNG
答えになってないよーな気がする
0797きっきNGNG
VBAの用語を検索できる辞書サイトをしりたいのですがどこかいいのありませんか?
0798デフォルトの名無しさんNGNG
質問。 
VBでテトリスとか作れるのですか? ヒントください。
自分かなり初心者です。
0799774NGNG
>>798
作れるのか、作れないのか
それのヒントかぁ

答えを言わずにヒントを出すのは難しいなぁ
0800VBerNGNG
ヒントになっているかな?
http://www.google.com/search?num=50&lr=lang_ja&q=%76%62%20%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9
0801デフォルトの名無しさんNGNG
>>797
ググれ
>>798
参考までに
http://pc5.2ch.net/test/read.cgi/tech/1059892659/
0802デフォルトの名無しさんNGNG
クラスモジュールでタイマーを使いたいのですが
やり方を教えてください
0803デフォルトの名無しさんNGNG
>>802
クラスにタイマーオブジェクト渡したらどうなん?
0804デフォルトの名無しさんNGNG
質問します。
コネクションは以下ようになっていますが
Dim db As New Connection
db.CursorLocation = adUseClient
'接続は90秒
db.CommandTimeout = 90
db.Open Connectionstring
タイムアウトでエラーが出ます。
インターネットVPNでSQLSERVERに接続しているのですがなぜタイムエラーが出るのでしょう
90秒もあれば十分なような気がするのですが・・・・
ちなみにネットワークはPINGを打つと
500msから300msかかります
SQLSERVER側の接続?
0805よくわからんでレスNGNG
>>804
なんか根本的にだめだろ。

タイムアウトしてるのはコードがおかしいからです。

直接関係ないけどコネクションなのに変数名がdbとかもきもいし。
勉強して出直してこいって感じだ。

ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_s11.htm

でも読め。そしてMSDNも読め。
0806デフォルトの名無しさんNGNG
>>805
いや、これでいけましたが。
個人的にはネッワークの混み具合かなともおもっているのですが
普通の拠点はPING打つと50msぐらいだったのですが
ある地点だけは300msもかかるのでそう思ってます。
他はOKだったのですが・・・
VPNは重いのかな?
がんばってみます。
VPNでVBをデータベースをアクセスしている人ています?
0807よくわからんでレスNGNG
>>806
ふーん。
じゃあシステムDSNつくって普通に接続できるかチェックしてみれば?
0808デフォルトの名無しさんNGNG
>>ふーん。
>>じゃあシステムDSNつくって普通に接続できるかチェックしてみれば?
普通には接続できるのです。
原因がわからなくて。timout=0(無限)にするといけるのかな?
今度やっえみようかなとおもっています。
0809デフォルトの名無しさんNGNG
VB6で作られたBASP21のSocket機能を使ってHTTP通信を行うOCXがあります。
これをHTTPのみではなくHTTPSも使えるようにバージョンアップしようとし
ていますが、なにか良いライブラリはありませんでしょうか?

BASP21 Proはライセンス(再配布)の問題でダメで、winsockはWin98上
でのSSL通信に対応していないいないっぽいのダメでした。
#過去ログが読めないみたいなのでチェックしてません。すいません。
#いちおうググっては見ましたがめぼしいものが見つからないので・・・
0810よくわからんでレスNGNG
>>808
あんなー。お前はっきりいっとくけどな。
timeoutを変更するのもいいけどな。
接続に1分半以上かかるようなシステムまともに使用できるわけねーだろ。

今度やってみようかと思いますじゃねーよ。

システムDSNで接続できるってことはコードがおかしいんだろ。
コネクションストリングあたりがあやしんじゃねーか?
0811よくわからんでレスNGNG
>>809
WinInet APIでできそうだけどな。本当にぐぐったか?嘘つくな。
0812デフォルトの名無しさんNGNG
>>804=806
先ずは、ぐだぐだ言う前に>805を読んで検討しなおせ。
そのサイトの他のページにはチューニングと言うか、
パフォーマンスを確保する為にコーディング上で注意すべき
事項も明確にされている。

>'接続は90秒
>db.CommandTimeout = 90
CommandTimeOutはクエリ等を実行した時に終了待ちを
する時間。
接続のタイムアウトは、ConnectionTimeOut。
デフォルトは15秒。

接続できない事とは直接関係無いとは思うが、わざわざ
クライアントカーソルを使っているのは明確に目的や理由が
あるんでしょうか?
0813809NGNG
811>>
0814デフォルトの名無しさんNGNG
>>timeoutを変更するのもいいけどな。
>>接続に1分半以上かかるようなシステムまともに使用できるわけねーだろ。
確かにそうですね。とりあえず原因を知りたいのです。
思うにPING打って500msもかかるようなネット環境ではできないのでと。
そのあたりを知りたいのです。80msなら十分使用になるのですが。(実際にデータも更新も参照も)
VBのDCOM辺りがかなり接続負荷になってるのでしょうか?
ともかくコネクションストリングをもう一度見てみます

0815809NGNG
>>813
書き込みミスです。

>>811
WinInetでSocketレベルでのSSL通信はできますか?

現在Socket使ってHTTPサーバと直接お話しするような作りに
なっていてかつ工数・金額をかけない、という制約から見送
りました。
0816よくわからんでレスNGNG
>>814
おまえさ。何歳で何年目よ?

まず
ネットワークの状態が悪い
のと
SQLServerに接続できない

のは切り離して考えたらどうなんだ?
システムDSN経由だと正常に接続できるんだろ?

まず、何歳で何年目なのか言え。
0817よくわからんでレスNGNG
>>815
一生できますか?できますか?って言ってろ。
0818809NGNG
>>817
調べた上では「できない」が結論ですが
0819デフォルトの名無しさんNGNG
816>>
ADOでOLEDBを使っているのです。
ODBCは使っていません。書き方が悪かったかも知りませんが
ネットワークの状態に負荷があるとき(今回は10拠点の位置で調べる)
接続できないのです。(タイムアウトを多くしても)
どこかで負荷がかかってるとしか思えないのです。
0820デフォルトの名無しさんNGNG
>>818
ふーん。
じゃあできないんじゃないの?
0821デフォルトの名無しさんNGNG
愚愚ったかとか、MSDNってやつがうるさいな
仮にそれで解決するとして
じゃあ解決しなかったことが、このスレの住人に答えられるのかね(w
答えることなんて残ってねえと思うぞ
素直に素人に物教える技術はないって言ってりゃいいものを
特に816おまえだ
0822よくわからんでレスNGNG
>>819
お前の話聞いてるとうんこもらしそうだな。

ようするにVBと関係ないわけだな。
0823809NGNG
>>820
SSL時のみwininetを使う方向でマネージャと調整することにしますわ。
回答ありがとうございました。
0824よくわからんでレスNGNG
>>821
俺が現場にいればこんなとこで聞かないで自分でなんとか解決するけどな。
0825デフォルトの名無しさんNGNG
>>>>821
>>俺が現場にいればこんなとこで聞かないで自分でなんとか解決するけどな。
おまえにできるとは誰も思ってないよ!
スレから消えろ。
0826デフォルトの名無しさんNGNG
821>>
パチパチ
0827デフォルトの名無しさんNGNG
>>822
ConnectionTimeoutとCommandTimeoutを取り違えている事を
理解していないようだから進展しそうも無いな。

ネットワークが遅いなら、非同期処理とか遅いなりのやり方は
あるが。
0828デフォルトの名無しさんNGNG
もう時代は.NETだって
0829よくわからんでレスNGNG
まぁ、てんぱってるときは他人にあたりたくもなるんだろうけど。

おまえの技術力が低いからてんぱってるんだって事を忘れたら駄目だな。(笑)
0830デフォルトの名無しさんNGNG
ネットワークとかデータベースとかやったことない分野なのでわからないんだけど、
いまの話題は「お前人にそんなこと聞くか?」っていうような低レベルな話なの?
Form1からForm2の……っていう例の質問と同じぐらいの?

傍目にはなんかそうは思えないんだが。
あまりに馬鹿な質問とかならともかく、感情的になるぐらいなら最初から
レスしなきゃいいと思うんだけどどんなもんかね。
0831デフォルトの名無しさんNGNG
>>830
やったことない分野なのにそうは思えないの?

すごいね。エスパーになれるよ!
0832デフォルトの名無しさんNGNG
>>おまえの技術力が低いからてんぱってるんだって事を忘れたら駄目だな。(笑)
おまえが高いとも思えんが。
悔しければ役に立ちそうな意見でも言ってから吠えれば。
今ならお前なら吠えてるだけ。消えろ。
0833デフォルトの名無しさんNGNG
>>832
煽ってないで勉強したら?
0834デフォルトの名無しさんNGNG
829
必死になって自分に正当性があるっていいたいのはわかるが
俺は821だが809じゃないぞ
なんつうかスレの質問の仕方が悪いのは仕方ないとしても
うんことか何歳で何年目とか
おまえの人間性の汚さに腹が立ってるだけ
会社でなんかいやなことでもあったの ぼ く?

0835デフォルトの名無しさんNGNG
>>煽ってないで勉強したら?
オマエモナー
0836デフォルトの名無しさんNGNG
とんでもない長い文字列を格納してそのバイト数(文字数)を調べたいのですが
どうすればいいでしょうか。
例えば10の2000乗は何ケタになるか調べたいのですが・・。
0837デフォルトの名無しさんNGNG
log を使え
0838デフォルトの名無しさんNGNG
>>836
質問が不明瞭。いったい何をしたいんだ?
0839デフォルトの名無しさんNGNG
>>838
例えば10の2000乗は何ケタになるか調べたいです。
10^2000を変数にいれてLENとかで調べようとしたら
どんな変数つかってもオーバーフローしてしまうので・・・。
0840デフォルトの名無しさんNGNG
>>836
2001 け
0841デフォルトの名無しさんNGNG
>>839
高校は出てるんだよね?数学的帰納法知ってる?
10^0 = 1, 10^1 = 10, 10^2 = 100, ......

∴10^2000は2001桁でしょ?

ていうかこれと文字列のバイト数がどう繋がるのか意味不明なんだけど。。
0842デフォルトの名無しさんNGNG
たとえが悪すぎる。
0843デフォルトの名無しさんNGNG
>>841
う〜〜ん。
その解答自体が知りたいのでなく
とんでもなく長い(例えば200桁)を越える文字列の長さを測る
ロジックの組み方が知りたいのです。
そんな文字列を格納してもオーバーフローしないデータ型とか存在しないですか?
0844デフォルトの名無しさんNGNG
>>842
絶対こう言い出す奴がいると思った。
基数が10だからたとえが悪いってか?
別に10じゃなくても同じこと。
0845デフォルトの名無しさんNGNG
>>843
おちょくってんの?新手の釣りですか?
200桁の文字列って何?200文字?
200文字どころか10Gバイトまで扱えるはずだけど。
0846デフォルトの名無しさんNGNG
>>845
それにはどんなデータ型使えばいいのですか?
おちょくってないですよ。
普通に知りたいです。
0847デフォルトの名無しさんNGNG
>>843
Len関数なら 2^31文字まで数えてくれるんじゃないかな?

もしかしたらこういったものが欲しいのか?
http://www.google.com/search?num=50&lr=lang_ja&q=%E5%A4%9A%E5%80%8D%E9%95%B7
0848デフォルトの名無しさんNGNG
>>843
文字数か?ならLen
0849デフォルトの名無しさんNGNG
>>845

>>839で
>どんな変数つかってもオーバーフローしてしまうので・・・。

と言っているからやっぱり200桁じゃないの
0850デフォルトの名無しさんNGNG
>>844
ハァ?
0851デフォルトの名無しさんNGNG
ところでさ

MidBとMidB$の違いは
Nullが使えるか使えないのってことで良いかな?
0852デフォルトの名無しさんNGNG
基数は10で固定だと思うんだが・・・
そうだろ?>>846
0853デフォルトの名無しさんNGNG
>>848
いやだからLENで調べるために変数で格納したいのですが
どんなデータ型なあ2000桁を越える文字列を格納できるかな・・・と。
>>845によると10Gを越える文字列を格納できるデータ型が存在するとの事ですが。。。。
0854デフォルトの名無しさんNGNG
>>852
いえ。たまたま10って言っただけです。
とにかく「長い文字列を入れてもオーバーフローしない文字列はありますか?」
質問はそれだけにしぼります。
0855デフォルトの名無しさんNGNG
数値と数字列の区別が付いていないのが問題。
>>847が求めているものだろうが、なぜかスルー。
0856デフォルトの名無しさんNGNG
>>853
2000桁ってどんな文字列なの?
想像もできん
0857デフォルトの名無しさんNGNG
「オーバーフローしないデータ型」でした。
すません。
0858デフォルトの名無しさんNGNG
>>853
つまらん釣りは止めれ。
釣りでないなら2000桁の文字列という意味不明な言葉をきちっと説明しろ。
0859デフォルトの名無しさんNGNG
>>855
とにかく格納したいんですよ。
いちど格納できさえすればLENで測る時だけ文字列に置き換えればいいとおもうので。
>>847は確かに便利ですが今知りたいのは計算結果でなく「VB6でのロジックの組み方」なので。
0860デフォルトの名無しさんNGNG
>>854
じゃあ場合によって答えの数字列が2進数になっても10進数になっても20進数になってもいいのか?
0861デフォルトの名無しさんNGNG
>>858
ではデータ型一覧みたいなものが見たいです。
いまマニュアルが手元になくて・・・。
0862デフォルトの名無しさんNGNG
まずは今までに試した型を言って見ろ。
0863デフォルトの名無しさんNGNG
>>861

Stringじゃ駄目なのか?

例えば
"abcdefghij" は1桁、10桁どっち?
1桁だったら俺は知らん
0864デフォルトの名無しさんNGNG
格納するのは文字列でも数でもいいです。
とにかく格納したいんで。
別に2進とかでもかまいません。
とにかく長い文字列(数)を格納できるデータ型を何かしりませんか?
0865デフォルトの名無しさんNGNG
そんなでかい数値だか文字列だか知らんが何に使うんだ?
0866デフォルトの名無しさんNGNG
>>862
>>863
STRING、VARIANT、LONGで余裕でオーバーフローしてしまったのでここにきました。
ここまで文章書くことにはなるとは・・・。
データ型一覧でググった方がはやかったかな。
0867デフォルトの名無しさんNGNG
>>864
格納はStringでできるが。
0868デフォルトの名無しさんNGNG
>>866
じゃぁもう来なくて良いよ。意味わかんないし。
0869デフォルトの名無しさんNGNG
>ここまで文章書くことにはなるとは・・・。
殺意を覚える文章だな。たとえ釣りだとしても。
0870デフォルトの名無しさんNGNG
求めているのはロジックなんだか型なんだかわからんな。
0871デフォルトの名無しさんNGNG
>>866
釣りだったのか・・・
0872デフォルトの名無しさんNGNG
大漁だったところで今日はお開きということに
0873デフォルトの名無しさんNGNG
Rubyでもやってろよ。
特になにもしなくても多倍長演算ができるぞ。
0874デフォルトの名無しさんNGNG
ぬるぽ
0875デフォルトの名無しさんNGNG
>>870
最初はロジックまできけたらな。と思ってここにきましたがもういいです。
さっきまでググってたら色々出てきたので
データ型を自分で調べて自分で考えますわ。ども。
0876よくわからんでレスNGNG
>>866
お前のは文章とはいわんよ。

ただの単語の羅列だ。断片的で読み手を混乱させるだけだ。
0877デフォルトの名無しさんNGNG
ところでさ

LeftBとLeftB$の違いは
Nullが使えるのと使えないってことでいいのかな?
0878デフォルトの名無しさんNGNG
マニュアル嫁
0879デフォルトの名無しさんNGNG
>>878
サンクス
君のおかげで解決したYO
0880デフォルトの名無しさんNGNG
Nullが使える、ってのは意味不明な気がするが、
$なしの関数はStringでなくVariant返すってことだったはず。
0881デフォルトの名無しさんNGNG
>>880
そうだったのか
マジで知らなかったよ・・・

DBがらみがメインだから$なしはNULLが使えるって間違った覚えかたしてた。

>>878
さっきは強がっちゃった。ごめん。
0882デフォルトの名無しさんNGNG
Dim s As String
s = 10^2000
って書いてオーバーフローしたんだろうなぁ。
0883デフォルトの名無しさんNGNG
>>882
ようするに言語仕様から勉強しなおせってことだな。
0884デフォルトの名無しさんNGNG
Dim s As String
s = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
0885デフォルトの名無しさんNGNG
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
s& = "1"


0886デフォルトの名無しさんNGNG
?vartype(trim(""))
?vartype(trim$(""))
両方ともvbstringが返ってくるよ!
0887デフォルトの名無しさんNGNG
VBでWinsnmpを利用してプログラムを組めるようなことを聞きました。

どうでしょう・・・。
可能で有れば、明日にでも押入れにしまってあるCD一式を
PCにしインストールしようと思ってるのですが。
0888デフォルトの名無しさんNGNG
Dim i As String
Dim s As String
s = "1"
for i = 1 to 2000
  s &= "1"
next i
0889デフォルトの名無しさんNGNG
>>888
 ぶー 実行できません
0890デフォルトの名無しさんNGNG
>>886
当たり前じゃん。文字列入ったVariant型の変数を引数に渡すと、
VarTypeはVariant型を現す値を返すとでも?
0891デフォルトの名無しさんNGNG
VB6.0での質問です。

FORMの上にTabをおき、更にそのTabの上にいくつかのボタンをおきます。
その状態でボタンからボタンへの移動をキーボードの方向キーを使って行うのですが、
その際にキーボードからのイベントはどのオブジェクトで取得できますか?
0892デフォルトの名無しさんNGNG
今日は一体ど〜なっとんの?笑っちゃったよ。
恐らく今年の新卒あたりがGW空けに研修終わって実務に入らされて、
んでテンパっちゃったと見たが、どうよ?
0893デフォルトの名無しさんNGNG
俺は資格試験用にCOBOLしか勉強してなかったやつが大学の課題やろうとしてるのかと思った。

>>891
コマンドボタンはKeyDown拾えないっぽいなー。
サブクラス化するしかないかも?
0894デフォルトの名無しさんNGNG
>>891,893
へ?フォームのKeyPreviewをTrueにしとくのではダメなのか?
そういうことではないのかな?
0895デフォルトの名無しさんNGNG
みんなそういう過程を通ってきたのさ(w
とは言ったものの
VBで質問ってことはやっぱ実務なのかねえ?
ホビーユーザーだとむしろドトネットの方行くだろうし・・・
0896デフォルトの名無しさんNGNG
>>894
コマンドボタン上にフォーカスがあるときに方向キーを押すと、キーイベントが発生する前に
フォーカスが移っちゃう。あと、イベントも取得できない(他のキーは大丈夫)。
良い案があればいいんだけど、俺はどうやっていいかわからない。
識者の助言プリーズ。
0897デフォルトの名無しさんNGNG
>>896
君の言っていることはWinの当たり前の仕様のように思える。
何が問題なのかわからんのだが。
ちなみにTabStripとコマンドボタンのフォーカスの移動は
キーボードからはカーソルキーではなくTabキーで行うのがWinの仕様だ。
0898デフォルトの名無しさんNGNG
業務アプリにWindowsの仕様じゃない要求があることが分からない人多いんだよな。
ゲームにWindowsの仕様じゃない要求があることは簡単に分かるだろうに。
TABでフォーカス移動するゲーム。そんなものやりたくない。
0899デフォルトの名無しさんNGNG
俺が今まで一番(゚Д゚)ハァ?と思った要求は、
メニューを全て一つずつ空間開けてくれと言われた事。
VBメニューエディタ的に表現するとこんな感じ。
ファイル
・・・新規作成
・・・ 
・・・開く
・・・ 
・・・上書き保存

理由は「くっついていたら間違って選ぶ事があるから」だそうだ。
画面のプロパティでメニューのフォントサイズを大きくするようにしたらと言ったら、
「他のソフトまで大きくなるから困る」ってなんやねんそれ。
愚痴スマソ。
0900デフォルトの名無しさんNGNG
慣れるまで抵抗あるけどな。
なんで?って思うような要求もあるね。得に工場で使われるようなやつ。
お客さんは必要だから金出して仕事頼んでんだろーなーって思うように
なってからは気楽だけどね。
お客様は神様です。
0901よくわからんでレスNGNG
>>898
activecontrolとform.keydownを組み合わせてなんとかすれ。

っつーかこんなものもわかんねーくせに煽るな。
おまえが>>891じゃないならすまん。
0902よくわからんでレスNGNG
あー、あとlostfocusとgotfocusな。
0903デフォルトの名無しさんNGNG
>>899
俺は逆にそんなんで一番(゚Д゚)ハァ?って感じる感覚の方が分からない。
一応その要求には合理性があるじゃん。

昔からPC触ってるヲタクな人には理解できないかもしれないが
大半の人はキーボードでよりむしろマウスでメニュー操作するわけで、
その場合確かに項目の選択ミスというのは起こりがち。

(゚Д゚)ハァ?ってそりゃ要するにあんたが人を見下したいだけなんとちゃうのかと。
0904デフォルトの名無しさんNGNG
「ユーザーの要求がしっかり理解できる俺スゲェ!!そんな事が分からない899より俺のほうがスゲェ!!」と、
人を見下している903。
0905デフォルトの名無しさんNGNG
さらにそんな>>903を馬鹿に出来る俺って・・・
以下略
0906デフォルトの名無しさんNGNG
>>905
僕なんか全人類に対してはぁ?って思ってるよ。


? len(String(2000,"9"))
2000
0907デフォルトの名無しさんNGNG
VB6.0
ソースの編集中に Homeキーを 押すと その行の左端にある文字の左横に
カーソルが移ります。
1列目に カーソルを移したい場合は、Homeを もう一度 押すしかないのですが、
それは 面倒なので 一回で 1列目に 移動させる方法は ないでしょうか?
0908デフォルトの名無しさんNGNG
>>907
行の先頭が1列目じゃないのかw
0909デフォルトの名無しさんNGNG
vb6使用のプログラマです。今印刷プログラムを手がけているのですが、
どうしてもわからない部分がでたので質問します。印刷にはVS-VIEWを
使っていてactionプロパティに[全ページ印刷(11)]の値を渡して印刷
しています。この状態で印刷途中にストップする方法はないでしょうか
?killdocを使ってみたのですが全く効かず、ダイアログを表示してキ
ャンセルボタンを押そうにもすぐにダイアログが消えてしまい間に合わ
ない事が多いです。何か解決策を知ってる方がいたら、教えてください
0910デフォルトの名無しさんNGNG
>>903
俺は逆に「他のソフトではメニューの操作を間違わないのか?」なんて思っちゃったりするへたれですが。
0911デフォルトの名無しさんNGNG
>>907
インデントを行わず全ての行を一列目から記述する。

あるいはHomeキーを二回押下する操作をシミュレートさせるソフトを探すか作る。
0912デフォルトの名無しさんNGNG
>>890
$なしの文字列関数がVariantを返すってどういうことですか?
0913デフォルトの名無しさんNGNG
>>912
どういうことですか?ってどういうことですか?
0914デフォルトの名無しさんNGNG
VB6
ComboBoxなんですが、入力不可で選択だけにして、○か×かを選択できる
ようにしたいのですが、どうすればいいのでしょうか?
○と× 以外に 何もないのが 選択されてしまうのですが、何もない表示を
とりたいのです(表示しないようにしたい)
0915よくわからんでレスNGNG
>>914
どうせ何回言ってもMSDNなんてよみゃしないんだろうから
親切に教えてやるよ。

コンボボックスのプロパティーを全部いじれ。
そうしたら道がひらける。
0916デフォルトの名無しさんNGNG
MSDNって インストールしないと見れないんだよなぁ。
古いマシンだからMSDNをインストールする余地がない。
残念!
0917デフォルトの名無しさんNGNG
>>914
あ、すまん、あと初期値入れれ。○か×どっちかコードで選択しれ。
0918よくわからんでレスNGNG
>>916
じゃあお前はあれか。
なんかわかんないことがあるたびここで聞くわけか。

くっだらねーしつもんを。
0919デフォルトの名無しさんNGNG
MSDNオンライン
0920よくわからんでレスNGNG
>>919
>>914みたいな質問するやつがMSDNオンラインで目当てのドキュメントを
探せるわけがない。
0921デフォルトの名無しさんNGNG
で、結果的には、わからないんだな(w
0922よくわからんでレスNGNG
>>921
は?しっかり答えてますが。
0923デフォルトの名無しさんNGNG
ようするに昨日から馬鹿丸出しの質問してるやつはMSDNも読まずに
書き込んでるってわけだな。

そういうことにしよう。
0924デフォルトの名無しさんNGNG
グリッドの上にラベルを表示させるには、どうしたらいいのでしょうか?
0925デフォルトの名無しさんNGNG
>>924
グリッドの上にラベルって書けばいいじゃん。
0926デフォルトの名無しさんNGNG
グリッドの上にラベルを貼りつけたいんです。
0927デフォルトの名無しさんNGNG
>>926
100円ショップに売ってるよ。
0928デフォルトの名無しさんNGNG
コントロールのラベルです。
0929デフォルトの名無しさんNGNG
>>926
できません。
0930デフォルトの名無しさんNGNG
なんでラベル?テキストボックじゃダメなのか?
0931デフォルトの名無しさんNGNG
Formは Unload しても インスタンスは 消えないのでしょうか?
0932デフォルトの名無しさんNGNG
>>931
Formが使われなくなったときインスタンスは消える。
LoadとはFormsコレクションへ参照を追加すること。

FormをLoad(暗黙的なLoadも含む)しなければUnloadする必要はなく
Formへの参照がなくなった時点でインスタンスは消える。

FormをLoadしていれば、Unloadしてなおかつ、Formへの参照が
なくなった時点でインスタンスは消える。
0933デフォルトの名無しさんNGNG
1フォーム1万行のコードをどうにかするためのツールなどありますか?

1行が
Call ctlXXXXXXXXX.setXXXXXXXX(Format(Mid(mXXXXXXXX(mintXXXXXXXXXX - 1).XXXXXXX, X, X), "XXX")
& Format(Right(mXXXXXXXX(mintXXXXXXXXXX - 1).XXXXXXX, X), "XXXX") & tmpXXXXXX & "X"
, XXXXXXX.GetXXXXXXXXXXXXXX(mXXXXXXXX(mintXXXXXXXXXX - 1).XXX, mXXXXXXXX(mintXXXXXXXXXX - 1).XXXXXX
, mXXXXXXXX(mintXXXXXXXXXX - 1).XX) & StrConv(Format(mXXXXXXXX(mintXXXXXXXXXXXX - 1).XXXXXX(mintXXXXXXXXXX - X)
, "XX"), vbWide), mXXXXXXXX(mintXXXXXXXXXX - 1).XXXXXXXX(mintXXXXXXXXXX - X))
のようなコードです。
0934デフォルトの名無しさんNGNG
またおまえか!
0935デフォルトの名無しさんNGNG
>933
消せばどうにかできるぞ
0936デフォルトの名無しさんNGNG
>>933
昨日の釣りの人?今日も意味不明な文章ご苦労なこった。

しかしそんだけタイプするの結構大変だと思うんだが、そこまでして
するほど釣りって楽しいのかねえ。
0937デフォルトの名無しさんNGNG
>>913
Variant型を返していることを実感できる方法は無いですか?
0938デフォルトの名無しさんNGNG
>>937
Trim(Null)
はエラーにならないけど

Trim$(Null)
はエラーになるって事じゃ実感できないかな
0939Not 937NGNG
>>938

No.938
「Trim$(Null)はエラーになるがTrim(Null)はエラーにならない」

Variant型に詳しい>>938はこう語る。
(略)
実際にやってみた。....
確かにTrim$(Null)はエラーになるがTrim(Null)はエラーにならなかった。

へぇへぇへぇへぇ....
知らんかった。
0940デフォルトの名無しさんNGNG
>>938
trim(null)の返り値はstring型じゃないんですね。
実感できましたm(_ _)m
0941931NGNG
unloadしたFormを 再度Showしてもテキストボックスなどunloadする前の
データが入ってるんですけど、新規には ならないのでしょうか?
0942デフォルトの名無しさんNGNG
新規インスタンスを作ればいいんでねーの?
0943デフォルトの名無しさんNGNG
>>941
根本的におかしいんじゃねーの?
0944デフォルトの名無しさんNGNG
>>934
ごめんなさい
0945デフォルトの名無しさんNGNG
VB6.0 + VSSで、開発をされてある方はいらっしゃいませんか?

管理者の運用形態等について質問です。

�@VSSDBと、実ファイルの関係性について。
(VSSからtxtファイル等をCHECKOUTして編集してCHECKINしても実ファイルには、
反映されないが、VBを通して編集すると実ファイルに反映されるのは何故か?等)

�A �@を踏まえて、txtファイル、docファイル等は、どうやって実ファイルに反映させれば良いのか?

�A’VSSを導入したら、基本的にVSSを通さないと、ファイルの取得、更新は出来ないのか?

�Bリリース用の最新ソース一覧は、実ファイルフォルダをコピーして構わないのか?
それとも、毎回、別フォルダに最新を全部取得しないといけないのか?

�C2箇所(2サーバー)でのファイル管理は可能か?
(毎朝、本サーバからVSSアーカイブを取り副サーバに反映させ、
夜、副サーバの差分実ファイルを本サーバに戻す。等)

�DVSSアーカイブの復元は上書きで良いのか?
それとも一旦全削除後に復元を行わないと行けないのか?

�EVSSアーカイブがあれば、実ファイルフォルダの中身が飛んでも復元出来るのか?
それとも別に、実ファイルもバックアップを行う必要があるのか?

�@〜�Cは、ある程度、検索したのですが見つかりませんでした。
有意義なサイトもご存知でしたら紹介して下さい。
宜しくお願い致します。
0946デフォルトの名無しさんNGNG
>>941
unloadすればコントロールは初期化されるはずだけど。
もしかして、unloadじゃなくてhideしてない?
0947デフォルトの名無しさんNGNG
>>945
「実ファイル」ってなんですか?
0948デフォルトの名無しさんNGNG
聞く一方で感謝の言葉とかどうやって解決したかとかいうレスは一切ないんだな。

おもしろいことに。
0949デフォルトの名無しさんNGNG
>941
>931の質問に対する回答には目を通したのか?
UnloadしてもTerminateイベントが発生しない状況(他から参照されている)なら、インスタンスは残っている。
0950931NGNG
Terminateイベントって どうすれば発生するのでしょうか?

あと unload me とかしても me.hide と同じなんでしょうか。
自分のForm内に次へなどのボタンを 設置して それが押されたら
新しいFormを開いて、元のを閉じたいのですが・・・。
0951デフォルトの名無しさんNGNG
( ゚Д゚)ポカーン
0952デフォルトの名無しさんNGNG
>>950
おまえ、MSDNインストールしてないだろ。
0953デフォルトの名無しさんNGNG
>>950
>Terminateイベントって どうすれば発生するのでしょうか?
unloadされ、参照されなくなった時点で自動的に発生する。

>あと unload me とかしても me.hide と同じなんでしょうか。
unloadとhideは違う。hideは表示されなくなるだけでloadされたまま残る。

>自分のForm内に次へなどのボタンを 設置して それが押されたら
>新しいFormを開いて、元のを閉じたいのですが・・・。

新しいフォームをしてshowして、unload meする。
0954945NGNG
実ファイルってのは、実際のプロジェクトファイルや、フォーム・標準モジュールファイルや、
テキストファイル等の事です。

VSSDBてのは、Visual SourceSafeの仮想DBの事です。

宜しくお願いします。
0955デフォルトの名無しさんNGNG
ここの人たちってMSDNに書かれてないことを質問されても答えられるのね。
0956デフォルトの名無しさんNGNG
>945
>1)と2)
「何処の」実ファイルに「何が」反映されないのか?
あるクライアント上のテキストファイルをメモ帳で開いて編集保存しても実ファイルが更新されないって事か?

>2'
そりゃそうだ。

>3)
複数人で開発しているなら、全員がチェックイン後に新しいフォルダに最新を取得してビルドしたほうが安全だろ。

>4)
出来るかどうかわからんが、何でそんなめんどくさい事を?

>5) 6)
VSSアーカイブって何?

って、やってみりゃわかる事ばっかだな・・・
0957デフォルトの名無しさんNGNG
>>931程度の質問ならMSDNで解決できるぐらいの内容なので
MSDNインストールしなさい。不正コピーならしね。

そもそもVBだけなら20MBも容量つかわないだろ。
0958947NGNG
>>954
VSSには「実際のファイル」なんて概念はないよ。
あるのはリポジトリとそこから取り出したコピーだけ。

シャドウフォルダを設定すれば自動で最新のコピーが作成されるから、
それで代用することになると思う。
0959947NGNG
>>958
× リポジトリ
○ データーベース

リポジトリはCVSの呼び方だった。
0960デフォルトの名無しさんNGNG
ADODBで
アクセスのテーブルAをレコードセットAでひらいて
テーブルBをレコードセットBでひらいてAからBへ流すのと

アクセスのテーブルAをレコードセットAでひらいて
テーブルBにconnection.execute()のinsertでAからBへ流すのと

どっちが早いというのはありますか?ケースバイケースですか?


0961945NGNG
>>956さん。
ありがとうございます。

>>947さん。
ありがとうございます。
もう少し具体例をあげて質問してよりでしょうか?

�Fある程度、開発が進んだプロジェクトフォルダにVSSを導入した時点で、
元々のファイル管理運用形態(実ファイルをサーバーから落としたり上げたりする)は、
出来なくなるって事で良いのでしょうか?

�F’それまでは、実ファイルがあったって事ですよね。

�GVSSでの管理をやめた場合は、元の実ファイルフォルダで、元々のファイル管理運用形態に戻す事は、
できないのでしょうか?

�G’VSSでの管理をやめた場合は、最後に最新ファイルの取得で全ファイルを取得し、
それに対して、元々のファイル管理運用形態(実ファイルをサーバーから落としたり上げたりする)を
しなければならないのでしょうか?

�Hシャドウフォルダは、知っています。ここは、リアルタイム更新なのですね。
ですが、ここのファイルをコピーして編集して再度、VSS環境に戻すのは、マニュアルにありますが、
面倒ですよね。

半分質問では、ないですが宜しくお願いします。
0962947NGNG
>>961
>7
出来ないわけじゃないですが、手間が増えるだけでメリットがありません。

>8'
そういうことになります。

>9
ええ、シャドウフォルダは編集には向きません。
編集が必要なら、通常通りチェックアウトして作業する方がいいでしょう。
0963945NGNG
>>947さん。
大変有難う御座いました。
おかげさまで運用形態が見えてきた気がします。

営業所から本社へのアクセスが増えて重くなるような気がして、
固定観念で現状通り、ソースを本社サーバと営業所サーバで管理しようと思いましがた、
作業フォルダの内容を毎回書き換える訳ではないので、必要ない気がしてきました。

ほんとに、有難う御座いました。
0964945NGNG
VSSに関して再度、質問です。最初にこれを聞くべきでした。

�IVSSDBを作成した時点で、作成元になった実ファイルとは、全然関連性はなくなるのでしょうか?

0965デフォルトの名無しさんNGNG
>>964
なくなります。
0966デフォルトの名無しさんNGNG
MSFlexGridでスクロールした状態の場合、表示の先頭レコード(Row)が
いくつになるか知るにはどうしたらいいのでしょうか?
0967デフォルトの名無しさんNGNG
ハードディスク上にHTMLファイルを置いて、それを開くとリファやIPなどを表示する
VBスクリプトを作りたいのですが、どのように記述すればいいのでしょうか?
0968デフォルトの名無しさんNGNG
>>967
まずFTPの使い方から覚えてください。
0969デフォルトの名無しさんNGNG
MSDNでMSFlexGridのプロパティ全部見ろ
0970945NGNG
>>965さん。
ありがとうございました。
0971960NGNG
レコードセット→レコードセットと
レコードセット→コマンドで
速度を調べたんだけど1ぽうでは同じはやさで
もういっぽうではレコードセット→コマンドのほうが
10倍はやかった
Addnew-updateというコードは基本的に遅い?
0972デフォルトの名無しさんNGNG
>>971
レコードセットにaddnewするとinsertした後、selectでその行を再取得してた気がする。
そのせいじゃないかな。
0973デフォルトの名無しさんNGNG
副問い合わせでINSERTする方が速い予感。
0974デフォルトの名無しさんNGNG
単純にレコードセットの処理が遅いだけだと思う。
0975974NGNG
非常に言葉足らずだった。

>>972の言うようにaddnew後にselectで再取得しているというのも
(真偽は知りませんが)あると思うが。再取得がなくても単純にaddnew
が遅い。というか根本的にレコードセットの処理が遅い。
0976960NGNG
レコードセットにaddnewするとinsertした後、selectでその行を再取得してた気

え!まじですか?
でも考えてみればそうですね....つじつまが合うし

>副問い合わせでINSERTする方が速い予感。
もう少しヒントくれませんか....
0977デフォルトの名無しさんNGNG
>>975
AddNewとInsertの速さは使ってるDBによって違った気がする

AccessはAddNewが早いけど
SQL ServerはInsertの方が早かったと思う。
実際比べたこと無いけどね。

スピードを気にするなら↓これで
insert into TABLE_A select * from TABLE_B
0978960NGNG
>>977
ありが�d!
>AccessはAddNewが早いけど
>SQL ServerはInsertの方が早かったと思う。
実験してみます

>insert into TABLE_A select * from TABLE_B
確かにこれははやそうです。項目になんらかの加工を加えるとなると
鬼のようなSQLの長さになりそうですね......
0979デフォルトの名無しさんNGNG
>>977
へー。どちらもVBからの操作での比較?

ちなみにどこでその情報を?
0980デフォルトの名無しさんNGNG
>>979
なんかでググると検証したページが出てきたはず。たしか。
0981デフォルトの名無しさんNGNG
>>955
質問スレっていうのは、答える方は答えるのが好きで、くだらない質問でも
それをネタに答え方の練習をしてるんだよ。つまり自己満足。
善意や厚意は二の次だ。

で>>931よ・・・
とりあえずMSDNインストールすれ。
したら「Visual Basic フォームの有効期間」で検索してそのページ嫁。
あと「Formクラスのカスタマイズ」も。

Terminateイベントというのは、フォームでもクラスでもその他でも、
遅くともプログラムが終了するまでにはどこかで発生する。
ブレークポイント張って見張ってみりゃわかるだろ。
ブレークに引っかからなかった?それは主に以下の2通りの場合だ。
・エラーで落ちた
・Endで終わった
0982デフォルトの名無しさんNGNG
なに?>>931はMSDNはコピーしてこなかった?
しょうがないな。
ttp://www.microsoft.com/japan/developer/library/VBCon98/vbconlifecycleofvisualbasicforms.htm
0983デフォルトの名無しさんNGNG
答え方の練習ねぇ
どっちかってと部下をリストラさせる練習してるやつの方が多いんじゃねぇ?
こんな上司の下で働けないって思わせる(w

0984デフォルトの名無しさんNGNG
>>983
自分で考えた痕跡すら感じられないあふぉな質問する新人に
対する適当な解答ばかりですが。
0985977NGNG
>>979
ttp://homepage2.nifty.com/inform/vbdb/addnew.htm

おれが実際に調べたわけじゃないけどね
0986デフォルトの名無しさんNGNG
>>984
まともな質問にまともに回答するのは自分も勉強になって
いいんだけどね。。。
0987デフォルトの名無しさんNGNG
>>986
まともな質問にはまともに回答してますが。
0988デフォルトの名無しさんNGNG
調べればすぐわかる質問は、まともな質問ではないらしい(w
0989デフォルトの名無しさんNGNG
>>909です。ご存知の方いたらよろしくお願いします。
0990デフォルトの名無しさんNGNG
>>988
同じ質問に何回も同じ事を答えたくない。
MSDNは質問前必読事項だ。

>>909=989
スルーされてる意味を考えれ。

それとプリンタの仕様を調べた方が幸せになれるぞ。
0991ミナツキ サヤ ◆SAYAC2HJWE NGNG
991
0992デフォルトの名無しさんNGNG
992
0993デフォルトの名無しさんNGNG
>>990
それなら別に答えなきゃいいじゃん
実はおまえは答えたいんだろ
素直になれ
0994デフォルトの名無しさんNGNG
移行・行こう
http://pc5.2ch.net/test/read.cgi/tech/1084544243/
0995デフォルトの名無しさんNGNG
vb6.0で使える改行エスケープ シーケンスみたいなものは存在しませんか?
\nでラベルやインプットボックス等の改行をさせれないので非常に困っています。
0996デフォルトの名無しさんNGNG
さようならVB6
0997995NGNG
& vbCrLf でできるみたいですね。
自己解決スマソ。

ついでに埋。
0998デフォルトの名無しさんNGNG
埋
0999デフォルトの名無しさんNGNG
ちゃんと埋めようね
1000デフォルトの名無しさんNGNG
ちゃんと埋めてから次ぎスレを使おう
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。