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

このエントリーをはてなブックマークに追加
549デフォルトの名無しさん
あるステップでShell関数によってプログラムを起動し、それよって生成されるファイルを次のステップで開いて参照する場合、ファイルが生成するまで待機するにはどうすればよいのでしょうか?

次のようなコードでは、ファイルを参照できません。
MyPath="c:\中略\myprogram.exe" 'myresult.txtを生成するプログラム
RetVal = 0
RetVal = Shell(MyPath, 1)
For j=0 to 100000 'このように待機させても効果がありません
Next
MyPath="c:\中略\myresult.txt"
If RetVal <> 0 Then
Open MyPath For Input As #1
Line Input #1, MyText
Close #1
MsgBox "MyText=" & MyText
Else
MsgBox "MyTextが生成できませんでした"
End If
しかしながら、myrogram.exeの実行結果としてmyresult.txtは生成されていて、イミディエートウィンドウではRetValは0以外の値になります。
>>517-519
ウソを教えるなよ。(ウソの答えに納得する奴も納得する奴だが・・・)

「デフォルト」は「債務不履行」だ。よく憶えておけ。

>>521

IDE は Integrated Drive Electronics の略で、ハードディスク接続
インターフェイスの規格のひとつ。

ttp://e-words.jp/?w=ide&headline=%8C%A9%8Fo%82%B5%8C%EA%8C%9F%8D%F5

おまいら、子供じゃねえんだから、少しは自分で調べろよ・・・。
>>549
WaitForSingleObject APIを調べて味噌
>>550 ネタは新鮮なうちに。
553デフォルトの名無しさん:03/02/19 15:32
>>549
処理待ちの方法はたくさんあるけど、よりによって空ループとは。
コンパイルしたら空ループは削除される。

自前のアプリなら、DDE通信使えよ。
せっかくあるんだから。
>>553

> コンパイルしたら空ループは削除される。

そうなの?最適化のしかたに依存するような気もするけど?
(確認してないけど)
>>554
どっちにしろ、CPUのスピードが千差万別かつ十分高速である以上、その方法はエレガントではないと。
556553:03/02/19 16:15
>>554
DDEについては何もふれず、空ループについて確認も
しないで疑ってかかるって何だよ?
確かめるのに1分もかからないだろ?
>550

この時点で
あなたの希望金額に達しなかったということで、

  ノ ー マ ネ ー で フ ィ ニ ッ シ ュ で す
558デフォルトの名無しさん:03/02/19 17:20
>>549
Windows Script HostのRunメソッドが簡単だよ
559デフォルトの名無しさん:03/02/19 17:34
どうしても分からないので・・・

VBからネットワーク上の別PCのHDD全容量/空き容量などを
取得することはできるのでしょうか?
>>559
そもそも他のPCのHDD容量って見れるの?
知らないんだけど。見れるならVBでもできそうだけど。
>>559
とりあえず ネットワークドライブの割り当て をやってみ
なるほど。割り当てると見れるのか・・・
563559:03/02/19 17:51
ありがとうございます。
一時的に割り当てして容量チェックすればできそうですね。

ところでIPアドレスやMacアドレスがわかってる状態で可能なことって何があるでしょうか?
Pingとかで該当PCが応答するかチェックするってのはすぐに思いついたんですけど
他に何かありますか?
564デフォルトの名無しさん:03/02/19 17:54
>>563
ポートスキャンで穴さがし
565563:03/02/19 17:56
>>564
なるほど。それはいいですね!
OS情報とか取得して詳細一覧作るってのもいいかも。
やれるか分からないですけど・・・
>>563
最低限はPINGも含めて何も出来ない。
できるのは相手が応答した場合のみ。
SMB?
559はそんなに上司のPCが覗きたいのか(藁
569559:03/02/19 19:09
応答するという前提で考えれば色んなことができそうですね。
電源何かも切れるみたいですね。

上司のPCを覗くのは・・・

ヘ(゚∀゚ヘ)アヒャ
570デフォルトの名無しさん:03/02/19 19:46
>>569
わざわざ中身のぞかなくても、パケットモニターで丸裸。
ソース公開されてるし。
Cだけど。
http://homepage2.nifty.com/spw/hint/PacketDump.html
これで簡単にパケットモニタ作れる。いや、作るというかコピペ
.NETはXPでしか動作しないのですか?
>>572
フレームワーク自体はWindows98以降でも動くよ。
>>549

>For j=0 to 100000 'このように待機させても効果がありません
>Next
>MyPath="c:\中略\myresult.txt"

Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Sub (略
(略
MyPath="c:\中略\myresult.txt"
Do While "" = Dir(MyPath)
  Sleep 100
Loop


あまり綺麗な方法じゃないかもしれないが、一番簡単。
これよりも、起動させるプロセスを監視してそれが消滅するのをチェック
する方がいいかもしれないが…。
>>573
ではXP以外でも作業できるってことですか?
576デフォルトの名無しさん:03/02/19 21:07
age
>>575
金が惜しいならMSのサイト言ってあんたの買いたいソフトは何をする物なのか確認してきなさい。

すまんが今の状態でプログラミングなんてちゃんちゃらおかしいよ。
578デフォルトの名無しさん:03/02/19 21:46
>>571
THNX!

>>574
そんなVB房みたいなやりかた提案するなよ
580困ったチャン:03/02/19 22:15
すいませ〜ん。。必死なのです。excelVBAの質問なのですが、
(VBのスレで聞くな?)
困っているのです。あるフォルダに格納されている、
word excel ppt txt のファイルをVBAから開き、
MSGBOXでOK押されたときに、全部閉じたいのですが、うまくいきません。
期限がやばいのでとりあえずやっつけだ、と思い、無理やり
shellコマンドで立ち上げ、落とすときは、sendkeyしてるのです。。。
(&FXN)ALTキー+Fキーでメニューのファイルを閉じるで、保存しないキーを
SENDしてる予定。。。
しかし、なぜかワードだけうまくうけとってくれないのです。
他にいい方法があったら教えてください。
環境はOFFICE97。OSはWINDOWSです。(95〜2000、NT、XP)
で、クライアントの処理なので、できれば他の実行ファイル
は作りたくないのです。
どうでもいいけどAlt+F4で何でも閉じるよ。
保存していないとダイアログ出るが。
582困ったチャン:03/02/19 22:38
>>581
うん。そうなんですけど、ファンクションキーたまに
落ちないときがある、と聞いたので。。
で、苦肉の策、そうなったのです。。。
できれば、SENDKEYでない方向でいきたいのです。。。
動きもいまいちなので。。。クスン
583困ったチャン:03/02/19 22:54
みすてないでぇ〜〜〜〜〜
shellの戻り値でインスタンスハンドルが帰ってくるよねー
それを元にウィンドウハンドルを取得して強制終了のメッセージを
SendMessageすればよいのでは?
期末試験 設計        名前 困ったチャン    7点

ExcelVBAでWordファイルを操作するという点が間違いです。
586困ったチャン:03/02/19 23:12
>>584
そうなのです。。。shellでハンドル持たせて、
それをappactive して、sendkeyしてるのです。
でも、なぜかワードだけうまくいかない。。。
カーソルのところにひたすら「XNXNXN・・・」
って書き続けてる状態。。。本当に困ったチャン。

確かに、excelVBAでファイル操作、きついんだけど、
元の設計はc++でほとんどクライアントで処理して、
サーバに投げてきてたんだけど、
それを仕様変更して、分散して、クライアントが
excelVBA(客先に配布)で、サーバはvbなのです。
最終的に仕上げるファイルフォーマットがexcelなので、
VBAでやってるのです。
その他のファイルは、タダ、いったんこれらでいいですか?
という意味合いで、単純に開いて、単純に確実に殺す、です。

587tantei:03/02/19 23:15
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 24時間受付  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   グローバル探偵事務局 

>>584
WORDだから良いもののウインドウ作らないアプリケーションならブルー。
>>588
ウィンドウを作らないアプリでこちらから終了させなければいけないというのは
どういったアプリケーションですか?
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
If MsgBox("やっちゃう?", vbYesNo) = vbYes Then Call SendMessage(&HFFFF&, &H2&, 0, 0)
591困ったチャン:03/02/20 00:12
>>599!ありがとうございます(^^)♪
lib使ったプログラム開発をしたことがないもんで。。。
いろいろHPあさって探しまくってたんだけど、いいのがなかったのです。
はぁ。たすかったぁ♪♪♪♪♪さっそくためさせていただきます。明日。
はぁ〜〜〜〜〜〜〜〜〜〜!


592禁断のターミネータ:03/02/20 00:23
>>599
プレッシャーかかるな。
593デフォルトの名無しさん:03/02/20 00:23
HIKEY_CURRENT_USERではなく
HIKEY_LOCAL_MACHINEの中の値を取得したいです

RegOpenKeyEx(API)を使って取得する方法は分かったのですが
GetSettingのように、APIを使用せずに取得する方法は無いでしょうか?

API使うの面倒臭いのよね
知ってたら教えてちょんまげ。

591に合掌・・
595デフォルトの名無しさん:03/02/20 00:43
>>593
もしあったら、ハッキングし放題だと思わんの?
なんで制限つけてるか考えんの?
596599:03/02/20 00:46
>>591
ごめんなさい。あのコードは大きなミスをしてました。
そのミスというのは、・・・だ、誰だ・・ぐは・・・ばたっ・・・。
597デフォルトの名無しさん:03/02/20 00:54
>>595

それは、マクロウィルス使って悪さが出来るということ??
よく分からないけど、そういう機能があれば、595さんなら
ハッキング出来るわけですね

とにかく教えてくれてありがとうございます
明日はAPIの使い方調べて苦労することにします

では。
598デフォルトの名無しさん:03/02/20 03:37
C++で作ったメソッド(ライブラリ)に、VBから配列を引数として放り込めば、
先頭アドレスを送ったことになる?
APIの使い方を知らんってことをWindows自体わかってないんでないの?大丈夫か?
>>598
ヘルプやMSDNに書かれていると思うけど・・・
配列の先頭の要素を参照渡し。

ユーザ定義型の配列の場合はまた別のルールがあったはず。
601デフォルトの名無しさん:03/02/20 09:14
>>593
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
MsgBox WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId"), , "ProductId"
602ばかばっか:03/02/20 09:24
ばかばっか
603593:03/02/20 10:30
>>601
あのー、おもいっきし出来たんですが・・・
ありがとうございます。

>>595
うんこちんちん
604デフォルトの名無しさん:03/02/20 11:24
VB6 + ADO2.7 使っているのですが
インストーラー作る時にMDAC_TYP.EXEは含めたほうが良いのでしょうか?

605デフォルトの名無しさん:03/02/20 11:53
>>603
最初からProductIDって言ってたか?
606593:03/02/20 12:51
>>605
言ってないですよん、ProductID以外の値も取れましたが、何か問題でも?
607デフォルトの名無しさん:03/02/20 13:03
>>606
ええもん取れた?
一人バカがHIKEY_LOCAL_MACHINEを読み取れないと思っているだけだ。ほっとけ。
609593:03/02/20 13:57
>>607
先輩からの信頼が取れました。
610デフォルトの名無しさん:03/02/20 14:01
test
HIKEY_LOCAL_MACHINEを読んだおかげで彼女ができますた!!
HIKEY_LOCAL_MACHINEを読んだおかげで大金を手にしました!!
さて、もうそろそろ「HKEY_LOCAL_MACHINEだろ?」と揚げ足取りが出てくるわけだが。
(-_-) ヨンダ?
614デフォルトの名無しさん:03/02/20 16:24
ヒッキー・ローカル・マシン
615デフォルトの名無しさん:03/02/20 18:44
よろしくお願いします。

FileSystemObjectを使わずにファイルをコピーしようとしています。
FileCopyステートメントを使ったのですが、
コピー先に指定したファイルがない場合、「ファイルが見つかりません。」
とエラーが返されます。
FileSystemObjectのoverwrite=trueに該当する処理を実現するには
どうしたらいいでしょうか?

>>615
ファイルがあるか、使用中でないか確認する。
なんでそんな質問すんだ。
>>615
CopyFile APIを使う
>>615
On Error Goto でエラー捕まえりゃいいだろ。
619デフォルトの名無しさん:03/02/20 19:11
>>616-618
あーもうホントすみません。
いろいろ考えたんですけど、On Error Gotoの後の処理
(存在しなかった場合の処理)が分からなかったんです。

指定した名前のファイルを指定した場所に作成する?関数なりステートメントが
MSDNで引いても見つからなくて・・・・
ヒントの単語だけでも教えていただけませんか?
てゆーか
>指定した名前のファイル
って何?何でもいいなら空っぽのテキストファイル作れば?
>>619
大体、何言ってるのかわからん。

>コピー先に指定したファイルがない場合、「ファイルが見つかりません。」
「コピー元」の間違いかと思えば、
>FileSystemObjectのoverwrite=trueに該当する処理を実現するには
上書きに失敗しないようにするには、とも読みとれる。

通常は上書きに失敗することはない。属性とか使用中とかなら別だが。
「ファイルが見つかりません」とは、コピーする元のファイルがないってことだ。
てことは、最初にファイルの有無を調べればよい。

if Dir(FileName)<>"" Then
FileCopy FileName, FileName2
end if

とでもすりゃあ済むのではないのか? 違うのなら、もう少し状況説明を詳しく。
622デフォルトの名無しさん:03/02/20 20:10
一般的に省略ボタンってどこにあるのですか?
テキストボックスの幅より、テキストが長い、つまり表示が切れている場合に
ヘルプテキストをポップアップさせたいのですが、
テキストボックスの幅より出ている、というのはどうやって判断するのでしょうか。

VBでは等幅フォントで文字数数えたりそんなのしか無理ですか。
>>623
TextWidthプロパティで長さ調べるのは?
重なり順序をなぜZOrderと言うのでしょうか?
Z軸の順序。
>>626さん
おお!横、縦、がx,yだから、なるほどzですね。ありがとうございました。
中卒発見しますた。
>>623
大体の長さでいいなら、Textボックスの幅と、
Textボックスに入れた文字と同じ文字を入れたAutoリサイズしている
非表示のラベルの幅を比べる。
#手抜きだけど。
ディストリビューションウィザードで、フォルダをその中身ごと追加するにはどうするのでしょうか?
ディストリビューションをつかっって見たところ、ファイルを追加するということはできてもフォルダが追加できませんでした。
>>630
1ファイルずつボチボチとマターリやるしかない。
プロジェクト名.PDM を直接編集すると若干楽かもしれない。
633630:03/02/20 23:14
>>631
ガンガリマス
634デフォルトの名無しさん:03/02/20 23:36

Shell "gta.exe", vbNormalFocus
Shell "gta.exe", vbNormalFocus
Shell "gta.exe", vbNormalFocus
みたいな感じで一定の期間で終了するexeを多重起動したとして起動しているexeがすべて
終了してプロセスから無くなるまで待機させたいんだけど、どうしたらいいですか?
635デフォルトの名無しさん:03/02/20 23:54
WshShellのRun使う
637デフォルトの名無しさん:03/02/20 23:59
>>635
どうもっす!
638デフォルトの名無しさん:03/02/21 00:06
>>636
試してみまっす!
639ひきプロ:03/02/21 00:06
http://hp.vector.co.jp/authors/VA014315/vb5.htm
こういうのもありました
>>636
多重起動したexeをどのように処理するのか?
641デフォルトの名無しさん:03/02/21 05:29
OCXのコントロールを動的に追加する方法はありますか?

コマンドボタンとかを動的に追加する方法は見つかったんですが
OCXの方が分かりません…
642デフォルトの名無しさん:03/02/21 06:20
☆★☆キラキラお星さま☆★☆
http://jsweb.muvc.net/index.html
VB上でFSO使うのってもしかして嫌われてる?
重いのかな?
644デフォルトの名無しさん:03/02/21 07:39
VBってどうして実行速度が遅いのですか?
しかもJavaよりもさらに遅いことが多いんですけど。
645デフォルトの名無しさん:03/02/21 08:48
>>641
レイトバインディング

>>643
環境依存だから。

>>644
書き方が悪いから。
646デフォルトの名無しさん:03/02/21 08:53
>>645
いえ、実際Web上の実行速度の調査とかを読んでいても
良くてJavaの実行速度近くまで出るけど、
アルゴリズムによってはJavaの3倍ぐらいの速度がかかってるんだよね。
どうしてかなと思って。
647デフォルトの名無しさん:03/02/21 08:54

もちろんJavaもVBも同じアルゴリズムだよ。
書き方が悪いとかそう言う問題じゃないと思う。
>>647
実際のソースを見ないと、なんとも言えんとおもうんだが、どうだろう。
649デフォルトの名無しさん:03/02/21 09:19
>>644
書き方が悪いに1000ヤマシャキ

クラス(COM)を使ったコーディングだとVBは遅くなりやすい。
Javaはよく知らんけどコンパイルの最適化ってある?
651デフォルトの名無しさん:03/02/21 09:30
>>650
Javaでも一応あった気がする。
652デフォルトの名無しさん:03/02/21 09:50
>>646
VB4 VB5 VC5 Java(IE4) Java(NN4) のベンチマークがあった。
http://member.nifty.ne.jp/aya/vb/javabench.htm

97年調査だから、それぞれバージョンが古い。

最新版どこにあるの?
>>652
それ見る限りじゃ、むしろ最適化したVBのほうが速いような感じだね。
とりあえず、646が「Web上の実行速度の調査」とやらのURLを
出さない限り話にならないような。
そんな古いやつ…
参照設定で登録できなくて、regsvr32では、エントリポイントが見つかりませんでした
といわれるDLLは、VBでは使えませんか?
Borland Cで書かれてるそうで、関数仕様以外はよく分からないものなんですが…
>>655
Declare
657デフォルトの名無しさん:03/02/21 17:00
pic.ScaleMode = 4
pic.Picture = LoadPicture()
pic.ForeColor = vbBlack
pic.CurrentX = 10: pic.CurrentY = 3: pic.Print "モナー"
pic.CurrentX = 10: pic.CurrentY = 4: pic.Print "ギコ"
pic.CurrentX = 10: pic.CurrentY = 5: pic.Print "しぃー"
pic.CurrentX = 10: pic.CurrentY = 6: pic.Print "8頭身"

などの場合に"モナー"だけ赤く表示させるにはどうしたら良いのでしょうか?
何方かご教授お願いします。
658デフォルトの名無しさん:03/02/21 17:07
よろしくです。

ファイルが使用中であるか(別のプロセスが使用中で無いか)を調べる方法を
教えてください。関数でもあるのでしょうか。
MSDNおよびグーグルで"ファイル 使用中 Visual Basic"で検索しましたが
力が及びませんでした。

>>657
pic.ForeColor = vbRed
pic.CurrentX = 10: pic.CurrentY = 3: pic.Print "モナー"
pic.ForeColor = vbBlack
pic.CurrentX = 10: pic.CurrentY = 4: pic.Print "ギコ"


>>658
とりあえず(ロック付きで)開いてみるとか名前を変えてみるとか削除に挑戦するとかは?
660655:03/02/21 17:43
>>656
ドーモ。解決しました。関数のシンボル名が間違ってただけでした…(´・ω・`)スマソ
661656:03/02/21 17:50
>>660
ゴ・・・ゴルァ!
WebBrowserコントロールの事で質問なんですが
HTMLを読み込む時にキャッシュを使いたくないのですが、どうすれば良いでしょうか?
Googleで検索してもあまり出てこないし・・・

よろしくお願いします・・・(´Д`;)
アプリケーションに、右クリックのショートカットメニューを付けるやり方を教えてください。
>663
レジストリ弄るしょぼい方法しか知らない…
>>663
メニューエディタで表示をOffにしたメニューを作成しておき、
MouseUpイベントで、右クリックを感知したら
PopupMenuメソッドで呼び出せばいい。
>>662
ピクチャボックスにpngファイルを読み込む方法を教えてくれたら教えてあげる。
667ひきプロ:03/02/21 22:32
>>662
WinsockかINetコントロールで、ローカルファイルに
URLの内容を取得した後、Webbrowserの
Navigateで先ほど取得したローカルファイルのURLを
設定してはどうでしょうか?
668ひきプロ:03/02/21 22:35
>>666
http://www.planet-source-code.com/xq/ASP/txtCodeId.29135/lngWId.1/qx/vb/scripts/ShowCode.htm
こういうのがありますけどどうですか?
今見つけたところなのでどういうものか分かりませんが
669ひきプロ:03/02/21 22:44
あげてみる
670初心者1号:03/02/21 22:56
あのう・・・・すいません、ちょっと教えてもらえると幸いなのですが。
VB6.0でRichTextBoxを利用しているのですが、IMEmodeプロパティがなくて困っています。
何か解決方法はないのでしょうか・・・・
アンインストールまで自作しようとしてるんですけど、
自exeを削除する技を教えて下さい。

batファイル作成→exeを削除→batが残る→マズー

こんな具合です。。
672ひきプロ:03/02/21 23:27
Private Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal himc As Long, ByVal b As Long) As Long
Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Long) As Long

Private Sub Command1_Click()
  dim mContext as long
  mContext = ImmGetContext(RichTextBox1.hwnd)
  ImmSetOpenStatus mContext, 1
End Sub

みたいな感じでIMEをONにできます。また
Private Declare Function ImmGetOpenStatus Lib "imm32.dll" (ByVal himc As Long) As Long
を使うとIMEの状態を取得できるようです
673662:03/02/21 23:28
>667
おお、サンクスです!
早速試してみます
674ひきプロ:03/02/21 23:30
>>671
batファイルの最後に、
del [batファイルの名前].bat
を追加すれば解決できると思います
>>674
うーん、さっき自batファイル消そうと、やった時は消えませんでしたが、
今やったら消えました・・。なんでかなぁ。。
ありがとうございますた。
676デフォルトの名無しさん:03/02/21 23:36
【最新情報追加】☆^〜^★
http://sagatoku.fc2web.com/
あなたの探し物こちらで見つかります
677ひきプロ:03/02/21 23:38
>>675
不思議ですねー。
batの頭に CD [App.Path] とか入れると確実になるかもしれません
678初心者1号:03/02/21 23:40
>672
マジサンクスです。
でも技が良く分からない・・・

試してみますです。
>>666
別に何も教えてもらいたくないけど...
imgctl.dllでDIB取ってピクチャボックスに転送しる

>>677
さらに App.Path を ”で囲うとイイ
680ひきプロ:03/02/21 23:44
>>678
ImmSetOpenStatus、ImmGetOpenStatus、ImmGetContext
についてはMSDNを参照してください。

これは、Win32APIを使った技なので、VBのマニュアルの
APIを使う・・・みたいな章を読めば詳しく書かれています。
681初心者1号:03/02/22 00:45
>680
ひじょ〜にありがたいです。



うちの教官が貴方みたいな人なら神だ・・・
682デフォルトの名無しさん:03/02/22 02:50
>643
に便乗させてください。
FileSystemObjectは環境に依存するというのは
なんとなくわかってましたが、
具体的に必要な環境としてはどういう環境が必要なのでしょうか?
教えていただけませんか?
よろしくお願いします。
>>682
WSH
>>682
初期バージョンのWindows95で動かないだけでしょ。
金出し渋るタイプの、企業や国の機関以外で使ってないだろうから気にすな。
WM_MOUSEACTIVATEメッセージをフックしたいのだが、
VBではできねーのかな?
いやねえ、戻り値をMA_NOACTICATEに変えたいだけなんだが・・・・
(Delphiなら簡単だが)
>>686
サブクラス化
688デフォルトの名無しさん:03/02/22 13:41
 VisualBasicで
---
Dim a As Double
Dim b As Double
Dim c As Double

a = &H8000
b = &HAED000
c = a + b
---
 こんなことしてやると計算結果 c は &HAE5000 になります。
a が signed 扱いにされているようですが、これを unsigned に
する(計算結果を &HAF5000 にする)方法ないですか?
>>688

real
>>689
realという型はVBには無いようですが…
a = CLng("&H8000")
で解決しますた
&H8000&の方がいいよ。
以前あった質問で、結局レスがなかったものの再質問です。
treeviewコントロールを用いてエクスプローラ風に見せたいのですが、ドラッグ・ドロップ
をする時に詰まってしまいました。ドラッグ中のアイコンが32*32で表示されるのは
32*32のアイコンのなかに16*16のアイコンを描いて、それをドラッグする時に選択することで
回避できたのですが、アイテムの名前が表示されません。IEのエクスプローラバーでの
お気に入りと同じになってしまいます。自分としては是非アイテム名を表示しながらドラッグ
したいのですが…ご教示お願いします。
694666:03/02/22 20:24
>>679
>imgctl.dllでDIB取る。
dllの呼び出し方やDIBという言葉も知らんよ。
サンプルコードきぼんぬ。
>>694
このバカはなんで偉そうなんでしょう?
>>695
バカだから(´∀` )
697666:03/02/22 20:55
質問者がどんな言葉遣いでも答えてくれる神以外は来るな。
698666:03/02/22 20:58
非常にガッカリだ。
フォームを 最小化ボタンと終了ボタンのみで
ウィンドウサイズを変更できないような風にするにはどうしたらいいのですか?
700ひきプロ:03/02/22 22:21
BorderStyle = 固定
Minbutton = True
ありがとうございます
めっちゃ初心者質問ですみませんでした
>>666
いや、喪前が来るな。
質問者として最低限必要なものが喪前には無い。
703デフォルトの名無しさん:03/02/22 23:51
よろしくお願いします。
ウィンドウの最小化とか最大化のボタンの左に同じ様なボタンを1つ2つ
追加したいんですがどうしたらできますか?
704デフォルトの名無しさん:03/02/23 00:10
「れ、冷二さん……」
「なんだ」
「家へ、家へ帰してください、お願い」
 無駄だとわかっていても、夏子は哀願した。愛する子供は今ごろどうしているのだろう、夫は……。ボロボロにされた身体ではあっても、夏子はこのまま家庭を捨てることはできない。
「こ、子供のことが気になるんです……」
「帰してやってもいいが……」
 はじめは、このまま夏子を自分の牝として囲ってしまうつもりだった。ヤクザに追われて殺されるなら、それまでとことん楽しんでおこうというヤケっぱちな気持ちだった。
 だが今の冷二は、不安と恐怖はあるものの、ずっと落ちつきを取りもどしていた。三人よりも、真樹子と二人のほうが安全だと思う。
 それに夏子が行方不明ということで、警察が動きだしでもしたら、かえってやっかいになる。
「いいだろう、帰してやるぜ。だが、奥さんはもう俺の女だってことを忘れるなよ」
 夏子は小さくうなずいた。だが、夏子はうれしくはなかった。冷二からは逃げられるものの、もう夫に顔向けできない身体にされ、殺人にまで巻きこまれて、どうして心が晴れよう。
「そうと決まったら、帰る前に、朝のつとめだ」
 冷二は布団のなかで夏子を抱きすくめたまま、朝立ちで硬くたくましくなった肉塊を双臀に押しつけた。
「尻の穴だぞ」
「……は、はい……」
 うなずいた夏子はすすり泣いた。
 数えきれないまでに犯してもなお、朝からおぞましい肛交を求める冷二の貪欲さに、眼もくらむ思いだった。
「前……ではいけませんか……お尻、ヒリヒリと痛いんです」
「だから尻の穴がいいんだ、フフフ」
「ああ……」
 夏子の声に哀しみとあきらめがこもった。何度されても肛交はおぞましい。
 それでなくとも夏子のアヌスは赤く腫れて、ヒリヒリとうずいていた。
 このうえまた冷二の太いものを受け入れさせられたら……。夏子はおびえた。
 だが、おずおずと冷二のほうへ双臀を突きだした。
>>693での追加質問ですが、treeviewをエクスプローラ風に見せるソースはDLしてきたものを
使っているのですが、同じフォームに別のtreeviewを他のカスタマイズのソースを適用したいと
思っているのですが、出来ますでしょうか?現状ではエラーは出ないのですが2つ目のカスタマイズが
有効になりません。私見では、一つのコントロールに対して異なる2つのサブクラス化(言葉は正確
ではないかもしれません)は出来ないようにも思えるのですが…

あ…666が…
>>703
サブクラス化
サブクラス化といえば、
自アプリに飛んでくる全てのメッセージを取得する事はできませんか?

SetWindowLongの引数にウィンドウメッセージを拾いたいコントロールのハンドルを渡せば、
そのコントロールに飛んでくるウィンドウメッセージは取得できますけど、
フォームに大量のコントロールを張ってるとき、
どのコントロールとは限らず全てのコントロール(と、フォーム)に飛んでくるウィンドウメッセージを知りたいんです。
すいません。>>705に関しては自己解決しました。サブクラスを2つ作れば
良かったのですね。ただ…693については依然わかりません。よろしく
お願いします。
709ひきプロ:03/02/23 01:33
>>707
一つのウインドウプロシージャに全部の
コントロールの処理させてはどうですか?
hWndでどのコントロールか分かりそうだし
710703:03/02/23 03:22
>>706
もう少し詳しく…どのメッセージにどんな対処をすればいいんですか?
711706:03/02/23 10:03
>>710
http://www.google.com/search?num=100&hl=ja&ie=Shift_JIS&q=wm_ncpaint+wm_nchittest&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
ボタンの動作をエミュレートする

>>707
SetWindowsHookEx は使えない?
712デフォルトの名無しさん:03/02/23 18:09
インストールするときにシェアウエアのように
IDキーを入力してからインストール開始するようにする
インストーラの作り方を教えてください。
ディストリビューションウィザードではできないのでしょうか?
>>712
VisualStudioInstller
ディストリビューションウィザードのようには簡単ではないが、
使いこなせばそれなりに良いみたいよ。マイクロソフトのサイトに行ってゲットせよ。
714712:03/02/23 18:32
>>713
ありがとうございます。
さっそく探してみます。
ファイルのMD5の算出をしたいのですが、、、
ソースとかありませんか?
GUIにペインを使いたいのですが、
どのコントロールを使って実現したらいいのでしょう?
718デフォルトの名無しさん:03/02/23 21:07
コマンドボタンに自分で作ったアイコンを表示する方法を教えてください。
プロパティのPictureで指定するのではなく,アイコンを登録してある場所の
ディレクトリを保存したテキストファイルから,必要な行を呼びだして
コマンドボタンに表示する方法です。
>>718
君は少し頭を使いなさい。
>>718
意味がわかりません。
(・∀・)チンポーッ!!
>>666

今さら レスしても遅いか?

imgctl.dll は PNG変換DLLだった
imgctl.dll では PNGの表示はできん(と思う)...すまん

表示には、Susie Plug-inを使ってくれ
http://www.koalanet.ne.jp/~akiya/vbtaste/vbp/ の Susie Plug-inを動的に利用する
を参照のこと

NT系のOSには対応していません。と書いてあるもののXPでは動いた

俺は親切だな... 神にでもなろうかな...

>>722
VBでPNGならコレが定番かもしれないがどーかなー。
http://www.vector.co.jp/soft/win95/prog/se148530.html
hDCに直接書き込めるぞ。保存もできるぞ便利。
素のOSそのままでPNG扱う方法は知らん。
>素のOSそのままで

むぅ?

  ∩∩
 (゜x゜ )○
>>724
OSインスコした直後の、OS付属のAPIだけでやる方法は知らないって意味ー。
>>723の場合は、ソフトを配布する場合はDLLも一緒に配布が必要、ってことね。
そりゃPNGの形式を理解して
ヘッダーよんでふんにゃかふんにゃかするんでしょう。
>>726
ヘッダに関しては難しいアルゴリズムとかとは無縁だから楽チンだね。
728ひきプロ:03/02/24 00:55
PNGはZIPの解凍作業がいるみたいですよ
この前拾ったサンプルにzlib.dllの機能使ってる箇所があったので
729666:03/02/24 09:19
>>726-728
それも参考にするけど、
とにかくコピペしてそのままつかえるサンプルやPNGを読み込むためのActiveXコンポーネントをきぼんぬ。
リッチテキストボックスぐらい使いやすいのを。
730666:03/02/24 09:23
スマン
668 :ひきプロ :03/02/21 22:35
>>666
http://www.planet-source-code.com/xq/ASP/txtCodeId.29135/lngWId.1/qx/vb/scripts/ShowCode.htm
こういうのがありますけどどうですか?
今見つけたところなのでどういうものか分かりませんが
--------------------
このカキコミを見落としていた。しばらくそこを呼んでみる。
731666:03/02/24 09:37
>>722-723
おっ。今から見てみる。
732デフォルトの名無しさん:03/02/24 09:57
666

グレープシティーより
LEADTOOLSというのがでてる。
9万で買えるActiveXだ。君の望みのものがある
733666 ◆ExGQrDul2E :03/02/24 10:29
>>732
むむ9万とは。でもほしい。
だけどそれは我慢してVB.NETを買っっちゃうかも。
余力があったらLEADTOOLSも買ってみる。
734666 ◆ExGQrDul2E :03/02/24 10:33
>>668のさんぷるぷろぐらむはVB英語版用のサンプルだからかどうかわからないけど
参照設定のところがうまくいかなかったので
>>722のSusieプラグインを使う方法に挑戦中。
>>723もそのあと試してみる。
735666 ◆ExGQrDul2E :03/02/24 10:51
報告も兼ねて ひとりごと をいいながら実験してみる。
722のサンプルのプロジェクトファイルを開いて画像を表示しようとしてもプラグインがない状態なのでまだ画像を表示できないようだ。
ttp://www.vector.co.jp/vpack/filearea/win/art/graphics/loader/susie/index.html
ここで画像表示用のプラグインを探してみる。
736666 ◆ExGQrDul2E :03/02/24 11:06
722のlzhの解凍先フォルダにSusie32 plug-in libraryというスージープラグインを入れてから、
プロジェクトファイルを開いてからF5キーでプログラムを動かし、ファイルを開く、で画像を指定しても
画像が表示できなかったのでプラグインを使う方法はあきらめる。
つぎは723を試してみる。
737666 ◆ExGQrDul2E :03/02/24 11:17
hDCとか初耳だがもうちょっと723の取説.txtを試してみるか。
取説.txtにサンプルプログラムがありそれはファンクションプロシージャがつかってあり、
SUBプロシージャしか使えない初心者のオレには難しい話だが試行錯誤ちう。
738666 ◆ExGQrDul2E :03/02/24 11:27
取説.txtのサンプルプログラムを
どうやって実際にVBのピクチャーボックスでpngを表示させるプログラムに改造したらいいのかわからず断念。
結局ピクチャーボックスがpngを読み込んでくれるVB.NETを買うときまでpngファイルの扱いはあきらめる。
739+激しく初心者+:03/02/24 12:40
ExcelVBAにBASP21 DLLを組み込んで、PCから携帯へのメール送信アプリを
作ったんですが、
(いや、迷惑メールとは無関係です。会員登録アドレスへの一斉送信に使います)
しばしばエラーメールが返ってきます。
もちろん、相手の方は拒否設定はしておられません。
届くこともあれば届かないこともあるといったような状況です。

相手がPCなら何のトラブルもないのですが、携帯だととたんに確実性が落ちます。

よい解決策をご存知の方はいらっしゃいませんでしょうか?
>>738
Vectorのヤツは取説がバグっとる…。
http://www.akikuma.cx/lzh/transg32.lzh
こっちの修正済み取説.txtを使え。

んで、取説末尾のプロシージャを適当な標準モジュールにコピペ。
更に、そのプロシージャの上の行に、
Public Declare Function DCReadPNG Lib "TransG32.DLL" (ByVal pngf As String, ByVal TargetDC As Long) As Integer
をコピペ。

んで、
  Picture1.AutoRedraw = True
  ReadPNGFile Picture1, "C:\hoge\hoe.png"
ってやるとあらびっくり。

AutoRedrawがFalseだと表示しないので注意だ。
AutoRedrawは上記のような実行時に設定する方法ではなく、
デザイン時にプロパティーで設定しておくのが普通。

つーわけでがんがれ。
お客様のおかけになった番号は、電波が届かな(ry
>739
いいかげん言い飽きたこのフレーズ。

そ の エ ラ ー メ ー ル の 内 容 を 書 け


携帯は迷惑メール対策の関係上、同一サーバからの同時多発送信を
弾くという対策を取っているケースが多いのも関係しているかもな。
743+激しく初心者+:03/02/24 13:15
>>741

自分の携帯でテストしてみても、届いたり届かなかったりなんですよね。
744+激しく初心者+:03/02/24 13:16
>>742

キャリアによって異なりますが、概ね User Unknown なんですよね。
むしろVBの問題と言うよりキャリアのもんだいという気がするんですよね
>>744
なんか、スレ違いな領域の問題じゃないの?
VBとして解決できることは無いと思うが。

通信関係の板で聞いた方が解決すると思う。
同報発信の量が多すぎるとか、送信者のホスト名が引けなかったとか、
そういうようなVBと関係ない領域の不具合だと思うよ。
747666 ◆ExGQrDul2E :03/02/24 15:31
>>740のかきこみを今発見。
実験開始。
>>747
おまえ、ちょっといいかげんにしろ。
いちいち「実験開始」だのなんだのって余計なことでレスしなくていいよ。
>>733-738まで細切れで一人で消費してまだ足りないのか?
そんなに独り言が言いたきゃこっち逝け。

夢・独り言
http://life.2ch.net/yume/
おしえた側からすればいちいち報告してくれるのは教えがいがある。
>>749
それも分かるが、試してから結果も含めて書けばいいだけの話じゃん。
時間かかるなら、ひとまず「ありがとうございました、試してみます」と言うのも分かるが、
>>740の内容なんてものの数分かせいぜい数十分あれば試せる話でしょ。
「実験開始」なんていちいち宣言するのはまったくの無駄。
その発言だけならともかく、>>733-738がひどすぎるので、ちょっとね。
まあ、こんなこと書くのもレスの無駄使いなのでこの辺にしておく。
666もこのレスに反応しなくていいから。
751666 ◆ExGQrDul2E :03/02/24 16:54
>>740
いろいろとあれこれ実際にやってみた。
でけた!
神様に感謝。ナムナム(-人-)
-----------
666 :デフォルトの名無しさん :03/02/21 22:30
>>662
ピクチャボックスにpngファイルを読み込む方法を教えてくれたら教えてあげる。
----------------------------
662が教えてくれたわけじゃないけど
>>662
に約束の情報を。
ttp://www.galliver.co.jp/writing/susume_vb/tre902/
ttp://www.galliver.co.jp/writing/msdn/msdn13/
>>750
は報告不足で会社でトラブルをおこさなければいいが・・・
性格は悪いが才能はありそうな予感
ActiveReport2.0で、ユーザー定義サイズの用紙を指定したいのですが、
反映されません。

Private Sub ActiveReport_ReportStart()
Me.PageSettings.PaperSize = vbPRPSUser
Me.PageSettings.PaperWidth = 12 * 1440
Me.PageSettings.PaperHeight = 17 * 1440
End Sub

プリンタのデバイス名をnullにすればプレビューではサイズが
反映されるのですが…これはプリンタが対応していないってことなんでしょうか。
一応、プリンタはユーザー定義サイズに対応していて、専用のホッパも
あるのですが…。
どなたか原因をご存知の方、教えてください。よろしくお願いします。
NULLについての質問です。
BinaryのFile(c:\NULL.lif)の中のデータに、NULLを含めようとテストプログラムを作ったのですが、うまくいきません。

Open "c:\NULL.lif" for Binary as #1
for i = 0 to 9 step 1
put #1 , , NULL
next i
close #1

この LINK.lif をBinaryEditerで確認すると、NULLの箇所が、
『 01 00 』とされています。
NULLなので、『 00 00 』とずっと思っていたので、
今まで私が間違っていたのか、それともこのプログラムがいけないのか、
そんなところで詰まってしまいました。
皆さん教えてください。お願いします。
756初心者1号:03/02/24 19:40
またまたrichtextboxの質問なのですが・・・

ユーザーにRichTextBoxに文章を入力させ,保存させたのですが。
当然のようにテキストを取得するとRTF形式に・・・

うまいことテキストだけ保存はできないのでしょうか・・・
vbNullChar、vbNullString
758デフォルトの名無しさん:03/02/24 19:53
>>756
SaveFileで rtfTextを指定すればいいのでは?
759デフォルトの名無しさん:03/02/24 19:56
>>755
VBでNULLは不定値。
もともとNULLの概念は処理系に依存。
760初心者1号:03/02/24 19:58
>757
ヒントでしょうか・・調べてみます。
取っ掛かりすらないので非常に助かります。

>758
当初そうしようと思ってRichTextBoxにしたんですが・・・
少し事情が変わりまして。

シーケンシャルファイルの1レコードとして保存しなければならなくなってしまって。
761たすけてママン:03/02/24 19:58
vb6sp5でmovieplayerコントロールを使っていたのですが、
先日wm9プレイヤーをインストールしたあと、プログラムを修正していたら、
デバッグ実行時に、PG中のメディアプレイヤーコントローラーの外観がwm9のものになってしまいました。
デバッグ中は問題なかったんですが、コンパイルしたexeを実行すると
「msdxm.ocxからコントロール'MediaPlayer'をロードできませんでした。msdxm.ocxのバージョンが最新のものではありません。以下略」
といわれ、起動できなくなってしまいました。
コンポーネントを見てみると、msdxm.ocxなるものがあり、選択してみるとwm9のアイコンがツールボックスに表示されます。

嗚呼、まさかwm9プレイヤーを入れただけでこんなことになるとは。たすけてママン
762たすけてママン:03/02/24 20:12
2連続ですまん。
msdxm.ocxのリンクを張ってみると、ツールボックスには真っ白なアイコンが・・・・。(なくなってる!?
ためしにmsdxm.ocxにリンクを張って、オブジェクト名を以前のバージョンのコントロールの名前を同じにして実行してみたら、
サポートしていないメソッドが・・・・・。(これってソース書き直しじゃん!?
wm9アンインストールしたら元に戻るとおもいますか?
コード出せって言われそうだけど
VBだけでPNG画像を扱うモジュールを作ったことがある。
もちろんZIP圧縮/解凍もVBだけでやった。
・・・が、笑える程遅くて使い物にならなかったよ・・・

PNGの全部の形式に対応してた訳ではなかったが、
PNGのRFCよりZIP関連のRFCと格闘してる方が長かったな。
DQNなんで英語は苦手なんよ。

JPEGをVBでやった「つわもの」(バカともいう)もどっかにいたな・・
>>763
VBは遅くないって結論出たわけだし、あんたもコード出せないわけだし、信用度低いな。

> JPEGをVBでやった「つわもの」(バカともいう)もどっかにいたな・・
お前はもっとバカだな(w
VBでJPEG保存するサンプルはこれかな
ttp://www.interq.or.jp/earth/kokoro/japanese/vb_sample_latest.html

VBのみでZIP扱えたらそれはそれでカコイイな
766デフォルトの名無しさん:03/02/24 22:56
あるexeに対するショートカットを作るなんてことは可能でしょうか。
できそうなら手法を教えてください。
767ひきプロ:03/02/24 23:20
768ひきプロ:03/02/24 23:34
>>760
SelTextなどを使って、保存したい部分のテキストだけを
文字列変数に入れて、それをファイルに保存してはどうでしょうか。
一部分だけをうまく選択するのが難しいかも
769ひきプロ:03/02/24 23:40
>>762
Windowsのセットアップディスクからmsdxm.ocxの
古いバージョンを持ってきてアプリと同じフォルダに
入れたらいけるかも
>>763-764
deflate圧縮はビットシフトとか多用しそうな気がする。
だとしたら、VBは速度的にかなり辛いんじゃないかなぁ…。
漏れは作ったこと無いからわかんないけど。

deflateの前に1回差分取るみたいな感じの圧縮もあったよーな気がする。
一度挑戦してみたいけど、漏れのスキルじゃzlib弄るのがせいぜい…。勉強しよ。

>>760
単にNULL値として 0x00を出力したいなら、素直に CByte(0) でも出力するのが
いいんじゃないかな。 0x00 0x00 なら CInt(0)。
vbの“Null値”はCの“Null文字”とは別物なので注意だ。“vbNullChar"も
“vbNullString"もまたちょっと違うのだ。

RichTextBoxからプレーンテキストを得たいだけなら、
RichTextBox.Text とか、
RichTextBox.SelText とか。
…意味が違う?
771763:03/02/24 23:55
>> JPEGをVBでやった「つわもの」(バカともいう)もどっかにいたな・・
>お前はもっとバカだな(w
バカ系プログラマには最高の褒め言葉だ。ありがとうw

PNGやったときは300MHzぐらいのときでVB4だったんよ。
今なら少しは使えるかもしれんけど、ビット演算が多いからね・・・

あとVBが遅いとはおいらも思ってないな。
2^1398269-1(メルセンヌ素数)を出力するプログラムは
Pen3-400MHz/VB4で6時間かかったが、
Pen3-933GHz/VB6で25分だった。
ちなみに同じマシンでVC++では16分。Linux/gccでは17分。
VC++/gccはコンソールだし最適化とか考えてないロジックでだから、
バカみたいに遅いわけじゃないんでない?
VB4まではバカみたいに遅かったと思うけど。
>Pen3-400MHz/VB4で6時間かかったが、
>Pen3-933GHz/VB6で25分だった。

CPUの速度にプログラムの速度が全然ついて行ってないが。特に下。
>>772
??
単に、VB4でP-Codeの場合死ぬほど遅い、
VB6で最適化コンパイルかけるとCと比較して遜色ない(と言えないこともない)、
という結果が出てるだけのよーに見えるけど?

何が言いたいかサッパリわからん…。

そういや、みんなは最適化コンパイルかけるとき、PentiumのFDIVバグチェック
外してる? 今どきPentium60/66があるとも思えないので必ず外してるんだけど、
かなり速度やサイズに影響するよ…。
>>773
普段から単位書かないから肝心なときに単位を間違えて恥をかく。
>>774
なんだ、Typoか。吊ってくる。
776デフォルトの名無しさん:03/02/25 01:34
VBからCなどで作ったDLLを呼び出して処理したいのですが、
DLL側から値がどんどん送られてくる場合VB側ではどのような処理でその値を
取り出したらいいか分かりません。
具体的にはDLLのタイマーイベントで何秒かごとに値がVBに送られてくるとして、
VBではその値を送られてきた順に処理するという感じです。
VB側でタイマーをコントロールするのではなく、送られてきた値をキューに入れて
どうにかするという方法は無いでしょうか?よろしくお願いします。
777ひきプロ:03/02/25 01:52
コールバック使うとか
778初心者1号:03/02/25 02:04
なんかいけそうです。
みなさんありがとうございます。
あのう、今さっきVB6をはじめた、超素人ですけど、質問していいですか?
ログ読んでも俺レベルよりはるかに上ばっかりで下は絶対いなさそうなのでサッパリわかりませんでした。
今安いぺらぺらの本買ってきて読みながら勉強してるんですけど、最初の方でつまづいてしまって・・
しかも答えとか載ってないから全然わかりません、いろいろと試行錯誤してるんですが・・
もし答えていただける方がいるなら質問させていただきます。
780ひきプロ:03/02/25 02:10
>>778
おー、よかった。がんばってください
>>779
どうぞ
781779:03/02/25 02:17
VBでチン子を大きくするにはどうしたらいいですか?
>>780
やったぁ、ありがとう。
テキストの文そのままうつします。
問題・ボーリングのスコアを2回分入力すると平均とランクを表示するプログラムをつくりなさい。
○処理条件○
・コマンドボタンを「開始」をクリックするとデータ入力用のダイアログボックスを表示し、1回目のスコアを表示する。
 300を超えるデータを入力したら、メッセージ表示用のダイアログボックスを表示し、データエラーを警告し、プロシージャから抜け出す
 ただし、999の場合はプログラムを終了する。
・1回目のスコアを正しく入力したら、2回目のスコアを1回目と同様の条件で入力する。
・2回目のスコアを正しく入力したら、平均とランクの判定を行って、その結果をラベルに表示する。
・ランクの判定基準は、スコアが2回とも250以上の場合は「超A級」、平均が200以上の場合は「A級」
 100以上の場合は「B級」、100未満の場合は「C級」とする。

です。
それから、ラベルは4つでコマンドボタン1つです。
しょーもない問題かもしれませんが、本当に困ってるのでよろしくお願いします。
わかりにくかったら言ってください
783ひきプロ:03/02/25 02:29
>>781
Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE http://playboy.com/"
>>782
宿題なら自分でやりましょう
784779・782:03/02/25 02:30
781は絶対俺ではないです。
785779:03/02/25 02:31
宿題じゃないんですよ〜。
休みの間になんか覚えたいと思ってはじめたんです。
だめですか?
786ひきプロ:03/02/25 02:35
全部聞いたら身につかないので
やってみてつまづいたら聞くようにした方がよいと思います
(いきなりつまづくのはなしで)
わかりました。
ではどーしてもわからないのを聞きます。
判定の出し方とかはわかったんですけど、2回値を入力するとこがうまくいかないんです。
ダイアログボックスは2回でるんですけど、2回入力してもなんにも表示されないんです。
そもそも1回目に入力した値がどこに記録されてるのかもわからないんです。
>>781
VBでプログラム作って、揉んでもらえるところに池。
変数を覚えよう
790ひきプロ:03/02/25 02:47
まず、どのような方法で入力用のダイアログボックスを
出していますか?
それから、ダイアログボックスで入力した値は変数に保存する
必要があります。変数の概念が分からなければマニュアルを
読んでみてください
変数って言うのは最初に宣言するやつですよね?
SUKOA = InputBox("スコアを入力してください","スコア入力",0)
です。
793ひきプロ:03/02/25 02:58
>>792
それと全く同じ文を2回呼び出しているんですか?
はい・・だめなんですか?
795ひきプロ:03/02/25 03:05
1回目の値は最初のInputBoxでSUKOAに入力されます。
2回目は別の場所にいれないとまずいです
なるほど〜、だからだめなのか〜。
じゃあSUKOA2とかにしたらいいんですか?
dim sukoa1,sukoa2,heikin
sukoa1=inputbox("1回目")
sukoa2=inputbox("2回目")
label1=sukoa1
label2=sukoa2
heikin=Int((sukoa1+sukoa2) / 2)
label3=heikin
if sukoa1>=250 and sukoa2>=250 then
label4="超A級"
elseif heikin>=200 then
label4="A級"
elseif heikin>=100 then
label4="B級"
else
label4="C級"
end if
798ひきプロ:03/02/25 03:13
>>796
そですよ。
>>797
あーあ
あれ?俺が今勉強してる範囲で出てきてないのとかある。
intってなんですか?
それからdimですけど、そんな風にまとめてよかったんですね。
俺は1つ1つ分けて書いてました。
797さんわざわざありがとう。
でも自分なりのを書いてみます。
800781:03/02/25 03:33
#include <stdio.h>
void main(){
int ちんこ通常;
int ちんこトランス;
int ちんこ平均;
printf("通常時の大きさをいれてください[mm]\n");
scanf("%d",&ちんこ通常);
if(ちんこ通常=999){
printf("終了します\n");
return 0;
}
if(ちんこ通常>300){
printf("化け物かよ!\n");
return 0;

printf("大きくなっちゃった時の大きさをいれてください[mm]\n");
scanf("%d",&ちんこトランス);
if(ちんこ通常=999){
printf("ちんこ測定終了\n");
return 0;
}

if(ちんこトランス>300){
printf("それでもでかすぎ!\n");
return 0;

if(ちんこ通常>=250){
if(ちんこトランス>=250)printf("超ボブさっ布級");
return 0;
}
ちんこ平均=(ちんこ通常+ちんこトランス)/2
if(ちんこ平均>=200)printf("外国AV男優級\n");
elseprintf("ちちぇえ\n");
return 0;
}










VBスレでわざわざCで作った781に敬礼!
なんとかできました。
でも797さんみたいに綺麗にまとまらなくてバカ長くなってしまいました。
こんな感じです↓
Option Explicit
Private Sub Command1_Click()
Dim SUKOA1 As Integer
Dim SUKOA2 As Integer
Dim HEIKIN As Integer
Dim ERA As Integer
SUKOA1 = InputBox("スコアを入力してください", "1回目", 0)
Select Case SUKOA1
Case 999
End
Case 0 To 300
Case Else
ERA = MsgBox("エラー", vbOKOnly, "エラー")
Exit Sub
End Select
SUKOA2 = InputBox("スコアを入力してください", "2回目", 0)
Select Case SUKOA2
Case 999
End
Case 0 To 300
Case Else
ERA = MsgBox("エラー", vbOKOnly, "エラー")
Exit Sub
End Select
HEIKIN = Val((SUKOA1) + Val(SUKOA2)) / 2
Label3.Caption = HEIKIN
If SUKOA1 >= 250 And SUKOA2 >= 250 Then
Label4.Caption = "超A級"
End If
Select Case HEIKIN
Case Is >= 200
Label4.Caption = "A級"
Case Is >= 100
Label4.Caption = "B級"
Case Else
Label4.Caption = "C級"
End Select
End Sub

ひきプロさんアドバイスありがとうございました。
後半直しました。
SUKOA2 = InputBox("スコアを入力してください", "2回目", 0)
Select Case SUKOA2
Case 999
End
Case 0 To 300
Case Else
ERA = MsgBox("エラー", vbOKOnly, "エラー")
Exit Sub
End Select
HEIKIN = Val((SUKOA1) + Val(SUKOA2)) / 2
Label3.Caption = HEIKIN
If SUKOA1 >= 250 And SUKOA2 >= 250 Then
Label4.Caption = "超A級"
ElseIf HEIKIN >= 200 Then
Label4.Caption = "A級"
ElseIf HEIKIN >= 100 Then
Label4.Caption = "B級"
Else
Label4.Caption = "C級"
End If
End Sub

806たすけてママン:03/02/25 09:38
>769
ありがとう。いろいろやってみました。ではその一部始終をご覧いただこう。

他のWM9インストール前のPCから取ってきてコピーしてみたがだめでした。
そもそも同じバージョンのファイルでした。あとサービスパックから古いバージョンのファイルを入れてみたがだめ。
どうだめかというと、一度リンクをはずしてあったので、ファイルをコピーしてもコンポーネントの一覧には表示されない。
おそらくレジストリをいじられてるとおもわれる。レジストリをどういじれば出てくるのかわからないっす。
方法としては事前にディストリビューションウィザードで作ってあったセットアップを実行すれば、このocxが登録される可能性大
とおもって、セットアップを実行。さっきコンパイルしてたexeを実行するが同じエラー。そこで再度IDEを開き、コンポーネントを見てみると、
予想通り、ocxが使える状態に。リンクを張ると、ツールボックスのアイコンもちゃんと表示される。その状態で再度コンパイル&実行。
うまくいきました。
結論
wm9player入れただけで、VBのコンポーネントから旧バージョンのocxへのリンクを消された。これはマイクロソフトが意図的にやったのか
だとしたら何のためか。意図的じゃないなら修正してほしい。
>>806
>wm9player入れただけ
って・・・ (´д`;)
開発環境に、ましてやWMPコンポーネントを使ったアプリを作ってるところに
バックアップも取らずにホイホイ新しいものを入れちゃう君の姿勢が
一番問題だと思うんだが。
利用可能な用紙サイズの一覧を表示するには
どうしたらいいでしょうか?
Printer.PaperSizeだと現在の用紙サイズだけですよね。
>>808
API使え。
DeviceCapabilitiesとか。
VB6の標準EXEプログラムをコマンドプロンプトから起動して、同じカレントプロンプトに
対して文字を出力するにはどうすればいいんでしょうか?

VBから新規にコマンドプロンプト立ち上げて出力は出来るんだけど・・・
>>810
標準出力へ出力するってこと?
API使っためんどくさいやり方しか漏れは知らない…。
812808:03/02/25 11:54
>>809
サンクスコ
813たすけてママン:03/02/25 13:02
>807

そういうものですか。以後気をつけます。
814810:03/02/25 13:12
>>811
そうです。でも、カレントのコマンドプロンプトへの標準出力がどうしても出来ないんですよ。
↓とか参考にして作ってますけど、プロンプトが立ち上がるだけで何も出ない…
ttp://support.microsoft.com/default.aspx?scid=kb;ja;171654
>>814
「どうしてもVBじゃなきゃ嫌」 と言うわけでもなければ
さっさと別の環境を使った方が早い。
816:03/02/25 13:42
>>814
EXEファイルを作成した後
editbin /subsystem:console exeファイルのパス
を実行してコンソールアプリにする必要があります。
editbinはVisualC++に付属しています。

それと、
> ttp://support.microsoft.com/default.aspx?scid=kb;ja;171654
に出ている例では WriteConsole で出力してますけど、これだとリダイレクトが使えなくなるので、
WriteFile で出力したほうがいいと思います。
817デフォルトの名無しさん:03/02/25 13:45
DB接続に以下のようなソースで実行しています

'Oracle 接続用オブジェクト作成
Set gOraSession = CreateObject("OracleInProcServer.XOraSession")
'データベースOPEN
Set gOraDB = gOraSession.DbOpenDatabase("GA", "GA/GA", 0)

この、セッション接続が6〜10秒ほどかかります
この速度を早くする方法はありますか?

環境はWin2000(sp1)+VB6.0(sp5)+oo4o+Ora8iです。

それともこれってこういうもの?
818810:03/02/25 14:15
>>816さん、で、出来ました…感謝です!
でも、editbinってVB6オンリーの開発環境だと入らないのでしょうか?
私は幸いにもVisualStudioだったので使えましたが…
>>817

そういうものだと思われ
820817:03/02/25 14:44
>>819
やっぱりそうですか・・・
ありがとう・・・
821:03/02/25 14:58
>>818
link.exeを置き換えて、リンクオプションで subsystem を指定する方法が
過去ログにあったと思います。

この方法なら editbin がない環境でも対応できるでしょう
>>818
プロジェクト プロバティの実行形式ファイルの作成タブの
アプリケーション タイトルに
CONSOLE:hogehoge
としたらできなかったかなあ
(ちょっと自信ナシなので、バックアップをお忘れなく)
>>822
あ、間違った。822は無視してくだされ
824810:03/02/25 16:26
>>821
ほほう、そんな技が。link.exeならVB6にもありますしね。
色々と参考になります。

.NETならConsole.WriteLineで一発なのになぁ…
>817
Oracle知らんのだが、名前解決に時間がかかってるって可能性は?
826デフォルトの名無しさん:03/02/25 17:00
RichEditコントロールのOLEオブジェクト埋め込み機能を無効にしたいのです。

で、OLEDropModeを1にして、OLEDragDropイベントが発生した時に
RichTextBox.SelText = Data.GetData(vbCFText)
ってやったんですが、これだとOLEオブジェクトは弾けるものの、
テキストをドロップするときの動作がOLEDropModeが2のときと変わっちゃうんですね。
(ドラッグ中に挿入位置が変えられなくなる)

仕方がないんでこの方法は諦めてGoogleで検索しまくってみたら、
SendMessageとEM_GETOLEINTERFACEでこちょこちょやると行けるらしいと発見。
しかし、それ以上探しても何も出てきませんですた。。

ということで、おまいら助けてください。よろしく。
#錯乱中なので文がおかしいかも知らんが許して。。
>>817
それはローカルに置いてるのかい?間にルーターとか挟まってない?
828デフォルトの名無しさん:03/02/25 17:17
SQL文でビット演算の結果を拾いたいんだけど
別の意味の論理演算子に取られてしまうよう
全部拾いVBで選別する以外でよい方法ある?
829817:03/02/25 18:41
>>825
すいません、名前解決ってよくわからないです
ちっともOracleのチューニングとかしてないので
これを設定すると早くセクションがはれるのですか?

>>827
ルータやら専用線やらはさまっていまつ

でも、SQLPLUSは早く繋がるので(といっても3〜5秒はかかる)
回線は大丈夫かなーとおもいまつ

つーか、ググってみてもセクションの部分の速度に関しては
言及してるところが見つからなかったので
そんなものなのかなとチト諦め気味です。
(他人のサンプルとか見ても接続中ってメッセージ出して
 時間をかせいでいるかんじだし)

VBってどこに売っているんですか?
近くの電巧堂に売っていますか?
>>830
VB6単体はすでに販売終了だったよーな気がする…。
まぁ、流通在庫が山とあるだろうけど。

ビジネスソフトのパッケージとかを沢山置いてある店ならあると思うよ。
書店で売ってることもあるな。文教堂に売ってたの見たことある…。
>>831
厨房扱いされると思いましたが、
すばやい回答ありがとうございます。
うちは超田舎なので、あちこち探しても無いんですよ。。
>>757
ありがとう!早速試してみます^^

>>759
処理系に依存、システムによってNULLの値が変わるということでしょうか?
検証してみます。ありがとうございました^^
>>829
いっぺんローカルで試してみろ。問題の切り分けはそれからだ。
古いのってMSDNのプロフェッショナル以上に入れば手に入れられるんじゃなかったっけ?
高いけどMicrosoft Visual Studio .NET Professional Version 2002 MSDN Deluxe Editionを買えば
http://www.microsoft.com/japan/msdn/vstudio/campaign/default.asp
いろいろ揃えられる。いまキャンペーン中みたいだし。
>>832 通販使え。
SQL*Plusで5秒もかかるなら仕方ないんじゃない
tnspingとかは?ためした?
838デフォルトの名無しさん:03/02/25 19:27
VBインストール時じゃないと
MSDNライブラリ関連づけつつインストール出来ないんじゃなかったっけ。
Dim a as ?
a=10/3
のような場合にaは何型で宣言すればいいのでしょうか?
>>839
Doubleでも好きなものを。
>>839
Doubleなどを使う場合浮動小数点についても勉強しておきましょう。
842839:03/02/25 20:03
>>840サン
>>841サン
勉強します。
小数になやんでましたのでありがとうございました。
843デフォルトの名無しさん:03/02/25 20:08
VB.NETでDelphiのTWebBrowserに相当するコントロールって何ですかね?
(*´д`*)アハァ…
>>843
とりあえずスレ違い。
コッチへドゾー http://pc2.2ch.net/test/read.cgi/tech/1043629429/l50
ドトネトーはワカラン…。
846VBしらん:03/02/25 20:18
スレ分けるほどドトネトーは違うのか・・・
>>845
わかりました。ありがとうございます。
>>799
> intってなんですか?
これは一番やってはいけない聞き方だ。
まずはヘルプを見る癖をつけろ。
その上でヘルプのどこがわからないかを聞く。
VB勉強しようと思ってます。
とりあえずHP作ろうと思ってるんですがVBでホームページって作れるんでしょうか? 
やり方とか書いた本とか知りませんか?
>>849
釣りは他でやって下さい。
851デフォルトの名無しさん:03/02/25 23:30
はじめまして。
最近VBを始めたのですがちょっと分からない事が出てきました。

例えばデスクトップ画面などでファイルを複数選択して、削除
する場合複数同時に削除できますよね。
これをコードで書く場合にはどういう風に書けばいいのでしょうか。

点線で囲んだ範囲のコントロールを複数同時に削除したいのですが
ちょっと分かりません^^;
どうかお助けお願いします。
>>851
何がしたいのか良くわかりません
853799:03/02/25 23:43
>>848
すいませんでした。知らないことを調べもせずにすぐ聞くのは失礼でしたね。
以後気をつけます。
854デフォルトの名無しさん:03/02/25 23:49
>>849
 ActiveXならできるよ
855デフォルトの名無しさん:03/02/26 00:07
VB4スタンダードからVB6スタンダードにアップデートできますか?普通に買いなおさなきゃダメですかね、4で事足りるですか?
>>855
これから買うならVB.NETにしろよ
>>851
デザイン時の話?
>>851じゃないけど、要約すると、
フォルダ内の選択中の複数ファイルを順に取得するにはどうしたら良いのか、
ってことじゃない?
俺取得方法がわからんけど、ループはFor Eachかなぁ。
VB.NETって普及してるの?
まったく聞かないんだけど。
860デフォルトの名無しさん:03/02/26 10:37
>>858
違うと思う。
ふつうはSHIFTやCTRLキーで複数選択するけど、
マウスのラバーバンドで範囲指定して、その領域内に含まれる
ファイル(アイコン状態)をすべて選択したことにする方法。
これってListViewコントロールで出来たっけ?
あんまり使ったことないんだよな。
861デフォルトの名無しさん:03/02/26 10:40
>>859
VB.NETスレ見たら?
ネット関係とか、ネットデータベースが楽になったみたい。
でも、それ以外はよくなってないみたいだし、遅そうだし。
>855
VB4に慣れてるならVB6を探して買う事をおすすめする。
私はVB4、5、6とつかってきて、.NETのあまりの変貌さに驚いた。
はっきり言ってアレはVBじゃない。
それと、スタンダードはアップデートは無かったと思うぞ。
プロ版以上しかなかったと思われ・・・。
>>861
VB.NETはアプリの起動は遅いが処理速度は上がったと思うよ
864デフォルトの名無しさん:03/02/26 11:01
今からやるならドトネトーだね。
それなりに苦労はあるが、取っつきやすいが色々と制限のきついVB6よりは
ドトネトーの方が少々知らないといけないことが多いが遙かに柔軟性があって
いろんなことが簡単に出来てしまうからお奨めだね。

特にVB6の中途半端なオブジェクト指向もどきは糞だね。
でもWindows98じゃ動かないからダメ
>>865
「VB4の32ビット版を買うやつはアフォ
Windows 3.1じゃ動かないからダメ 」
って感じですか?
867デフォルトの名無しさん:03/02/26 11:26
IN = 128
aaa = Right$("00" & Hex(IN), 2)
このaaaをまた10進数の値として取り出すことは可能ですか?
>>867
頭に"&H"つけてVALで変換
>>867
ヘルプで「16 進表記」を検索
870867:03/02/26 11:47
ありがとうございましたー!
VB6SP5でADOを使いCSVを扱いたいのですが、CSVへの書き込み時にエラーが出てしまいました。
ODBCでmicrosoft Text Driverを使っています。
読み込みはできました。今度はその読み込めたCSVのデータを書き換えるために以下のようにしました。
adodc1.recordset.fields(1) = 1
adodc1.updateの行でmicrosoft text driverが以下のエラーを出しました。
このISAMではリンクテーブル内のデータを更新することができません。
このドライバーは読み込み専用なのでしょうか?
>871

訂正です。
adodc1.udpate ×  -> adodc1.recordset.update ○
873861:03/02/26 11:49
>>863
そう?
どっかにVB6とVB.NETのベンチマークない?

VS.NETが800MHz以上推奨だったので、見送ってたんだけど、
VB.NETのパッケージ見たら、それほどではなかったのね。
買ってみようかな。
VB6で作ったソフトに自作アイコンをつかってみたいんですけど、
なにかいいアイコンエディターはありますでしょうか?
>>874
お手軽にやるならフリーソフトでいくらでも転がってるけど・・・
ちなみに俺はSaluteとかいうやつ。
ttp://www2.justnet.ne.jp/~south/salute/

本格的にやるならPhotoshopとかで32x32のbmpを書いて
bmp→ico のコンバータにかける。
876874:03/02/26 12:54
>>875さん
ありがとうございます。
サイズは32ですか・・・。
ガンバッてアイコン作ってみます。
877デフォルトの名無しさん:03/02/26 13:35
>>871
>このドライバーは読み込み専用なのでしょうか?
残念ながらそうです。ひょっとしてINSERT文だけ使えたかもしれませんが、どっ
ちにしろほとんど実用的ではないです。Recordset.GetRowsをうまく使ってファ
イルを作り直すか、
Recordset.Save "hogehoge.xml" , adPersistXML
でXML形式で保存するとか。
>877

ADOでCSVを扱う情報が少なくて大変でした。
やっぱり書き込みは無理でしたか。
仮にINSERTだけが使えてもDELETEが使えないときついですね。
更新があるたびに新規にテーブルを作るという荒業も考えられますが・・・。
実用的じゃないですね^^;

>Recordset.GetRowsをうまく使ってファイルを作り直す
いま作ってるアプリがたいしたものじゃないので、こういう感じでつくってもいいのですが、
それ以外のアプリでも使えるようにするため、
一般にADOをつかってCSVをデータベースとして直接扱える方法があるかいろいろ調べてました。

XMLはぜんぜん視野に入れてませんでした。
XMLも視野に入れていろいろ検討してみます。ありがとうございました。
879デフォルトの名無しさん:03/02/26 14:38
>>878
英語のサイトですけど膨大なサンプルコードが転がってますよ。
ここで検索するといいよ。もう知ってるかな?
http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?txtCriteria=&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariables=TRUE&lngWId=1&B1=Quick+Search&optSort=Alphabetical
>更新があるたびに新規にテーブルを作るという荒業も考えられますが・・・。
ヤメテー。・゚・(ノД`)・゚・。
881878:03/02/26 14:44
>879

いやまだ見てません。
検索してみます。
教えていただいてありがとうございました。
882817:03/02/26 15:40
>>834
やってみたよ・・・
やっぱりセッション接続に6〜10秒ほどかかる・・・
sqlplusでもSqlplus.exe GA/GA@GAって起動すると
やっぱり6秒くらいはかかるぅ・・・
(2回目の接続はどちらも2、3秒でいけるのに)

つか、もう原因はOracleっぽい感じなので
スレ違いだな

つか、VB+Oracleな事してる人って
この辺はあんまり気にならないのかなぁ
883878:03/02/26 15:45
>879

CSVで検索してみました。
CSV形式へのコンバートといった使い方が目的のソースと、
レコードセットをCSVで書き出すやつ(書き出すレコードが指定できないので実質はコンバート目的)しかありませんでした。
あと何か会員にならないと手に入らないソースがあるみたいですが・・・・。

面白そうなのがCSVをADOのような感覚で使えるCSVDBSなるクラスを発見しましたが、SQL使えない。
ADOコントロールと違ってフレックスグリッドコントロールと連携できないので今作ってるアプリに組み込むには多少面倒ですが、
やっぱりADOから直接CSV扱うのはいろいろ制限あって実質使えないかな・・。
>>882
普通はそこまで遅くないよ。
過去ログ見たり、MSDN見たりしたけどダメだったので質問。

Dim frmD As frmDocument
Dim font
Set frmD = New frmDocument
font = frmD.rtfText.font
lblFontName = font
でオプションダイアログだしたらなんか新しい子フォームが出た。
どうしてでしょうか?
教えて君で非常にスマソ
>>885
よくわからんが
Dim font
font = frmDocument.rtfText.font
lblFontName = font

でいいとおもうが
887デフォルトの名無しさん:03/02/26 16:19
886でいいと思うが、、

Formってのは、Classと似たようなもんです(というと突っ込まれそうだが

Set frmD = New frmDocument

を繰り返すたびに、フォームのインスタンスが出来ます。ただし、

Set frmD = Nothing

としてもそのフォームが消える(Unloadされる)わけではない。
888885:03/02/26 16:33
>>886-887
返信どうもです。
が、>>886のコードでやると
実行時エラー '91' :
オブジェクト変数または With ブロック変数が設定されていません。
と出るんですよねー。
改めて自分がヘタレだって知りました。
889デフォルトの名無しさん:03/02/26 16:35
>885
何がしたいんか?
ラベルにフォントを設定したいんか?
フォント名を表示させたいんか?
890885:03/02/26 16:38
>>889
アクティブな子フォームのRichTextのフォントを取得して、
ラベルにフォント名を表示させたいのです。
891そうだ選挙にいこう:03/02/26 16:41
>>885
885のコードで、スタートアップモジュールを
frmDocument(.frm)からmain(.bas)へ変更する。

もちろんmain.basは新規に作成し、frmDocument.frm中にはコードを
書かない。書きたければInitialize,terminateでコンストラクタ・デストラクタ
を記述する。

結構こういう組み方は海外のサイトで見かける。

>>885
どの行でエラーでてんの?
893デフォルトの名無しさん:03/02/26 16:43
>>890
フォントはStdFontオブジェクト。
そのNameプロパティがフォント名
よって…

Dim frmD As frmDocument
Dim objFont As StdFont

Set frmD = New frmDocument
Set objFont = frmD.rtfText.font
lblFontName.Caption = objFont.Name

では駄目かな?
実際試して無いんで解らないが。

規定のプロパティを付けるところと、
暗黙Variantは止めなさい。
894そうだ選挙にいこう:03/02/26 16:44
>>885
補足:
すべて標準モジュール内に処理コードを書き、フォームは設計のみで
クラス(のように)扱う。VBで擬似マルチを行う場合によくやる。
895デフォルトの名無しさん:03/02/26 16:46
>894
ここではモジュールの層は関係ないだろ。
VBはVBらしく組みたいな〜
897デフォルトの名無しさん:03/02/26 16:49
>891
設計の話はまた今度。
もしくは別スレ立ててやってくれや。

言いたいことや、やりたいことは推奨するし、
層の切り分けは大事だが、

    こ こ は 初 心 者 ス レ
前から思ってたんだが、スレタイの「初心者」って必要なの?
だって「上級者」スレってないじゃんw
単なる「VB質問スレ」でいいような気がするんだが・・・
899デフォルトの名無しさん:03/02/26 16:53
>>897
ふーん
900そうだ選挙にいこう :03/02/26 16:58
>>987
仕切っているところを見ると2ch初心者ですか?

>>885
Dim ft As New FontDialog()

ft.Font = TextBox1.Font
ft.ShowDialog()
TextBox1.Font = ft.Font
901ネ刀必者:03/02/26 17:00
質問
フォント名の表示と多層アーキテクチャはどのような関係があるのですか?
初心者の僕には関係が見出せません。
よろしくお願いします。
902デフォルトの名無しさん:03/02/26 17:01
987踏んだ香具師は2ch初心者ケテーイ
>>901
1を聞くと10答える人なんじゃない。超ウザイよね。
904デフォルトの名無しさん:03/02/26 17:07
>>900
( ´,_ゝ`)プッ
905デフォルトの名無しさん:03/02/26 17:08
>>885
アクティブな子フォームってMDI使ってるの?
906885:03/02/26 17:14
>>893
このコード使ってもだめでした。

うーん、オープンソースアプリにしようかな?
>>906
なんか斜め読みしかしてないんだが、すでに開いてるフォームを
新たにインスタンス作成してるのが問題なのでは??
>>907
ちゃんと読んでからカキコしてね
909デフォルトの名無しさん:03/02/26 17:30
>>885
893どう駄目だった?
910885:03/02/26 17:33
修正前と同じですた。
オプションダイアログ出すたびにフォームが出ます。
911893:03/02/26 17:35
>>885
すまん、アクティブフォームのコントロールを拾うのね(^−^;
これでは新規にフォームのインスタンス作ってるから、
子フォームが増える罠。

だから、フォームのインスタンスを作ってるところ
Set frmD = New frmDocument
これを、アクティブフォームを拾うように変えればいいよ。
>>885
> Set frmD = New frmDocument
この行は何をしているつもりだい?
913デフォルトの名無しさん:03/02/26 17:37
これでだめなのかなあ
Dim objFont As StdFont

Set objFont = frmDocument.rtfText.font
lblFontName.Caption = objFont.Name
ActiveForm つかえ
アホくさ
916885:03/02/26 17:47
>911
やってみますたが、「複数の MDIフォームは使用できません」
と怒られてしまいました。

レス遅れるかも知れません。
917893:03/02/26 17:51
>>916
Set frmD = [MDIフォーム名].ActiveForm
でアクティブな子ウィンドウを取得できるよ。
ど素人がオープンソースって、丸投げの言い換え?
919885:03/02/26 18:04
毎回教えて君ですいません。

>>913
それでもダメでした。
ご教授ありがとうございます。

>>917
やっぱり、ダメでした。
ご指摘ありがとうございます。

>>918
いえ。おかしいところを口で説明するのが難しいため、
ソースを公開すると言うことです。
920893:03/02/26 18:13
>>919
乗りかかった船だ。
ソース出してみ。
921デフォルトの名無しさん:03/02/26 18:38
>>900
987ってなんだ?887のことか?
922885:03/02/26 18:42
ソース晒します。
ttp://web-box.jp/511

ご指摘お願いします。
毎回厨房でスマソ
直接プログラムとは関係ない質問でスマソのですが…

今Win2000にVB6.0(訳あってSPなし)を
導入して画面を作っているのですが、
今日急にVBのヘルプが使えなくなってしまいました。
(メニューからヘルプ選んだりF1押すと
「"0x00730076"の命令が"0x80004005"のメモリを参照しました。
メモリが"written"になることはできませんでした。」
というエラーが出て強制終了する)
どなたか解決方法をご存知ないでしょうか?

ちなみにVB6やMSDNを入れなおしても解決しませんでした。
OfficeやIEなどほかのアプリのヘルプは
正常に見れるのですが…。

924デフォルトの名無しさん:03/02/26 18:51
>>885
886。それで、ちゃんとその
rtfText
rtfText.font
がoublicになってるかどうか。
>>923
サービスパック入れれ。
927924:03/02/26 19:05
oublicはPublicのまちがい
rtfTextってコントロール?
928893:03/02/26 19:18
>>885
まず、MDIフォームはModule1のSub Mainでインスタンスを生成している、
fMainFormがインスタンス名。

よって、frmOptionsのロードイベントでのMDIフォームには
frmMainじゃなく、fMainFormを使う
その上にあるDim frmD〜がコメントアウトされてるから、有効にしとくように。
さらに、ActiveControlプロパティなっているが、呼び出すのはActiveFormプロパティな。
おそらく、これでフォント名は表示するはず。

で、閉じるときなのだが、cmdOKのクリックボタンを例に出すと、
frmDocumentを直接触ろうとしているが、これが間違い。
実際に触るフォームはfMainForm.ActiveFormである。
frmDocumentを触ろうとすると、新規のフォームのインスタンスを生成してしまうよ。
(クラス的に言えばフォームはGlobalMultiUse属性なので)
だから、frmDocumentの部分をfMainForm.ActiveFormに変えたら、新たにフォームを開かずに動くだろう。

書き方としてはもっと整理しなければならないが、現状動くというレベルまでで。
929893:03/02/26 19:21
ちょっと厨房が触るにはまだ早いような気がするよ。
もう少し、オブジェクトとインスタンスは理解しないと、しんどいよ。
Err.Numberはプロジェクト全体で使えるパブリックな価なんですかね?
また、Error.Numberというのもありますか?
たしか、ErrオブジェクトとErrorオブジェクト両方あったような気もするんですけど
やっぱりこれは同じもので、ただ短い文を書きたいときはErrをつかえばいいんですよね?
複数行のテキストボックスtxtaaaの中の文字一文字ずつ検索したいんですけど、始まりはdo until EOF(txtaaa.text) 見たいな感じでいいんですかね?
>>930-931
ヘルプ見たか?
自分で試したか?

自分で調べることをしない奴にはプログラムは無理だろう
神と人間の違いはなんだろうか?
そう、献身さだ。
猿と人間の違いはなんだろうか?
そう、知識に対する貪欲さだ。
つまり、神が猿に教えを与えるスレ、っと…。
いや、猿と人間の違いは
自慰行為に対する貧欲さだ。
おーい山田君。
猿のAA張っといて〜
ErrオブジェクトとErrorオブジェクトの違いをキボンヌ
脊髄反射しないでヘルプ読めよ
940885:03/02/26 22:45
しばらく放置ですいません。
やっぱり、漏れは厨でした。
ご指摘してくださったみなさん、ありがとうございました。
941938 ◆I3oM8XJnRI :03/02/26 23:08
神は寝る暇をおしんでカキコんでくれる。
オレが寝てる間に答えがあることを期待する。
>>941
VBにErrorオブジェクトは無い。
ErrorステートメントとError関数ならある。
Errオブジェクトもある。

なにがしかのコントロール(例としてData Report デザイナ)が
Errorという名前のオブジェクトを持つことがあるが、VBのエラー
とは関係無い。

満足したか? 漏れはこれから寝る。
943938 ◆I3oM8XJnRI :03/02/26 23:53
>>942
感動した。おやすみなさい。
おまいら、>>826もお願いしまつ。
GetFormat
946デフォルトの名無しさん:03/02/27 07:44
VBで[標準のブラウザ]を変更するにはどうしたら良いでしょうか。
HTML上でハイパーリンクをクリックした時に開くブラウザをボタンで変更したいのです。
おながいします。
Picture1.BackColor = &HFFFFFF
でも
Picture1.BackColor = "&HFFFFFF"
でもどちらでもピクチャボックスの背景色を変えられましたが、
正しくはどちらなんでしょうかね?
        彡川三三三ミ
       川川 ::::::⌒ ⌒ヽ  ハァハァ
      川川::::::::ー◎-◎-) ←
      川(6|::::::::  ( 。。))   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ._川川;;;::∴ ノ  3  ノ  < 漏れ?
  /;;;:::::::::::::::\_;;;;;;;;;;;;;;;;ノ    \______________
 /::::  /::::::::::::    |::::|
(:::::::: (ξ::  ・ ノ::・/:::|
 \::::: \:::::::   (::: |
 /:::\::::: \:::    ヽ|
/::::   \::::: \::: ヽ )
|:::      \::   ̄ ̄⊇)__  〜
|:::::::      \;;;;;;;;;;;(__(;;;・)  〜 モワー
\::::::::::   ξ(;;; );; )      〜
  \::::::::::::    ) )
    ):::::   //
   /::::::::: //
 /:::::  (_(_
(;;;;;;;;;;;__っ)))つ))
      ,,,,-‐'" ̄ ̄ ̄ ̄"―-、.
    /             \
  /                \
 /                     ヽ
/            神        ヽ
|                       ヽ
|                    ,,,,;;::'''''ヽ
 |          ;;:::::::'''"  .:     ,,,,,,  ヽ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ...        "  ,,,,,,,,, .::    ;''“”`   | < ハッハッハ!見ろ!人がゴミのようだ!
  .―.        ;::''“”“~` ::::.       .. |.    \_____________
..| | ̄..              :::::::        |
 .\{_             ( ,-、 ,:‐、 )  |
  \\/..            \\\\  |
    \_ヽ.|       ヽ.__,-'ニ\\\\| ;": ..;.;".;
      `、ヽ         ヾニ二.\\\\ ;": ..;.;".;
 ;".;"".;":ヽ\             ..\\\\;": ..;.;".;
 ;".;":;"." :  `ー-::、_        ,,..'...\\\\ ;".;":
 .;".;: .;"        `ー――'''''     .\\\\ ;": ..;.;".;
 :   ゴ オ ォ ォ …… ! !".;"   \\\\   ;": ..;.;".;":
 ;"         .;".;": _.;.;_".;":     \\\\   ド カ ァ ン !
  .;".;": ..;.;".; ζ /_.;_/| .;".;", _   \\\\  .;".;.;".;":
 .;".;": ..;.;".;": ;:'.;| ΓΓ | |;":从へ_/|   .  \\\\"_.;__..:
 从へ从へへ从  ; ζ  | Γ从 | |;:.. |从Γ | |     从へ从∠___/|
     ( ⌒( ⌒ ) ζ | 从Γ | |.:;. |从Γζ.;".. .;. \ |ΓΓΓ| |p
                           なんだよ?              (  (
                   ,,.r'' ゛~~` ''ッ,,  何見てんだよ?          )   )
                 、 ゛  ,,,,,,,,,,,,,,,,,,,,, ヾ.   荒らすなよな!   ,.、    / /
                  ミ   ミ゛,へ.__, ,_ノヽ i.                .| |l   l ,´
                ミ    ミ, ( ・) {・フ 〉 ミ.          _-、i::| |ニニii '
            、,,,,ツi:     ミ,`~´ ヽ~〈  .ミ        /,‐ヽヽ`、||
          、シ``   i:      ,ゞ  'n.inヽ. .ミ          ( .〉〉/
         シ  //      ミ`    l.l ヽ"、         /  ノ
        ミ/ シ           彡 ,=こ二=.{ ミ,,      ,r'´ ,,、'゛
        ミi. /  /       ' ! w、`~^' vwv '、   ミ      〃 .ミ
       .ミ /     i:  /      `^^     \ ."   〃  ミ
      .ミ.:/ / / i:      v    !  ,,   \ 、 〃  ミ
      :i;     .i:   w      !!   ミ!:   ミ \\( ⌒ヽ
      :i;  /   i:      !!       .ミ キ    , ⌒`、_  )  )
      :il     .i:    !    w!    ミ .:i.   (_ (  _,ノ  ) ,
     :il   !  i:           ! ,〃゛  キ    ゞ、 __,  ノ ,
     .:il !   /~~````` " '''' = ‐- 、ミ  _,,,,_ミ,  il `  ー ´
     :il   ´ ―  ̄ - ,,. -‐‐-、、 ヽ. ヾ、  ゞ、 `  〃
     ゝ、wx.mn.!!++ナ'~      ヾ~ヽ、 ヽ、 ,, ~^^}´
        彡   〃  〃     }} /〉.〉〉〉i''"   〃
         彡、     {{     〃,__!////l |    〃
           X,,    》.   ≪.__`‐'.' '´,Uwwvw'、...,,,___
            ^^^^ !wニこ)こ)二)`) (_,,,..- 、...二⊃_).)
>946
レジストリ
952デフォルトの名無しさん:03/02/27 10:02
ネットワークドライブに接続して、そこのフォルダにDIRしたら、
そのままつかんじゃって切断できません。なにかうまい方法はありますか?
>>947


>>952
Dirの使い方間違ってるかFSOで代用する
>>947
ウソついた。上。
暗黙の型変換について調べることをオススメする。
955947:03/02/27 11:02
>>954
VBの中で何かが起こってるんですね。ありがとうございます。
956デフォルトの名無しさん:03/02/27 12:01
フォルダ階層を順に追っていって、あるフォルダの中にある
すべてのフォルダ・ファイルにアクセスするにはどうしたらいいでしょうか。
色々試行錯誤してはみたのですが、どうもうまくいきません。
>>956

再起検索しる。

sub hoge(pathHoge)

  a=Dir(pathHoge)
  Do While a <> ""
    aの値を配列にでも格納しる
    a = Dir()
  Loop

  For 配列の中身
    Call hoge(配列(i))
  Next
End Sub

みたいな感じ。

間違っても、Dirで列挙している最中に再帰呼び出ししてはいけない。
Dir関数が腐るぞ(笑
958828:03/02/27 12:23
どうよ? >>828
>>958
SQLのスレ逝け
960817:03/02/27 12:55
>>884
マジデスカΣ(゜д゜|||)

Oracleスレはだれも反応しないし
ネット漁っても引っかからないし・・・

(´・ω・`)モ ウ ダ メ ポ
961デフォルトの名無しさん:03/02/27 16:20
VBからCで作ったDLLのDllMainを呼び出すにはどうしたらいいのですか?
>>961
Declare か LoadLibrary
963961:03/02/27 16:32
>>962
DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved)
呼び出す時にこの引数の中に何も入れたくないんですけど無理ですか?
964デフォルトの名無しさん:03/02/27 16:43
カンマ区切りの行ファイルがあって、そこからカンマを抜きにしたデータを
1つずつ取り出すにはどうしたらよいでしょうか?
965962:03/02/27 16:57
>>963
どっかでみたような質問だな

引数に何も入れたくないってことは全部値0でってことか?
DllMainがエントリポイントである限り無理だと思われ。

何でそんなことがしたいわけ?
>>964

Dim arrayHoge() As String

arrayHoge = Split("hoge,hoe,hanyan", ",")

For i = 0 to Ubound(arrayHoge)
  Debug.print arrayHoge(i)
Next
967964:03/02/27 17:12
>>966
ありがとうございます
968 ◆HLRHHB4j46 :03/02/27 17:59
アドレスwww.uploader/forlder001/にファイルをアップしてみた。
というカキコミから
www.uploader/forlder001/
だけを抜き出すにはどのような正規表現を使えばいいの?
当方InStr関数とかは使えるけど正規表現はサパーリ。
「www.uploader/forlder001/にファイルをアップしてみた。」
というアドレスだったらどうする?
970968 ◆HLRHHB4j46 :03/02/27 20:24
>>969
全角文字列・/を含んだ半角文字列・全角文字列
という1行から/を含んだ半角文字列を抜き出すアルゴリズムがほしいのよ。
だから
「www.uploader/forlder001/にファイルをアップしてみた。」
というアドレスは無視。
ちなみに
upSHITEMITAYO----------KOKONI-----www.uploader/forlder001/
というようなのもupSHITE〜001/まで抜き出してしまってもかまわない。
とにかく/を含んだ半角文字列はアドレスである確立が高いのでそこを抜き出したい。
まぁ、普通はURLとして不正な文字があるかどうかチェックだな。
2バイトURLは見なかったことにする。

w+\...+\/.+[^!#-;=?-~]
ってな感じかなぁ。試してないけど。
972968 ◆HLRHHB4j46 :03/02/27 20:34
>>971
Dim myStr as String
myStr="www.uploader/forlder001/"
myStr2="アドレスwww.uploader/forlder001/にファイルをアップしてみた。"
'だとすると、
If myStr = (w+\...+\/.+[^!#-;=?-~](myStr2)) then
form1.caption="アドレス抽出しました。"
End if
'のように正規表現は使うわけ?

正規表現の書き方は今日教えてもらった
w+\...+\/.+[^!#-;=?-~]
をコピペして使ってみるけど
正規表現の使い方がわからないのだ。
973968 ◆HLRHHB4j46 :03/02/27 20:36
つまり、
myStr2="アドレスwww.uploader/forlder001/にファイルをアップしてみた。"
に対してどうやって正規表現を使ったら
"www.uploader/forlder001/"
が出てくるのだろうか?
「半角文字列を抜き出すアルゴリズム」
 規定した文字列で連続するもの毎に配列に入れる処理
 IN "つまりYouはこうEたい訳だ、「となりのuploader/forlder001/ってかっこEeeee」"
 OUT You E uploader/forlder001/ Eeeee
「アドレスかどうか判定する処理」
 文字列 like "*.*/*" 程度でいいのかどうか・・
975968 ◆HLRHHB4j46 :03/02/27 20:56
>>974
そんなことより速戦的な使い方のソースをクレよ。
たぶん
Set mySeiki = 正規表現オブジェクト
みたいな感じで宣言すると正規表現が使えると思うんだよね。
>>975 そうか、がんばって探しな
977968 ◆HLRHHB4j46 :03/02/27 21:09
>>976
自分で探した方が早いなんてなんてスレだっ
>>968
「set 正規表現 オブジェクト」でgoogleしたら
すぐにヒットしたけど?
979デフォルトの名無しさん:03/02/27 21:10
>そんなことより速戦的な使い方のソースをクレよ。
あはははははははははははははははははははははははははははははははは。
てめーで検索しろよ、間抜け野郎!

ここで探せ:
http://www.google.co.jp/search?q=vb+regexp&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
980968 ◆HLRHHB4j46 :03/02/27 21:11
>>978
検索結果をこちらに貼り付けたまへーくるしゅうない
981968 ◆HLRHHB4j46 :03/02/27 21:12
>>979
regexp
を見て、そうだ!そんな感じだった!と思い出した。
なかなかドキっとしたぞ。えらいえろい
最悪の質問者だな…
丸投げイクナイ
983デフォルトの名無しさん:03/02/27 21:15
>>968 ◆HLRHHB4j46
思い出したんじゃなくて、今知ったんだろw
984968 ◆HLRHHB4j46 :03/02/27 21:22
>>983
まったく知らなかったんなら正規表現という言葉自体知らないはずだろ。まあ多少の記憶のひっかかりはあった。
無事正規表現使用の見通しもたったところで、この話題はここでピタッと終了〜。
985デフォルトの名無しさん:03/02/27 21:24
性器表現ってなんでしか?
>>985
あー、やっちゃったね。
なんで関数(FUNCTION)と手続き(PROCEDURE)に分けているんでしょうか・・・
988デフォルトの名無しさん:03/02/27 22:27
フォルダの中にあるファイルを更新日時順にソートしてそのファイル名
をテキストファイルに書き出したいのですが、なにかいい方法はありま
すでしょうか?
よろしくおねがいします。
989デフォルトの名無しさん:03/02/27 22:41
6.0のWebBrowserは.netでは何て言うのでしょうか?
>>989
それをなんで6.0の方のスレで聞く?
>>990
どこにも6.0のスレとは書かれていない罠。
ところで次スレは?ないなら立てるけど。
992デフォルトの名無しさん:03/02/27 22:49
>>990
6.0なのココ?
>>988
ファイル一覧を取得し、ファイル名と更新日時を配列に突っ込む。
ユーザー定義型の配列か、二次元配列を使え。

んで、その配列をソートしる。
件数少ないならバブルソートでも充分だろ。


激しく手抜きしたいなら、Sorted = True にしたListBoxを用意して、
List1.AddItem Format(FileDateTime(ファイル名),"yyyymmddhhnnss") & ファイル名
っつー手も無いこともない。
書き出す時はForで回して、
  Print #1, Mid(List1.List(i),15)
とかやる。

…ま、本気で手抜きする時以外は勧めないが。
994990:03/02/27 22:55
や、少なくとも.netよりは近いだろうって事で。



↓次スレよろ。
995デフォルトの名無しさん:03/02/27 22:57
>>989なんですが答えてもらえないのでしょうか?
Dim 1000() As Integer
Set 1000=ALL
1000か?
1000!
999!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。