(*´д`*)ウッ… VB初心者質問スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
0001エロチカセブン
NGNGPart 2 http://piza.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/test/read.cgi/tech/1026642565/
Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Win32 API関連スレ
Win32API 質問箱 Build4
http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0219デフォルトの名無しさん
NGNGなあVB初心者スレだぜ。
0220デフォルトの名無しさん
NGNGだからなに?
0221デフォルトの名無しさん
NGNG人工無能ですか?
0222デフォルトの名無しさん
NGNG質問に答えるのを拒絶したか。答えられないなら別にそれでいいがね。
0223デフォルトの名無しさん
NGNGコマンドまたはファイル名が違います.
C:\>
0224デフォルトの名無しさん
NGNGを作っています。
おもに、IIS上のASPからCreateObjectで関数を呼び出して使うた
めです。その関数は、別のWebサーバへHTTP通信をして値を取得
するという動作をします。
HTTP通信をするためにWinsockコントロールを使用しました。開発環境
(Windows2000)では動作しましたが、それをWindows2000Server上
で動かそうとするとWinsockのConnectでコケてしまうんです。
セットアップ媒体を作成したり、ocx周りの不足は散々確認したのですが
どうしても動きません。同じソースをNT4.0Server上で展開してステップ
実行して確認すると動作します。pingも通ります。他のコントロールは
使っていません。
なにか考えられることはありませんか・・・。
0225224
NGNGしまうと言うことです。
0226
NGNG初心者ですが、何か?
0227デフォルトの名無しさん
NGNGお前、ふぅ?
0228FIGHT
NGNG表示をさせております。
例)
+神奈川県
+蒲生町
+米五町
+東京都
+安芸町
+三輪町
のように上記のようなデータがあるとします。(100件ほど上記のデータが続きます)そこで検索
の画面をだして該当する場所を指定したいのです(カーソルが移る)「神奈川県」の「米五町」を指定
させた場合そこの階層が開いてわかるようにしたのです。何かよい方法はないでしょうか?
サンプルなどがあればそこのHPなども紹介して欲しいのですが・・・。
よろしくおねがいします。
0229
NGNG町名が 複数ある場合は、どうするんだ?
0230FIGHT
NGNGユーザー側に検索させる時は、「県」と「町名」を必ず指定させます。
町名の重複はあっても県名の重複はないですよね。
0231
NGNG東京は
東京都なんとか区なんとか 1−1−1
というふうに 町名がつかない場合がある。
神奈川県なんとか市なんとか町 なんとか 1−1−1
というパターンもある。
また、田舎だと
なんとか県なんとか郡なんとか町なんとか大字なんとか小字なんとか 1
とかいうのもある。
つーか
配列に 階層に入ってるもの(入れるときに)別に入れてやって
その配列で、何番目か調べて 開けばいいじゃん。
っーか TreeViewの何番目を開けってのは知らん(爆)
0232?
NGNGツリービューにノードを追加する時にキーを設定する。
キーは検索入力させるデータ("神奈川県米五町"など)と同じにする。
あとは検索画面(テキスト検索ならInputBoxでいいんじゃない)を表示して
その返り値をtre.SelectedItem = tre.Nodes("神奈川県米五町")って感じにすれば出来上がり。
0233デフォルトの名無しさん
NGNG0234FIGHT
NGNG>232
なるほどそういう手もありますね。
早速参考にさせていただきます
ご教授ありがとうございます。
>233
えっと、中島みゆきの歌の「ファイト」ですかね?
ギリギリわかりました。ちょっとかんがえてしまいました。
結構古い歌ですね。なつかしい。ちなみにオタではありませんyo。
0235?
NGNG存在しないキーを指定した場合はエラーになるのでその対応も忘れずに。
0236デフォルトの名無しさん
NGNGキー文字列には罠があるので注意。勝手に文字の同一視したりする。
できればHexエンコードなどを行った方が安心。
0237?
NGNGTreeViewを追加すると自動的に追加された順番でインデックスが付加されます。
後は同様にtre.SelectedItem = tre.Nodes(インデックス)って感じです。
0238?
NGNG0239
NGNG追加する件数が多いので、ListBoxの表面に出てる部分の数を追加した
時点で、一旦表示したいんですが、可能でしょうか?
なお、表示後、listbox1.AddItemを 続けます。
0240224
NGNG同じクラスをPrivateにしてexeを作成したら
アッサリ動作しました。ActiveXDLLではダメな
ようです・・・。
0241デフォルトの名無しさん
NGNGそれでなんですが表示されたページの懸賞などの入力フォームなんかに自動入力させたいのですが
教えてください、お願いします
0242デフォルトの名無しさん
NGNGコモンダイアログで選択した複数のファイルを、
1つずつ取り出したいのですが、うまくいきません。
実際、選択したファイル群は、
"パス ファイル名1 ファイル名2 ・・・"
のようにスペースで区切られた形で取れるのですが、
Split関数を使って以下のようにしたいのですが、だめでした。
(1番目の配列にすべて入っています・・・)
F() : 配列
Files : ファイル群
F=Split(Files," ")
Split関数の使い方の間違い、またはその他のよい方法がありましたら
お教え願います。
0243デフォルトの名無しさん
NGNGそれホントに半角スペース区切り? NULLだったりしない?
コモンダイアログコントロールは使ったこと無いから知らないけど、
APIならNULL区切りだから、Split(Files,vbNullChar)ってやらなと
駄目だと思うが。
0244
NGNGスペース区切りだったら C:\My Documents や C:\Program Filesは
どうなる?
0245デフォルトの名無しさん
NGNG君の文章には「何を」という言葉がぬけているぞ。
0246デフォルトの名無しさん
NGNGロングファイル名を有効にするフラグを立てた場合はNULL区切り、
無効にする場合はスペース区切りだな。
ちゃんとコモンダイアログのヘルプ(Flags プロパティ)に載ってるよ。
APIの場合でも同様だな。
0247241
NGNG自動入力させたいのは、iniファイルから読み込んだデータです。
懸賞なんかであれば名前や住所などです。
では改めてお願いいたします。
>245さん、ご指摘ありがとうございます。今自分で文章読んでみてアホだなと思いました。
0248242
NGNG---
[ファイル名]ボックスで複数のファイルを選択できるようにします。
ユーザーは、実行時に Shift キーと上下の方向キーを使って複数の
ファイルを選択できます。
複数のファイルが選択されると、選択されたすべてのファイルの名前を
含む文字列が FileName プロパティに設定されます。
FileName プロパティの文字列内のファイル名は、スペースで区切られます。
---
のようになっています。
特にスペースとしかかかれていません。一応全角、半角、space(1)で
確認しましたがだめでした。
実際の戻り値は、debug.printしたところ、
C:\Documents and Settings test.txt test2.txt
のようになっています。
C:\Documents and Settingsの部分はどうなるんでしょう?
0249242
NGNG>>246 さん
cdlOFNLongNamesを設定して、vbNullCharでSplitできました。
ありがとうございます。
>>244 さん
実際上記の方法で取得したときには、
1番目の配列 "C:\Document and Settings"
2番目の配列 test1.txt
・・・
となりました。
0250デフォルトの名無しさん
NGNG>>248のMSDN、下の方の「解説」の部分にちゃんと書いてあるので読んでおくよーに。
もしかしたら、OSのバージョンなどでcdlOFNLongNamesかcdlOFNExplorer
あたりが勝手に立ってしまうことがあるのかもしれない。無いかもしれないが。
0251?
NGNGRefresh(かDoEvents)すればいいんじゃないかな。
でもひとつ追加するたびにRefreshするととても遅くなるので
ループカウンタがいくつになった時、とかにすればいい。
もしくはループを分割してしまえばループ内で分岐判定する必要も無くなる。
コード汚くなるけど。
0252
NGNGそのボックスに表示できる数にいったら、一旦 Refreshさせてるけど
ダメなようです。
その後は、Refreshさせてませんが。
0253デフォルトの名無しさん
NGNG0254
NGNGああ なるほど!
DoEventsでokだ。
さんくすこ
0255
NGNGRefresh(かDoEvents)って 書いてあったらから 同じもんかと
思っちゃったヨ!
Delphiだったら どうやったらいいか知ってたんだけどね。
VBは あんましやってなかったからさ。
おかげで 表示が 速くなったヨ。
0256デフォルトの名無しさん
NGNGConnectionRequestイベントの中で、acceptしたあと、
すぐにErrorイベントが2回続けて発生することがあるんですけど。
エラーの内容は、エラーコード=10053 「タイムアウトまたは他の問題によって、接続が中断されます」。
具体的になにが原因なのでしょうか?
0257デフォルトの名無しさん
NGNGランタイムやコンポーネント(ocx)などは、
そのLAN上のマシンから読みとられるんですか?
それとも起動したマシンから読みとられるんですか?
0258
NGNGlRtn = SetWindowPos(form1.hWnd, -1, 0, 0, 0, 0, &H40)
これで 最前面に表示させようとしてますが、
実行すると タスクバーにもうひとつバーが表示されて
ほかの画面をクリックすると それが 最前面になってしまいます。
常に 最前面にするには どうしたらいいのでしょうか?
0259デフォルトの名無しさん
NGNGよみとられません。
0260デフォルトの名無しさん
NGNGサーバーアプリはVBじゃないほうがいいと思う
0261デフォルトの名無しさん
NGNGPrivate Const HWND_TOPMOST = -1
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE
多分、SWP_NOMOVEとSWP_NOSIZEを入れてないせいでしょう。
0262258
NGNGとやったら OKでした〜〜
ActiveX DLLだと Form1のハンドルという取得の仕方ができないらしい
0264デフォルトの名無しさん
NGNGMDBへのデータ登録を行い、
登録が上手く行ったら
その画面(frmAA)のForm_Load処理を通すようにしたいんですけど、
その場合、
unload me
frmAA.show
と書く以外に良い方法ありますか?
0265デフォルトの名無しさん
NGNG単純にForm_Load呼び出したら?って言うかその仕様妙かも。
0266デフォルトの名無しさん
NGNGあるレコードのフィールドAが更新されたら、その値に応じてフィールドBを更新しようと、
FieldChangeComplete イベント内に
pRecordset.files("B").Value=hoge
と言うコードを書いたのですが、「コンシューマのイベントハンドラはプロバイダの再
入不可能なメソッドを呼び出しました」となりうまくいきません。WillChangeFieldイベ
ントでも同様でした。
いい解決方法があれば教えていただけませんか。
OLD DB Provider は ODBC 、サーバはPostgreSQLを使用しています。
0267デフォルトの名無しさん
NGNG無視されてかわいそうだから教えてあげる。
でもその手の垢取りツールまがいのものはあんまり好まれないから
こういう場で堂々と質問するのはちょっとマズったね。
それで、質問についての回答だけど。
ずばり、良い方法は無いと思って良い。俺も前やったことあるので。
無理矢理やるなら、WebBrowserコントロールにフォーカスを当てて
SendKeysでTabキーを送ってやれば、WebBrowser内で次のフォームか何かにフォーカスが移る。
そうして{TAB}{TAB}{TAB}{TAB}とやっていって、入力欄にフォーカスが行ったら
これもスマートな方法じゃないが、一旦入力したい文字列をクリップボードにコピーし
SendkeysでCtrl+Vを送る。(貼り付け)
こうすることでWebBrowserのフォーカスのある項目に文字列をセットできる。
次の項目にまた文字列を入れたい場合は、一旦クリップボードの内容をClearしてから
その項目に入れたい文字列をクリップボードにまたコピー、SendKeysでCtrl+V。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGわかる方教えてください。お願いします。
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG受け取ったHTMLのStringを解析し、
input タグ内の value プロパティを任意の文字列に入れかえたHTMLを表示ってのが好きそうなやりかただけど。
何に使うのかわからないけど、決まりきったフォーム内容なら
最初からPOSTメソッドを作成して送るほうが手っ取りばやいと思うけど。
その場で図書券のスリーマンモスの時はそれにしたなぁ(藁
クッキーデータも取得して作成しなければならなかったけけど。
0272デフォルトの名無しさん
NGNGユニックスタイムスタンプみたいに、
通算秒にできればいいんですけど。
TIME$ でふたつの時間さを求めるには、秒や分が60までしかなかったり、
23の次が0だったり、
2月が28や29だったり30や31の月があったりするところで大変なので。
0273271
NGNGまたは、onLoad関数に、
document.forms[0].name.value='hoge'
とかいうのを付加してHTMLを表示させるとか。
0274デフォルトの名無しさん
NGNGtimerじゃだめなのか?
0275デフォルトの名無しさん
NGNGDirectXとか使わないと無理なんでしょうか?
0276デフォルトの名無しさん
NGNG0277241
NGNGお二方ありがとうございます!!
>でもその手の垢取りツールまがいのものはあんまり好まれないから
>こういう場で堂々と質問するのはちょっとマズったね。
なるほどそうだったんですか・・。大変勉強になりました。
では、早速両方の方法で試して見ます。本当にありがとうございました!!
0278デフォルトの名無しさん
NGNGTime関数から時分秒がわかるから、後は掛け算足し算だけじゃん。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG煽りで程度がわかるな。
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGできます。
0284初心者
NGNGフォーム上にコントロールがいくつかある時、現在フォーカスを持っている
コントロールは Screen.ActiveControl で確認できますが、
「今現在の"一つ前"にアクティブだったコントロール」を取得するにはどうしたらよいですか?
グローバルな変数を用意して、全てのコントロールの LostFocus 時に
コントロール名を保存しておく……と、これくらいしか思い浮かびません。
よろしくお願いします。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGなんでそんなものを取得したいの?
何をやりたいのかわからんけど、
たぶん別のアプローチで解決できると思うよ。
どうしても!ってことなら、
サブクラス化とかで方法がない訳でもないだろうけど。(思いつき発言)
一つ前のアクティブコントロールなんて
普通必要がないから簡単に取得できないんだと思わない?
0287284
NGNGありがとうございます。
一つ前のアクティブコントロールを取得したい訳は、
「あるボタンが押されるとある処理が走るが、それがエラーになった場合、
フォーカスを元の位置(ボタンをクリックする前の位置)に戻したい」
という仕様にしたいのです。
別のアプローチとはどういうことでしょうか。
0288デフォルトの名無しさん
NGNG「状態」を保存しておく変数をひとつ持ってそれをもとにアクティブにするコントロールを割り出すとか。
各コントロールの状態からアクティブにすべきコントロールを返す関数を用意しておくとか。
いろいろあるじゃん。
0289デフォルトの名無しさん
NGNGタイマーコントロールでグローバル変数にアクティブコントロールを
保存しとくってのがVB房らしくていいぞ
0290デフォルトの名無しさん
NGNGタイマーコントロールで1秒おきにグローバル変数にアクティブコントロールを
保存しとくってのがVB房らしくていいぞ
0291284
NGNGありがとうございます。
>「状態」を保存しておく変数をひとつ持って〜
つまり、状態Aならこれ、状態Bならこれ……という感じですかね。
その状態の"変化"を感知するにはやはりすべてのコントロールのイベントプロシージャが
必要になってくるのかな、と思いますが、どうでしょうか。
>各コントロールの状態から〜関数を用意しておく
その関数内ですべてのコントロールを調べて該当のものを返す、と。
つまりコントロールになにかしらの目印(フラグ)が必要になってきますね。(Tagプロパティを使ったり)
だとするとやはり、各コントロールのイベントプロシージャを記述する必要が……(?)。
0292284
NGNGありがとうございます。
タイマーを使うとは考えつかなかったです。
確かにこれで要件は満たせそうですが、極力無駄なイベントを発生させたくないのと、
タイマーコントロールは規約で使用不可だった気が……スイマセン。
0293デフォルトの名無しさん
NGNGタイマーはおそらくネタだから無視しろ。
0295デフォルトの名無しさん
NGNGUNIX時間が欲しいなら、
UnixTime = DateDiff("s", #1/1/1970#, dateVB) - 32400 'JST-9
で取れる。
0296?
NGNGフォーカスの移動自体を無くせばいいと思います。
イメージコントロールはフォーカスを取得しないので、
押されてない状態のボタンの絵と押された状態のボタンの絵を
イメージコントロールで切り替えてそれをコマンドボタンの代わりにすればよろしいかと。
0297デフォルトの名無しさん
NGNGネタじゃねーぞ
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNGマジだったのか。これだから VB 厨は...。
0300デフォルトの名無しさん
NGNG歴代1位の厨は誰ですか?
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGどうやれば出来ますか?簡単には出来そうもないので質問してみます・・・
0303デフォルトの名無しさん
NGNGお ま え
0304デフォルトの名無しさん
NGNGタイトルバーなしにして、自分で描画すればー。
0306284
NGNGありがとうございます。
イメージを使った「偽コマンドボタン」ですか。
おもしろいかもしれませんね。
結局、「一つ前のコントロールにフォーカスを移す」仕様はやめました(笑)。
そこまで要求されませんでした。
皆さんありがとうございました。
0307デフォルトの名無しさん
NGNGピクチャーボックスで文字を表示してるのですが、
ピクチャーボックスに自動改行機能を付けるには
どうしたらいいのでしょう?
それと、適当な文字が左から何ドット上から何ドットの
位置にあるか取得できたら、自動改行ができるような
気がするのですが、取得方法はありますか?
0308デフォルトの名無しさん
NGNGプログラムしろよ!
なにかわからないところがあるならそれを質問しろ。
0309?
NGNGキーボード操作なんて簡単に実装できますよね?
>>299
タイマー使うのそんなに実害あるかな?そんな事より、
使う使わないはともかく、一番短いコードで実現できる点を評価したい。
自分じゃ何も思いつかない能無しが見当違いの煽りしてんじゃないよ。
とかたまには言ってみたりしていいですか?
>>301
別の人ですね。今のところ?はこのスレでしか使ってないです。
でもあのドラマは何回か見ましたよ。面白かった。
0310デフォルトの名無しさん
NGNGTextWidthで文字幅がわかるから、文字の描画位置は自己管理しる。
0311310
NGNG03121
NGNGたとえば、Foo = "ABC" & vbCrLf & "DEF" & vbCrLf の場合の、
Perl で言うところの chop Foo や、Foo =~ s/\n$// です。
0313312
NGNG0314デフォルトの名無しさん
NGNGhoge = Replace(hoge,vbCrLf,"")
じゃ駄目なの?
0316デフォルトの名無しさん
NGNGあぁ、なるほど。
If Right$(hoge,2)=vbCrLf Then
hoge = left$(hoge,Len(hoge)-2)
End If
ってやって地道にやるしかないよーな…。
0317デフォルトの名無しさん
NGNGhoge = Left(hoge, Len(hoge) - 2)& Replace(hoge, vbCrLf, "", Len(hoge) - 1, 2)
か?
■ このスレッドは過去ログ倉庫に格納されています