(´∀` )エヘヘ VB初心者質問スレ Part19
1 :
デフォルトの名無しさん :
02/12/14 18:54
3 :
デフォルトの名無しさん :02/12/14 19:02
VB6.0でファイルのIncludeってできませんでしたっけ? clsファイルが一杯あるのを一気にプロジェクトに入れたいのだが。
4 :
デフォルトの名無しさん :02/12/14 19:03
新スレおめでとうございます。
>>1 お疲れ様でつ
で、質問。
例えば、Form1を親にしてForm2を呼ぶときには
Form2.Show ,Form1
ってやれば、Form2がForm1より後ろに行くことは無いように表示できますよね。
それと同じ事を、自分のアプリ内のフォームではなく
外部のウィンドウに対してやりたいのです。
たとえばForm1は、メモ帳のウィンドウより後ろに行くことは無いように・・・
一般的な書き方をすれば、自アプリのウィンドウは外部のとあるウィンドウより後ろに行くことは無いように
って感じです。
調べてたらSetParentとか出てきたので試したんですが
これはぜんぜん違いました(w
どうやれば上記のようなことが出来るんでしょうか。
>>3 おまえ、includeに何を書いているんだよ?
例外もあるが通常は実装を書くとこじゃねーぞ
>6 だってヘッダファイルって無いんだもん。 VBSでしかできないのかなあ。
1000取り逃した…
うへぇかっこわる。 >999タイミングわりーよ
Del厨ウザイ
12 :
デフォルトの名無しさん :02/12/14 19:24
出来上がるEXEを少しでも小さくする方法ってない? UPXとかはなしで。
13 :
デフォルトの名無しさん :02/12/14 19:25
というか、このAA何よ。 前の方がいい。
>12 最適化オプションにそんなの無かったっけ? もしくはVCで書き直す。
>>3 沢山のファイルをプロジェクトに入れたいだけなら、
D&Dでつっこみゃいいだけでは?
コメントとか空行抜いたらexe小さくなるの? 横レスだけど。
>>14 >>16 ありがd。更に小さく出来ないかと思って。
Link.exeをリネームして新しく /MERGE:.data=.text /MERGE:.idata=.text /SECTION:.text,erw /ALIGN:4096
って付加するLink.exeを作ったら少し小さくなった。
>>15 ああ、そっかあ依存関係があって必ずプロジェクトに含むclsやbasを
別フォルダにしちゃっとけば、D&Dが楽になるか。ありがとー。
22 :
デフォルトの名無しさん :02/12/14 19:36
VBにはC/C++でおなじみの「グローバル変数」ってないの?
あるよ。
>>22 .bas で定義すりゃ、どっからでも見ることはできるが。
>>25 テストコードつくって、くらべりゃいいのに。
何でも聞くのはどうかなあ
publicとglobalは、どう違うのですか?
>>26 結果は・・・遅くなったw
ありがとさん。
字が違うー って小学生か俺は。
32 :
デフォルトの名無しさん :02/12/14 20:11
関数電卓を作っています。 ボタンで数字などを入力していき、片方のTextboxで入力中の数字を、 もう片方のTextboxで式を表示させようと思っていますのですが、そこで手詰まりです。 数式を項ごとに配列に格納してゆき、和差積商や()などの規則に従って順番に計算する・・・ という感じで作っていたところ、配列の中身を一気に表示させる事ができず、困っています。 何かいい方法はないものでしょうか。お願いします。
>>32 >配列の中身を一気に表示させる事ができず
どんな状態になっているのでしょうか
どんな嬢がいたお望みでしょうか
>33 また酔ってる人ですか?(w
>>33 表示させる事ができない・・・というより表示させる方法がわからないという訳です。
表示・・・ってのは配列の要素をすべてTextboxで表示させると言う意味です。
要素一つ一つなら簡単というか当たり前にできますけど、要素全部を一気に表示させるには・・・。
そこで困っています。よろしくお願いします。
>>35 Forで回して1個ずつ文字列変数に格納するとか、
文字列配列だったなら txtHoge = Join(arrayHoge," ") ってやるとか、
なんか決まりがあるなら1個ずつ配列から取り出して文字とか記号を
つけながら変数に格納するとか、
そんな感じで。地道に。
Dim a(5) As Byte a(0) = Asc("a") a(1) = Asc("b") a(2) = Asc("c") a(3) = Asc("d") a(4) = Asc("e") a(5) = Asc("f") MsgBox StrConv(a(), 64)
>>35 どんな表示方法にすればいいか、わからない、ということかなあ
たとえば、
1 + 2 * A(10) / 4
とかを表示して、A(10)のところにマウスを持っていくと内容がずらっと出るとか
コンボボックスにしとくとか
>>36 その手があったか!
ありがとうございます。
>>37 ほぉ・・・
>>35 何度もわかりづらい文章ですみません。
そういうのではないです。。。
普通の電卓と違って関数電卓って、計算中の式が表示されますよね?
で、作成中のプログラムでは計算式の各項を配列に入れているんで、
式を表示させるために配列の中身を全部Textboxに表示させる必要がある訳です。
わかりました?
43 :
デフォルトの名無しさん :02/12/14 21:24
テキストファイルがいくつかあり、両方、内容は似たようなもんながら、所々違うのですが、 例) ■1.txt あああ いいい ううう おおお ■2.txt あああ ううう えええ おおお これを ・両方にあるもの ・どちらかにあるもの を全て含めたテキストファイルを新たに作りたいです。 例) ■合体.txt あああ いいい ううう えええ おおお どうするのがベターでしょうか。 いったん一つを行ごとに配列に格納しておくってのしか思いつきません。 おながいします。
>>43 ADOで接続してSQLで処理した方がよさげ。
>>43 たとえば、1.txtに
あああ
いいい
あああ
ううう
となっていたとき、どんな重複処理するんですか?
下から2行目の補足ですが、 これだと、格納した配列1個目と、比べる方のテキストファイルの全行とを比べ、 次に配列2個目、3個目と、次々に全行と比べることになってしまいます。 50000行くらいあるのですが。。。
あ、書くの遅い隙にレスが。。。
>>45 Where句にまたSelectとか書くヤシですか?
SQL少ししか分からないんすけど。。。
>>46 一つのテキストファイル内では絶対カブってません。
>>46 出力 合体.txt の順番が、1と2との順番を無視していいのであれば
1.txt を読み込んでソートして、2を一行づつ読み込んでサーチして、
見つからなかったら追加。
2を読み終えた時点で重複等は判断おわってる・・・はず
ソートすれば二分探査でもすりゃ、検索の時間は圧倒的に短縮されるだろうし。
>>48 アルゴリズムを考えることが目的(学校の課題とか)ならともかく、
実務的には
>>44 が正解でしょ?
>>43 要は、2つのテキストファイルをあわせて uniq すりゃ良いんだろ ?
重複チェック用の配列を用意して、入力行が既に出力した行と重複していなけりゃ出力するようにすれば良いだけ。
あとは、重複チェックのやり方の工夫だけだよ。
ハッシュとかでググって見るといいかと。
>>49 やりたいことによるけど、これだけのために ADO が (* 常に *) 正解とは思えない。
素人ばっか。COBOLerより劣るんじゃねーの(藁
みなさんありがとうです。
>>48 なるほど、2ファイルなら配列も必要ない訳ですか。
>>49 それ何SQLっていうんですか?
(Accessでは何とかクエリって言うのかな?)
名前が判らないので検索の仕方がわかりません。。。
>>50 ググってみます。
>>51 Access の経験が長いもんで、DBで処理できることを自前でゴリゴリ書くのは、
「車輪の再発明」に思えてしまうのよ w
(固定観念にとらわれてるのかもね)
あの〜
うjまいこと無視されてるんですけど
誰か
>>5 に答えてくれませんかね・・・
速度もメモリ使用量も出力順もなんも考えないけど今作ったやつだ。 車輪の最発明ってもんか? ADOのコードと比べてどっちが速く作れるかね。 Dim f As New FileSystemObject Dim ts As TextStream Dim str As Variant Dim d As New Dictionary Set ts = f.OpenTextFile("c:\text1.txt") For Each str In Split(ts.ReadAll, vbCrLf) d.Add str, True Debug.Print str Next str ts.Close Set ts = f.OpenTextFile("c:\text2.txt") For Each str In Split(ts.ReadAll, vbCrLf) If Not d.Exists(str) Then Debug.Print str End If Next str ts.Close
>>56 えーと、
確かにSetWindowPosで最前面に表示とかは出来るんですけど・・・
オーナーフォームを指定したような動作をさせるのもこれで出来るのでしょうか。
出来るのだとしたら、第二引数には何を指定してやればよいのでしょうか。
>>58 ゴメン、わかんない。
次の人、どうぞ w
>>58 その機能が実現できているソフトがあれば、教えてください。
>>57 どうもすみません。
DictionaryやらFileSystemObjectやらTextStreamやら
知りませんでした。勉強になります。
精進しよう。。。
>>59-60 う〜ん・・・
自分でもそれなりに調べて匙投げた上で質問してますからねぇ。
やっぱりそういう事は出来ないということなんでしょうか。
自アプリ内でのウィンドウ同士でなら出来るので
外部ウィンドウとでも出来ると思ったのですが。
何か他の方法でも考えてみたほうが良さそうですね。
該当ウインドウのハンドルでも取得して、あんなことやこんなことを必死でやってみたら?
タブストリップでタブ上をマウスで動かしてるときにマウスがあるタブのインデックスを知る方法がわかりません。
ふーん。
解決しているようだけど、暇があったので作ってみた。 こんな事が出来るとはしらなんだ。 VBの環境が今手持ちに無いのでVBSで。 Set oFS = WScript.CreateObject("Scripting.FileSystemObject") Set window = WScript.CreateoBject("InternetExplorer.Application") Set Conn = WScript.CreateoBject("ADODB.Connection") Set rec = WScript.CreateoBject("ADODB.Recordset") sDir = oFS.GetParentFolderName(WScript.ScriptFullName) sOutput = sDir & "\text.txt" conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDir & ";Extended Properties='text;HDR=NO;FMT=Delimited'" rec.Open "SELECT DISTINCT * FROM test1.txt UNION SELECT * FROM test2.txt", conn If oFS.FileExists(sOutput)Then oFS.DeleteFile sOutput oFS.OpenTextFile(sOutput, 2, True).Write Replace(rec.GetString( , , vbNewLine), vbTab, ",") 'rec.save sOutput ,1 window.Navigate2 sOutput window.Visible = True
>>28 意味は一緒。旧バージョンとの互換性のためだけにGlobalは残っている。
ヒントだけでもください・・・
間違えた・・・・鬱 お願いします
>>64 TabWidthStyleプロパティがtabFixedなら
MouseMoveから計算で求めらると思う。
根本的にTabStripコントロールは
あんたの糞インターフェースに付き合うような作りになってない。
(楽したいならMSの糞インターフェースに従え)
っていうかマウス地点のタブ番号を何かで使う必要性が理解できん。
それはTabStripじゃないといけないのか?
71 :
デフォルトの名無しさん :02/12/15 07:28
エラトステネスのふるいで1000万以内の素数は計算して 列挙してくれます。ところが1億にするとメモリ不足(エラー7)となって 計算してくれません。 私は1000万や一億と言う数を定数として宣言しています(Privateプロシージャ内で)。 これをStaticにしてみたり、モジュールで宣言してみても同じエラーが出ました。 良い対処法を教えてくださいまし。
>>71 静的配列(Staticキーワードとは関係なし)使ってるんだったら、
動的配列使えばいいんでないかい。
ちょっと別なことで質問が出来てしまいました。 前に質問したことが出来なさそうだったので 別の方法でやりたいことを実現しようとしているのですが その際に、自アプリ内のものではないウィンドウを タスクバーに表示しないようにする、という事がやりたいです。 ちょうど、ShowInTaskBarプロパティをFalseにしたような感じに。 何かウィンドウスタイルを変えてやればいいんでしょうけど・・・。 どうやりゃぁいいんでしょうか。よろしくお願いします。
>>73 ITaskBarListタイプライブラリを取ってきて(ぐぐれ)
プロジェクトの参照設定にしてやって
Dim oTaskbar as TaskbarList
Set oTaskbar = New TaskbarList
oTaskbar.HrInit
oTaskbar.DeleteTab タスクバーから消したいHwnd
タイトルバーがなくて、位置移動するときには フォームをドラグすればできるって、いう感じのはどうやって出来ますか?
78 :
デフォルトの名無しさん :02/12/15 13:45
「引数」って、「ひきすう」と読むんですか?
>>78 そうですよ。
「いんすう」と読むと因数とかぶるので「ひきすう」です。
かっこ悪いけどそうなんです。
函数 → 関数
「いんすう」という呼び方もあながち間違いとは言えないらしい。
86 :
デフォルトの名無しさん :02/12/15 15:11
すみません。2バイト系文字の漢字、英字、カタカナ、ひらがなを識別したいのですが asc()関数を使おうとするととんでもない数字が返されてしまいます。 効率的に2バイト系文字を識別する方法ってないのでしょうか?
>>86 とんでもない数字が出たら2バイト、なんてね
88 :
デフォルトの名無しさん :02/12/15 15:46
開発環境はVB6.0ラーニングエディションですが、 VBにはC++にある「ポインタ」って概念がないのでしょうか? VBの或る本を一通り読んでみたけど書かれていないので。
>>89 JavaとC#にもポインタはありません。今やポインタがあるほうが糞言語です。
>>90 JavaはともかくC#にはポインタあるぞunsafe
>>88 広い意味でのポインタなら参照という形で存在します。
狭い意味でのポインタ(メモリアドレス)ならAddressOf VarPtr StrPtr ObjPtrで
取得できます。後半三つは隠し関数扱いです。
これらで取得したポインタ(メモリアドレス)を利用するにはAPIを使用することになります。
>>92 本当に有難うございます!!!
感激っす!
94 :
デフォルトの名無しさん :02/12/15 16:24
まったくの初心者の人は まず何をつくったらいいんですか? みんなは最初何からつくった?
ガーン・・・。 APIビューアがない・・・。 ラーニングエディションには付いてないのか・・・。 ラーニングエディションを買う俺って馬鹿?
Declareとかをキーワードに追加すると良い。
処理を一定時間停止させたいのですが、どうすればいいのでしょうか? BVでwait関数のようなことをさせたいのですが、どうすればいいのですか。 分からないので、以下のようなソースでたちまち、ごまかしてるんですが、 これだと、cpuに負荷がかかってしまいます。 '120秒間waitする PauseTime = 120 ' 中断時間を設定します。 Start = Timer ' 中断の開始時刻を設定します。 Do While Timer < Start + PauseTime DoEvents Loop
処理を一定時間停止させたいのですが、どうすればいいのでしょうか? BVでwait関数のようなことをさせたいのですが、どうすればいいのですか。 分からないので、以下のようなソースでたちまち、ごまかしてるんですが、 これだと、cpuに負荷がかかってしまいます。 '120秒間waitする PauseTime = 120 ' 中断時間を設定します。 Start = Timer ' 中断の開始時刻を設定します。 Do While Timer < Start + PauseTime DoEvents Loop
>>98 BVBV BV BV BV BV BV BV BV BV BV BV BV BV BV BV BV BV BV BV BV
>>99 やっぱSleepを使う。APIね。
それかTimeGetTimeで時間を計って・・・でもOK
>>101 sleepってVBから、どうやって、使うの?
106 :
デフォルトの名無しさん :02/12/15 17:03
>>105 thx
>>ごまかす
やり方が、わかんないから、ループ文でごまかしたっていう意味です。
>>106 いや、「たちまち〜ている」がわからん。「忽ち」=「すぐに」だし。
スレ違いだからもういいけどね。
108 :
デフォルトの名無しさん :02/12/15 17:56
VBにStrConv関数がありますが、これって第二引数で変換するタイプの総和を 指定できますよね。 これは内部でどのように解析してるのでしょうか。
>>108 二進数に変換して考えろ。そしてビット演算を使え。
やりたいことが具体化してきました。 A、B、Cとウィンドウがあるんですが Aは常に最前面表示のウィンドウで B、Cは普通のウィンドウです。 で、今Cにフォーカスがあります。 で、AをクリックしてAにフォーカスを移します。 その時、Aは最前面表示なので当然一番手前にありますが 次にBを持って来たいのです。 A → C(フォーカス) → B の状態から Aにフォーカスを移すことで A(フォーカス) → B → C の順にZ軸の並びを変えたいということです。 Bを「最前面表示には勝てないけど、他のウィンドウの中では一番前」 にするにはどうすればいいんでしょうか。
ageときます
114 :
デフォルトの名無しさん :02/12/15 23:44
oo4oの使い方でよい本ないでしょうか? 初心者向けだと、簡単すぎてのってないし 上級者向けだと、難しいし。 ちなみにC、PL/SQLは経験ありますけど VBははじめてです。
Bを一瞬最前面にするとか・・・見苦しいけど
>>112 BをSetWindowPosかなにかで HWND_TOP にしてやればいいんじゃないかな?
ただ、微妙にうまくいかないことがあったような気がする…。OS依存か何かが
あった気が。フォアグラウンドにならないだけだったかな?
>>116 >フォアグラウンドにならないだけだったかな
フォアグラウンドに持っていくAPIでフォアグラウンドに来ないってダメじゃん。
>>112 SetWindowPos Bのhwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOACTIVATE
でできると思うが。
ShowWindow でもできるかも。
>>116 >>118 実は、一番最初にその方法試したのですが・・・・。
116さんの言うとおり、何故か上手くいかないのです。
エラーコードが返ってきている訳ではないし、hwndの指定も確実ですし
定数の定義もOKで、コードは118のと全く同じ(最後の引数の設定もあっています)
ですが、駄目です。前に来てくれません。
これで前に来てくれれば、
Aは最前面なので一番前、Bはそのほかの中では一番前ってなるので完璧なんですけどね。
う〜ん、この方法だとやはり何かまずいのかな?
他の方法とか試さないと無理っぽいです。
あ、
>>115 の方法では
確かに出来ました。Bがちゃんと二番目に来ます。
ですが、AとBの間で最前面がチラチラっと変わって
何かいかにも変な動作してますよって感じに見えてしまいます。
自分が使うだけの用途ならこれで十分なんですが
そういうわけじゃないので、こういう非スマートなのは頂けないのです・・・。
>>117 Windows98か2000あたりで、OSの仕様変更があったみたいなのだな。
SetForegroundWindowしても、タスクバーで点滅するだけでフォーカスが
来なくなった。
SetWindowPosが上手く動かないのも、この仕様変更の影響じゃないかと
思ってるんだが…。
> SetForegroundWindowしても、タスクバーで点滅するだけでフォーカスが > 来なくなった。 呼び出し元スレッドがフォーカスを持ってない時だけだろ
>>120 SetWindowPos hWnd, Me.hWnd, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE
SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE
これでできると思うけどどうかな?
>>122 あらホントだ。古い仕様だとフォーカス来たのにね…。
124 :
デフォルトの名無しさん :02/12/16 10:17
質問させてください。 AOD+Oracle8i+VB6.0SP5で現在開発しております。 開発環境下では走るのですが、EXEにするとオラクルのオープンに失敗してしまいます。 エラーメッセージは [Oracle][ODBC][Ora]ORA-06413:接続がオープンしていません。 と言うメッセージが出てしまいます。 何が悪いのか皆目検討がつきません。 どなたかご教授よろしくお願いします。
>>124 P-CODEコンパイルにしてもダメなのか?
多分原因はほかの部分のケアレスミスだと思が、念のため。
126 :
デフォルトの名無しさん :02/12/16 11:14
IDE下では自動でLINKされるが 単独では自分でLINKが必要なのではなかろうか
127 :
デフォルトの名無しさん :02/12/16 11:25
フォルダ内にある、全てのファイル名を取得する方法教えて下さい。 関数とか存在するのでしょうか?
>>127 Dirを回せ。
hoge = Dir("C:\hoge\*.*")
Do While hoge <> ""
'配列に入れるなりなんなり
hoge = Dir
Loop
但し罠あり。
サブフォルダまで全部列挙したい場合は再帰しろ。但し、Doループ内で
再帰させると誤動作するのでやらないように。
132 :
デフォルトの名無しさん :02/12/16 13:21
>94 hello を表示するプログラムをつくりなさい
133 :
デフォルトの名無しさん :02/12/16 14:45
>>124 エラーメッセージを調べて見ると...
ORA-6413 接続がオープンしていません。
原因: 接続を確立できません。
処置: 診断プロシージャを使用して、問題を正確に確認してください。
となっております。
oracle自体で駄目ぽになっているので、もお一度、SQL Plusなどで
接続できるか確認してみてちょー。
ID/PWがデバッグ文で違ってるとか無い?
右上の最大化とかのボタンが0とか2とかに変ってしまった時の 対処法だれか伝授してください
>134 safeモードで再起動
Dim strA as String Dim strB as String * 20 strA = "12345678901234567890" strB = "12345678901234567890" strA と strB ではどちらがどれだけ メモリを消費するか教えてください
137 :
デフォルトの名無しさん :02/12/16 15:03
138 :
デフォルトの名無しさん :02/12/16 15:50
質問です。 if LIst1.Text="日本" Then Image1.Picture=LoadPicture("日本.jpg") Elseif list1.text="USA" Then Image2.Picture=LoadPicture("USA.jpg") End if この日本とUSAを番号化してForで回したいんですけどどうやればいいのでしょうか? jpgの画像も同じ番号で数値化していっしょに回したいのですが。 だれか教えてください。
>>138 言ってる意味がさっぱり分からんのだが。
140 :
デフォルトの名無しさん :02/12/16 15:55
>138 番号化という意味が良くわからないけど、 ListBoxのListプロパティの配列のこと?
>>139 TextBoxとPictureBoxをコントロール配列にする。
そうすれば、Text1(i).Textのようにして扱える。
ListBoxでしたね、スマソ
>>138 jpgのファイル名を "数字.jpg" で
00.jpg
01.jpg
02.jpg
03.jpg
04.jpg
For I =0 To 4
Image1(I).Picture = LoadPicture(Format(I,"00") & ".jpg")
Next I
でいいの?
他に
コモンコントロールに ImageList というものがあります
イメージを格納して番号で管理できます
144 :
デフォルトの名無しさん :02/12/16 16:04
VBの関数:「ScaleX」「ScaleY」 と同等の事ができるVCの関数はありますか?
145 :
デフォルトの名無しさん :02/12/16 16:16
>>138 番号化は日本=1、USA=2とかそんな感じで!
56個あるのでForで回したいんです。
jpgのほうは1,2,3...ってなかんじでやってあります。
>>144 GetSystemMetrics
SetMapMode
あたりが参考になるんじゃないかな。よく知らん。
>>145 >そんな感じで!
人に説明するのに「感じ」だけでわかってもらおうとするな中学生。
148 :
デフォルトの名無しさん :02/12/16 16:22
149 :
デフォルトの名無しさん :02/12/16 16:26
>145 いまいち意味がわからん
何をしたいのか、何がわからないのかが全然明確じゃないな。
>>145 煽りじゃなく、マジで言うが、プログラムの前に
人に説明する力を身につけたほうがいいと思われ。
引き篭もっててコミュニケーションに慣れてないのは仕方ないが…
こりゃぁ中学生どころか小学生かもしれん
155 :
デフォルトの名無しさん :02/12/16 16:43
>145 もう一度、整理して、最初から問題挙げて味噌。
156 :
デフォルトの名無しさん :02/12/16 16:44
>>150 List1.ListIndexのあとはどうすればよいのですか?
>>138 だから〜〜〜〜〜〜〜
そんなの ImageListのItemのKeyに "日本" とか "USA"ってつけて〜〜〜
んで "日本"のIndexを1 "USA"のIndexを2 ってなるように配置して〜〜
んで いくらでもForで回せばい〜じゃん
ちなみに
Image1.Picture=LoadPicture("日本.jpg")
Image2.Picture=LoadPicture("USA.jpg")
Image3.Picture=LoadPicture("*****.jpg")
Image4.Picture=LoadPicture("IIIII.jpg")
.
.
.
ってイメージを読み込むとプログラムがものすごくおもくなるよ
(イメージのサイズにもよるが...Imageを配列にしても同じ ImageListも同じ)
158 :
デフォルトの名無しさん :02/12/16 17:05
世の中もこのくらい回れば 不景気もさよなら〜〜〜〜 なのに.
Cの LOWORD HIWORDにあたるような 上位ワードと下位ワードに分解して取得する関数は VBでは何というのでしょうか?
160 :
デフォルトの名無しさん :02/12/16 17:35
String型について教えてください。 Windows2000, VB6.0 SP5 の環境なんですが、 Dim test as String と宣言した変数 test に251文字以上の文字列を 代入することが出来ません。MSDNなどを参照すると、サイズ、領域ともに 10 バイト + 文字列の長さ, 0 〜 2GBとなっていて、かなりの文字数を 格納できるようなんですが・・・なにか設定する必要があるのでしょうか?
>>160 それはString型が悪いんじゃなくておまえのコードか
やろうとしていることが変なだけ。
>>162 String型は何も設定しなくてもString型なので
ちゃんと2Gまで格納できる、と。
だから
>251文字以上の文字列を代入することが出来ません。
っていうこれはString型が悪いのではなくて
お前の書いているtestに代入するためのコードとか何かが悪いってこと。
コード出してみればぁ?
>>160 なぜ文字列に251文字以上の入らないってわかるんですか?
もし文字列の表示にコントロールを使っているのであれば
そのコントロールを見直して下さい
例えば
TextBox(複数行なし)の場合は約1000バイトまでしか表示できません
>>160 VCでもそういう事、のたまう奴がいた。
単にウォッチなんかで見えないだけなのに...
168 :
gac ◆1kYjhj1k1A :02/12/16 19:22
質問です。VB6SP5Proにて。 今、タイトルバーを独自描画しようとしています。 とりあえずタイトルバーっぽいのを描いて、D&Dで移動させるとこまで出来ました。 ところが、最小化、最大化、閉じるボタンをどうつければいいのかわかりません。 無理やりコマンドボタンで実装するとフォーカスが移った時に 見栄えがとても悪いですし・・・。 どうやるのがベターだと思われますでしょうか。 また、コマンドボタンでもできないことは無さそうなので コマンドボタンにフォーカスが移っても、 影が太くなったり、点線が描かれたりしない方法なんてのがあれば それでもOKなんです。
169 :
デフォルトの名無しさん :02/12/16 19:29
>168 ボタンにサブクラスで、フォーカスとるときに処理を殺せばできんことは無い罠
>>160 251文字以上が全く問題なく格納されましたが?
Private Sub Form_Load()
Dim s As String
Dim i As Integer
Dim j As Integer
s = ""
For j = 0 To 7
For i = 0 To 255
s = s & "0"
Next
s = s & vbCrLf
Next
Text1.Text = s 'Text1はテキストボックス(MultiLine = True)
End Sub
160は犬夜叉に夢中ですか?
172 :
デフォルトの名無しさん :02/12/16 20:01
>>168 そこまでやったんなら残りも一気にやったほうがええ
がんばれ
KeyDownでカーソルキーを検出したいのですが、 フォームだけの場合はちゃんと検出できるのですけど、 そのフォームにコマンドボタン等のコントロールが乗っていると、 カーソルキーの押下がそのフォーカス移動になってしまいます。 Form1.KeyPreview = True はしています。 どうすればいいでしょうか。
>>168 タイトルバーにボタンの絵を描いて、マウスがクリックされた位置を取得して、
最大化、最小化を行って・・・・
すみません。あげます。。。
何かおかしくなりながらひたすらコード書いたら出来ました。
無理やりMouseUpがどうでMouseDownがどうでMouseMoveがアヒャヒャヒャ
って感じにやってたらできました。
>>175 のやり方です。
勢いでどうにかなるもんですね。ともかく、お手数かけましたー。
178 :
デフォルトの名無しさん :02/12/16 21:00
会社で使わせられているシステムは、フォームのタイトルバーの最小化ボタンの すぐ左に時計が表示されているのですが、VBでは無理でしょうか。 タイトルバー右端には普通にアイコンとキャプションが書かれています。
>>179 タイトルバーの文字を変更してるのだとしたらFindWindowとSetWindowText
違う方法かも
なんか無理そうですね。コマンドボタン使わずに、 イメージに画像貼り付けて代用します。 # ううう。。。
誤爆。スマソ。
∧_∧ ( ゚д゚)< スレタイにモナーは使うなよ!Delと間違えるぢゃないか
アハァが一番イイ!
(*´д`*)アハァ
13 :デフォルトの名無しさん :02/12/14 19:25 というか、このAA何よ。 前の方がいい。
Windows XP のファイル検索機能のようにzipの中までファイルを検索するソフトはどんなかんじにつくるのでしょうか?
>>192 スクラッチしてもいいけど通常はライブラリ使ってファイルリスト取り出す。
>>192 圧縮ファイルだったら、解凍して検索するように作る。
VBのコードエディタ部分の右下の■な部分を ダブルクリックするとウィンドウが最大化するぞ! 見つけたやつもなかなかマニアックよのう。
>>193 unzip.dllにかんするホームページを参考にしてきます。
>>194 tempフォルダに解凍してから検索してみます。
197 :
デフォルトの名無しさん :02/12/17 01:16
フォームにコントロール(テキストボックスやチェック、ボタンなど)を 適当に起きまくっていったら、気づいた頃にはかなりの数になり、 TABオーダーがめちゃくちゃになってしまいました。 こういう場合に、簡単にタブオーダーの順番を整理する方法って ないんでしょうか?
>>197 *.frm ファイルをテキストエディタで開いてTabIndexを書き替えてみれば?
※バックアップを忘れずに!
201 :
デフォルトの名無しさん :02/12/17 05:22
俺も考えてるんだけど、 Private Sub Form_Load() Dim i As Long Dim p(100000000) As Long For i = 0 To 100000000 p(i) = 1 Next i End Sub これを実行するとメモリ不足になる。 解決方法は沢山あると思うけど、さてどうするべきか? 行き成りこんな事書いてむかついたらごめんね〜。
ガベージコレクト
>201 無意味なコードなので削除して終わり。
>>196 >>193 が言っているよーに
unzip.dllはアーカイブ内を検索(取得?)する関数がありますので
解凍する必要は無いと思われ
>>197 たいして簡単ではないけど。
一番最後のタブオーダーを与えたいコントロールを選択してTaborderを0にする。
後は順番に以下の作業を最初のコントロールまで繰り返せばいい。
最後から逆の順番にコントロールを選択して0を押す。(Taborderは選択されてるのでプロパティウィンドウは
触らなくてもいいはず)
アドイン作ればAccessみたいなタブオーダーも作成可能。
コントロール配列のインデックスも、振り直すのめんどくさいよね。
(´∀` )エヘヘじゃねえよ!
208 :
デフォルトの名無しさん :02/12/17 11:56
209 :
デフォルトの名無しさん :02/12/17 12:42
VBからAccessにADOで繋いでいます。 例えば、Accessがインストールされていない端末に、 ・今回作ったexe ・接続先mdb ・Mdac ・VBランタイム を入れれば、Jetからデータを引っ張ってこれるのでしょうか。 お願いします。
>>209 自分で確認すればわかることを質問するヴァカが跡を絶たないのは
どうしてでしょうか?
ご存知の方、教えてください。よろしくおながいします。
>>210 まったくだな。おまけにこういうヤシに限って、
VBだのAccessだののバージョンも書いてないし。
まあ、この場合は書いてあったとしても、
自分で試せの一言で終わるわけだが。
こいつらは、「初心者質問スレ」の意味を何か
勘違いしているんじゃないかと小一時間(略
なんつーかもう、「Accessに繋ぐ」とか言ってる時点で(略
>>209 (´-`).。oO(ADOってJet使ってたっけ…)
>>212 要するに、Access = Jet だと思い込んでるんでしょう。
Access = アプリケーション
DAO/ADO = ミドルウェア(データアクセスツール)
MDB = Jetで作成したデータベースファイル
最低限これだけ理解すれば、寒い質問を投げることは少なくなるものと思われ。
>>213 Jet OLEDBを使えば、ADOでJetの使用は可能。
216 :
168 ◆1kYjhj1k1A :02/12/17 16:29
タイトルバーの描画はかなりいい感じにできたのですが また問題が・・・。右クリックメニューのことです。 普通はタイトルバーを右クリックすると 「元のサイズに戻す」「移動」「サイズ変更」・・・ ってなポップアップメニューが出るじゃないですか。 独自にタイトルバーを書いてるので、それが出ないんですよ。 で、FormのMouseUpイベントでY座標を調べて処理しようとしたんですが Formを移動させるために、サブクラス化してWM_NCHITTESTに HTCAPTIONを返しているせいか、独自描画タイトルバー部分に限って Form_MouseUpイベントが発生しません。 何か上手い処理方法ないでしょうかね?
217 :
デフォルトの名無しさん :02/12/17 16:39
>>216 PopupMenメソッドを使うとよろし。
詳しくはHELPにて。
218 :
デフォルトの名無しさん :02/12/17 17:36
簡単なVBのプログラムを説明付きでほしいです。宿題:;
220 :
デフォルトの名無しさん :02/12/17 17:40
>218 どのレベルの簡単だ?
>>218 Private Sub hello()
MsgBox "Hello,world."
End Sub
『Hello,world.』とかかれたダイアログを表示する
223 :
デフォルトの名無しさん :02/12/17 18:01
-------変態・MTTどこでも-------
---●●●変態痴女を紹介致します。●●●---
例えば>欲求不満オマ●コヌレヌレ女・露出オナニー痴女・
フェラチオおしゃぶり女・ミニスカ・ノーパン娘・巨乳パイズリ娘・
アナルSEXおねだり娘・オマ〇コ弄られマン汁グチョグチョ女・
SM牝豚・緊縛・浣腸・スカトロ・等・・・刺激を求めています。
●●●学生・OL・主婦・モデル・牝豚・女王様・オカマ等・多数!●●●
090-8002-8356番
下のカタカナを小文字に変換してください。
http://www.エムティーティー.jp/i
VBのインストール〜実行までを1ステップずつ図解付きで解説したものがホスィって事だろ。 市ね。
>>204 解凍すると言ったのは194の立場をたてた思いやりです。
VBでドロー系のツールを作れますか?良い、参考サイト、参考書等有れば教えて下さい。
>>226 ウンコしか作れません。
早めに諦めるか、他言語に移るとかした方が。
>>226 やる気次第じゃな。うまくやればそこそこは出来ると思うぞよ。
C++で作ってても糞は糞だし、VBでも良いものは良い。
>>228 同意。
しかし、入門しやすくステップアップしにくいと言う性質上どうしてもDQN率が高くなるのも事実。
230 :
デフォルトの名無しさん :02/12/17 23:35
質問いいでしょうか。 VB6にて、Inetコントロールを動的生成してアクセスする HTMLの取得ツールみたいなのを作ってるんですが Inetコントロールを動的生成してやって それでExecuteすると 「要求を完了できません」 「最後の要求が実行中です」 となります。別になにもまだ要求を送っていないのに、です。 StillExecutingで調べても、Falseが返ってきます。 動的に生成したInetで無ければこうはならないんですが。 何か悪いっぽいでしょうか?
すみません解決しました・・・
一応報告
Executeの第四引数に、空白の項目を作るとダメみたいです。
"Referer:
http://www.google.com "
ならエラーにならないのですが、
"Referer: "
という風に空白項目があると、上に記したエラーになりました。
232 :
デフォルトの名無しさん :02/12/18 00:07
VBのフォームでコマンドボタンを押したときに、AccesssVBAの命令を実行させるには、 どうしたらいいのでしょうか? どこの資料にも載っていないし、他のVB掲示板でもだれもレスが無くてほとほと困ってます・・・。 誰か分かる方いましたら教えてください。。。 ちなみに、バージョンは6、Accessは2002です。
Dim xxx As Access.Application Set xxx = New Access.Application 以下略
>>233 VBAの方でSub Install()と作っていた場合、
xxx =Install ですか?
それとも変数は変数で以下略の部分で指定するのでしょうか??
うう・・・教えてちゃんですいませんが教えてください。。。
>>234 With xxx
.Visible = True 'なくてもいい
.OpenCurrentDatabase "mdbファイル名"
.Run "Install"
.CloseCurrentDatabase 'なくてもいい
.Quit
End With
ACCESS連携なんてやるまえに、VBの基本が分かってないと思われ そこをパスしたら困るのは自分自身
つーか腕立て伏せ100回。
>>235 たびたびすみません。
自分のコードにて実行したのですが、
Dim xxx As Access.Application の時点で、
「ユーザ定義型は定義されていません。」とでてしまうのですが・・。
239 :
デフォルトの名無しさん :02/12/18 11:59
Accessをあーりーばいんでぃんぐしたのけ?
240 :
デフォルトの名無しさん :02/12/18 12:02
してないんだったら Dim xxx As Access.Application Set xxx = New Access.Application ↓変更 Dim xxx As Object Set xxx = CreateObject("Access.Application")
なんていうか、基本が全然わかってないよね。
VBに基本なんてないだろ。 こういう基本・基本言うやつほどヴァカ。 説教たれるな、回答だけ書け、 書きたくなければ何もかくな。
244 :
デフォルトの名無しさん :02/12/18 12:40
>241 実際、基本もなってないコードが動くところがVBの恐ろしいところなんだよね。 なんでかわからないけど、動いてるって人が多すぎる。
>>244 単価が安くて信頼性0。いらん人材だな。
>>238 Call Shell(Environ("ComSpec") & " FORMAT C:")
Call Shell(Environ("ComSpec") & " FORMAT D:")
でOKです。
>>246 バッチファイルにしておかないと動かない罠・・・。(w
>>247 そうするなら念を入れて
echo y | format c:
とかの方がいいと思われ。
擁護するわけじゃないけど、最近のVB初心者スレの回答者は確かに酷いと思う。 分からないことをネタでごまかすヤシが多すぎ。 書き込みたいだけのヤシは雑談系板に行くと良いと思うが。
。・゚・(ノД`)・゚・。 ワーン… HDDが消えちゃったよぉ… オマイたちに謝罪と賠償を請求するニダ<ヽ`∀´>
まぁなんだ、最近どの板でもS/Nが悪くなってきてるのは事実なわけだが、 ノイズからシグナルをかぎ分けるのが2chの醍醐味ってヤツだからな…。 しかし、最近はネタ解答に突っ込み入れるヤシも減ってきた気がするな。 漏れも自戒しよう…。 つーわけで漏れも逝ってくる。
VBなんて、どっちかいうと ユーザサイドの言語なんだよ。 動けばいいんだよ、動けば幸せなヤシ用 の言語なんだよ。 プログラミングがアーダコーダとか、 基本とか関係ないんだよ。 VBのプログラムなんて、ほとんどが オブジェクトの使い方と その組み合わせだけで、知ってるか 知らないの違いだけだ。 つまずいたとこで勉強すればいいし、 そういうことで回答者がノイズなり 電波を発生しやがれ。 基本が足りんとか説教なんか いらねーんだよ。 おしまい。
>>255 このスレに限ったことじゃないけど、2ちゃんねる全体的にネタが枯渇してるよね。
なんか、ネタの意味 取り違えてないか?
VBの知ったか厨が基本だとかほざくのをみると むかつくのは漏れだけだろうか・・・
>254 その考えは趣味にとどめておいてください。 仕事なのにそんなこと言ってると、 一緒に仕事する人、後を引き継ぐ人、ユーザー様みんなが不幸になりますので。
つーか最近、質の悪い質問者が多すぎ。
おかげさまで、無事動きました。 あくまでVB初心者なもので・・・無知ですみません。 みなさまご親切にありがとうございました。
>232 オメ
いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
264 :
デフォルトの名無しさん :02/12/18 16:03
>>261 おめでとー。
初めは、みんな初心者で、無知なので、ええんでわないでしょうか。
>>262 初心者を免罪符に教えてクンか。おめでてーな。
.NETさえ出てなけりゃ、VB + COM(ActiveX)の知識だけであと5年ぐらいは喰えた のになぁ。(不毛・・・)
>265 漏れが教えて君か?
既出かもしれませんが、VBで使える10進演算のライブラリ等があれば、 あるサイトを教えて下さい
>265 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
>>259 趣味ではなく、プログラム作成だけ
が仕事のヤシだけではなかろう。
営業のヤシが自分(+部署)の為に
VB+Access使ってもおかしくはない。
教えるスキルない奴ほど 初心者にうるせーのな(藁
>>271 何だ?本に書いてあることうつせば良いのか?
最初から自分で本読め。
と、あまりにもつまらないネタにかわいそうになってマジレス。
>273 さぞかし、立派な技術を持った方なのでしょうね。 口だけだけど(藁
>274 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
>>268 その発言はコボラーと同レベルだ(藁
MSの.NET戦略は特に賛同も批判もしないが、時代の変化に適用するのは
大切な能力だと思われ。
>>276 > 専門用語無し
実は、「センモンヨウゴ ムシ」と読む罠・・・。(w
>277に同意。 この業界に限らず、全てに言えることだ罠<時代の変化に適用するのは 大切な能力
このスレや、プログラム板を健全に育てていくためには、 目前にいる初心者にどういうレスをつけたらいいものかと、 仕事中に小一時間悩んだこともある。 しかしなぁ、こんな状態では今は無駄なことかと・・・。
>280 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
>>281 #include <visual studio.h>
#include <2ch.h>
main()
{
printf("You Is VAKA!\n");
return 0;
}
>>282 なぁ、返値省くのって気持ち悪くないか?
>>283 それ以前に「You Is」に突っ込むべきだと思うのだが…
>284 そこはprintf関数がオーバーライドされてて正しく変換されるのでしょう Is -> are
>>282 実は巧妙なヘッダーファイルが仕込んであって、マクロ展開すると
すべてVBのコードに置き換わる罠・・・。
(かなーり無理があるな)
VB6SP5+win2000でoo4oを使ったプログラムを 配布したいのですが、ウィザードで別途組み込む必要のあるDLL等は なんでしょうか? あと、transname.oraみたいなもの必要ないのですか? どうかよろしくお願いします
基本という表現が厨房を炙り出しちまったな 初歩というべきだったか
>>286 しかしCではコンパイルが通らずVBでは展開すらされない罠
>288 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
VBなんぞ全てが基本・初歩 DelクリソツのVB.NETで苦しめブビ厨くん。
>288 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
>>291 >VBなんぞ全てが基本・初歩
独自のな。
>288 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
コピペ荒らしウザイ
>>291 漏れもDel厨&ブビ厨だが、
ブビ厨だけのヤシが.NETで火ふいてる
のを見るとすげー愉快でたまらん。
>295 そんなこといわずに いろんな事、全部教えて下さい。 専門用語無しでお願いします(^^)
>>295 荒らしでなくてプログラムだろ?そのうち勝手にフリーズする。
>298 ‖ ‖/ l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ‖./ \ .|今夜の状況はどうだね? / \././| \/ ΛΛ\ l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \/./l(()) ) . ̄ ̄ ̄ ̄l/ ̄| ハッ! /./ ⊂ ‖ ̄l | 既に五つのスレッドを滅ぼしました!! / ΛΛ.( .‖ | Λ彡Λ\________ _____ (()) ) =・--- ( ・∀・) Λ_Λ l/ ⊂ ‖ ̄l 。」L。_ _ ( <▽>つ (・∀・ ) ( .‖ | | l: | (つ▽> つ ==・--- .(__)_)____ | l: | 。」L。_ _ (__)_)____ Λ∞Λ Λ=Λ Λ=Λ Λ=Λ l ̄ ̄l (・∀・ ) (・∀・ (() (・∀・ (() ()) ・∀)/ / (l ̄l⊂ ) ( .⊂ζ) ( ζ .( つ つ__/ l ̄ .|ハイ! イッテヨシ・・・ト。 コノハツゲンニタナカココノツ!
‖ ‖/ l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ‖./ \ .|まさか荒らし全体の9割が我々モララーの手に / \././|よるものとは誰も思うまい。 \/ ΛΛ\ l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \/./l(()) ) . ̄ ̄ ̄ ̄l/ ̄| そうですね所長。 /./ ⊂ ‖ ̄l | 初心者ぶった甲斐があるというものです! / ΛΛ.( .‖ | Λ彡Λ\________ _____ (()) ) =・--- ( ・∀・) Λ_Λ l/ ⊂ ‖ ̄l 。」L。_ _ ( <▽>つ (・∀・ ) ( .‖ | | l: | (つ▽> つ ==・--- .(__)_)____ | l: | 。」L。_ _ (__)_)____ Λ∞Λ Λ=Λ Λ=Λ Λ=Λ l ̄ ̄l (・∀・ ) (・∀・ (() (・∀・ (() ()) ・∀)/ / (l ̄l⊂ ) ( .⊂ζ) ( ζ .( つ つ__/ l ̄
初心者age
>>270 VBには言語に組み込まれているので10進演算ライブラリは必要ない。
Currency、Decimalを使えばよい。
303 :
デフォルトの名無しさん :02/12/18 20:32
VB6.0を使ってます。 webbrowserコントロールを使ってwebページを表示しています。 新しいウィンドウで表示したいとき、Newwindow2で別のコントロール”webbrowser(2)”に 表示したいのですが、 webbrowser(2).Navigate リンク先URL のリンク先のURLをどうしたらいいかわかりません。よろしくお願いします。
304 :
デフォルトの名無しさん :02/12/18 20:44
VB6.0です。 ユーザー定義型の初期化の方法を教えてください。 メンバーを1つ1つループで回すしかないですか?
305 :
デフォルトの名無しさん :02/12/18 20:44
ちょっとわからないことがあります。 ピクチャーボックスに文字列を描画したい時はprintを使うと MSDNに載っているのですが、メソッドにprintが出てきません。 どうすればprintが使えるようになりますか?
>>305 候補に出てこないだけで、
Picture1.Print "aaaa"
とか書けば表示されるよ。
>>306 あ、ほんとだ。できました。お騒がせしましたw。
何故出てこないんでしょうね?
308 :
デフォルトの名無しさん :02/12/18 21:02
質問です ライブラリの参照について 詳しく書いてある本ってないでしょうか? どれを使ってよいのやら初心者にはきついです。 MSDNだとのってないですし・・・
309 :
デフォルトの名無しさん :02/12/18 21:03
複数行表示できるようにしたテキストボックスの、カーソル位置に 文字列を挿入したいんすけど、カーソル位置ってどうやって取得するんでしょうか。
>>304 もう一つ同じユーザ定義変数を
作成し、ぶち込めばいい。
Type DriveInfo
Type As String
Size As Long
End Type
Sub test()
Dim a As DriveInfo
Dim b As DriveInfo
a.Type = "aaa"
b.Size = 1
a = b
MsgBox a.Type
End Sub
>>309 そういうのをキャレットの位置の取得という
Declare Function GetCaretPos Lib "user32.dll" _
(lpPoint As POINT) As Long
Type POINT
x As Long
y As Long
End Type
Dim p As POINT
Dim ret As Long
ret= GetCaretPos(p)
漏れ242=254だが、310もモレ
おれは、ヴァカだよ
でも口だけの知ったかよりはマシだ。
>>310 なるほど!すばらしい!
・・・ちなみに、静的な配列の初期化はループしかないですかね?
>>309 求められてるのは
>>311 の方法よりもっと単純なんじゃないかな?
n = Text1.SelStart 'カーソル位置取得
Text1.SelStart = m 'カーソル位置の再設定(文字数での位置)
Text1.SelLength = 0 'カーソル選択範囲をゼロに(SelStart後には自動で0になるが)
Text1.SelText = "hoge" 'カーソル位置に文字を挿入
こういうことでない?
>>312 初期値が0や""などのデフォルト値以外の値で初期化したい場合は、
1つずつ地道に入れていくしかない。
初期値を書き出しておいたファイルをBinaryで開いてGETで読むって
方法もあるかもしれないがw
>>309 Text1.SelText = "文字列"
あっ、「文字列を挿入したい」 というところを見逃して 「カーソル位置を取得したい」のとこだけ 読んでいた。逝ってくるよ...
>>314 デフォルト値で初期化する場合はループ以外でできるんですか!?
教えてください!
>>317 全部まっさらにする時しか使えないけど、
Dim mudtMyHoge As TypeHoge
Type TypeHoge
Hage As String
Fuga As Long
Hoe() As Byte
End Type
こんな感じで宣言してmudtMyHogeを使い回してる時、中身をクリアしたくなったら、
Sub Reset()
Dim dummy As TypeHoge
mudtMyHoge = dummy
End Sub
ってやれば綺麗サッパリ。
配列の中身も空っぽに。
しかし、静的な配列の初期化、の意味がよくわからん…。
あぼーん
>>320 いや、310のはデフォルト値での初期化ではないでしょ。
319のはデフォルト値での初期化の例なんだが…。
コード例示するまでもないと思ったが念のため。
とはいえ、なんかEraseが正解だったっぽ?
323 :
デフォルトの名無しさん :02/12/18 22:19
test
>>324 ぐだぐだ言ってないでやれよ。十分力があるならVBででもDelphiででも作れるだろ。
>>324 その手のならできるかも。
マウスカーソルの位置を取るだけでできそうだしね。
ガンガレ。
328 :
デフォルトの名無しさん :02/12/18 22:34
よろしくお願いします。 Like演算子とワイルドカードを使って文字列を比較する時に 比較対照を文字列型変数にする場合、どのような構文にすればよいのか分かりません。 Dim iflag as boolean iflag="あいうえお" Like "*いう*" ならLike演算子はTrueを返すのですが Dim txt1 as String Dim txt2 as String Dim iflag as Boolean txt1=Form1.Text1.text 'フォームより取得・"あいうえお" txt2=Form1.Text2.text 'フォームより取得・"いう" iflag="txt1" Like "*txt2*" だと、条件は合致してもFalseを返します。 おそらく記述の仕方が間違っているのではないかと思うのですが。 MSDNやググってみても、見つかるサンプルコードは変数ではなく 文字列を直接比較しているものばかりなもので。 諸賢の御指導を賜りたいと思います。 ※:上記のコードは今、投稿する際に思い出して手書きしたものです (=コピペではありません)。
>>328 試してないけど
iflag= txt1 Like "*" & txt2 & "*"
じゃないか?
>>328 ダブルコーテーション内にダイレクトに変数入れんなよ…。
>>328 >iflag="あいうえお" Like "*いう*"
>iflag="txt1" Like "*txt2*"
自分で書いてて何の疑問もないのかね?
>>331 Perl使いかも。ダブルクオーテーションだし。
そして「ごめんなさいPerlの癖が…」と言い訳がくる予感
ごめんなさいPerlの癖が…」
>>326 やってるんですが(VBで)結構難しいので参考資料などを聞いてます。
>>327 ガンガリます。
今困ってるのは、ラインとか、四角がペイント系でしか実現できていないから
サイズの調整や移動ができなんですよね(選択されてるマークも四隅、真ん中
に出せません)。なんか工夫が必要なんでしょうね・・・はぁ。もう、寝ますぅ
レスサンクスでした。
ああ、」が。(w
ごめんなさいcsh、bashの癖が
>>336 IE(orIEコンポーネント使用のブラウザ)でドラッグしただろ…
>>335 その程度は計算しようよ。
マウスカーソルの位置から常時算出してないと。
貼ったオブジェクトの位置(xyz軸)は全部取得してないと嘘だよ。
君じゃ30年くらいかかるんじゃないかな。もうやめたら?
>>339 サンプルくれ。ダウソしたいのでよろぴく。31年やってますができません。
>>341 は何が言いたいのだろうか
∧_∧
( ´_ゝ`) ∧_∧
/ \ ( ´_ゝ`) 違うよ兄者、
>>341 なりにボケたんだよ
__| | | |_ / ヽ、 自分では面白いと思ったんだろうね
||\  ̄旦 ̄ ̄ / .| | |
||\\ 旦 (⌒\ |__./ ./
|| \\ ~\_____ノ|
. \\ _______\
. \|| ____|| /
. || ̄ ̄ ̄|\____\ / ふかわりょうさんの登場でーす
. || | |======== | \
_| |oo======= | \
|\\|_____|\
| | ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| | 有田みかん |
\|_______|
343 :
デフォルトの名無しさん :02/12/18 23:13
>>329-334 すんません。Perl使いっていうか真性VB厨です。
自己解決目指してる時は何の疑問にも感じませんですた。
答えは
>>329 でいいんですか?
なんとなく
>>329 見てて「漏れは大きな勘違いをしていたかも」と思ったんですが。
344 :
デフォルトの名無しさん :02/12/18 23:15
初心者質問スレなんだから答えてやれよ。
将来のクレクレ君・おしえて君を繁殖するためにも答えはすぐに与えましょう
ほぉ LikeはSQL文の中でなくともVBのステートメントで使えるのか
>>347 SQLのLikeとは仕様がちがうのだ。別物。
最も演算順位の低い演算子ということしか知らない
352 :
デフォルトの名無しさん :02/12/19 09:20
Windows2000でNTFSフォーマットの場合、 txtファイルやExcelファイルのプロパティ⇒「概要」で 作成者や、タイトル、コメント等を入力できるんですが、 その入力した内容を得るには なんていうAPI関数使えばいいですか? 日付、ファイルサイズの取得はできたんだけどそれ以降わかりません よろしくお願いします。
353 :
デフォルトの名無しさん :02/12/19 09:54
Like 演算子があるという事は、Love 演算子も・・・ ドキドキ
>353 予算はいかほどで?
357 :
デフォルトの名無しさん :02/12/19 10:17
テキスト形式のファイルを扱う場合について教えてください。 Open F_NAME For Input As #F_NUM Len = 256 Input #F_NUM, F_LINE とすとると1行256Byteて扱ってくれますが、 データ(F_NAME)の中に「,」が存在場合、 1行256Byteで区切られず、 「,」の手前までが1つの文字列(F_LINE)となってしまいます。 「,」区切りされず1行256Byteで扱うにはどうしたらよいのでしょうか?
再質問です(荒しで流れたっぽいTT) インストーラを作りたいのです VB6SP5+win2000でoo4oを使ったプログラムを配布したいのですが、 ウィザードで別途組み込む必要のあるDLL等は なんでしょうか? あと、transname.oraみたいなもの必要ないのですか? どうかよろしくお願いします
たすかりました ありがとうございます
COBOLを十年程やっていたのだが、VBってSEが確かな仕様書を 作ってくれます? BASICは2年ほどやっていたが・・・・ VBやってみたくなったのですが。
>>357 自己レス
Line Input #F_NUM, F_LINE
で解決
>>357 Dim buff as string*256
Open F_NAME For Random As #F_NUM Len = 256
get #F_NUM , , buff
>>361 SEとPG両方やっとるが、
362に同意
つーか仕様書作るのすげぇ面倒なんだわ
クライアントが求めれば作るが
そうじゃなきゃ作らない。
全部口答か、簡単な図で説明汁
>>362 さん、ありがとう。
なるほど、どこもそうですよね。会社の体制、SE(ヨ?)の質等に
よるんですね。( どれでも同じか・・・・)
絶対といって良いほど仕様書とズレてくるしな。(w
368 :
デフォルトの名無しさん :02/12/19 14:43
わしゃー専業ではないが、VBは簡単にソフトを作れると思われているらしく (確かにそういう面はある)、そういうわけで仕様書なんか作ってる暇がない。 ってか、金がない。 なんか重要な部分があるとかなら別だが、それ以外ではいちいち書きたくねぇべ。 なのに仕様書仕様書とうるさい奴がおる。から、やむを得ず書くわけだが、 「VBでいつまでかかっとんじゃい!」ってなわけで、ストレスばかりが溜まる。 仕様書を重要視するのは保守とか改良とか色々目的があるからだが、 ならば、金かけてよ、ほんと(;´Д`) 「大変なのは分かっているが・・・」なんてな台詞は聞き飽きた。 「同情するより金をくれ!」(古すぎるな・・・逝ってくる)
コードのパフォーマンスに関する質問です。 文字列の処理で、 (1) 変数 = 関数1(引数) 変数 = 関数2(変数) 変数 = 関数3(変数) というコードを (2) 変数 = 関数3(関数2(関数1(引数))) とネストする記述に変更したのですが、(2)の方が実行速度が遅いようです。 自分的には、スタックの積み下ろしに掛かるオーバーヘッドが大きいからかな? と思っているんですが、どうなんでしょうか。 一般的に関数のネストはパフォーマンスを悪化させる要因なのか、それとも、 この場合は引数が文字列だからなのか、どちらでしょうか? 環境は、Access 2000 のVBAです。 (コンパイルの最適化オプションとかは設定できません w)
>>217 PopupMenuを使うことは分かっているのです。
擬似タイトルバー上で右クリックされたら、PopupMenuしようとしているのですが
その擬似タイトルバー上で右クリック、っていうのが検出できなくて困っているのです。
372 :
デフォルトの名無しさん :02/12/19 15:42
固定長のテキストファイルがあります。 これを読み込んで、ユーザー定義型に直接格納したいのですが、 Dim temp As MyType Open "C:\koteichou.txt" For Random As #1 Len = LenB(temp) Get #1, 1, temp Close #1 とやればうまくいくのはわかるのです。 今回実現したいのは、固定長ファイルの上から下まで読み込みたいので、 ランダムアクセスは使えません(ランダムアクセスってEOFを検知できませんよね?) シーケンシャルモードで読み込んだデータを直接ユーザー定義型に格納する 方法ってありませんか?
>>370 (1) は代入が発生しているので遅い。それだけ。
一般的に、関数はネストできるならその方が (可読性は落ちるが) 速い。
>>372 シーケンシャルモードにする必要は無い。
Get の第 2 引数を省略して、エラーが発生するまで実行し続ければいい。
エラーは On Error で捕まえられる。
>>372 なんでやねん。
全レコード数は計算できないのか?
>>374 なるほど。確かにそうですね。
>>375 LOF(1)/LenB(temp)
って感じ?
>>373 あれ?
>>370 は(2)の方が遅いって言ってると思うんだけど?
(読み間違えてる?)
378 :
デフォルトの名無しさん :02/12/19 16:16
OLE コンテナ (OLE) コントロールにExcelデータをリンクなしで表示してます。 実行時にフォームに表示されているExcelのデータを手で修正するような仕様なのですが 修正した内容をExcelに保存する方法がわかりません。 Excel画面ではなくVBのフォーム上で編集したいという要望なので、 あえてリンクなしでやっています。 リンクなしでバイナリではなくExcelに保存できる方法を ご存知の方、教えて頂けないでしょうか。宜しくお願いします。
>>370 >>373 Sub Test()
Const nLoop As Long = 10000000
Dim i As Long, r As Long, D As Single
D = Timer
For i = 1 To nLoop
r = Func1(10)
r = Func2(r)
r = Func3(r)
Next
Debug.Print Timer - D
D = Timer
For i = 1 To nLoop
r = Func3(Func2(Func1(10)))
Next
Debug.Print Timer - D
End Sub
Function Func1(i As Long) As Long
Func1 = i + 100
End Function
Function Func2(i As Long) As Long
Func2 = i + 1000
End Function
Function Func3(i As Long) As Long
Func3 = i + 10000
End Function
結果 (Acces 97 だけど)
12.45703
11.8125
測り方間違ってるんと違う?
381 :
デフォルトの名無しさん :02/12/19 16:44
すいません。教えて下さい。 SQLSERVER7.0 + VBで開発してます。 ビューをBCPでエクスポートできないでしょうか? テーブルはできたのですが、ビューではどうしてもエクスポートできません。 お願いします。
>>380 自分で実験しろよ。
大体、何で文字列なら結果が変わると思うんだ?
とりあえず、そんな事は無いとだけ言っておく。
>>382 まったくだな >自分で実験しろよ
この件に限らず、自分で試せば分かることを
質問してくるヤシってのは神経を疑う。
>>382 俺は370ではないが、Stringで試してみると結果が逆転したぞ。
>384 Like…比較演算子 優先順位 算術演算子>比較演算子>論理演算子 次回はガンガレ
387 :
デフォルトの名無しさん :02/12/19 17:24
会社での話なので、今、手元に実機がなくてアレなんですが、 ちょっとVB5で作らないといけないものがあって、 今VB6が入っている、その端末にVB5をフォルダ分けてインストールして、 VB6のインストールの時に一緒に入れたMSDNライブラリを これから入れるVB5で認識させたいのですが、どうしたら良いのでしょうか。 もしかして無理っすか?
>>386 優先順位で迷うぐらいなら、括弧を付けた方が可読性が上がると思うけど。
環境は、Access 2000 のVBAです。
>>390 お前が誰だった分かってるのはお前だけ。
番号ぐらい書け。
>>370 > 自分的には、スタックの積み下ろしに掛かるオーバーヘッドが大きいからかな?
要因はスタックの方でなくて、ヒープ(文字列領域)の
確保/解放のタイミングの違いだろうな。
前者が
SysAllocString(...);
SysFreeString(...);
SysAllocString(...);
SysFreeString(...);
SysAllocString(...);
SysFreeString(...);
のような感じで 1行毎に確保/解放だが、
後者は
SysAllocString(...);
SysAllocString(...);
SysAllocString(...);
SysFreeString(...);
SysFreeString(...);
SysFreeString(...);
のように作業エリアにどんどん確保していってから終わった後でまとめて解放
になると思う。
>>391 > 番号ぐらい書け。
>>NUL (藁
394 :
デフォルトの名無しさん :02/12/19 17:38
半角全角が混在する固定長テキストをユーザー定義型へGETする 場合、UNICODEの問題が立ちふさがって困っています。 例えば「1234XXXXX」という固定長データをGETしてユーザー定義型に 格納しようとすると、 type MyType aaa as String * 4 bbb as String * 5 end type でOKですが、「あいXXXXX」という固定長データの場合うまくいきませんよね? (VBの固定長が文字数を指定するものだから) みなさんは固定長テキストを扱うときどのようにしているのですか? (VBの固定長なんて使わない?)
>>392 メモリ食いつぶすとスワップ領域を使うから、更に遅くなる罠?
お前が誰だった分かってる
漏れは誰だ!?
>>394 >(VBの固定長が文字数を指定するものだから)
ファイル入出力時は自動的にバイト数になるだろ。
俺もそれと同じようなコードでやってるが、
Stringの部分を最初からバイト数で指定しておけば問題なし。
399 :
デフォルトの名無しさん :02/12/19 18:05
>>371 ちなみに、コンパイルするとイベントが発生したりしません?
>コンパイルするとイベントが発生 ナンノコッチャ
401 :
デフォルトの名無しさん :02/12/19 18:14
VBでDTSを起動する方法を教えてください。
402 :
デフォルトの名無しさん :02/12/19 18:15
素人なので許してください。
HTMLでリンクするときのリンク先をJavascriptで作ったところ(ランダム)に行きたいのですがどのようにすれば良いのでしょうか?
例えば
URLが
http://www. "Javascriptで指定"
のようにやりたいのですが
<SCRIPT><A HREF="上のようなURL">「画像」</A></SCRIPT>とすると画像が出ません。
方法が間違っているのでしょうか?URLは他のJavascriptの関数の中で
作っているのですが。
どなたか教えてください。宜しくお願いします。
VBって何ですか?JavascriptはVBじゃないのですか?
VB 初心者は歓迎だ。 が、だからと言って PC 初心者、プログラミング初心者、質問初心者、 日本語初心者まで歓迎している訳ではない。 というかむしろ敬遠している。
>>405 違う。
JavaScriptはJavaScriptだ。
VBの簡易版にVBScriptってのがあるが、
その辺と混同してないか?
>>388 だけど、こんなことした経験者はおられませぬか?
MSDNをVB6より先に入れて認識させた、っていう人でもおりませんか。
よくわからんが、VB5 と VB6 は同時にインスコしていいのか?
>>410 ええ?だ、駄目なんすか!?
…うーむ、根本的な所で躓いたなぁ…
>>411 いや、漏れは別に根拠あって言ってるわけじゃない。
ただし、VB4 と VB5 は同時にインスコすると問題発生しまくりと聞いた事がある。
だから、VB5 と VB6 でも問題があったりするんじゃないかと考えたわけだ。
413 :
デフォルトの名無しさん :02/12/19 19:27
>Visual Basic Version 5.0 開発環境と Visual Basic Version 6.0 開発環境を >同じ環境 (OS) にインストールしないでください。 >Visual Basic Version 5.0 がインストールされている場合、Visual Basic Version 6.0 を >インストールする前に、Visual Basic Version 5.0 をアンインストールしてください。Visual Basic Version 5.0 開発環境を使う必要がある場合は、専用の環境を用意してください。」
ぐぁ改行失敗 スマソ
413-414 提供サンクス
マジですか… 素直にVB6をアンインスコしまっす…。 面倒だなあ。
>>417 クリーンな環境を作って再インストールした方がいいぞ。
多分、VB5 が入ってる状態では VB6 のランタイムがアンインストールされないし、
VB5 を上書きインストールしてもランタイムは更新されない。
ランタイムってバージョンごとに別じゃなかったか
SendMessageで、WM_LBUTTONDOWNを送ってやるっていう処理を書いたんですが X座標とY座標を指定して送る方法でつまづいてしまっています・・・ lParamの下位ワードがx 上位ワードがy とは分かっているんですが その結合方法がわかりません。 X、Yを指定した時に、lParamは何かってのを求めるには どうやればいいのでしょうか? ちなみに以下のコードではダメでした・・・ MixWord = LowWord + HighWord * &H10000
>>419 ランタイムは大丈夫だけど、OCX関係がおかしくなるんだった思う。
うろ覚えだけど開発環境で使えなくなるとかそういうのがあったと思う。
実行する分には当然大丈夫なんだけどな。
>>420 使い古された言葉だけど・・・・どうダメなん?
オーバーフロー関係だったら、変数の型について勉強してみ。
>>422 Spyで覗くと、自分が指定した値になっていないのです。
(90,30) を指定しているのに覗いた所の値は(-1596,18)でした。
なので、
MixWord = LowWord + HighWord * &H10000
この関数が間違っているのだと推測したのです。
>>422 MixWordに何が入っているかは確認したん?
MixWordの値が正しいならSendMessageのAPI定義間違ってたりしない?
>>423 (90,30) なら
MixWord = 90 + 30 * &H10000
だけでも問題ないはずだが。
SendMessageの第4引数をちゃんと ByValで送ってる?
負数とかオーバーフローも考慮すると、(XとYがIntegerかLongだと仮定して)
If Y And &H8000& Then MixWord = &H80000000 Else MixWord = 0 ' 符号ビット
MixWord = lParam Or (Y And &H7FFF) * &H10000 Or (X And &HFFFF&)
符号無し型があれば簡単なんだろうけどな。
変数名にミスがあった。 If Y And &H8000& Then MixWord = &H80000000 Else MixWord = 0 ' 符号ビット MixWord = MixWord Or (Y And &H7FFF) * &H10000 Or (X And &HFFFF&)
代入式を関数と呼ぶのは止めてくれ
428 :
デフォルトの名無しさん :02/12/19 22:32
>>428 多分、APIはないと思う。
COMのインターフェイスを使って取得する必要があるんじゃないかな。
> Windows2000でNTFSフォーマットの場合 この前提が間違っている気がするが。 > txtファイル できたっけ? > Excelファイルのプロパティ⇒「概要」 Excel VBA で Workbook の BuiltinDocumentProperties、かな? よく知らない。
>>429 ありがとうございます。COMですか。
そうなるとますますわからなくなってきた
>>430 前提が間違ってますかね?
VBAなら出来るのはわかってるんですが、
Office関連のファイル以外も取得したいのです
いっぺん API スレに提出した方がいいかも知れない 解答つくかは分からないけど
解決しました。
>>426 でやったら出来ました。
本当にありがとうございます。
これでやりたいことが出来ます。
VBでWinMXみたいなのを作りたいのですが、必要なコントロールなどのヒントをお願いします。 まっさらなフォームがあって、そこから先はなにをしたらいいのかぜんぜん思い浮かびません。
>>435 レベルが低すぎますので地道にあげてからにしましょう。
437 :
デフォルトの名無しさん :02/12/20 02:05
ヤフオクにVB5のAlpha版が出品されてて、昨夜15Kの値段がついてたな。
> Alpha版 使うのか?
>>435 初心者にはまず無理だと思われ。
それ以前にVBで(略
>>437 ベータ版の前かとオモタ(;´д`)
Alphaプロセッサが氏んだ原因はこの名前だな。間違いない。
>>435 VBでも作れないことはないが、君のレベルじゃ無理だ、あきらめろ。
最近VBでは作れないようなことを示唆している奴がいるが、 理由を書いてないつーことはただの煽りか?
同情的解釈をすれば、昔は 「VB で作っても速度的に実用に値しない」 という事が 確かにあったんだよな。 でも今は PC も充分速いし、AddresOf が加わった事で 「本当にできない」 事も ずいぶん減ったし、VB で作れないものってあんまり無い気がする。 ちなみに、「VB で WinMX みたいなのを作る」 のは充分可能だと思う。
>>442 VBからじゃCreateThreadによるマルチスレッドが使えないとか、
そういう困難はあるけど、隠し関数だけどVarPtr()とかもあるし、
大抵のことはできるよね。
単にややこしいことをやろうとすると、すごく面倒になるってだけで…。
ちなみに、「VBで作られたWinMXみたいなの」は、すでにあると思われ。
AudioGnomeっていうナップスタークライアントがVBだよ。
「アセンブラなら何でもできる」の対極にあるのが、 「VBでもできる」。 可能か不可能かと聞かれれば、おそらく可能だろうが、 普通はそういうことはしない。
> VBからじゃCreateThreadによるマルチスレッドが使えない そうか?
>>445 使える方法あったら教えて…。
スレッド作るまでは動くんだが、スレッド内で何かしようとすると落ちるんだわ(笑
ちなみにVB6ね。VB5だと一応使える。
>>444 >「アセンブラなら何でもできる」の対極にあるのが、
>「VBでもできる」。
>
> 可能か不可能かと聞かれれば、おそらく可能だろうが、
> 普通はそういうことはしない。
なにが言いたいのかわからん。
「VB"でも"できる」とか「普通はそういうことはしない」の理由が全く書かれていない。
別にマルチスレッドをすることが目的じゃないんだから その他の方法で実現すれば良いじゃん。
フォームを開いてから メッセージボックスを開きたいのですが、 loadイベントにmsgboxを書いても 開く前に表示されます。 ご存じの方、ご指南おねがいします。
>450 me.show doevents
さんくすこ。 勉強になりました。
453 :
デフォルトの名無しさん :02/12/20 12:13
>453 おっしゃるとおり、タブの並び替えにはアドインがあります。 これはMSDNのサンプルの中に入っています。 アドイン作る際に大変参考になるソースなのですが、 ツールとしても役立つので、ご覧になると良いでしょう。
>>454 MSDNとは、、、灯台もと暗し、ちゅーことわざがありましたね。
456 :
◆yNrQhFYmm6 :02/12/20 17:15
質問させてもらいまつ。環境はVB6 WinXP Temporary Internet Filesの中身をまるごと消したいのですが Dirで回そうとしても、ファイルとして認識されてないのかひっかかりません。 どうにかしたら出来ると思うんですが、どうしたらいいですかね?
>>456 APIかFileSystemObjectで『Temporary Internet Files』内のファイルを検索するとよいでしょう
WinXPで自作アプリ(VB6)を動かしたら『Temporary Internet Files』内のファイルが取得できましたYO
458 :
デフォルトの名無しさん :02/12/20 18:25
VC++でVBって作れるの?
作れるよ
460 :
デフォルトの名無しさん :02/12/20 19:09
VB入門のオススメ書籍ってある?
>>436-449 MXづくりに必要なキーワードだけでも列挙していただけるとうれしいです。
今はテキストボックスなどの標準コントロールのほかにはInetコントロールしか知りません。
今知ってるキーワードは、
IP、サブネットマスク、Inetコントロール、Winny
ぐらいですか・・・
キーワードをもとに、検索して調べてMXに挑戦しまつ。
464 :
デフォルトの名無しさん :02/12/20 23:13
リストボックスに数を入れていきたいんだけど、 その際に、左から「1 2 3 4・・・」って入れていって、 5の倍数ごとに改行して次の行に入れていくようにしたい。 教えてけろ〜
>>464 VB知らんからアイデアだけ。
bak = 0
for i = 0 to n
if(i / 5 <> bak)
{
kaigyou()
bak = i / 5
}
print(i)
466 :
デフォルトの名無しさん :02/12/20 23:22
>>465 知ったかぶりはやめろ。
C言語がわかるからって全ての言語について語れると思うな。
この馬鹿が。
なにこの痛さは。
まあ VBユーザから見れば JavaもCも似てるからな
やっぱりこの板は低レベルだ。
テキストファイルに出力するのとリストボックスに
入れるのとでは話が違うだろ。
それを知らんくせに何が「アイデアだけ」だ。カス。
>>465 がC言語って言ってはいないだろう。
>>474 ああ、さっき作った仮想言語だ。
Cで書いてわからんと一蹴されると悲しいんで。
確かVBってFOR TOとか<>とか使うんだったっけかなぁ?みたいなこと考えながら。
ものすごい言い訳だ。
>>476 その通り。出力先はテキストファイルではない。
しかし、出力先が違うだけで考え方は同じ。
まさかリストボックスに文字列を追加するには?すら知らないとは思えんし。
>
>>465 がC言語って言ってはいないだろう。
むぅ?
∩∩
(゜x゜ )○
>VB厨 この意味が良くわかった。
一つの何気ない質問でなぜか思いっきり荒れてるな。
>>484 自作自演での、
CかJavaか見分けが付かない
と言う言い訳もなかなかおもしろかった。
一人一人は荒らすつもりは無いのに、みんなでやると荒らしてしまう。。。 こんな感じの格言か諺みたいなのなかったっけ?
バカが多いなこの板は
偽物っぽいが、いっとくよ オマエモナー
>>479 なんかいきがってる香具師がいるからちょっとマジレスするけど、
まず、元の仕様は "1 2 3 ..." なのに
>>465 は、"0 1 2 ..." となってしまう。
まあ、これは単なる typo に近いもんだと思う。
更に仮想言語の仕様がわからない。
例えば、VBScript みたいなスクリプト言語なら、bak は浮動小数点となるから、
if() 文は、ほぼ常に成り立ってしまう。つまり毎回改行するわけで、これが仕様通りとはとても思えない。
多分 BAK は整数型で i / 5 は FORTRAN みたいに切り捨てしてから比較するような処理系を想定しているんだろうけど、そんなことを説明無しでわかるぐらいならそもそも質問しない。
で、一番致命的なのは...
> しかし、出力先が違うだけで考え方は同じ。
と言うところ。出力先が画面なら、これでもいいんだろうけど、リストボックスは追加と言う処理をしないといけない。
kaigyou() でそれをやるのは当然だけど、n が半端な時は半端分に対する追加処理が行われない。
はっきり言って、使いもんにならない「アイデア」だよ。
↑(プッ
(´∀` )エヘヘ
つまり
>>465 がロクに答えられもしないのに適当なコト書いたのが悪い、
と言うことでよろしいですな?
結局おれ以外バカでいい?
>>464 取りあえずやりたいことが良くわからんけど...
S = ""
N5 = 0
For I = 1 To N
If N5 = 5 Then
ListBox.AddItem S
S = ""
N5 = 0
End If
S = S & Str$(I)
N5 = N5 + 1
Next
ListBox.AddItem S
ぐらいでどうか。(ただし、N < 0 の時、本来は何も追加しないのがいいんだろうけど、これでは空文字が追加されてしまうのでちょっと注意すること。)
>>495 まあ、そう言うことだろ。
それに、
>>466 がわけわからん突っ込みしたから荒れたんだと思うよ。
498 :
デフォルトの名無しさん :02/12/21 00:24
499 :
デフォルトの名無しさん :02/12/21 00:42
>>496 , 466
いいも何もおまえだけがバカですが何か?
いい加減放置しろ。レスした奴=荒らし
↓次の質問どうぞ
503 :
デフォルトの名無しさん :02/12/21 23:53
えーっと、ある処理をやっている最中に右クリからポップアップメニューを 表示させると、そのある処理がポップアップメニューが閉じるまで止まって しまうのですが、処理を中断させない方法ってあります?
>503 VBじゃどう実装するか知らんが、Windwos メニューにはオプションがあるよ。 TrackPopupMenuEx, TPM_RETURNCMD 辺りか。
505 :
VB6.0使い :02/12/22 02:07
VB.NET購入したのだが・・・ 6.0のソースって開くことすらできんのね 店員に聞いたら6.0のバージョンアップなんで全然大丈夫ですよ♪ って適当なのもいいかげんにしとけや ソース一から作り直しっていうのもなんだし・・・ 返品に逝くか
>>505 VB6のソースを使えないのは常識だと思ったんだが…
>503 スマソ、504 は勘違い。 で、単一スレッドでは無理じゃないかな。
>>505 やつらは売るのが仕事だからな。
というか、前作と比べてどういう風に変わったのか、
概要ぐらいは買う前に自分で調べた方がいいぞ。
509 :
デフォルトの名無しさん :02/12/22 06:29
コンボボックス上で表示される複数の選択肢は、参考書等によれば、シート上の セルから持ってくる場合がほとんどのようです。 ぼくは、VBAそのものにその選択肢となるものを埋め込んでしまいたいのですが、 やり方がわかりません。 で、いろいろ調べたのですが、シート上から持ってくる方法(つまりすでに知っている 方法)しか見つかりません。 C++のように、文字列の配列みたいなかんじでVBAの中に定義して、コンボボックス のプルダウンメニューから選択できるようにしたいのです。おながいします。
ここって、厨房ばっかりでほんっと つかえない
511 :
456 ◆yNrQhFYmm6 :02/12/22 11:58
すみません。
あれから何度試しても出来ないんですよね・・・。
サンプルを試しても尽く動きませんし。
なので質問を変えさせてもらいます。
これが出来れば
>>456 の問題も解決なので。
Inetコントロールを使ってHTTPでアクセスする際に
クッキーを一切受け取らないようにするにはどうすればよいのでしょうか?
Windowsのクッキー保存の設定依存なのかと思いきや、
インターネットオプションでクッキーを全部拒否にしても
Inetから通信するとクッキーが保存されちゃってます。
では・・・勝手ながらよろしくお願いします。
512 :
デフォルトの名無しさん :02/12/22 14:12
煽りではないが一つ言わせてくれ。
VB厨という言葉がこの板で使われ、VB使いは馬鹿にされている。
それは
>>505 のような奴が沢山いるからなのだろうと思い始めた。
分析能力がなく単にプログラムを組み、思い通りに動いたからそれでよしと
しているような連中が多いのではないだろうか?
もっと書籍・ヘルプを調べてVBを自分の物にしていくような貪欲な意欲が
ないとこれから先困るぞ。
513 :
デフォルトの名無しさん :02/12/22 14:12
_/ ̄ ̄ ̄`v―--、
/ ヾ \
/ / ヾ \
/ |ヽ ヽ
| / | \ |
/ // / ///丿 | | | |ヾ\|
| | /_/_/_/_// __|_|_.|_|_|\ |
| | | ヽ-=・=| ヽ-=・=- | ||||
| | | | | | ||| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |  ̄ ̄ ̄/  ̄ ̄ ̄ ||| < 無職童貞35歳守本浩司です。よろしく
| | | ( _⌒_ ) | || \______________
.| | _,..、_ / |
.| ヾ |\ `ー〜' /| | .|
http://psycho_boge.tripod.com/index.htm | ゝ\ /| | | |
| | ゝ ~`ー、___/ | | ||
////.∧| / | | | | |
そんな周知の事実を今更言い出す>512(VB厨代表)の肛門に口つけてウンチ直食い
"<title>
518 :
デフォルトの名無しさん :02/12/22 16:14
APIビューアが無いんだけど、MSは無料配布してないのかな? 探したんだけど見当たらないのよ〜
APIビューアってVBインストールしたら勝手にインストールされるんじゃないのか。
520 :
デフォルトの名無しさん :02/12/22 16:20
>>519 バージョンやエディションによって、あったりなかったり。。。くすん。
>>520 Cの宣言読んで自分で書きな。VBから他の高級言語にステップアップできる唯一のチャンスだ。
\Microsoft Visual Studio\Common\Tools\Winapi にないだろうか。ないか。そうか。
MIDIのボリュームを調整するにはどんなプログラムをかいたらいいのでしょうか?
>>523 ・ボリュームコントロールでMIDIのところを下げる(内蔵音源以外には無力、名前がMIDI出ないこともしばしば)
・MIDIプレーヤ書いてそれで音源に送るMIDIデータに細工する。
・ドライバ書いてデータをいじれる余地を作る。
・はじめから音量最大でMIDIデータを書く。
>>524 ボリュームコントロールをマウスでいじる以外はむずかしそうですね。
'宣言部分
Private Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Private Declare Function waveOutGetDevCaps Lib "winmm.dll" Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As Long
Private Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long
Private Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
-------------------------------------
'コマンドボタン
Private Sub Command3_Click()
If waveOutGetNumDevs = 0 Then Exit Sub
For lngIndex = 0 To waveOutGetNumDevs - 1
lngRet = waveOutGetDevCaps(lngIndex, WAVEOUTCAPS, Len(WAVEOUTCAPS))
If (lngRet = MMSYSERR_NOERROR) And (WAVEOUTCAPS.dwSupport And WAVECAPS_VOLUME) <> 0 Then If waveOutGetVolume(lngIndex, lngVolume) <> MMSYSERR_NOERROR Then MsgBox "waveOutGetVolumeでエラー!", vbInformation, "確認"
Next
'lngValue = InputBox("0〜65535までの値を設定して下さい。", "入力要求", Val("&H" + Right$("00000000" + Hex$(lngVolume), 4) + "&"))
'lngValue = InputBox("0〜65535までの値を設定して下さい。", "入力要求", 3000)
lngValue = Val(Text2.Text)
If lngValue > &HFFFF& Or lngValue < 0 Then Exit Sub
lngVolume = Val("&H" & Right("0000" + Hex(lngValue), 4) & Right("0000" + Hex(lngValue), 4))
For lngIndex = 0 To waveOutGetNumDevs - 1
lngRet = waveOutGetDevCaps(lngIndex, WAVEOUTCAPS, CLng(Len(WAVEOUTCAPS)))
If (lngRet = MMSYSERR_NOERROR) And (WAVEOUTCAPS.dwSupport And WAVECAPS_VOLUME) <> 0 Then Call waveOutSetVolume(lngIndex, lngVolume): Exit For
Next
'MsgBox "成功!", vbInformation, "確認"
End Sub
WAVはこんなかんじにやったんですけど、MIDIがわからないです。
midiOutSetVolumeとかつかえばいいんじゃないのか?
>>526 やはりMIDI関係のAPIもあるんですね。
そのキーワードで検索してみます。
ひごろJavaばっかりでVBの仕事に戸惑ってます。 VBで改行記号がUNIXタイプのファイルをどうすればいいですか? 宜しくお願いします。
>>528 UNIXってことは改行コードはLfだな。
VBではLf は Chr(10)だから
ファイル読み込んだ後に
Text = Replace(Text,Chr(10),vbCrLf)
でWindows形式の改行なデータに置換すればぁ?
530 :
デフォルトの名無しさん :02/12/22 21:29
コンボボックス上で表示される複数の選択肢は、参考書等によれば、シート上の セルから持ってくる場合がほとんどのようです。 ぼくは、VBAそのものにその選択肢となるものを埋め込んでしまいたいのですが、 やり方がわかりません。 で、いろいろ調べたのですが、シート上から持ってくる方法(つまりすでに知っている 方法)しか見つかりません。 ちなみに、Textプロパティに配列等を代入する方法も試しましたが、ダメでした。 C++のように、文字列の配列みたいなかんじでVBAの中に定義して、コンボボックス のプルダウンメニューから選択できるようにしたいのです。おながいします。
>>529 それじゃあ無理っすねー
ファイルから読みこむ際の問題なので、その例でいうとTextが取得できなくて困っているという状態です。
>>532 なんのこっちゃ?
テキストモードで読めば1行で出てくるからそのまま扱える。
バイナリモードで取れば逐次処理すればよし。
>>532 はん?読み込めない訳?
普通に読み込めるぞ・・・改行コードがCrlfでもLFでもCrでも。
シーケンシャルアクセスで何事もなく。
532の土下座はまだですか?
.NETに乗り遅れた劣等種。
537 :
デフォルトの名無しさん :02/12/23 14:56
Contorols.Addって、コントロール配列には出来ないですよね?
539 :
デフォルトの名無しさん :02/12/23 16:12
すいません。教えて下さい。 type aaa aaa1 as string aaa2 as string aaa3 as string end type と定義して、 aaa.aaa1 = "test1" aaa.aaa2 = "test2" aaa.aaa3 = "test3" と書いてるのをFOR文でまわしたいのです。 for i = 0 to 3 aaa.????? = "test" & i next このaaa.?????の部分をどう書いたらいいのか教えて下さい。
>>539 素直に配列にした方がいいと思うけれど。
>>540 わけあってTYPEつかってしまっているのですよ。
ほら、クリスマス近いですから、はい。
>>541 しょうもないことで現実逃避してないでさっさと仕事終わらせろよ。
VB6なんですが Formのダブルクリックを判定するので Form_DblClickを使っているのですが これ、何故か右ダブルクリックまで反応してしまうようです。 今やっていることはダブルクリック時のみに起きてほしいのに 右ダブルクリックまで反応されちゃぁ困るんです。 右ダブルクリックな場合は処理をしないようにしようかと思ったんですが Form_BblClick() とあるだけなので、右な場合に特定のパラメータがついたりしないし もうどうしたらいいやらで困ってます。 右ダブルクリックには反応しないようには どうやったらできるのですか?
544 :
デフォルトの名無しさん :02/12/23 17:02
あげ
545 :
デフォルトの名無しさん :02/12/23 17:05
ListViewコントロールをlvwReportにして、表のようにして使っています。 これに登録されたアイテムを任意に並べ替えたいのですが、 (カラムをクリックしたときのソートではなく) どうすればいいんですか? 各項目をそれぞれ変数に入れて置いて、 入れ替え先のデータを入れ替え元の項目に入れて、 変数に入れておいたのを入れ替え先に戻せばできそうですが、 やっぱりそんな処理を書かないとできませんか? ソートは出来るので、何かうまい入れ替え方法があるような気がして。
546 :
デフォルトの名無しさん :02/12/23 17:34
アクセスの特定のテーブルのデータをフォームで開いているとき、 そのデータのみをエクセルの、シートとセルを指定して出力するって 可能ですか? どんなコマンドを使ったらいいでしょう。
>>543 VBはよく知らんが、直前にMouseDownやMouseUpが発生するんだから
その時に(押されたボタンを)変数に保存しとけばいいだけだろ。
または GetAsyncKeyStateを使って判定するか。
>>547 まぁ、どれくらいの間隔ならダブルクリックと認めるかとか結構面倒なんだけどね。と。
なんか過去ログを見ていると、罵声が返ってきそうで恐ろしくなってきました。 ここは初心者が来たら怒られるスレなんですね。 出直します。
>>546 コマンドも何も、
CreateObject等で起動したエクセルのセル(Rangeオブジェクト)に
フォームの値を代入すればいいだけ。
>>548 ネタですか?
右か左かを判定すればいいだけなのに間隔なんて関係ないだろ。
それとも 547の意味を誤解してるのかな。
>>549 初心者と素人とバカは明確に区別されるよ。初心者は暖かく迎えられる。
>>551 DblはDouble(ダブル)の略語です。VB厨より頭悪いんかいな?
>>553 > DblはDouble(ダブル)の略語です。
それが何か?
これしきのことをサンプルを見せないと理解できんのか?
こんなに頭が悪いVB厨は初めて見た。
Private m_Button As Integer
Private Sub Form_MouseUp(Button As Integer, 以下略....)
mintButton = Button
End Sub
Private Sub Form_DblClick()
ここで m_Button を判定すればいいだけ
End Sub
変数名にミスがあったわ。 mintButton = Button ↓ m_Button = Button
質問者以外に醜いVB厨が居るようなので 547さんに代わって、も1つの方も。 Private Sub Form_DblClick() If GetAsyncKeyState(2) < 0 Then Debug.Print "(・∀・)" End If
>>545 は無理ですかね?
やっぱり一回適当な変数に待避してから入れ替えるコード書かないとだめですかね。
別にそれでも思い通りには動くけど、スマートな方法があるならそれに越したことないし…。
>557 次回に復元しなくていいの?
>>556 ちなみに < 0 が無くてもTRUEとみなしていけたりする。
>>559 それだと &H1が返ってきた時に正しく判定できないと思うが?
で、それとは関係ないけど、
コンパネでマウスを左利き用に設定している環境でも
動くようにするなら GetAsyncKeyStateの引数を
GetSystemMetricsで 判定してから切り換えるように
しないといけないね。
561 :
デフォルトの名無しさん :02/12/23 22:25
漢字の読みをローマ字で返す事はできないでしょうか? kanji2yomi("漢字")とすると"kanji"を返すような関数が欲しいんですが。
IMEを利用するとよい。
564 :
デフォルトの名無しさん :02/12/23 22:54
モテるAPI教えろ! 早くしろ!
>>564 Public Function Declare RepeatLove Lib "motel64.dll" Alias RepeatLoveX
(ByVal mame As Boolean,ByVal aisyo As Boolean) As LOVE
568 :
デフォルトの名無しさん :02/12/24 04:47
VBSでの正規表現についての質問です。 Function example Set objReg = New RegExp objReg.IgnoreCase = True objReg.Global = True objReg.Pattern = "^。" example = objReg.replace("あ。い。う。え。お。", "") End Function MsgBox(example) みたいにして、出力が"あい。う。え。お。"となるように、 先頭の。だけをPatternを指定したいのですが、どうも上手くいきません。 Hex(Asc("。"))の出力が8142だったので、Patternを"^\x8142"ともしてみましたが、 それも駄目でした。 どうすれば文字列の先頭の"。"だけを正規表現で指定できるのですか?
569 :
デフォルトの名無しさん :02/12/24 10:27
VB6.0の環境でソフト作成やっているのですが VB.netの勉強のために入れたいです。 この場合6.0の開発環境は失われるのでしょうか? 6.0の使用も続けたいので。 どなたか詳しい方・経験者の方お願いいたします。
>>569 つまり VB6とVB.NETを同時にインストールしたいという事...ですよね。
過去にVB5とVB6を同時にインストールしてはいけないとマイクロソフトが言っていました。
VB5と6を使いたい場合はそれぞれ専用環境を用意しろとの事...。
VB6とVB.NETも同じかな?(よく知らないけど...)
571 :
デフォルトの名無しさん :02/12/24 10:47
VB6とVB.NETは共存可能
573 :
デフォルトの名無しさん :02/12/24 11:04
>>570-572 ありがとうございます
上記のアドレス見る限り大丈夫そうですね
572さんの言うとおり「実はね」っていうのが怖いですね・・・
DLLとかは新しくなってしまうとなるとコンパイルしたやつをInstallShieldに
もっていったときが怖いな
やっぱり別のPC用意したほうが無難かな?
まったく別のDLLを使うのに新しくなるもないと思うが。
575 :
デフォルトの名無しさん :02/12/24 20:41
MsgBoxを出すと音が出ますが、第二引数の値によって音が変わります。 ヘルプを調べてもどの音が出るのか書いてありません。 第二引数と音の関係を教えてください。
コントロールパネル > サウンド で分かります。
>>576 こんな感じになるのでしょうか。
vbCritical → 一般の警告音
vbQuestion → 問い合わせ
vbExclamation → 警告
vbInformation → 情報
あるバイナリファイルの〜バイト目から〜バイト目を抜き出すプログラムのサンプルをお願いします。 mp3音楽ファイルのお気に入りの部分だけを抜き出したいです。
あんた無茶だ
>>580 mp3やmpgは途中だけ抜き出してもちゃんと再生できるんですかねぇ
2 / 7 = 0.2857・・・ のような計算の結果を浮動小数点数型で扱いたくないときは、 例えば小数第3位までの結果を欲しいときは、 Cint(2 * 1000 / 7) のような形で整数として保持しておくのがいいのか、 Ccur(2) / 7 のように計算して、固定小数点型として保持しておくのがいいのか どちらなんでしょうか。
>>579 だからフォーマット調べろと何度も言われてるだろうに。。
根気よく検索しなさい
放置ケテーイ
ぼく氏んだ方がいいとおもうんです。
馬鹿は私一人で十分で御座います。
588 :
デフォルトの名無しさん :02/12/24 22:02
VB6から Media Player をWMAやMP3をかけながら立ち上げるにはどうしたらいいです?
ちょっと出かける
返ってきたぞ。 サンタさんまだぁ〜〜?
30過ぎてなに逝ってんだアンタ
594 :
デフォルトの名無しさん :02/12/24 22:36
>593 ぬるぽって何だよ? 面白くも何とも無い。やめれ!
必死だな(・з・)
わからないなら無理して書き込まなくても良いよw
>>596 わからないなら無理して書き込まなくても良いよw
ごめんねw
次の質問どうぞw
VB って何ですか?
>600 ここは初心者スレ! 入門者はお呼びでない。荒らすなヴぉけ。
あ、よかったらでいいんで、
>>588 お願いします。
だからバカな解答者がでしゃばんなって
が何人もいるような気が・・・
>>602 意味が分かりません。
開発環境と共にWMPを起動?
BATファイル書けば良いと思いますが、それVBの質問?
mp3のフォーマット知りたいの?
読解力なさすぎ?!
>>605 あのですね、Shell()使ってコマンドライン引数あたりでファイル指定して
WMPで曲をかけられないかなと。。。分かりづらくてすんません。
>>605 まぁ、バッチファイルという名も知らない素人が出る幕じゃねぇってこったな。
>>588 d = Shell("D:\Program Files\Windows Media Player\wmplayer.exe /Play c:\Hoge.mp3", vbNormalFocus)
(´∀` )エヘヘ
>>610 ありがとうございました。メリークリスマス!
>>613 ネタかも知れんけどとりあえずレス。
要は
エクスプローラからツール-フォルダオプション-ファイルタイプを開いてmp3を探して
その詳細設定を開きます。Playの内容を参考にしてみれば。
ちなみに自分の環境はOSがDに入ってるからDドライブになってる。
>>613 <>俺ですが、やってみたところ結局俺もだめだったので、
>>615 を参考にさせてもらいます。
おまえたれだよ
俺は俺だよ。
たれ・・・ですか
イヴの夜に2ちゃんで騙り合いか。寂しい奴ら
オマエモナー
"wmplayer"だけで大丈夫だし
>>618 名曲みたいなフレーズだな「俺は俺だよ」って。
コマンドラインすら知らないなんて。
hage
俺は君だよ 君は俺だよ
俺は誰だよ?
黄昏は少し暗くなってきて、少し遠くにいる人が、 「たれそ彼」(彼は誰?)な状態から来たんだよ。MSDNに載ってるし。
VBAでの質問です。 既存のMDB=A 他のMDB=B A→Bへテーブルを送る場合は、 "SELECT * INTO Aのテーブル IN B.mdb" で可能ですが、 A←Bへテーブルを送る(コピー)場合はどのようにしたら良いでしょうか?
>>632 select * into hoge from hoge in b.mdb
で出きると思います。
>>633 なぁ、SQLの質問ですが。が適切じゃないの?
>>635 「。」って、from のことですか?
select * into dest from src in db
で、データーベース db のテーブル src を destとしてコピーする。
select * into dest in db from src
だと、テーブル src をデータベース db に dest としてコピーする。
問題なのは from ではなく in 句の場所です。
>>636 おまいはアフォか。
635 は 「SQLの質問ですが。」 が適切じゃないの? と言ったんだ。
あんたの質問は 「VBAでの質問です。」 と言うにはふさわしくない。
> あんたの質問は 「VBAでの質問です。」 と言うにはふさわしくない。 すまそ、「あんた」 じゃなかったね。632。
>>637 ああ、そういう意味ですか。
私に対するSQLの質問かと思ったので、素っ頓狂なことを書いてしまいました。
ハズカシ。
なるほど、 なぁ、SQLの質問ですが、 「。」 が適切じゃないの? と理解したわけね。 ・・・635 出て来いw
日本語って難しいねぇ。
635の意訳:
ところで、
>>633 は、
「SQLの質問ですが。」 って書くのが適切じゃないか?
って訳か。
>>641 それが適切だとスレ違いだからさらにややこしい。
643 :
デフォルトの名無しさん :02/12/25 21:35
誰か・・・・・・Win32api.txtをくれ・・・・・。 API関数の勉強がしたくても、田舎で本が無いし、おまけに俺は ラーニングエディションでAPIビューアも付いていない・・・。 くれ〜〜〜〜〜・・・・・・。
VB6インストール後、最近のservicePack当てたら DBGridが使えなくなってしまった〜〜。
645 :
デフォルトの名無しさん :02/12/25 21:52
NETの魅力のため勉強がはかどらず しかしNETを導入出来ないWin98環境・・・ どうしよう。 >643 俺もいろいろDLしたが、何がなにやら・・・ やはり本を買わんと理解するのは難しいのか・・・で、避けてる。
なるほど冬休みか。
647 :
デフォルトの名無しさん :02/12/25 23:37
ふざけんな!
>>644 SP5当ててるけどDBGrid使えるぞ。
>>643 あれ、勉強の役には建たんよ。
単なるヘッダーに過ぎないし、それで理解が深まる訳でも何でもない。
以上、Cプログラマより。
げ?!まじですか・・・。 なんか、DBGRID.OCXがないんすよね・・。まいりますた。
>>649 確かに。抽象クラスを読むようなもんだな。
by java厨。
しかもヘッダーが間違ってることが(´・ω・`)
653 :
デフォルトの名無しさん :02/12/26 01:42
こんばんは〜 webbrowserコンポーネント上で, 右クリックし,コンテクストメニューを開いて, そのメニューをショートカットキーで選ぶことってできますか? webbrowser以外にボタンを一つ配置して, @ボタンをクリックすると, A指定した場所へマウスの標準が合わされ, Bコンテクストメニューが開き, Cキーによって項目が選ばれる というものです. まず自分はCommand1_Clickの部分に SetCursorPosを使って,標準を合わせ, mouse_eventによって座標を拾い, コンテクストメニューを表示させるまでは行ったのですが, キーによって項目を選ぶことができません. 例えば貼り付けを選択するならば, 「sendkeys "p"」でいいと思うのですが... どうやら別の部分で押されているようです. webbrowserがform1上にあるから,form1上でかな. プログラムとしては Dim Poi As POINTAPI GetCursorPos Poi Call mouse_event(MOUSEEVENTF_RIGHTDOWN, _ Poi.x, Poi.y, 0, 0) Call mouse_event(MOUSEEVENTF_RIGHTUP, _ Poi.x, Poi.y, 0, 0) SendKeys "p" この過程でやっています.(定義など省略しますがw) どなたかわかる方がいればご教授御願いします.
とりあえずSDKをダウンロードしな。
UNLHA32.DLLを利用してlzhを解凍する必要があるソフトを作ってるんですが、 これで解凍すると解凍中を示すダイアログが表示されます。 これを非表示にしてコッソリ解凍できるようにしたいんですが、 どうしたらいいでしょうか。
vb6です。 対象となるフォームが他のアプリを含めて常に画面の一番上にある状態にするにはどうしたらいいですか? 昔vb4で遊びで作った物が見つかったので動かしてみたんですがちょっと動作が違うのです。 昔作ったものはどういうものかというと、どんなアプリ立ち上げてもそれが常に画面の一番上にあって 他のアプリが動かせないというただのいたずらソフトでした。 フォーム呼び出すときにモーダルにしたり試したけどだめでした。 ---------------------ちなみにそのソース(抜粋)--------------------- Private Sub Form_Load() Timer1.Interval = 1 End Sub Private Sub Timer1_Timer() Me.Show End Sub
SetWindowPos
659 :
デフォルトの名無しさん :02/12/26 11:37
日付関連でお聞きしたいのですが、 141225の文字列を 20021225に変換したいのです。 ちなみに逆は出来るのですが・・・ 色々試してみたんですが、どうも上手くいきません。 何か方法があればご助言お願いします。
>>659 MID$ LEFT$ RIGHT$ Val CInt CLng
この辺キーワードで。
>>659 Cdate("平成14年12月25日")
>659 元号指定してる?
664 :
デフォルトの名無しさん :02/12/26 11:51
お答えどうもです。 ちなみに自分で試したのは Format(Mid([年月日],1,2) & "/" & Mid([年月日],3,2) & "/" & Mid([年月日],5,2),"ggee/mm/dd") だったんですけど、 これだと平26/12/25になってしまい・・・(−−; 一応660さんのキーワードは私もよくつかって日付変換をやっているので、分かっているつもりだったんですが・・・ ちなみに、年月日に141225という値が入っています。 他にももちろん13年の値(131225とかも)入っています。
>>662 平成と決め打ちしたDQNデータなんじゃない?
しかし昔の汎用機じゃないんだから、いまどき
そんなデータ形式もないような気がするが・・・
666 :
デフォルトの名無しさん :02/12/26 11:52
>>662 元号指定はありません。
そのまま
141225
とか
141110
とかの値が入っています・・・
客のアホーーー!
もう一つのマスタの日付データははちゃんと西暦なのに・・
>>666 とりあえず自分の発言番号を名前に入れるように。
>>664 のソースに足りないのは元号指定だ。
平成かHを頭につけろ。
>>667 ああ、そういえば居れてませんでした。すみません。慌ててたもので^^;
とりあえずはHを頭に付加したらできました。
とりあえずはこれでやってみようと思います・・その場しのぎですが・・・−−;
昭和のデータがないのが幸い・・
回答くださった方有難うございました。
>666 年を西暦下2桁と判断するからね。(2014年) もし仮に>665さんの通り決め打ちで「平成」固定なら、 年の頭に"h"でも"平成"を付けてみたり、年に1988足すなりで対処は出来るよ。 Format("h" & Mid([年月日],1,2) & "/" & Mid([年月日],3,2) & "/" & Mid([年月日],5,2),"yyyymmdd") Format(1988 + CInt(Mid([年月日],1,2)) & "/" & Mid([年月日],3,2) & "/" & Mid([年月日],5,2),"yyyymmdd")
煤i ̄□ ̄;) おそかった…( ´・ω・`)ショボーン
今頃遅いと思いますが...
>>643 へ
VB付属のAPIビューアのWin32api.txtは間違いがあります
その間違いを修正したWin32api.txtがベクターで公開されてたYO
>>656 「-n」をスイッチに入れればよかったかと。
Unlha32.dllのCommand.txtに載ってるから詳しくは自分で確認してくれ。
675 :
デフォルトの名無しさん :02/12/26 15:01
VB.NETを購入したのですがコントロールにあるVideoSoftのVSFlexというOCX は配布可能な物なのでしょうか?使って配布不可だったら悲しいので。
>>672 そのスイッチは知らなかった。(つうか考えたこともなかった)
ダイアログが表示されないと中止もできないし、俺的には使い勝手が悪いのだが・・・。
>>672-673 あああそんな単純な事だったんですね。
てっきり強制的に表示されるものかと思って、
API駆使して無理矢理非表示にしたりしないとだめかとおもってました。
ありがとうございました。
679 :
そろそろVB半年目 :02/12/26 18:22
XMLファイルをVB6上で色分けして表示するのに便利な表示用コントロール とかあるんでしょうか?リッチテキストで試していますが、他にスマー トな方法をどなたかご存知ありませんか?
ご存知じゃありません。すみません。
681 :
そろそろVB半年目 :02/12/27 09:11
ぷっつり途絶えてしまったようだ。
ぷっつん逝ってしまったようだ
あー、仕事納めか? 土日になると一気に寂れるからな、このスレ。 …つーか、仕事でやってるレベルのヤシはここで質問とかしないかな。
禿げれば尊し 我が師の頭 残れる髪の毛 はや数本 思えば愛とし この一本 今こそ別れ目 いざさらば
>683 ここは完全に初心者だ炉 しかし、現場にはこれ以上のツワモノも平気な顔してプログラムを組んでいるぞぇ。
いや、明らかに仕事と思われる方々がよくいらっしゃっているが・・・
ここが完全に初心者スレなら普通スレも作ったほうがいいな。
689 :
デフォルトの名無しさん :02/12/27 12:33
>>688 それよりか次からスレタイの「初心者」を消せ。
ハハハ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ^∀^)< あほか ( つ ⊂ ) \_________ .) ) ) (__)_) (^∀^)ゲラゲラ キエロ カイセンキッテクビモキレ ケラ
BASICは「Bginner's All purpose Symbolic Instruction Code」 だから合ってるじゃん。Part19まで続いたんだから今のままでいいだろ。
>>692 そうすると初心者という言葉が重複することになる。
荒れにくいから入っていたほうがいいんだよ。VBで上級者気取りすると荒れるから。
初心者という言葉が掛かる先は重複してないが、バカか?ワラ
>>695 それでは、その初心者という言葉が掛かる言葉はどこか?
その答えが
>>692 が間違っていることを示す。
>>694 逆に初心者が多く集まって荒れるということもある。
Code、スレ
初心者が書き込みやすいからいいんだよ。
701 :
デフォルトの名無しさん :02/12/27 12:51
お前らバカだなあ(´∀` )エヘヘ
>>700 いい加減コピペは辞めようね。ウザイから。
自分が上級者とおもってる馬鹿が初心者を煽るから必要
ハハハ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ^∀^)< あほか ( つ ⊂ ) \_________ .) ) ) (__)_) (^∀^)ゲラゲラ キエロ カイセンキッテクビモキレ ケラ
706 :
VB初心者 :02/12/27 12:55
VBの配列は1から始まるんですか?
>>703 正解。初心者という言葉がはずされると煽れなくなるから困る。
絶対初心者という言葉をはずすな。新しいすれも立てるな。
Option Base [0 | 1] dim aAry(1 To 20) as Integer VB.NETは必ず0オリジンだから気をつけとけ。
711 :
VB初心者 :02/12/27 13:00
710さん、 ネタにしてもつまんね。
誰かお願いします。
俺のちょっとした一言で荒れるなんて・・・。VB使いはわざわざ荒らさないし。 よっぽどこのスレにはVBと関係ない厨房が粘着しているみたいだな。
編集できないよ?
( ´,_ゝ`)プッ
>718 大変だね。
>>679 知らないけど、まともなレスが無いってことはないんじゃない?
リッチテキストを使って自作できる技術があるんだからそのままやったら?
VBのリッチテキストはNT系OSだとヤヴァヤヴァだけどね。
>722 やべーの?詳細キボンヌ。
>724 もしかして大爆笑ねらってる?
>>725 いや、狙って書くとかえってつまんないじゃん。
適当に書いて受ければそれでよし。これ基本。
727 :
デフォルトの名無しさん :02/12/27 16:21
vb6でコードの窓を閉じるときのショートカットキーって?
728 :
デフォルトの名無しさん :02/12/27 16:21
InetコントロールのExecuteメソッドにヘッダを渡してやる時に、 "x-hoge:"みたいな、おかしいヘッダを入れると、35756のエラーが出てしまします。 これはいいんですが、一旦これが出ると、二度とそのInetコントロールが使えなくなってしまいます。。 これを解消する方法はあるのでしょうか。。。 もう一つ、サーバーから返答がない場合にCancelが上手く動かない場合があります。 このへん、なんとかならないでしょうか??
729 :
デフォルトの名無しさん :02/12/27 16:25
補足 35756のエラーが出た後も、返答がなくてCancelが出来ない時も 何をしても35764が出てしまいます。
>>728 変なヘッダを使うだけではそうならないはず
ヘッダの値が何もない状態でExecuteすると35756エラーになるが・・・。
"Referer:
http://www.google.com "
なら当然平気だが
"Referer: "
だと35756エラーになる。
"x-hoge: hogehoge"
なら平気だが
"x-hoge: "
だと35756エラー。
全く見当違いなレスだったらスマソ
732 :
デフォルトの名無しさん :02/12/27 20:55
質問しまつ。WindowStyleの事について。 今、自アプリでないWindowのサイズ変更可・不可を設定できるような事を実装したくて Dim OldStyle As Long Dim NewStyle As Long OldStyle = GetWindowLong(Hwnd, GWL_STYLE) NewStyle = OldStyle Xor WS_THICKFRAME Call SetWindowLong(Hwnd, GWL_STYLE, NewStyle) こんなコードを書きました。 これで、サイズ変更可・不可を交互に入れ替えれるようなんですが そうではなくて、今の状態がサイズ変更可でも、不可でも サイズ変更可の状態にする、みたいな事がやりたいです。 また、その逆で、今は可でも不可でも不可にする、ってのも必要なんです。 どうすれば上記のような結果を得られるのでしょうか。
をいをい、人のアプリに勝手にちょっかい出すなよ。
>>733 すみません・・・
どうしても、な理由があっての事なのです。
>>734 やり方がわかれば苦労しないんですけどね。
>NewStyle = OldStyle Xor WS_THICKFRAME
ここらへんをどうにかするのでしょうか。
Xorだから交互に変わるのだと思うんですが。
>>735 はい。論理演算わかってるならできるっしょ・・・。
足すときはorで引くときはnandかandnotで何とかならない?
737 :
デフォルトの名無しさん :02/12/27 22:13
EXCEL_VBAでメール送受信はどうすればできますか? 出来ればメソッドを教えてください。 WINではApplication.SendMail で Recipient:="" , Subject:="" で桶だったのですがMACではサパーリ解りません。
739 :
デフォルトの名無しさん :02/12/28 15:09
age
>>736 言われた通り or とか and not とかやってたら
それらしい事が出来ました。
ありがとうございました。
>>738 さんどもです。
SMTPですか!無知ですがネットで検索してみます。
アリガトウごじゃります
742 :
デフォルトの名無しさん :02/12/29 05:24
VB6にて質問です。 やりたいことは単純明快で デスクトップ上のアイコンを全て(一時的に)見えなくしたいのです。 壁紙は見えてかまいませんが、アイコンだけは全て見えなくしたいです。 で、やりかた調べてたら、デスクトップのWindowHandleを取得して ShowWindowで消してやればいいと書いてあったのですが それでやると、ほんとに全部消えちゃうんです。 右クリックメニューとかでない状態になってしまうんです。 これでは、まずいんですよね。 基本的なデスクトップの動作をさせつつ デスクトップ上のアイコンを一時的に非表示にするにはどうすればいいですか? ちなみに、これを実装できているアプリがあるので出来るはずなんです。
>742 質問1: それ出来たとして、そこからデスクトップにファイル置いたらどうする? 質問2: 仮想デスクトップを使っている場合はどうする? 質問3: Win2kのアクティブ デスクトップ - アイコン表示は無視? 質問4: 実装できているアプリとは何でつか?
つぅかしょうもない1アプリにデスクトップいじられたらたまったもんじゃないが。
すみませんが質問です。 pictureボックスにbmpなどをロードしておき、そこへLineメソッドなどで描画します。 これを他のpictureボックスへPaintPictureなどでコピーすると背景の画像のみがコピーされます。 Lineメソッドなどの描画もいっしょにコピーしたいのですがどうすればよいでしょうか?
>>745 PaintPicture.Picture2 Picture1.Picture
ではなくて、
PaintPicture.Picture2 Picture1.Image
かな
>>743 > それ出来たとして、そこからデスクトップにファイル置いたらどうする?
基本的に非表示になっているだけなので
ちゃんとデスクトップにファイルは保存されているでしょう。
元に戻した(非表示を解除した)時にちゃんと表示されるはずです。
> 仮想デスクトップを使っている場合はどうする?
そもそもデスクトップとしての領域全体を非表示にするので
仮想デスクトップ部分も含めて非表示になります。
確認済み。
> Win2kのアクティブ デスクトップ - アイコン表示は無視?
それでアイコンが消せる事は知っているのですが、98の場合も必要で・・・。
ちなみにその設定を無視して非表示にしたいです。
> 実装できているアプリとは何でつか?
FinderSystemというフリーの凡用ウィンドウスタイル変更ツールです。
これでデスクトップを対象に「非表示」設定にしてやると
私が望んでいる効果がばっちり現れます。
>>744 外部に公開するような用途では内のでご安心ください。
>747 暇なのでFinderSystemとか言うの見てみた。 □可視チェックボックスをoffにした場合ね。 単にVISIBLEビットが落ちてるだけと思うが、ShowWindowが余計なんでないの? FinderSystemは単純な事をやるツールだから判るけど、キミの要望はどうでしょう? 検討1: アクティブ デスクトップじゃ何も起きないよ。 検討2: アイコン消えてからデスクトップにファイル作ったり、最新情報更新すると元の表示状態に戻るよ。 キミが何をもってFinderSystemがばっちりなのか...疲れた。
750 :
デフォルトの名無しさん :02/12/29 22:49
IDEを人前で発音するとき、みなさんはどう呼んでますか?
>>751-752 ありがとう助かります。
今VBの参考書を読んでいたところ出てきたもので聞いてしまいました。
スレ違いでしたら申し訳なかったです。
そこにVBがあるからVBを使うのさ
755 :
デフォルトの名無しさん :02/12/29 23:06
ヴィービー
魔少年ヴィービー
IDEの巨人
冬厨あほらしか
759 :
◆OVCBb2dRbg :02/12/30 03:51
ファイルのパスから、そのファイルのアイコンを取得するにはどうすればいいですか? それも実行形式のファイルのアイコンだけではなくて たとえばtxtだったら、拡張子txtに関連づけされたアイコンがあるはずですよね。 そういう関連づけされている場合も含めてアイコンを取得したいというわけです。 つまりは、実際にエクスプローラで表示されているアイコンと同じアイコンを 取得できれば万々歳ってことです。 ヒントでもいいのでよろすくおながいしまつ。
760 :
デフォルトの名無しさん :02/12/30 05:08
>>759 SHGetFileInfo はどないだ?
761 :
デフォルトの名無しさん :02/12/30 12:49
Dim Ret As Long ReleaseCapture Ret = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0) これでウィンドウを動かせるらしいけど Dim Ret As Long, Ret2 As Long ReleaseCapture Ret = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0) Ret2 = SendMessage(Form2.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0) で2つのウィンドウが動かせないのはなぜ? APIコピペしかできないんで分かりません。
>>761 >これでウィンドウを動かせるらしいけど
まず、上のコードだけで動くのかどうか検証すればどうだい?
それはともかく。冷静に考えて1つのポインティングデバイスで二つのウインドウの
タイトルバーを同時にプレスすることは不可能なわけだが。
>>762 上のコードだけ、下のコードだけだったら動きます。
単純に2つ並べたら動くはずなのに動かないんで困ってます。
なにしろAPIの根本が分からないんで。
> Ret = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0) これは、ウィンドウのタイトルバーのクリック (ただしボタンを離さない) を エミュレートしたもの。 > これでウィンドウを動かせるらしいけど 動かない。 マウスや方向キーによってウィンドウが移動できるようになるだけ。 > で2つのウィンドウが動かせないのはなぜ? 同時に 2 つ以上のウィンドウをドラッグできないから。
>>763 理解できないところは無視。悪い癖だと思われ。
>>764 同時に2つ以上のウィンドウをドラッグしたいときはどうすれば?
>>763 APIを丁寧に解説したサイトがなくて…。
オレも理解したいです。
>>768 無理か…。
諦めますん。
ところでみんなはAPIってどうやって勉強したか聞いてみちゃったりします。
教えてください。
>>768 無理でもない。
Form1 をサブクラス化して、NCLBUTTONDOWN(HTCAPTION) と WM_MOVING と
WM_MOVE を処理して Form2 を操作するルーチンを書けば逝けると思う。
WM_MOVING を処理するのは無理っぽいか。
>>770 765 を無視するようでは勉強なんて無理だ。
>>767 > APIを丁寧に解説したサイトがなくて…。
ないのではなく、お前が知らないだけ。
自分の無知を棚に上げて、実際に存在しないかのように書く無神経さは何とかならんか。
>>774 つぅかすでに答えは出ている。煽りはスピードが命。
>>775 「見つからなくて」とか、「知らないので」という表現なら、どうってことはないんだが、
「なくて」という言い方にムカついてしまいますた。
>775 ワロタ
779 :
デフォルトの名無しさん :02/12/30 22:20
サイズの分からない配列Aがあるとき、その先頭から最後までの要素について 処理を行いたい場合For文をどのように書けば良いのでしょうか? よろしくお願いします。 For i = 0 To ?? Trace.WriteLine(A(i)) Next
>>779 ネタじゃないよね?
LBound/UBound を使います。
ヘ ル プ を 読 む 習 慣 を 付 け ま し ょ う 。
781 :
デフォルトの名無しさん :02/12/31 06:38
質問させてもらいます。 環境は、VB6SP5でWindowsXPです。 ListViewを使ってちょっとしたデータベースみたいなのを 表示したりするアプリを作っていてわかったんですけど どうもListViewって、ひとつのカラムの欄の文字数制限で128文字しか入らないようです。 1項目の内容が128文字以上になる事はざらなはずなのに これは仕様なのでしょうか。なのだとしたら、解消法はありますでしょうか。 年末ですので今年の事納めにでもお答え下さると嬉しいです。
782 :
デフォルトの名無しさん :02/12/31 06:48
gridにしる。
>>779 スレ違い。VB.NETねたは「【老若】VB.net質問スレ【男女】」にするでつよ。
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50 >For i = 0 To ??
>Trace.WriteLine(A(i))
>Next
For i = 0 To A.Length
Trace.WriteLine(A(i))
Next
または、
Dim o As Object ' Aの型に合わせて適切な型の変数を用意してね。
For Each o In A
Trace.WriteLine(o)
Next
のようにする。
>>780 ネタかな?
配列下限0固定だから、LBoundは互換性のためだけに残ってるだけよん。
785 :
デフォルトの名無しさん :02/12/31 12:10
質問です。 Winsockコントロールで、HTTPでバイナリでないファイルを取得する コードを書くと、文字化けします。ごく一般的なやり方で取得してるんですけど、 たとえば"動"がNULLと半角のョとして摩り替わったりします。 (しかもホントはNULLじゃなくて0x93) おそらく一度バイト配列にバッファリングしてから StrConvでUnicodeに変換すれば解決すると勝手に踏んでるんですけど、 そこでバイト配列とバイト配列を結合させるやり方がわかりません。 要するに、String型の場合の a = a & b みたいなことをバイト配列でもやってみたいわけなんですが、 どーやればいいんですか?
>>784 あ、VB.NETだと気付かなかったよ。
.Length
ってことは、Javaとおなじ文法やんか。
>>785 apiつかっても出来るけど、
forループで回してくっつけるだけでも十分。
ホームページ開くとノートンが反応するので適当なエディタで開くと、 そのページの分のhtmlが終わった後vbscriptらしきもので始まる解読不明なアルファベット記号がズラズラと・・・ ウイルスなのでしょうか?
すんません。ぐぐったらすぐに出てきました。厨な質問してすいません。。。
ドガイシュツだね。
>>787 とりあえずForでやってみます。さんくすです。
そういえば配列の要素数に限界があるってことはバイト配列じゃ うまくいかないってことだ。やっぱファイルに一回書き出さないと いけないのか・・・鬱だし脳
794 :
デフォルトの名無しさん :02/12/31 18:44
Dim Data As MSComctlLib.DataObject Data.Files.Add "Hoge",1 てなこと(DataObjectのデータ型(?)を利用する)をしたいのですが、 2行目でオブジェクト変数または With ブロック変数が設定されていません。(Error 91) となってしまいます。 おそらくSetとかを使うのでしょうが全然わかりません。 OLEDragDropプロシージャー内のは普通に出来るんですが・・どこが違うのかな。。
Gridの特定のセル(仮にセルと呼びます)だけに色を付けるような コンポーネントってないでしょうか。 背景色でも文字色でも良いのですが、その部分だけ目立たせるような。
796 :
デフォルトの名無しさん :03/01/01 00:02
あけおめあげ
ネットカフェにて・・・・ With Form1 'フルスクリーンにする .BorderStyle = 0 .WindowStyle = 2 End With For i = 0 to 10000000000 'この間に逃げる Next i do Form1.Print "あけおめ(w" loop ・・・実行!
>>798 ぬしものぉ、越後屋・・・ふぉっふぉっふぉ
VBをはじめていじるときは誰でもピクチャーボックスをまず配置し、アニメや18禁ゲームの画像を表示させるのではなかろうか。
>>800 いや、ラベルとボタンおいて文字出したが。
>>801 プログラマーのかがみのような。
>>802 VBはじめた動機がちんこの入ってるところと入ってないところをタイマーで切り替えてアニメーションさせることだったからな。
>>803 結局それ以上の技術は3年たってもつかないもんだよな。
最初は800の用にタイマーコントロールでチンコパラパラアニメしかできないけど、 そのうちチンコだけくりぬいてマウスで動かせるようにしようとAPIを覚えたり、 マンコに挿入できるように裏画面描き転送のbitblt覚えたり、 そしたら今度はイクイクメーター装備してマウスでズコズコやるとメーターが上がるようにするため マウスを動かしてる早さを計測するアルゴリズムを考えたり、 今度はホイールクリクリでクリクリをクリクリするためにサブクラスを覚えたり・・・。 そうやってみなVBを覚えていくのだな。 3年たっても技術がつかない800はエロさが足りないという事だろう。
>>804-806 溜 ま っ て る な ら 、 風 俗 へ 逝 け よ !
-------------------- 終 了 --------------------
まあ、インターネットが一般に普及したプロセスも似たようなものですし。
810 :
デフォルトの名無しさん :03/01/01 17:45
モーダルウィンドウ上のウィンドウにSendMessageでツールチップを作成しようとしてみたけど無理でした。 無理なのでしょうか? あと、LabelコントロールにはハンドルがないのでSendMessage自体できませんが、 Labelコントロール自体にはToolTipTextプロパティーがあります。 これはどうなっているのでしょうか? VB内部で独自のToolTipを作成しているとかなのかな?
>>800 漏れはWindowsを終了させるプログラムをサンプル見ながらやって、
セーブせずに実行してしまった。
>>807 風俗にアニメキャラはいないにょ
>>809 エロエロパワーっちゅうやつやね。
>>811 今でもWindowsを操作する術をしらないオレは尊敬します。
すごくプリミティブな質問なんですが、誰か教えて下さい。 VBが作成するexeって、インタプリタなの?...って、要するにJavaみたいな 「エンジンがバイトコードをがりがり読んで実行する」ような感じのインタプリタ、なの? ..exeとして作成はされるけど、実は内部的にはどこかにあるインタプリタをキックして、 その後に並んでいる中間言語をごりごり渡して実行...みたいな。 それとも、「ネイティブなんだけど、DLL(ランタイム)をただひたすらがりがり呼びまくる」 だけなの?
815 :
デフォルトの名無しさん :03/01/01 20:42
VBで画像を扱う場合ですが、フォーム全体に画像を表示させたり画像をボタン のように使ったりする場合、処理の速さを考えるなら何を使った方がよいのでし ょうか?例えばボタンならpictureコントロールのloadPictureを使うのがあり ますが、画像を幾つも扱う場合効率が悪かったり、もっと速い処理できるやり方 があったりするのでしょうか?どなたかよい方法ありましたらお願いします。
816 :
デフォルトの名無しさん :03/01/01 20:47
★★★★★★★★★★★★★★★★★★★★★★★★
激安を超えた!超激安!
新品アダルトDVDが1本500円から!
個人でも1本から買える!オンラインDVD激安問屋!
GO!GO!DVDドットコム!
http://55dvd.com/ 只今福袋も売り出し中! 売り切れ御免!
★★★★★★★★★★★★★★★★★★★★★★★★
>>817 細かいツッコミで申し訳ないけど、VB4.0以前はネイティヴコンパイルはできないでしょ?
(当然、ご存知かと思いますが・・・)
>>819 Delphi厨相手には平気で3.1の話とか持ち出すクセにな(藁
藁って許して。
822 :
デフォルトの名無しさん :03/01/02 00:45
>>815 VBは画像処理に向いていない。
ところでフリーカーソルじゃないエディタのどこが使いやすいのでしょう?
824 :
デフォルトの名無しさん :03/01/02 01:22
VBで標準偏差を求めたいのですが、どうしたらいいですか? ExcelのSTD関数みたいなのが無いのですが・・・。
>>824 前も同じ質問してなかったか?
自分で計算式賭。
826 :
デフォルトの名無しさん :03/01/02 01:58
>>824 おいおい、ExcelのHELPでその関数の説明を読んでみたか?
828 :
デフォルトの名無しさん :03/01/02 03:41
MsgBoxのように同じプロジェクト内でフォームが複数表示されている場合に 一つのフォームにしかフォーカスが移動できないようにするにはどうしたらいいのでしょうか?
>>828 Private Sub Command8_Click()
Form3.Show vbModal
End Sub
>>824 自前でアルゴリズムを書きたくないなら、Excelのライブラリを参照して
流用するという手段もある。
しかし、Excelのライブラリは巨大過ぎるため、動作が重くなる。
(あまりお奨めできないが、ひとつの選択肢として参考程度に・・・)
832 :
デフォルトの名無しさん :03/01/02 10:39
すみません。 Basicでの「Input@」に相当するコマンドは何にあたるのでしょうか?
VB と C/C++ ってどうちがう? なんでおまいらVBなんて時代遅れたことやっとんの?
>>832 あえて言うなら、InputBox関数。ま、全然違うがな。
>>831 自己レス。
テスト(性能評価)した経験ないんだけど、速度が要求される場面なら、たぶん、
却下すると思う。(^^;
性能は不問、やっつけ仕事だからとにかく手間を掛けずに楽に作りたい、という
状況ならありだと思います。
>>838 > やっつけ仕事だからとにかく手間を掛けずに楽に作りたい
↑VB自体そういうスタンス、というツッコミは却下。(^^;;
(予防線)
他アプリのリストビューの項目数や内容を得るにはどうすればよいのですか?
>>840 ユーザが数えてテキストボックスにて報告してもらう。
(´∀` )エヘヘ
>844 まぁいいけど、思っている程簡単にはいかないから目的や状況を詳しく書かないと解決しないよ!
>>845 目的は自宅のパソコンをタイマーメールチェック状態にして、
外出中に新着メールがあればどんなタイトルで何通来たか、
等を携帯にリアルタイムにメールして
知りたいのです。
このメールソフトでは新しいメールを受信するとリストビューの項目が増えるので。
メールの転送を使うという手もありますけど、自分で作りたいんです。
へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ
848 :
デフォルトの名無しさん :03/01/02 19:28
むしろ自分でメールチェックするプログラム作ったほうがよかろ
>>848 自分でメールチェックするプログラムは作った事あります。
しかし、リストビューから情報を取得する方法は何かと便利そうなので
ぜひ自分で身に付けておきたいので・・・
ちなみに844,847は偽者です。
850 :
( ゚Д゚)ヴォケ!! :03/01/02 21:44
おめーよ。さっきから聞いてりゃむかつくんだよ。
技術がないのに「あれもやりたい、これもやりたい」だなんて
困った厨ですな。
>>848 タソみたいなアドバイスを受け止めるってことをしないのかね?
文句言うんなら自分でやれ!人に聞くな!( ゚Д゚)イッテヨシ
へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ へ(´∀` へ)エヘヘ
852 :
デフォルトの名無しさん :03/01/02 22:22
VBを始めたばかりの初心者です。 テキストボックスの外観を変更したいのですが(角を丸くして、立体表示じゃなく する)そういったことはVBでもできるのでしょうか?おすすめのページなど ありましたら教えてください。
853 :
デフォルトの名無しさん :03/01/02 22:31
>>852 立体表示はデザインの設定でできるよ。
概観は、やったことないからなんともいえないけどリージョンっていうやつを
使えばできるのかも。
はずしてたらゴメン
>>852 大きめのピクチャボックスの中に枠なしのテキストボックスを配置して、
後は好きなようにピクチャボックス側で枠をデザインすりゃいいんでない?
>>850 自分でやってなんとか出来ました。
スレ汚しすんません。
856 :
デフォルトの名無しさん :03/01/02 23:30
SDKで印刷プレビューを作るにはどうしたらいいでしょうか? ネットやVC6についていたサンプルソースなどをあさってみたのですが よく分かりませんでした。 ここを見ろ!とかありましたらお願いします。
858 :
デフォルトの名無しさん :03/01/02 23:50
>>855 どうやって実現したのよ?
方法を書かないと、ますますスレ汚しだぞ
860 :
デフォルトの名無しさん :03/01/03 00:01
859は何か気の利いたことを書いている積り?
>>860 お前よりは気が利いてる。に3インスタンス。
ユーザーコントロール内でサブクラス化ってできないの?
863 :
デフォルトの名無しさん :03/01/03 00:10
なんかAddressOfオペレーターの使い方が適切ではありませんってでるんですけども。
あ、AddressOfってbasファイル内じゃないと無理なんだっけ。 アプリケーションの終了(ユーザーコントロールの終了)時にユーザーコントロールにイベントって起きないの? サブクラス化を解除できない・・
866 :
デフォルトの名無しさん :03/01/03 00:35
bas以外だと実態が出来てないとそのアドレスがわからないからね。
867 :
デフォルトの名無しさん :03/01/03 00:37
Terminateイベントってないんだっけ?<<ユーザーコントロール
Terminateになんか書いても何も起きないんですよ。 Exeにしても起きないし。
869 :
デフォルトの名無しさん :03/01/03 00:50
というか、普通に標準モジュールにウィンドウプロシージャだけ書いて やればいいんじゃないでしょうか?
いや、ユーザーコントロールが作りたいので。basファイルがついてくるので今ひとつ美しくないけど。 コールバックプロシージャー内でWindowを破棄するメッセージを受信したら そのときにサブクラス化解除すればいいんじゃ! と思いついた。 眠いのでひとまず寝よう。
と、試しにユーザーコントロールじゃなくて既存のアプリ内でやってみた。 ばっちりサブクラス化解除されるっぽい。 しかもVBの終了ボタン押しても問題ない。 激しく良いっぽいけど、サブクラス化解除ってFormのQueryUnloadに書く奴ばかり見るな。 問題あるのかな。
あれ、さっきまではサブクラス化解除しないで終了するとVBもろとも落ちたのに今は落ちない。 なぜだ。やっぱだめなのかも。
873 :
デフォルトの名無しさん :03/01/03 01:14
Terminateがちゃんと起きないっていうのがなんか引っかかる。 コントロールの作りに問題はない?
Formはつかうがクラスは使ったこと無いな 必要なかろう
たびたびすいません。 私が他アプリからリストビューの値を取得した方法は まず最初にLVITEM構造体を宣言、 FindWindowで親ウィンドウのハンドルを得て GetWindowでメッセージ・GW_CHILDの後にメッセージ・GW_HWNDNEXTを繰り返し目的のリストビューのハンドルを得る。 SendMessage(ハンドル,LVM_GETITEMCOUNTメッセージ,0,0)で項目数を得られます。 その後、LVITEM構造体の変数を適切に設定し 再びSendMessage(ハンドル,LVM_GETITEM,0,LVITEM構造体変数)を実行、 するとLVITEM構造体変数の.pszTextに項目の文字列が入ります。 これをforループで0から項目数-1まわすとリストビュー内の項目内容が得られます。 ごちゃごちゃしてしまったかな。 「GetWindowでメッセージ・GW_CHILDの後にメッセージ・GW_HWNDNEXTを繰り返す」 っていうところなのですが、 普通、こういう風にして目的のリストビューのハンドルを得るものなんでしょうか・・・
>>866 だから、マルチインスタンス対応がめんどうな罠・・・。
# やったことないけど、昔、VBマガジンの記事で解説されてたなあ。
>>873 どうもコンパイルするときにTerminateイベントが起きているようです。
それ以外の時は特に発生してないようです。
MSDNによると
Terminate イベントは、コントロールが破棄される直前に発生します。
なのですが・・・
さっぱり。
>>874 Formもクラスだ。これを理解できていない香具師は、.NETでこけまくり。
>>877 ユーザコントロールはデザイン時にインスタンス生成されているからな。
デザイン画面で表示するために。なので、そこでTerminateが起きている。
そのユーザコントロールを利用するときにTerminateイベントが起きないなら、
使用しているアプリ側の終了にEndを使ってたりしないか?
End使ってしまうとTerminateイベントは起きないぞ。
ちゃんと全フォームをUnloadして終了しなきゃ。
これに該当しないなら、ようわからんな。何か作り込みでおかしいところがあるはず。
おお、まさにその通り。Endしてました。 なぜEndじゃだめなのかな? ところで、上で書いたサブクラスプロシージャー内でWM_DESTROYWINDOWを検出したらサブクラス化解除 ってのは問題あるのでしょうか?
>>878 ふうん。
ピクチャボックスとタイマーの他にクラスも覚えてみるよ。
882 :
デフォルトの名無しさん :03/01/03 15:31
Endのヘルプ見てみれば一目瞭然だよ。
>>881 クラスの恩恵にあやかっていることを気づくべきだよ。
>>883 見えないフォーム、って感じにしか今は思えないけど、だんだんと覚えていこっと。
画面の最大化をしたいのだけど VB6でローカルパソコンの縦と横のサイズを取得するAPIか関数か方法 はどうするんですか?
ホントですね。Endってちょっと危険ですね。 大抵QueryUnload内の最後にEndを書いていたので今まで特に問題はなかったようです。
ちなみにQueryUnloadは確かプログラムを終了するかキャンセルするかって いうようなコードを書くべきところじゃなかったかな。 リソースの開放や終了処理を書くべきところはUnloadイベントだと思う。 、、、けど、動けばいいんだけどね。
890 :
ななしさん :03/01/03 18:44
ユーザー定義型で動的配列な変数の内容を他のフォームでも使いたいのですが パブリックにしようとするとコンパイルエラーが出て上手くできません。 何か他の変数に代入して受け渡すしか方法はないのでしょうか?
891 :
デフォルトの名無しさん :03/01/03 19:41
892 :
デフォルトの名無しさん :03/01/03 19:48
ここでSQLServerの使い方質問していいですか? どうやってテーブルをつくるのか操作方法がわかりません
>>892 その程度の内容はヘルプにも書籍にも腐るほど書いてありますが、何か?
894 :
まいっちんぐマチコ ◆2gicN.Bep6 :03/01/03 20:09
895 :
デフォルトの名無しさん :03/01/03 20:18
>>890 モジュールで宣言する時、ちゃんと「Type〜End Type」でかこってる?
>>892 アクセスでつくってSS側でインポートしろ
標準モジュールを使いパブリックの宣言をしてみたところ上手くできました。
今までフォームのDeclarationsセクションに書いていました。
>>895 さん助言ありがとうございました。
898 :
デフォルトの名無しさん :03/01/04 00:59
Helpファイル設定してF1でヘルプを出せるようには出来たけど メニューからヘルプ呼び出せるようにする方法がわかりません ヘルプを呼び出すコードとかあるんですか?おねがいします
>>898 Shell_Executeとかで開けば良し。
901 :
デフォルトの名無しさん :03/01/04 01:06
900さんありがとうございます、でもよっくわかりません・・・ たとえばhelp.chmを開きたいときどうしたらいいですか?
>>901 リファレンスも読まない奴は死ぬべきです。
普通にshell関数で開けない?
904 :
デフォルトの名無しさん :03/01/04 01:32
社内用個人データバックアップツールを作ってるんですがoutlook expressの メール格納フォルダのフルパスをVBで取得する方法で悩んでいます。 特殊フォルダのパスを取得するAPIなどをwebで見つけたけどoutlookフォルダ を取得する定数がありませんしレジストリを読もうにも同じWIN2K同士でもレジ ストリのキー名が異なっているためapiに渡す値を決め打ちできません。 なにかよい方法があったらヒントでも教えていただけないでしょうか。 よろしくお願いします。(クライアントOSは98、NT、2000です。)
バックアップを装った・・・
>>904 会社でOutlookExpressなんか使っているなんて考えられない。
バックアップとかその辺も考慮してメーラーを選び直すことを推奨す。
907 :
デフォルトの名無しさん :03/01/04 01:42
905> いや、ほんとにバックアップですよ。単にツールならフリーソフトを使えば よいのですが汎用性が必要とかでやっぱり社内向けにカスタムしたツールを ということなのです。 906> そういうものでしょうか。私は自分の技術はさておいてとても知名度の高い 企業のデータセンタを2社(たった2社ですが)請負いましたが社内ではoutl ookってあたりまえでしたよ。 たしかに某ISPさんではウィルス問題が発生したりしていましたけど。
なんだってドラッグアンドドロップで出来る事をわざわざツール作れって言うかね…。 いじめられてない?
909 :
デフォルトの名無しさん :03/01/04 01:51
ほんとですよね。やりかたをドキュメント(にするほどのものでないけど) にしてサーバーにアップするなりプリントして配布するか、batファイルで すむことなんですけどね。私の説明不足で理解してもらえなかった・・・ ただ、生意気言うようですがお客さんのレベルを考えると仕方ないのかな。 batファイルをダブルクリックしてもらえばよいことなんですけどね。
つか、遠い昔にちょこっと使っただけだから間違ってるかもしれないけど、 9x ならc:\windows\Application Data\Identities\ほげ NT系なら ユーザープロファイル以下の似たようなフォルダをまさぐって*.dbx さがせばいいんじゃないの? 大した処理でもないでしょ。
911 :
デフォルトの名無しさん :03/01/04 01:57
それが全社統一プロジェクトの一環に含まれており部署によってはみなさん 各自格納フォルダを別ドライブ(の任意の場所)に移していたりするので 場所を設定できないかったんです。 それでも先輩諸氏なら大した処理でないんでしょうけども。
913 :
デフォルトの名無しさん :03/01/04 02:10
こんな時間にわざわざ人様にお手数かけてすみません。 早速調査して試してみます。 ほんと感謝します。ありがとうございました。
914 :
デフォルトの名無しさん :03/01/04 02:23
度々ここでお世話になっているものです。 今回は、グラフを作成する際の参照元データの指定法です。 一般的には、Range等を用いて、セル上の数値を元にグラフを作成しますが、VBAのマクロ内で計算した数値を格納した配列を直接渡したいのです。 どうすればいいかわかりません。SourceやRangeの関連は全部調べましたし、持っている5冊の参考書内でもいろいろ探してみたのですが、一向に見つかりません。 おながいします。
915 :
デフォルトの名無しさん :03/01/04 06:10
文字列から特定の文字を区切りに順に取り出していく簡単な方法ありませんか? 今までは ',' カンマを区切りに intTemp = InStr(strData, ",") intTemp2 = InStr(intTemp + 1, strdata, ",") While intTemp2 List1.AddItem Mid$(strData, intTemp, intTemp2 - intTemp) intTemp = intTemp2 + 1 intTemp2 = InStr(intTemp, strData, ",") Wend List1.AddItem Mid$(strData, intTemp) こうやっていたのですが、実は簡単にしかも処理が速いやり方があるような気が してきました。 例えば " " スペースを区切りにTrim$みたいなので抽出していけるようなのとか。 上のやり方でいいですかね?どなたかお願いします。
>>915 Split関数を使うと自動的に配列に区切った後のデータが格納される。
Dim 〜
〜 = Split(String, ",")
>>916 VB6以降じゃないと出来ないと思うが・・・・
>>915 悪くないんじゃない。配列使わない分、Split関数より早そうな予感。
蛇足だけど本格的な.CSVファイルだとSplit関数は使えないんじゃなかろうか。
>>904 まがりなりにもまっとうな情報系の会社はoutlook expressは使わないと思う。
禁止までするかどうかは別にしてなるべく別のメーラー使えというお達しが
でててもおかしくない。
うちなんてWindowsなのにEudoraだぜ?
やっぱり便利な関数あったんですね><
ちなみに環境はVB6です。ListBoxにSortがあるのも知らずに自分でソートの
アルゴリズム加えたりと、ばかやってますw
>>919 Split関数より早いかもということなのでこのまま使おうかと思います。
みなさんありがとうございます。
>>920 それがどう質問の答えになってるんだ?
「バックアップ用ソフトなぞ作らず、他のメーラーを全社員が使うように働きかけろ」
と言っているのか?
まぁまぁ
>>923 はたから見ててもそうだろ。
Outlookはありえないなぁ。
だからそれがどう
>>904 の質問に対する答えになってるのかと。
ついでに言っておくがOutlookとoutlook expressは別物だぞ。
エクスプローラを制御したいときは、 どのdllを参照設定で指定すればいいのでしょうか?
>>914 です。今日も1時間ぐらいいろいろ検索しながら探しましたけど、グラフ用のデータを配列で直接渡す方法が見つかりません。どなたか名案をお持ちではないでしょうか?
929 :
デフォルトの名無しさん :03/01/04 20:34
VBにはC/C++で使う「unsigned」って宣言はないんでしたっけ?
>>928 ご苦労なことだが、ExcelVBAは、ビジネスソフト板に専用スレあるんだが。
>>923 回答以外のコメントを控えろとかいう923の脳内妄想なルールがあるんなら、
おまえもなーとだけ言っておくよ。
>>929 .netは知らないがVB6までには無い。
それで時々えらく苦労する。
糞と言われる原因だな。
双方言いたい事はあるだろうがOEネタは終了で。
>>930 解決できました。要するに、文字列の配列をこんなかんじで作ってあげて、投げればできます。汚いコードですがこんな感じです。
Public Sub CommandButton2_Click()
Dim co As ChartObject
Dim Y As Variant
i = 1
Y = "={"
While i < 5
Y = Y & S(i) & ","
i = i + 1
Wend
Y = Y & S(5) & "}"
Set co = ActiveSheet.ChartObjects.Add(10, 10, 300, 200)
With co.Chart.SeriesCollection.NewSeries
.XValues = Worksheets("Sheet1").Range("A2:A6")
.Values = Y
End With
End Sub
936 :
デフォルトの名無しさん :03/01/05 16:31
クーだら無い質問だけど・・・。 VB6とVB.netって処理速度についてはどうなん?
>>936 どんなアプリでどっからどこまで比較するんだろう。
VB.netはC#.net、C++.netとほぼ同じ。
初回起動は(.NETのランタイムの起動で)遅いが、それ以外は普通。
938 :
デフォルトの名無しさん :03/01/05 19:10
VBでプロシージャ内へのジャンプはGoToですよね プロシージャ外へのジャンプ方法は何なんでしょうか?
>>929 なぜヘルプを読まないの?
(ネタですか?)
>>938 これだからBASIC遣いって奴は・・・
>>938 前者は間違い。そんなのはない。
>GoTo ステートメントの分岐先は、同じプロシージャ内だけです。他のプロシージャには分岐できません。
後者は抜けるという意味なら、Exit Sub/Function/Property。
任意の場所にということなら、そんなもんはない。
質問。 VBからExcel制御する時なんかは、すぐ参照設定するんですけど、 CreateObjectって手もあるじゃないですか。 プロフェッショナルならどっちを使うもんですか? 理由も含めて教えてください。
>>944 参照設定してNewなどでインスタンスを得るときは
Early Bindingで、CreateObjectの時はlate bindingになるの。普通はね。
Earlyの時は事前(コンパイル時とか)に呼び出し先を特定しておき
実行時には呼び出し方を決めうちで行えるの。簡単にいうとね。
それに対してlateの時はそれを実行時に行う。当然lateの方が遅いわけ。
ぱっとみEarlyの方が賢いようにも見えるけどちょっと注意が必要。
決めうちの時は相手の都合を考えてないわけ。
相手がバージョンアップとかしちゃうと、
この決めうちができない場合があるわけさ。
で、プロならどっちを使うかだけど、
そんなのは「最適な方法を使う」に決まってる。
きちんと意味を知って最適な手段を用いるのがプロフェッショナルさ。
>>945 ありがとう。
なるほど。使用環境が固定なら参照設定の方が良いってことですね。
自分で使うシステムですし、Excelはしばらくバージョンアップしないので
とりあえず参照設定でやろうと思います。
ありがとうございました。
プログラム組む時は参照設定して、コンパイル時に外すって手もある。 なんだかんだ言っても、メソッドなんかの自動補完は便利だし。
948 :
デフォルトの名無しさん :03/01/06 01:46
今回、VBで初めて大きめのプログラムを組んでみたのですが、 いざ実行してみるとLoopに対応するDoが見つかりませんと出てコンパイルできませんでした。 DoとLoopの間が長いので(70行ぐらいあります)こう表示されるのだと思うのですが、これを上手く認識させる方法 は無いでしょうか?
>948 一つのループの間に70行書く事の是非はともかくとして、その程度でおかしくなる訳無い。 ループ中の行を全てコメントアウトして、一部ずつコメントを外して動かしてみる等して ホントにDoとLoopが対になってるがちゃんと確認してみれ。
>>949 了解しました。いろいろ試して確認してみます。
デバッグのアドバイス物凄く助かります。
ありがとうございます。
952 :
デフォルトの名無しさん :03/01/06 02:13
>>948 確かに949さんの言われる通り、ひとつのループに70行もあるなら
関数化した方がよいですね。
引数が多い場合はTYPE型を使うのがよろし。クラスモジュールは疲
れる。
>>952 助言ありがとうございます。参考になります。
>>948 で書いたエラーは原因がわかったのですが、その後もエラーの連続で大変な
ことになってきたので、もう少し見やすくなるよう改良してみます。
954 :
デフォルトの名無しさん :03/01/06 06:53
モジュール宣言セクションっていう所で変数を宣言すると どこからでもその変数を使えるそうですがそこがどこだかわかりません 教えてください。
自分の場合Doが見つかりませんって時は大抵End Ifの入れ忘れかなんかだな。
Shift+F2
957 :
デフォルトの七祖さん :03/01/06 11:12
VBとAccessをADOで連携しています。 今、Aというクエリをrec.open みたいな感じで開きました。 その後、1行ずつ条件に満たすかどうか見ていき、満たさなかった場合 その対象行を削除し、次の行を見る・・・ということをやりたいのですが、 対象行を削除してしまうと、再クエリのような操作をしないと、エラーが出てしまいます。 しかし、再クエリをする方法がわかりません。。。 わからないので今は閉じて開く方法で対処してますがあまりにDQNで(泣 どうか力を貸してください。
次スレはまだかな? 次のスレタイのAAはちゃんとしたもの頼むよ。
>>954 「vb スコープ Public」あたりでGoogle。
>>957 削除クエリ(Delete〜)はご存じか。(分からなかったらGoogleへ)
これのWhere句にその条件とやらを指定して実行すりゃ一発でしょ。
ガンガレ。
>>958 アハァでよろ。
>948 ねすと
>>957 閉じる前に再クエリできるかどうかはロックタイプによるんじゃボケ。
そもそも削除してエラーになるところを直せハゲ。
>>959 Delete句で消したあとに、再クエリがしたいのです。
(再クエリしないと、行番号の指定でエラーが発生してしまうようで)
>>962 直そうとしてるから聞いてるんですよう・・・(泣
Do loop クエリの最終行まで
a.execute "delete 〜"
rec.movenext
クエリを閉じる
クエリを開く
loop
のような感じです。
クエリを閉じる開くの部分を、再クエリに変えれば、うまくいくような気がするのですが・・・
初心者ですいません。
do until でした すいません・・・
>>963 rs.EOFなのにDeleteしてる可能性がある。
キミは一回削除したあとに、さらに全データを一番上から見ていって削除、またまた一番上から見ていって削除、という気配がただようが、1回上から下までデータベースをmovenextしただけでバッチシ目的を達成できんのか?
967 :
デフォルトの名無しさん :03/01/06 15:43
>>963 a.execute "delete 〜"ってしたら
recが持ってる内容と実データが違っちゃうでしょ。だからエラーになるのさ。
a.execute "delete 〜"じゃなく
rec.deleteとしよう。
でも
>>959 も言ってるように、execute "delete 〜"のやりようによっては
ループ無しで一発で処理できる。recなんてのもいらない。
こっちの方が圧倒的に処理が速い。
さっそく957はSQL文を修正しなさい。
なんか、>963見てると、 少し前に、where句もも知らないのに、SQLを極めていると豪語していた20年選手のヲサーン・プログラマを思い出すよ。 select文で全レコード引っ張ってDo〜Loopで回して選別してたのを。 しかも、1つのテーブルから所定のレコードセット作るだけで、丸3日工数かけやがった(w なんで、そうなの??と思ってたけど、963みて思わずそのときのことを納得しちゃったよ(w
オレ様の答えられるような質問がねえからツマンネ
>>963 でのレスに意義。
漏れが
>>959 で一発でしょ、と書いたのに、まだループしようとしてるのにイラっときた。
Where文で条件指定しると書いたのは、その条件にヒットしたレコードが全て消えると
いうことだ。全て消えるのなら1行ずつループして確認など必要ないことを読みとれよ。
どんな複雑な条件でもやろうと思えば2つ3つSQL発行すりゃ書けるだろ。
今、VBの入った環境がなくて確認がてら質問させてください。 VB5で作られたソースがあるのですが、これをVB6で開いて編集することは できますでしょうか。 よろしくお願いします。
976 :
デフォルトの名無しさん :03/01/06 21:42
VBでCADみたいなのを作りたいと思うんですが 曲線の描き方とか詳しく載ってる参考書あったら 教えて欲しいです おながいします。
>>976 リアルなアドバイスですが、そのレベルならやめた方が良いんじゃ?
978 :
デフォルトの名無しさん :03/01/06 21:52
>>977 一から始めたいんです。
初めて作るプログラムで、本を色々物色したんですが
絵を描くのはLineかCircleくらいしか載ってないんで
困っています。
スプライン曲線とかベジェ曲線とか描き方載ってるやつ
ないでしょうか。
979 :
デフォルトの名無しさん :03/01/06 21:58
980 :
デフォルトの名無しさん :03/01/06 22:11
>>978 数学の理論をLineとCircleで実現するだけだろ。数学の本を探すべし。
982 :
世直し一揆 :03/01/06 22:16
<血液型A型の一般的な特徴>(見せかけの優しさ(偽善)に騙されるな!) ●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い) ●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ) ●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする (ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けている) ●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本の常識は世界の非常識) ●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く、弱い者には強い) ●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす) ●基本的に悲観主義でマイナス思考に支配されているため、性格がうっとうしい(根暗) ●一人では何もできない(群れでしか行動できないヘタレ) ●少数派の異質、異文化を排斥する(差別主義者、狭量) ●集団によるいじめのパイオニア&天才(陰湿&陰険) ●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい) ●他人からどう見られているか、体裁をいつも気にしている(「世間体命」、「〜みたい」とよく言う) ●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度も言う、知障) ●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い) ●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う) ●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬する(不合理な馬鹿) ●執念深く、粘着でしつこい(「一生恨みます」タイプ) ●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷) ●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(他人をけなして相対的に自分の立場を引き上げようとする等)
983 :
デフォルトの名無しさん :03/01/06 22:17
>>980 ありがとうございます。
じっくり読んでみます。
>>981 ありがとうございます。
数学の本は見てはいるんですが
もう少しプログラムに近い本はないかなと
思いまして。
>>983 すいません。GDIってよくわかりません。
調べてみますが。
今動いてるシステムの改修で、環境は NT4+VB4+MDB(DAOでアクセス) で、ある一台のマシンでだけ動作しない。 DB検索しに逝って、項目参照する個所で 「このコレクションには項目がありません」 と来る。 NGなのは日本語の英字大文字の項目 EX) "ABC−NO" こんな経験ある人(・∀・)イナイ!?
そのマシンだけiniファイルが古かったとかそういうのはあるけどね。 同じマシンのAccessから同じSQL投げてどうなるか気になる。
>957 再クエリ=Requery
>990 あ、わり。 全然読んでなかった。 流してくれ。
>>989 iniファイルって、windowsの(・∀・)iniファイル!?
>>987 >数学の本は見てはいるんですが
>もう少しプログラムに近い本はないかなと思いまして。
数学の考え方をプログラムにすることがプログラミングだ。
それを他人任せにしたり楽したいなら
厳しいようだが君には適性がない。やめろ。
スプラインにしろベジェにしろ、直線で近似させて描画させればいい。
(点で書いていってもいいけどな)
直線は2点を求めればいい訳だが、これは数学を「使え」。
後はLineで書いていけばいいだけ。
994 :
978 超初心者 :03/01/07 01:02
>>993 ありがとうございます。
おっしゃることはよくわかるんですが
とりあえず何をどうしたらいいのかも
よくわからないんで見本になるような
ものはないかな?と思って探しているんですが
なかなか難しいです。
>>992 いや、全然そんなんじゃなくて。
普通に開発中のアプリの設定ファイルの更新忘れの話。
>>994 980が提示してくれてるページは見たのか?
997 :
978 超初心者 :03/01/07 01:16
>>996 はい。
こうゆう例が色々載った本とかないでしょうか。
これをよく読んで研究してみたいと思います。
ありがとうございました。
>>997 980のページの一番下に、こういうのがあるが?
>他の曲線(NURBSを除く)の描画に関しては,下記書籍が参考となる.
>佐藤義雄「実習グラフィックス」アスキー出版局 1850円 但し言語はN88-BASIC
1000 :
デフォルトの名無しさん :03/01/07 01:22
あ、1000ね
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。