トップページ⇒tech
988コメント350KB

くだすれVB6.0以前(超初心者向け)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/12/08(金) 19:36:45
このスレッドはVBについて、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします。
0577デフォルトの名無しさん2007/08/31(金) 13:58:58
>>575
gotoの動作としてはまったくかわらんよ
ローカル内で考えると、goto HANDLEがErr.Raiseって感じだし
やっぱり、gotoを絶対使わないという信条の人なら
On Error Resume Nextを使う必要があるんじゃないのかね
0578デフォルトの名無しさん2007/08/31(金) 13:59:40
HANDLEじゃないLABELの間違いw
0579デフォルトの名無しさん2007/08/31(金) 15:04:06
>>568
は>>569見たいな状況
「上から下に読める」なんてドンだけフローチャートの世代なんだ

>>570(>>559)
>>564がぬるぽ

>>574
>>565がぬるぽみたいだ
「エラーでジャンプ」し尚且つErrオブジェクトで意味も参照できるからいいんじゃないかと
これは If cond Then A Else B 文で「condで A または B にジャンプ」という意味があるのと同じ

したがって >>576 はちょっとナンセンスな切り返しだ
ただVB6の言語仕様が昔ッからのを引きずっているのは確かで、
その状況で「GOTOを禁止する」ことが果たして万全なのかどうかは俺にはわからない
本嫁
0580デフォルトの名無しさん2007/08/31(金) 15:07:15
.NETだとtry-catchできるの?
0581デフォルトの名無しさん2007/08/31(金) 19:04:45
>>574
だから、教条主義的にgotoを禁止するのは馬鹿げてるけど
大概の処理はgoto無しで、かつgoto使った場合より可読的に書けるよ。

それと、なんか君は「コードを書く時」の目線ばかりを優先しているように見えるけど、
(どうしたらよりコンパクトに書けるか、みたいな)余計なお世話だろうがよくない兆候だよ。

「コードを読む時」目線で考えるべきだ。
つまり、他人にとって、あるいは一年後の自分にとって「読んで理解しやすいかどうか」を
(gotoならgotoの使用の是非の)判断の指針にすべきだ。


>>579
上から下に読み下せないコードはヒトにとって読みにくい、
という経験的事実がフローチャートとどう関係するんだろうねw

構造化プログラミングすら理解してないなら黙ってればいいのに。
ループ、分岐、関数、といった「構造」に抽象化するのは上から下に読み下すためだろう。

ループも分岐も、ループや分岐という概念を知らずそれを「ループ」や「分岐」として
認識できなければ、ただのgotoだ。

というか、日本語書けよ馬鹿。
05825592007/08/31(金) 20:25:54
いちおう、毎回「コードを読む時=後で他の人がメンテナンスする時」
を意識しているつもりではいるのですが。
(GOTO嫌いな人にとって感情的に読む気が失せる・・・のは無視します)

「大概の処理をGOTOを使った場合より可読的に書く」
イメージがなかなか沸かないです・・・。
0583デフォルトの名無しさん2007/09/01(土) 10:53:51
んーそうだなーじゃあちょい視点を変えて
飛び元と飛び先のロジックの関係を考慮しなくちゃならなくなるケースを考えてみるとか。
複数の場所から一つのラベルにGotoが貼られているとする。
仕様変更でラベル以降のロジックを修正しなきゃならなくたった場合、呼び元の全ての
ロジックへの影響を考慮しなくちゃいけない、とか。
0584デフォルトの名無しさん2007/09/01(土) 13:28:47
それは条件分岐でやる場合でも、関数を使う場合でも
同じことを考慮しなくちゃならないと思うけど
0585デフォルトの名無しさん2007/09/01(土) 17:41:41
>>581
まあ本当に構造化プログラミングを理解してる人間なんていないと思うんだが
もしかして、構造化=ソースの構造化、と間違えてる?
0586デフォルトの名無しさん2007/09/01(土) 21:56:28
なんでゲーム作る奴って、ターンとかロールなんていう言い方するんだろうね。
実際にプレイする小中学生とかが
ターンとかロールなんて言われても何の意味だかわからんだろ。
やたらと横文字使えばいいってもんじゃねーぜ。
だから、ゲーム作る奴はバカって言われるんだよ。
もう一度言ってあげようか?
バ・カだよ。バ・カ
0587デフォルトの名無しさん2007/09/01(土) 22:27:16
何言ってるかわからん
vb関係ないし
日本語でおk
ってか人間でおk
0588デフォルトの名無しさん2007/09/01(土) 22:52:04
そこはゲームなんて横文字を使うなと指摘するべき
0589デフォルトの名無しさん2007/09/02(日) 05:10:05
俺の場合、ゲームのきっかけが古いADVから入ったから小学生時代に
英単語覚えたな
昔のADVはコマンドをすべて、自分で考えて打ち込まなければならなかったしかも英語でw
もちろん小学生の頭じゃほとんど理解不能でクリアしたのはずっと後だったけど
0590デフォルトの名無しさん2007/09/03(月) 09:18:24
CreateObjectでInternetExplorerを操作しているのですが
このIEのユーザーエージェントを変更する方法は
ありますでしょうか?
0591デフォルトの名無しさん2007/09/03(月) 09:34:16
自己解決しました。
navigateの引数にありました。
0592デフォルトの名無しさん2007/09/03(月) 15:55:25
VB6からADODBを使って、MS SQLServer2000 上のテーブル/ストアドプロシジャ更新を行いたいのですが、
SQL文の区切り(?)に使われている GO がエラーとなってしまいます。

'現在試している方法
Dim hTextStream As TextStream
Dim hFso As New FileSystemObject
Set hTextStream = hFso.OpenTextFile("foo.sql")
Call MyConnect.Execute(hTextStream.ReadAll())

foo.sqlは、EnterprizeManagerで作成したテーブル、ストアドプロシジャの削除、登録のSQL文で、
当然ながら、クエリアナライザでは正常に動作します。

クエリアナライザで実行する場合と同じ結果を、VB6で得られないでしょうか。
0593デフォルトの名無しさん2007/09/03(月) 17:50:39
>>592
GOはSQLコマンドじゃないからです。

ここ参照
ttp://technet.microsoft.com/ja-jp/library/ms188037.aspx
0594デフォルトの名無しさん2007/09/03(月) 18:33:25
>>593
GOを無視し(というか、//に置き換え)てやってみたら、希望通りの動作になった様です。
GOってのはあっても無くても動作に変わりは無いのですかね?
とりあえず、簡単に試したところ正常に動いているようなので、これでいってみたいと思います。
ありがとうございました。
0595デフォルトの名無しさん2007/09/04(火) 02:52:37
>>594
    /\___/ヽ   ヽ
   /    ::::::::::::::::\ つ
  . |  ,,-‐‐   ‐‐-、 .:::| わ
  |  、_(o)_,:  _(o)_, :::|ぁぁ
.   |    ::<      .::|あぁ
   \  /( [三] )ヽ ::/ああ
    `ー/-‐‐ヽ‐‐´  ぁあ
0596デフォルトの名無しさん2007/09/06(木) 23:34:19
VB6.0を最近使い始めたものなんですが
配列を2つ作って一方がもう片方を参照するには
どうすればいいのでしょうか?

0597デフォルトの名無しさん2007/09/07(金) 00:06:46
>>596
VB6の配列は値型です(関数のByRefで渡した場合の仮引数は参照ですが)

どうしても、という場合はクラスでラップするか、関数の仮引数としてByRefで渡してあげてください
05985962007/09/07(金) 12:37:04
ありがとうがざいます
試してみます
0599デフォルトの名無しさん2007/09/07(金) 15:26:15
>>587
氏ね
屑野郎
0600[Fn]+[名無しさん]2007/09/08(土) 11:46:27
年寄りの手習いで,VB6始めようとしています。
すみませんが,VISTAに普通にインストール&使用は可能でしょうか。
動作可能にはなっていますが,特にインストールの必要なファイルなどは
あるのでしょうか?
0601デフォルトの名無しさん2007/09/08(土) 12:03:05
>>600
インストーラーのインストール手順に従っておけばおkです
詳細については
ttp://www.microsoft.com/japan/msdn/vbasic/support/vistasupport.aspx
のHPを見てください
0602デフォルトの名無しさん2007/09/08(土) 12:36:46
VB.NET質問スレ
http://pc11.2ch.net/test/read.cgi/tech/1189038267/37-38

ENDは使っちゃいけないのでしょうか?
0603[Fn]+[名無しさん]2007/09/08(土) 20:29:57
>>601
 ありがとうございます。
 インストールしていますが,問題ありのメッセージが2度ほど出てきます。
無視して続行していますが,大丈夫しょうか。
0604デフォルトの名無しさん2007/09/10(月) 16:19:20
みなさんは、画面設計時に、オプションボタン(ラジオボタン)と
ドロップダウンリストのどっちを使うか悩む事ってないですか?

どういう判断基準で、使い分けしてますか?

0605デフォルトの名無しさん2007/09/10(月) 18:37:30
見たマンマじゃない?
考えるな感じ取れ、だよ。

【ドロップダウン】
 ○ 省スペース
 × 選択肢の「見通し」が悪い。

ラジオボタンはこのちょうど反対。
0606デフォルトの名無しさん2007/09/11(火) 23:32:20
上手く伝えることが出来るか不安なのですが・・・。

ファイルの送受信(メッセンジャー等に付いている様な)を行うプログラムを作成したいと
考えているのですが、VB6.0にそのような機能はついているのでしょうか?
また、上に挙げた様な機能がなくともそのようなプログラムを作成する事は可能なのでしょうか?


もし参考になりそうな本等がありましたら教えていただけると幸いです。
0607デフォルトの名無しさん2007/09/11(火) 23:36:18
> VB6.0にそのような機能はついているのでしょうか?

ついてない。


> そのようなプログラムを作成する事は可能なのでしょうか?

可能。


> もし参考になりそうな本等がありましたら教えていただけると幸いです。

「○日でできるVB6.0」とか「VB6.0入門」とか、そういう系統。
0608デフォルトの名無しさん2007/09/13(木) 13:50:31
VB6.0とSQLSERVERで開発
数量、単価、金額、消費税、原価率・・・などなどの四則演算を行う場合、
各々のデータ型をどう定義したら良いのでしょう。

VBでSingle/Double
SQLSERVERでfloat/decimal
ネットとかでよく見かけるのは、これらの浮動小数点型なんですが、
これって誤差がつきものですよね?
システム上同じ数字を出す全箇所について、必ず同じ計算ロジックを通すという
コーディング制約を設けて、それを遵守しないと、絶対どこかで誤差が出ますよね?

さらに、VBはDouble(倍精度)、SQLはfloat(単精度)などの定義をしている
例をことさらよく見かけますが、こんなのはアリなんでしょうか?

「金額が関わるところに浮動小数点を使うのはあり得ない」と断言しているサイトも
どこかで見ました。
必ず固定小数点型、VBはCurrency・SQLはmoneyだろう、スピードは落ちると言っても、
最近の機械ならそれこそ誤差の範囲だ・・・という感じの紹介で。

私も、数字に誤差の出ない固定小数点がいいんじゃないかなー、と思っています。
でも、現実はどちらかといえばそうじゃないことの方が多い・・・・
一般的には、どう考えるものなんでしょうか。
0609デフォルトの名無しさん2007/09/13(木) 14:10:23
エクセルで作れば?
06106082007/09/13(木) 14:21:19
間違えてました、すみません。
decimalは概数型じゃないですね。
SQLSERVERでの単精度はreal、倍制度はfloat。
VBはDoubleでSQLはfloatなのは、データ型としては同じだから、
そこは問題ないんですね。


>>609
エクセルのセルに値を渡して、シート関数で計算させて
結果を読むってことでしょうか?
0611デフォルトの名無しさん2007/09/13(木) 14:48:13
言っておくが、二進法のSingle/Doubleだって誤差の無い計算は可能だし、
Currency/Decimalだって何進法でも起こる誤差を避けることは不可能。

ただ、十進法で有限小数となる値の中には、
二進法へ変換すると無限小数になるので正確に表現できない、
つまり有限桁しか扱えないコンピュータでは、それだけで打切り誤差が発生するものがある。
だから十進法中心に考える人間には、一見すると誤差が付き物に思えるだけ。
もちろん、金融では致命的な弱点となるので、Single/Doubleは脱落。

また十進法の浮動小数点数 (VBのDecimal)はどうかというと、
下手に計算すれば情報落ちが問題になりやすいし、
VB固有の事情としてDecimal型の値はVariantに入れるしかないという
不便さもあって、駄目ではないが要注意。

そんなわけでCurrencyに落ち着く。もちろん整数だけなら整数型がよい。

0612デフォルトの名無しさん2007/09/13(木) 14:52:17
>>608
全部浮動小数点でOK
最終的に、小数点以下の金額にならないように
1円まで切り上げるでしょ?
その時に元の金額(整数)を使って金額の誤差がないか
1円の増減がないかを再計算するのさ〜
経理、給与計算プログラムの常識だよ〜
0613デフォルトの名無しさん2007/09/13(木) 14:56:32
そして余った1円を自分の口座へ振り込むようにすれば完璧。
0614デフォルトの名無しさん2007/09/13(木) 15:02:09
どこのスーパーマンのネタかと
0615デフォルトの名無しさん2007/09/13(木) 16:38:19
>>611
軽くぐぐってみました。

一般的な企業の販売仕入や財務、給与などのシステムでは、
まず無理数の計算などは行われないし、丸めだけしかるべき関数を作れば、
やっぱりVB:Currency SQL:moneyで十分対応できますよね?


>>612
> 元の金額(整数)
この整数って、どの段階で出てるものでしょう・・・?
また、これを使って金額の誤差・増減の有無を、・・・再計算?
すみません、よくわかりません・・・
0616デフォルトの名無しさん2007/09/15(土) 11:51:10
Endで終了させても、タスクマネージャーのプロセスに残ってしまう時があるので、
これを確実に終了させるにはどうしたらいいのですか?
0617デフォルトの名無しさん2007/09/16(日) 01:35:49
>>616
それは変な話だな・・・
自分自身はEndでたいてい残らずに消えるはずですが。
むしろ自分以外のリソースやプロセスが残る可能性がある。
あ、でも>>616はどのプロセスが残ってるのかまでは書いてないのか。
どうなんでしょう?
一般論としては、UnloadやTerminateイベントでリソースの後始末をして
Endを使わないように、ということです。
Endを使わないとそれこそ残る、というならそれは潜在的なバグだ。
0618看護婦 2007/09/16(日) 19:50:07
 今晩は。VB6 アクセス でデータベース作ってますが、起動したら
「問題が発生したためVBを終了〜」
「アプリエラー "0x04246c88"の命令が"0x1da1adad"のメモリを参照しました。メモリが"written"になることはできませんでした。」
とのこと。
 これって何がダメなんですか?
 どなたかお願いします。
0619デフォルトの名無しさん2007/09/16(日) 19:53:50
VBでの正規表現について恥ずかしながら教えてください。
リンクアドレスの<a href=〜>タグのアドレス部分は下記で取得できたのですが、
str=Pattern"<a href=""([^>]*(\.jpg|\.gif|\.png))"" target=""_blank"">(.*)</a>"

単純に、http://abc.defg.net/hijk/lmn.jpg
とかの単純なjpgファイルへのアドレス文字列の正規表現が思いつきません。
教えてください。
0620デフォルトの名無しさん2007/09/16(日) 22:48:31
俺なら、https?://.*\.jp(e?g|e)くらいにしておいて、
あとはURLかどうか調べるAPIがあったはずだからそれに任せる。
06216192007/09/16(日) 23:28:29
おお、ちょっと調べてみます。
0622デフォルトの名無しさん2007/09/17(月) 16:10:45
>>618
いや〜それだけの情報だと
"0x04246c88"の命令が"0x1da1adad"のメモリを参照するのが
ダメなんじゃないかなあ〜としか。
F9やF8でダメな行を特定してみましょう。
あとここはささくれだった人が多いので、「エスパーw」みたいな
書き込みは華麗にスルーしてください。みんなイライラしています。
0623看護婦 2007/09/17(月) 17:13:39
 今晩は。プログラムの一部を書き換えたら解決したようです。
 
 >>662 お騒がせしてすいませんでした。
0624デフォルトの名無しさん2007/09/22(土) 07:33:11
2007年の第3木曜日の日付を20070918という感じで抜き出したいんですが、
自分で書いてたのが、loopしまくりで自分でワケわからなくなってしまいました。

なにか簡単な方法がありますかね?
0625デフォルトの名無しさん2007/09/22(土) 09:16:29
>>624
> 2007年の第3木曜日
ちょっとおかしいよな.適当に月指定があるもんだとしたぞ.
だめでも,下の関数使える.
しかもついでに,2007/9/18は第3火曜日だ.

Public Function XthWeekDay( _
    ByVal Year As Long, _
    ByVal Month As Long, _
    ByVal x As Long, _
    Optional ByVal week_day As VbDayOfWeek = VbDayOfWeek.vbSunday) As Date
    
    XthWeekDay = DateSerial(Year, Month, 1)
    While Weekday(XthWeekDay) <> week_day: XthWeekDay = XthWeekDay + 1: Wend
    XthWeekDay = XthWeekDay + 7 * (x - 1)
    
End Function

で, format$(form1.XthWeekDay(2007,9,3,vbTuesday),"yyyymmdd") みたいに.
0626デフォルトの名無しさん2007/09/23(日) 16:48:16
処理を実行している旨を画面に表示させておきたいのですが、
VBAでいうとApplication.Screenupdateみたいなのってありますでしょうか?

sub main()

  Label1.caption = "処理を実行中です"

  'この時点でフォームに実行中の表示をさせたいんです

call データベースに接続

  Label1.caption = "処理が完了しました"

End sub
0627デフォルトの名無しさん2007/09/23(日) 17:13:44
reflesh メソドとかのこと?
VBAよくしらんけど
06286262007/09/23(日) 17:23:41
>>627
うわ、出来ました。ずっと悩んでいたのでとても助かります。
ありがとうございました。
0629デフォルトの名無しさん2007/09/25(火) 18:32:59
まだPGと言うのも恥ずかしい新人です。
VB6.0で作られてるのをAccess2000のVBAで作ってみてるんですが互換性はあるんでしょうか。
wiki見る限りVB7から互換性はないとのことだし
できることならそのまま流用、自己解読のためにも互換性の有無を教えていただけるとありがたいです。
0630デフォルトの名無しさん2007/09/25(火) 18:34:40
無
0631デフォルトの名無しさん2007/09/25(火) 23:26:59
>629
VBの言語仕様自体は共通。
ただしフォーム等のオブジェクト構造はほぼ別物。
ほとんどの場合、コピペするだけじゃ動かないと思っておいたほうが良い。
06326292007/09/26(水) 17:54:23
>>631
言語が一緒、ということは片方がわかればもう片方もわかる、というわけでもないか
もう少しソースとにらめっこしてきます。ありがとうございます。
0633デフォルトの名無しさん2007/09/27(木) 13:16:16
こちらでいいのかわかりませんが質問させてもらいます。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Text() = "動作中"
Timer1.Interval = ComboBox1.Text
Timer1.Enabled = True
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Button1.Text() = "時間です"
Beep()
Timer1.Enabled = False
End Sub
End Class

という、タイマーのプログラムを作ったのですが、
タイマーの動作中はButton1をクリックできないようにしたいのですが、
どのようにプログラムを変えればよいのでしょうか?
お教えください。よろしくおねがいします。
0634デフォルトの名無しさん2007/09/27(木) 14:16:30
>>633
Button1_Clickの時に、
Button1.Enabled = False
で良いのでは?

あと、Timer1_Tickで
Button1.Enabled = true
で戻しとく
0635デフォルトの名無しさん2007/09/27(木) 14:53:20
>>634
なるほど、有り難うございます。
ってことは、

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Text() = "動作中"
Timer1.Interval = ComboBox1.Text
Button1.Enabled = False
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Button1.Text() = "時間です"
Button1.Enabled = true
Beep()
Timer1.Enabled = False
End Sub
End Class

で、よいのでしょうか・・?
初心者なものですみません・・・。
0636デフォルトの名無しさん2007/09/27(木) 15:07:45
>>635
それで動くかわかりません、環境が無いもので。。
しかし、コードを記述する場所はそれでいいんじゃないでしょうか
とりあえず、Button1.Enabled = False は使用不可にする意味ですので、
実現したい場所に記述して下さい。
ちなみに、.NETの質問はこちらに
ttp://pc11.2ch.net/test/read.cgi/tech/1189038267/l50
0637デフォルトの名無しさん2007/09/27(木) 15:16:32
>>636
わかりました。ありがとうございました。
スレ違いでしたか・・。すみませんでした。
0638デフォルトの名無しさん2007/09/28(金) 18:00:27
VCはなんとなく判るけどVBはまったく判ってないのですが質問です。
ttp://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200512/05120059.txt
でVB6でpdfのページ数を求めるソースがあるのですが、

5 AcroPDF:AcroPDF1 を Form1 に貼り付ける
この意味が判りません。何をどうすればよいのでしょうか?
ここ以前まではできたと思います
(生成したクラスの名前をClass1からtagWndに変更するなどを含め)。

Adobe Reader 7.0はインストール済み、WindowsXPです。
よろしくおねがいします。
06396382007/09/28(金) 18:15:29
とりあえず今の状態で
実行→完全コンパイル後に開始
を行うと、変数「AcroPDF1」がハイライトされ、「コンパイルエラー:変数が定義されていません」
と表示されます
0640デフォルトの名無しさん2007/09/28(金) 19:28:58
VCで作れば?
0641デフォルトの名無しさん2007/09/28(金) 20:46:44
VC3000のど飴〜
0642デフォルトの名無しさん2007/09/28(金) 23:20:53
>>638
これ書いたの俺だけど,
とりあえず,
> 4 [プロジェクト]-[コンポーネント]
>   -[Adobe Acrobat 7.0 Browser Control Type Library 1.0]
>   にチェックを入れる
はちゃんとチェック入れた?


チェック入れているなら,VBのツールボックス(ボタンとかテキストボックスとかピクチャボックスがあるアレ)
にAcroPDFのツールが選択可能になるから,ソレをForm1のデザイナに貼り付ければおk


ってか動くかどうか確かめてみた
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4989.zip
動くね.(要AcrobatPDF 7)
0643デフォルトの名無しさん2007/09/29(土) 14:16:43
>>642
ありがとうございます。書いてあるとおりチェックは入れております。
AcroPDFのツールをForm1のフォームに貼り付けてみました。
ですが、メニューを押してもページ数が表示されるとかそういった事は起こりません。

まず「PDFファイルパスを入力してください」というウィンドウが出るので入力してOKを押します。
するとForm1というタイトルのあるウィンドウが出てきますが、この時「AcroPDFのツール」を
貼り付けた部分は透明になり、その下にある画面が表示されます。そしてメニュー(pGetPageCount)を押すと
ディスクアクセスは起こるようですが何の変化も起こりません。うpして頂いたzipを解凍してやっても同様です。

「(フリーの)Adobe Reader 7.0が必要」なのではなくて「(製品の)Adobe Acrobat 7」などが必要なのでしょうか?

まあそういった事で駄目なら他の方法を探しますorz
0644デフォルトの名無しさん2007/09/29(土) 20:02:34
API使って現在立ち上がってる他のウィンドウを一番手前に
表示するプログラム作らないといけないんですが

APIの使い方が分かりません
0645デフォルトの名無しさん2007/09/30(日) 00:21:42
ググレカス
0646デフォルトの名無しさん2007/09/30(日) 02:41:22
>>644
APIは初心者向けの内容じゃないから他スレで聞いた方がいいですハゲ。

自分自身のプロセス(exe)内だったらForm.ZOrderとかがあります。

他プロセスだったら、使うのはFindWindowとかSetForeGroundWindowだと思います。
あとはググレカス。

あと、最近のWindowsは他プロセスのウィンドウを手前にしようとかしても
点滅するだけで手前に来ないようになってます。よろしく。
0647デフォルトの名無しさん2007/09/30(日) 07:00:59
>>643
遅くなった

うーん,確実に俺の環境とは違うなぁ
とりあえず,動作検証用にSS貼り付けるから,こちらで確認できる正常動作を見てくれ:
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4993.zip


> 「(フリーの)Adobe Reader 7.0が必要」なのではなくて「(製品の)Adobe Acrobat 7」などが必要なのでしょうか? 
そんなことはないぉ
Adobe Reader 7.0(バージョン7.0.7)で確認しているぉ(^ω^

あと,Adobe PDF ReaderでActiveXコントロールとして表示されない,をググると…
ttp://www.google.co.jp/search?complete=1&hl=ja&q=Adobe+PDF+Reader+ActiveX%E3%80%80%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84&lr=&aq=null

あとはよーわからん
0648デフォルトの名無しさん2007/09/30(日) 13:04:22
気色の悪い奴だなあ。。。
0649デフォルトの名無しさん2007/10/01(月) 08:14:46
>>647
何度もありがとうございます。原因を探してみます。
矢張り当方が根本的な部分で理解していない可能性もある訳ですしねorz
0650デフォルトの名無しさん2007/10/03(水) 10:10:43
VB6のSP6です。

あのう、IEのツール->インターネットオプションで出てくるような、タブコントロールの
乗ったダイアログで、かつそこでの設定変更をリアルタイム(というかイ
ンタラクティブ)で、元のウィンドウに反映されるようなのをダイアログ
を作りたいのですが、
(つまり、適用を押さなくてもラジオボタンとかを
変えただけで変更が反映されるような)

これはやはり
−フォームで自作する
−ラジオボタンの変更イベントをキャッチしてイベントドリブンで自分で作る
という感じで皆さんやっておられるのでしょうか?

なんかいいアクティブXとか標準のコンポーネントとかありますでしょうか。
なにとぞよろしこ。
0651デフォルトの名無しさん2007/10/03(水) 10:16:41
>>650
逆にあったら不便だろ
言わなくても分かってると思うから今後誰か見たときのためにかくけど,自分中心で考えたら世の中まわりゃせんよ.

VB6はそのへんの処理の抽象化があまり出来ない言語だからゴリゴリ作るしかほかない.
何かデザパタ参照するとちょっとは楽できるかもしれんが.
06526502007/10/03(水) 11:12:21
>>651
おせわになりましこ。結構ググりまくって自分の理解ぎりぎりのところで
文章書いているので変な日本語スンマソン。

>デザパタ

ググッテみたらアプリケーションウィザードでいろいろ作ってみるというのを
ハケーンしてワクテカしながらいろいろ作ってみたけど肝心のツール->オプション
が空で、実行したら「てめえでコードを記述すれ」と言われてガカーリシターヨ。
なんか、近いのご存じでっか?
0653デフォルトの名無しさん2007/10/03(水) 11:55:09
>>652
デザパタはこちら:
ttp://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_%28%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%29
別に万能の利器でもなんでもない,デザインパターンだから何かツール的な使い方があるわけでもない.
けど考えるとき便利.


今回の件でもっとも難しいのが,やりたいことが余りにも抽象的な位置に属していること.
全てをひっくるめると「何か行動したとき [イベントが発火したとき] に何かしたい [アクションを起こしたい] 」ってことに纏まるわけだが,
これじゃあイベントドリブンそのものを言っているに過ぎない.

こういうものは,結局「何でも使えるけど何にも使えない」物なので,
仮にツールやフレームワークとして提供されていてもほとんど自分で書かなくては成らない.

/*
抽象的な表現からもうちょっと掘り下げて,たとえば「特定のボタンを押したときに,特定のウィンドウに"A"を表示する」
程度だったらちょっとはツールキットとして成立するかもしれん.
*/


まあ,現状の説明で作るってんならゴリゴリ書いていくしか無いだろうね.
06546502007/10/03(水) 13:16:51
>>653
サンクスコ。そんな回答でいいの。

もともと抽象的というか、何から手をつけて良いのかわからない段階だったので、
テンプレになるものが「ある」のか「無い」のかわかればそんでいいの。

誰もが一度は通るべき道を掲示板で聞いて楽しようと思っているのではなくて、
誰もが利用している便利なテンプレがあるのを知らずに何ヶ月も悩むのを避けた
いだけなので、みながゴリゴリ作っている事だと分かれば安心してフルパワーを
つぎ込んだりあっさり諦めたりできる。その割り切りができるのがありがたいの。

しっかし「デザインパターン」ってのも一種の予約語なんだな。サンキュスコ。
世話になったね。
0655デフォルトの名無しさん2007/10/03(水) 18:48:20
>>650
なんか変なアドバイスをしてる人がいるけど、別に君が欲しがってる様なUIは
必ずしも変ではないし、またデザインパターンなんて大げさなこと言わなくても
実現できるよ。

大雑把にはこんな方針でやればいい。

■ 設定値は(その設定が属する「存在」を抽象化した)クラスのCHogeの
プロパティとして実装する。

■ Form1(君のいう「元のウィンドウ」)と設定用フォームSettingFormには、
どちらもCHogeの同じインスタンスHogeへの参照を持たせる。

■ Hogeは設定値が変更されたとき、イベントを生成する。Form1はこのイベントを
受信して設定値の表示を更新する。

■ SettingFormのコントロールの値が変更された時、Hogeのプロパティを連動して変更する。

というか、普通このぐらいのことは自分で思いつかなきゃダメダメだな。
そんな程度ならいまさらVB6なんて終わってる言語やってもしょうがないと思う。
0656デフォルトの名無しさん2007/10/03(水) 22:09:43
>>655
ってだからそれ自体は普通のイベントの発火とアクションだって.
しかも親子で明示的に参照しあってると循環参照になるから普通はWithEvents使うって.

…って言っても分かってくれないんならもういいや
0657デフォルトの名無しさん2007/10/03(水) 22:24:34
日本語書けよ。
655の文章のどの部分に対して「ってだから」なんだ?
訳が分からんよ
0658デフォルトの名無しさん2007/10/03(水) 22:34:00
>>656
>…って言っても分かってくれないんならもういいや
むしろこっちの方がもういいや
0659デフォルトの名無しさん2007/10/03(水) 22:42:54
>>657
全部だよ.

>>655の書いてることは,要はイベントの発火とハンドリングをVB6のイベント処理とは別の独自の方法でやるってことだろ?


非標準な方法を使うと色々コストが高くつくし,
何より「イベントの発火の結果何をするかは設定要素次第」なんて言ったら,
もはや「イベントは発火するけどその結果をどう使うかは貴方次第」ってことになって,
>>653で述べた結果になると思うってことだ.
つまり,それは「何でも使えるけど何にも使えない」物になるってこと.

具体的に>>655だと,たとえば
 ■ SettingFormのコントロールの値が変更された時、Hogeのプロパティを連動して変更する。
の部分が「何にも使えるけど何にも使えない」部分だと思われ.
「Hogeのプロパティを『〜のように』連動して変更する」だったらまだ使い物になる.
けれど「Hogeのプロパティを変更する」じゃ,アタマ空っぽの人間に仕事を押し付けてるようなもんだ.



まとめると,もともとの>>650のしたいことは”イベントを処理すること”を工夫するのではなくて,
”イベントによって行う処理”を工夫して纏めることだと思うんだが,
あえてイベント処理自体を自力で実装する>>655はお門違いだと思うってことだ.


>>657へ.
ちゃんと日本語で具体的に書いたぞ.
そっちも具体的に書いてね
0660デフォルトの名無しさん2007/10/03(水) 22:49:13
>>655
> またデザインパターンなんて大げさなこと
大げさか。
0661デフォルトの名無しさん2007/10/03(水) 22:55:21
>>659

>要はイベントの発火とハンドリングをVB6のイベント処理とは別の独自の方法でやるってことだろ?
誰もそんなこと書いてないよ。

後の部分については、言っては悪いが日本語になってない。
リカイデキマセン。

まあよく分かってないならあんまり無理しなさんな。
0662デフォルトの名無しさん2007/10/03(水) 22:58:14
はいはいそうだね.
0663デフォルトの名無しさん2007/10/03(水) 23:01:44
>>661
> 誰もそんなこと書いてないよ。 
じゃあなんて言いたいの?
理解できない部分があるのはお互い様だろ.
0664デフォルトの名無しさん2007/10/03(水) 23:05:50
じゃあなんて言いたいって、ちゃんと書いてあるじゃんw

むしろ>>655のどこをどう読めば
「イベントの発火とハンドリングをVB6のイベント処理とは別の独自の方法でやる」
なんてユニークな解釈ができるの?

「くだすれ」だから当該言語について初心者なのはまあ許されるかもしれないが(でも
お前さん回答者なんだろw)日本語の読解および表現力に関して初心者なのはどうなのよw
0665デフォルトの名無しさん2007/10/03(水) 23:09:03
思うに

>■ 設定値は(その設定が属する「存在」を抽象化した)クラスのCHogeの 
>プロパティとして実装する。 
の「存在」とか言う部分も相当ユニークだと思うが・・・

まあいいや,解釈がユニークなのは誰しも当たり前だし,
当たり前のこと言ってる奴見るのも飽きるからそろそろ寝る

またな
0666デフォルトの名無しさん2007/10/03(水) 23:12:02
>>664
ん?
でも>>655って結局は「イベントを処理する」って言いたいだけじゃないのか?
0667デフォルトの名無しさん2007/10/03(水) 23:23:33
ひらがなの「あ」とかの書き順をVBでアニメーションしようと思って、、、

ピクチャボックスに画ごとに色分けて作った「あ」という画像を表示して、
画順にPSetで塗りつぶしていくってのを作ってみたんですが、
1画塗り終わるのにめっさ時間がかかってしまうんです。
なにか、早くスムーズに、塗りつぶしていく方法ってあるでしょうか?
0668デフォルトの名無しさん2007/10/03(水) 23:25:48
AVIでデータ作っとけよ
0669デフォルトの名無しさん2007/10/08(月) 19:54:23
今度、メールの送信とFTPでダウンロードするプログラムを短期で作成することになりました。
ActiveXを使ってやろうと思っているのですが、GrapeCity以外で、何かよいものをご存じありませんか?
0670デフォルトの名無しさん2007/10/08(月) 19:55:58
>>669
http://www.hi-ho.ne.jp/babaq/
0671デフォルトの名無しさん2007/10/09(火) 17:27:25
質問失礼します。
VB 2005でデスクトップマスコットを制作しているのですが、
マスコットとメッセージの同期移動がどうしても上手くいきません。

それぞれ個別のフォームで表示させていて、
タイトルバーを非表示にしてある状態で
↓のサイトを参考に同時移動の処理を考えたのですが
どうしても上手くいきません。
ttp://dobon.net/vb/dotnet/form/moveform.html

何か良い案は無いでしょうか?
よろしくお願いします。
06726712007/10/09(火) 17:35:35
すみません、VB6.0以前でしたね。
スレ違いでした。
0673デフォルトの名無しさん2007/10/09(火) 18:33:41
>>670
情報ありがとうございます。
これから、使用例など見て検討したいと思います。
個人の作者さんというのがちょっとネックか?というところです。
0674デフォルトの名無しさん2007/10/10(水) 23:26:41
すんません。初心者で宙な私に教えてください。

VB6で変数を宣言しなきゃバリアントになるというのはどこみても書いて
ありますが、その時のスコープはどうなるんでしょうか?
これも標準モジュールかフォームかクラスモジュールかによって違うんでしょうか?

いや、自分で書くときゃ必ずOption Explicitなんですが、買ってきた本に
書いてあるコードが理解できない。。。
0675デフォルトの名無しさん2007/10/10(水) 23:36:49
>>674
基本的に閉じたスコープで宣言したものになるはず
0676デフォルトの名無しさん2007/10/10(水) 23:38:12
日本語でおkな質問に日本語でおkな回答を返すとは。。。
■ このスレッドは過去ログ倉庫に格納されています