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

(*´д`*)アハァ… VB初心者質問スレ Part18

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
  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/
  Part14 http://pc3.2ch.net/test/read.cgi/tech/1030947162/
  Part15 http://pc3.2ch.net/test/read.cgi/tech/1032706491/
  Part16 http://pc3.2ch.net/test/read.cgi/tech/1034302532/
  Part17 http://pc3.2ch.net/test/read.cgi/tech/1036154952/

Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0153デフォルトの名無しさんNGNG
>>152
サンクス。やる気出た。
出来る限り探してみるよ。
0154デフォルトの名無しさんNGNG
2つのデータファイルを1行ずつ比較し、
合致しなかった箇所だけを書き出すプログラムを作りたいのですが、
どのような手順で考えていけばよいでしょうか。
あしがかりだけでも教えていただきたいのですが。
0155デフォルトの名無しさんNGNG
>>154
片方配列にでも格納して比較しる。
0156デフォルトの名無しさんNGNG
fc.exeを呼び出すとかさ。
0157デフォルトの名無しさんNGNG
>>156
ソレダ(・∀・)
0158156NGNG
行の挿入や削除などの処理も必要なら少々複雑になるから、156が一番手っ取り早いんだけどね・・・
"Diff アルゴリズム"で検索すれば色々あるとおもうY0
0159デフォルトの名無しさんNGNG
フィリピン青年、JPEG ウイルス作成者と名乗る

>地元の業者から購入した Microsoft Visual Basic 6 を使って、
>同ウイルスを作成したとしています。
http://www.sophos.co.jp/virusinfo/articles/perrun2.html

VBはウィルス作成も可能です。
0160デフォルトの名無しさんNGNG
>>159
C++やJavaでもウイルスは作成可能。
VBもまともなプログラム言語なんだから当たり前。
0161デフォルトの名無しさんNGNG
初心者の範疇にも入らないような質問ですまんのですが、
ボタンを奇数回押すとtrue、偶数回押すとfalseの値を返すには?
0162デフォルトの名無しさんNGNG
>>161
Bool型Flagでもたてれ。
押すごとにTrue、False切り替え。
0163デフォルトの名無しさんNGNG
フォームに一つしかコマンドボタンが無い場合、
Enterキーとスペースキーを押すとCommandX_clickが呼び出されますよね?
CommandX_clickを呼び出したくない場合はどうすればいいのでしょうか?
0164デフォルトの名無しさんNGNG
他に方法がありゃいいけど、、、
・TABストップをFalse
・ダミー用のコマンドボタンを画面外に作成
・そっちにフォーカスあたえておく
0165デフォルトの名無しさんNGNG
>>163
Windows辞めれ。
0166sakuraNGNG
またお邪魔します
教えてください

inet1を使ってFTP処理で
送信方法をバイナリ形式に変更したいのですが、

Inet1.Execute , "BINARY"

Do While Inet1.StillExecuting
DoEvents
Loop

これでは、下のループをグルグル。。。。
記述に間違いがありますか?
よろしくお願いします

おわり。
0167デフォルトの名無しさんNGNG
Inet1.Execute , "BINARY"の次の行に行ったということは、
BINARYに変更し終わってるんじゃないの?
エラーならエラーイベントおこるだろうし。
0168デフォルトの名無しさんNGNG
どんな状態になっているか、目で見てはいかが?
BlackJumboDogなどのプロクシーでも入れて、状態が表示できるように。
0169デフォルトの名無しさんNGNG
うちのMSDNには引数operationの有効なFTP設定値に、BINARYが見当たりませんが?
0170デフォルトの名無しさんNGNG
OpenURLメソッドの使用例をどうぞ>>166
0171デフォルトの名無しさんNGNG
コンボボックスに1〜100までの数値をいれて
Text1とコンボボックスの数字を足して
結果をText2に表示しようと思い下記のようなものをつくったのですが
うまくいきません

Text2.Text = Val(Combo1.AddItem) + Val(Text1.Text)

どこをどのように変えればよいでしょうか?
アドバイスお願いします。
0172デフォルトの名無しさんNGNG
AddItemの使い方を調べれ
0173sakuraNGNG
みなさん、回答ありがとうございました。

OpenURLを使用して、無事にバイナリでの送信に成功しました。
ありがとうございました。

また、お願いしますね。

おわり。
0174sakuraNGNG
VB6.0ってC++のSTLにあるような
mapクラスみたいなのってありますか?
0175デフォルトの名無しさんNGNG
>>174
Collection Dictionary で足りる?
0176デフォルトの名無しさん NGNG
VB6.0でformにLabelをダイナミックに(iが1なら1個)
作成することは可能でしょうか?

もしくはコードでLabelが作れますか?
0177デフォルトの名無しさんNGNG
>>176
Label1(0)を作っておいて、
Call Load(Label1(1))
Label1(1).Visible=True
などとする。
動的にコントロールを作り出す関数もあったはずだが、
今ちょっと名前が出てこない。誰かほかの人よろしこ。
0178なNGNG
>>177
Controls.Add かな
0179デフォルトの名無しさんNGNG
>>178
あ、それだ。サンクスコ。
一応サンプルコピペしとくか

Option Explicit
' オブジェクト変数を CommandButton として宣言します。
Private WithEvents cmdObject As CommandButton

Private Sub Form_Load()
Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne")
cmdObject.Visible = True
cmdObject.Caption = "動的 CommandButton"
End Sub

Private Sub cmdObject_Click()
Print "これは動的に追加されたコントロールです。"
End Sub
0180デフォルトの名無しさんNGNG
VB6でトグルボタンを使ってラジオボタン(?)を作りたいのですがうまく行きません。
トグルボタンを何個か並べておいて押したヤツがtrueになって他のは全部falseになる形です。
ボタン並べてこんな風に書いてみたのですが、、
Private Sub ToggleButton1_Click()
ToggleButton1.Value = 1
ToggleButton2.Value = 0
End Sub
Private Sub ToggleButton2_Click()
ToggleButton1.Value = 0
ToggleButton2.Value = 1
End Sub
「実行時エラー28 スタック領域が不足しています」のエラーになります。
ヘルプとか見てみたのですが、押されたボタン以外のValueを変更した時に
変更されたボタンにClickイベントが発生して・・・みたいな感じで無限ループに
なってるような感じがします。(違うかもしれませんが)

何かヒントでもお教えいただければと思います。
トグルボタンはMicrosoft Forms 2.0 Object Libraryのを使ってます。
0181デフォルトの名無しさんNGNG
>>180
そもそもMicrosoft Forms 2.0 Object Libraryって
勝手に使っちゃまずかったような。
それはおいといて、Value値を変えてる最中かどうか
フラグ立てでもすれば?
0182デフォルトの名無しさんNGNG
>>180
つーか、標準のオプションコントロールじゃだめなの?
ちなみに、チェックボックスでは Value を vbUnChecked → vbCheckedにすると
Clickイベントが発生するから似たようなことが起きてんじゃないかな(未確認)
0183デフォルトの名無しさんNGNG
>>181
Microsoft Forms 2.0 Object Libraryって使ったらまずいのですか?
ExcelなんかのVBAでは当たり前のようにトグルボタンがあるのですが
VBではかなり探さないと見つからなかったので変な気はしたのですが・・・
フラグ立ては・・・なんかうまくいかなかったのでもう少し努力してみます。
>>182
標準のオプションコントロールで作ってたのですけどね・・・
年配の方が使うものでして「どれが選択されてるのかわかりずらい」
「押しにくい」という意見が殺到しまして。
言われてみればそうかも?と思って作り変えようとしたらこのざまです。
0184デフォルトの名無しさんNGNG
>>183
Microsoft Forms 2.0 Object Library は Office とかに付属しているもので、
VB 標準ではなかったと思う。
0185デフォルトの名無しさんNGNG
Private InOwnChanging As Boolean
Private Sub ToggleButton1_Click()
If InOwnChanging Then Exit Sub
InOwnChanging = True
ToggleButton1.Value = 1
ToggleButton2.Value = 0
InOwnChanging = False
End Sub
...

すぐに思い付くのはこんなもんか?
0186デフォルトの名無しさんNGNG
>>183
超FAQ
見飽きた。ウンザリ。
0187デフォルトの名無しさんNGNG
VB6+ActiveReport1.5で帳票を印刷したいのですが
余白の設定をするにはどうすれば良いでしょうか?

PrinterオブジェクトのScaleTop等を変えれば良いと思うのですが
それをActiveReportに認識させる方法がわかりません...
0188デフォルトの名無しさんNGNG
コマンドボタンで、1回クリックするとへこんで、
へこんだ状態のをクリックすると元に戻るやつってどうやってるんすか?
ひょっとしたらコマンドボタンじゃないのかな。
0189デフォルトの名無しさんNGNG
>>188
チェックボックスのスタイル変更してみ。
0190デフォルトの名無しさんNGNG
>>189
おおー、初めて知った。ありがとうございます。
0191デフォルトの名無しさんNGNG
>>187
ActiveReportsのPageTopMarginとかを変えるのでは駄目?
0192183NGNG
>>186
すみません、過去ログはいろいろ漁ってみたのですが・・・
っていうか、、189の応用で解決!!
あほくさ、、こんなことで悩んでたなんて。
ともかく皆さんありがとうございました。
0193デフォルトの名無しさんNGNG
ADODBを使って自己満足ツールを作ろうと思います。
ADODBのメソッド・プロパティ一覧とカンタンな説明ってどこかにないでしょうか?
例えば、"Connection String"とか"MoveNext"とか・・。
なければ、誰か作ってください。どうか、よろしくおながいします。
0194デフォルトの名無しさんNGNG
>>193
>なければ、誰か作ってください。
この常識外れな一言さえなければ、おまえ、幸せになれたのにな。
0195176NGNG
>177-179
たすかりました どうもですm(__)m
019654NGNG
>>65
またまたこんな続きまで書いてもらっちゃって。
うん、やっぱりファイルネームのパラメーターは渡したいなと思ってた。
今からコレ試してみるよ!
何から何まで、ホントにありがとう!!
0197デフォルトの名無しさんNGNG
>>194

──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────
0198デフォルトの名無しさんNGNG
↑
あなたの想像以上に、VB.NETのスレと両方見てる人はいますよw

さ、次の質問者の方どうぞ
↓
0199デフォルトの名無しさんNGNG
>>198
──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────
0200デフォルトの名無しさんNGNG
>>197 >>199
2ヒキ ツレマスタ
0201デフォルトの名無しさんNGNG
とりあえず謝っとく。
正直、すまなかった。
0202デフォルトの名無しさんNGNG
>>183
いずれかを選択させたければ、オプションボタンのStyleプロパティを"1"にする。
複数選択させたければ、チェックボックスのStyleプロパティを"1"にする。
「Microsoft Forms 2.0 Object Library(FM20.DLL)」は、Microsoft Officeの
コンポーネントで、単体では再配布できない。
つまり、コイツを使って開発したアプリは、Officeのインストールされていない環境では動かない。
0203デフォルトの名無しさんNGNG
193=194=197=198=199=200=201=203

すべて僕のジサクジエンですた。
ごめんね〜
0204デフォルトの名無しさんNGNG
1=2=3=4=5=6=7=8=9=10=11=12=13=14=15=16

0205デフォルトの名無しさんNGNG
>>1-1000
──■──■──────■─────────■────────────
─■─■─■────■■■■■─────■■■■───────────
■■■■─■■■■───■──■■─────■─■■■■──■■─■■
──■─■───■───■─■──■───■──────■─■■─■■
■■■■────■───■■───■───■─────■───■■■─
──■──■──■──■■────■──■───■──────■■■─
■─■■──■─■─■─■────■──■──■────────■──
─■■─────■───■────■─────■────────■──
■■────■■────■─────■─────■■■■■──────
0206デフォルトの名無しさんNGNG
VBスクリプトの正規表現について質問です。

<dt>100 ...<dt>101 ...<dt>102 ...<dt>103 ...(続く

とある形式から、たとえば「101」のDTを検索したい時に
"<dt>(101 ).+<dt>" とやると、
「<dt>101〜最後の<dt>」までが引っかかります。
これを、"<dt>101" 以降の最初に出てきた<dt>まで
引っ掛けるようにはどうしたらよいのでしょうか?
0207デフォルトの名無しさんNGNG
>>206
最小マッチで検索
0208206NGNG
>>207
サンクス。
? をつけるとよさげということですね。
今、やってみてはいるのですが、むつかしい。。
0209206NGNG
解決しますた。
"<dt>(101).+?(<dt>)" ですね。
ありがとうございました
0210デフォルトの名無しさんNGNG
クラスモジュールのパブリックのプロシージャで
引数にユーザー定義型を入れたのですが
パブリック オブジェクト モジュールで定義されたパブリック ユーザー定義型に限り、…
と、エラーがでてしまいます。
一応標準モジュール、パブリックで宣言したユーザー定義型を使ってるのですが…。

いろいろ検索しても解決に至らず。そこでここで質問させていただきました。
VB6です。どなたか分かる方がいらっしゃいましたらよろしくお願いします。
0211デフォルトの名無しさんNGNG
>>210
エラーの原因と対処方法を次に示します。
・パブリック ユーザー定義型を、クラス モジュールのパブリック プロシージャの
 引数または戻り値として使おうとしました。
 またはパブリック ユーザー定義型のフィールドとして使おうとしました。
 パブリック ユーザー定義型がパブリック オブジェクト モジュール内で
 定義されている場合にのみ、このような使い方が可能です。.

MSDNで検索したらひっかかったyo
「このような使い方」以外はできないってことじゃない?
0212210NGNG
>>211
レスありがとうございます。一応読みました。
パブリックオブジェクトモジュール=標準モジュールの事だと思ってたのですが。
ググってみても標準モジュールで宣言すれば大丈夫だみたいな事もありましたし。
もしかすると、この辺に思い違いがあるでしょうか?
0213211NGNG
>>212
MSDNによると、オブジェクトモジュールの規則 ≠ 標準モジュールの規則。
オブジェクトモジュールは、クラスファイルやらフォームやら。
だから、多分やりたいことはできないんじゃない?
0214デフォルトの名無しさんNGNG
UpDown1.BuddyControl = Text1
UpDown1.BuddyProperty = Text
UpDown1.SyncBuddy = True

ばぢぃぷろぱちぃってこれじゃあかんの?
ヘルプにも書いてないからわかんねけ
0215デフォルトの名無しさんNGNG
VSGなんですが、CyclePageの具体的な使い方が分かりません。
誰かお願いします。
0216デフォルトの名無しさんNGNG
>>212
パブリックオブジェクトモジュールってのはAvtiveX DLL(とかコントロールとか)の
パブリックに設定されているクラスモジュールのこと。
そのクラス内で定義されているパブリックなユーザ定義型のみパブリックな
プロシージャとかに使える。

ユーザ定義型を使用するプロシージャとかがFriendなら標準モジュールの
パブリックなユーザ定義型が使用できたはず。
0217デフォルトの名無しさんNGNG
ツリービューの背景に画像を表示したいのですが、どうしたらできますでしょうか。
0218デフォルトの名無しさんNGNG
>>217
オーナードロー
0219210NGNG
>>216
なるほど。プロパティにするんですね。
試してみた所、無事動きました。
211さん、216さん、こんなくだらない質問に答えてくださって
どうもありがとうございました。
0220デフォルトの名無しさんNGNG
VBでもVCにあるような日時指定コントロールはありませんか?
0221デフォルトの名無しさんNGNG
VBSで指定した文字列の出現回数を
数えるプロージャってどうやって作ればいいでしょうか?

0222デフォルトの名無しさんNGNG
>>221
ある文字列の中の文字毎の出現数?
0223デフォルトの名無しさんNGNG
マウスのクリックにしか反応しないボタンっていうのを作りたいのですがどうすればいいのでしょうか?
0224デフォルトの名無しさんNGNG
>>221
文字列検索して見つかったら足してけばいいじゃん。
もしくは、正規表現でも使えば?
0225デフォルトの名無しさんNGNG
>>223
ラベルとかピクチャボックスでボタンっぽいものを描く
0226デフォルトの名無しさんNGNG
>>223
まずは、マウスのクリックを取得できるようになってからだと思う。
0227 ◆OL6sJ2s31A NGNG
質問です. VB6

今メッセンジャーの互換クライアントをVBで作ってるんですけど
一つつまづいている所があって, 質問.
フォーカスを奪わず常に最善面でフォームを表示したいんです.
用途としては, ポップアップウィンドウを作成するために欲しい(w

なんか普通にAPI組み合わせてみたんだけど上手くいかない.
フォーカスもってかれちゃう.
ってことで, ご教授お願いします・・・.
0228デフォルトの名無しさんNGNG
>222
そうです。自分で作ってみたんですが、無限ループに入っちゃって。

>224
それはやってみたんですけど、無限ループに・・・。
正規表現は使い方(意味)がよく分からない状態です。
0229デフォルトの名無しさんNGNG
>>221
>>228
Matchsコレクション(だったっけ?)を使えば一発。
技術評論社の本に出てる。
0230デフォルトの名無しさんNGNG
>>228
本買う金が無いです。
すいません、誰か教えてくれませんか?
そのMatchesコレクションというのを。
0231デフォルトの名無しさんNGNG
>230
WSH使ってるんならリファレンスくらいあるだろ。
mk:@MSITStore:C:\Program%20Files\Microsoft%20Windows%20Script\ScriptDocs\Script56.CHM::/html/vscolmatches.htm
をみる.
0232デフォルトの名無しさんNGNG
mk:@MSITStore:C:\Program%20Files\Microsoft%20Windows%20Script\ScriptDocs\Script56.CHM::/html/vscolmatches.htm
これをアドレスバーぶち込むんですか?
何も出ないんですが・・・すいません。どうやって見るんですか?
0233デフォルトの名無しさんNGNG
>>230
http://www.skai.co.jp/arufonsu/vb/VB-004-08.htm#4-8-09
検索しろ馬鹿
0234デフォルトの名無しさんNGNG

すみません質問したいのですが
http://www.vector.co.jp/soft/win95/game/se135395.html
↑のソフトで何コンマ何秒とうい形で100〜1000まであるんです
それを自分の環境では1000でも早いので2000ぐらいにしたいので
よくわからない自分は .iniファイルを開いてみたりしたのですができません(TT
どれをどう弄れば可能でしょうか?
0235デフォルトの名無しさんNGNG
>>233
すいませんでした。&ありがとうございました。
0236デフォルトの名無しさんNGNG
>>234
リンク先見てないけどたぶんスレ違い
0237227 ◆OL6sJ2s31A NGNG
>>234
無理。VBでつくられたツールだからここへ来たのだろうけど、スレ違い。
別のツール探すなりしなさい。

ってか俺のにも返答Plz(泣
0238デフォルトの名無しさんNGNG
BitBltを使って画像を表示しているのですが、特定の色だけ透かして
表示ってできないのでしょうか?vbSrcAndとか指定しても透かしたくない
ところも透明になっちゃって。imageコントロールにgifファイルで透かす
ことはできるのですが他に方法ないかなと思いまして。
0239デフォルトの名無しさんNGNG
>>227
再前面表示はSetWindowPosだっけ?
0240デフォルトの名無しさんNGNG
>>227
フォーカスを奪わずってフォームをクリックしてもフォーカスを奪わないって事か?
0241227 ◆OL6sJ2s31A NGNG
>>239
そうです。
それでTOPMOSTを指定しての最前面表示をしています。

>>240
いや、そうではなくて
フォームを表示した瞬間にそのフォームへフォーカスが移らない
って意味です。クリックしてフォーカスが移るのはかまいません。
0242デフォルトの名無しさんNGNG
2000/XPの仕様です。という事を聞きたいのでしょうか?
0243240NGNG
>>241
だよね。ShowメソッドじゃダメなのでAPIを使う。はい↓
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWNOACTIVATE = 4
ShowWindow Form2.hwnd, SW_SHOWNOACTIVATE

もしフォームをAPIなんかで表示させて大丈夫なのか〜?と思うなら、
CBTフックでもできると思う。
http://www.galliver.co.jp/writing/msdn/msdn06/
0244デフォルトの名無しさんNGNG
>>241
これでできるよ

Load Form2
Call SetWindowPos(Form2.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
    SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW)

プロパティとか参照すると勝手にロードするから、
明示的にロードしときたいかな(趣味の問題だけどね)。
0245デフォルトの名無しさんNGNG

厨なし質問ですがよろしくお願いします。
VB6で標準出力する方法は無いですか?
GUI無しのexeを作ってDOSプロンプトから実行してメッセージなどを出したいのですが。
過去ログ等ありましたら申し訳ないです、「ここ見ろ」でもかまいませんので宜しくお願いします。
0246デフォルトの名無しさんNGNG
>>245
http://tokyo.cool.ne.jp/taquino/vbcgi/stdio.shtml
こんなの?
0247デフォルトの名無しさんNGNG
>>238
こんなかんじ?(未確認)

 Call BitBlt(Form1.hDC, x, y, PictMask.ScaleWidth, PictMask.ScaleHeight, PictMask.hDC, 0, 0, vbSrcAnd)
 Call BitBlt(Form1.hDC, x, y, PictBitmap.ScaleWidth, PictBitmap.ScaleHeight, PictBitmap.hDC, 0, 0, vbSrcInvert)
0248デフォルトの名無しさんNGNG
>>247
マスクを用意しないでカラーキー転送したいって事では?
0249デフォルトの名無しさんNGNG
教えて下さい。

VB.NETで、ファイルの存在確認をしたくて
Dir関数を使おうとすると、何故か、関数として
認識してくれません。helpには普通に使える様に
書いてあるのですが、実際にコードを書くとダメです。

どなたか解決方をご存知ではないでしょうか?

0250デフォルトの名無しさんNGNG
>>249
こっちで聞いたら?

【老若】VB.net質問スレ【男女】
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
0251デフォルトの名無しさんNGNG
>>249
.NETはたとえ引数の必要無い関数でも()を付けなきゃだめだ。
0252249NGNG
>250
こんなスレあったんですね・・・すみません。
逝ってきます。
>251
えーっと、こんな感じでもダメなんです。

dim file_path as string

if Dir(file_path) <> "" then
(ここに「ファイルがあるぞ!!」と書く)
endif

Dir自体が認めてもらえません・・・

250さんに教えてもらったスレに逝ってきます。
お邪魔しました。
■ このスレッドは過去ログ倉庫に格納されています