[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/01 06:17 / Filesize : 260 KB / Number-of Response : 964
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VBプログラマ質問スレ(Ver.6.0 まで) part57



1 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:50:27.76 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。

446 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 00:18:11.64 ]
素直に FindFirstFile, FindNextFile, FindClose API
を使って列挙するのがいいんじゃないかな。

時刻も同時にとれるし。

USB に全ファイルを入れてもいいなら ROBOCOPY を
使って、更新されたファイルのみコピーする方法もある。

447 名前: 【Dnewsplus1306759181466917】 [2011/08/19(金) 01:00:25.03 ]
>>446
今はDirループで列挙してますが
コンパイルすると結局そのAPI呼出しに置き換わるのではないかと思っています

毎日ファイリングしてる数百のデータファイルを、今作ってるソフトにかけると
数年前のファイルが置いてあるフォルダでも更新してないかバカみたいに探してるのが悲しい・・
これは、OSがそういう機能を提供してくれない限りしょうがないですね

448 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 01:20:33.21 ]
>>447
たしかに Dir ループは Find 〜 API を呼び出してるんだろうけど、
ファイル名しか取れないでしょ?

ファイル名をとってきて、FileDateTime 関数あたりで更新時刻を
取得してるんだよね?

Find 〜 API を直接呼べば、WIN32_FIND_DATA 構造体に更新時刻
が入ってくるので、FileDateTime 関数を呼ぶ必要がなくなるんだよ。


449 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 08:56:08.33 ]
ローカルだとFileDateTimeを呼んでもたいしたオーバーヘッドはないが
ネットワークドライブだと環境によっては悲惨な結果になる

450 名前:デフォルトの名無しさん [2011/08/20(土) 14:06:58.70 ]
Dirはいやらしい
Dirループがネスティングできないと知っていても中で使ってる関数の先の先で使ってたりして
あと、最近発見したのはDirでUSBメモリを参照すると、USBが抜けない
某サイトで開放するためにDir ""とするんだと書いてあったが、
それでもカレントディレクトリを参照してるのか開放はしてないようだった
USBメモリを参照し終わったら、それを開放するためにHDDを参照してやらないといけないみたい

451 名前:デフォルトの名無しさん [2011/08/20(土) 15:07:48.28 ]
VB6 IDEでマウスホイールでコードをスクロールするアドインが提供されていますが、動作しません。
なぜでしょうか、今はVB6もXPも最新にしてますが、かれこれ何年も思い出す度に下記を実行しているので
VB6のspやOSやPCが原因ではないと思われます
と、ここまで書いてて自分用のセッテイングに問題があるんだなと思い
ツール→オプション→詳細→SDI開発環境のチェックを外したら動作した
なんだこれー、SDIがダメならマウスホイール使えなくてなくてもいいや

support.microsoft.com/default.aspx?scid=kb;ja;837910
1.VB6MouseWheel.EXE パッケージをダウンロード (Click!)
2.VB6MouseWheel.EXE を適当な場所に解凍 (C直下がいいかと。)
3.[スタート]→[ファイル名を指定して実行]で以下のコマンドを入力「regsvr32 (解凍先)\VB6IDEMouseWheelAddin.dll」
4.VB6.0を起動し[アドイン] →[アドイン マネージャ]
5.「MouseWheel Fix」を選択
6.[ロード/アンロード] と [起動時にロード]の項目にチェック

452 名前:デフォルトの名無しさん mailto:sage [2011/08/20(土) 16:42:32.76 ]
>>451
気づいたとおり、そのアドインはSDI環境には対応してない。
以下のアドインなら、SDI環境でも使えるらしい。

ttp://homepage1.nifty.com/mtj-k/software/office_vb6/addautoscroll_vb6.html

それにしても、SDIで使ってる人いたんだね。

453 名前:デフォルトの名無しさん mailto:sage [2011/08/20(土) 19:25:22.98 ]
X wheelとかのホイール支援ソフト入れておけば使えないこともないような気がする

454 名前:デフォルトの名無しさん [2011/08/20(土) 23:32:13.58 ]
>>452
おお、SDIでも使えるんですか
後で入れてみます

SDIでないとめちゃめちゃ使い難いではないですか?
VBのIDEだけじゃなくてエクスプローラとかバイナリエディタとか・・
複数のコードウインドウの空いたエリアにあれば参照しながら打てるし



455 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 06:19:51.46 ]
MDIとSDIを取り違えてないか?

456 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 15:36:34.65 ]
VBSで質問です。
gethostnameやgethostbynameを使用して
ipアドレスの取得を行いたいのですが実行エラーになります。
使用する方法ありませんか?

457 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 16:41:26.29 ]
エラーの内容やソースも出さずに質問とは

458 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 18:31:01.46 ]
>>456
スレ違い

それはActiveXコンポーネントという汎用APIの質問であって、VBSの質問ではない
VBSの制御構文などに関する質問ならここでもOKだが、汎用APIの質問受け付けたら
キリがない(ActiveXはもちろん、Win32APIの質問も、.NET FrameworkやDirectXなどもOKになる)から
>>1の4行目に書いて有る通り、NGってことになってる

というわけでさようなら

459 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 19:07:23.00 ]
えっと、このスレは VBS は含まれますか?

460 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 19:11:59.77 ]
一応。

461 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 19:57:58.57 ]
大雑把な質問には皆エスパーして答えていることを質問者は理解すべき

462 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 21:12:10.83 ]
いやVBSはどう考えてもスレ違いだろ

463 名前:デフォルトの名無しさん mailto:sage [2011/08/21(日) 21:14:47.48 ]
と思ったけど、>>1には
>二.VBScript、インストーラーなどはこのスレでOK。
って書いてあるな。VBSそのものはここでOKらしい

464 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 00:12:22.56 ]
VBS から直接 API は呼べないので

nslookup の戻り値を取得して解析するとか
ttp://homepage1.nifty.com/MADIA/vb/vb_bbs/200608/200608_06080050.html

API をラップした ActiveX.DLL を探してくるか、VB で作成して利用するとかしかない。




465 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 02:35:55.69 ]
VB6SP&
リッチテキストボックス6(SP6)のスクロールバーを両方表示に設定してる(ScrollBars=rtfBoth)のに
水平のスクロールバーが使えない
リッチテキストボックスの横幅を越える文字は自動で改行されて表示される
どのプロパティいじれば横スクロールバー有効になるの?
(垂直スクロールバーは問題ないんだけど)

466 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 04:08:12.61 ]
>>465
ScrollBars プロパティ のヘルプ嫁。

水平スクロール バーは、RightMargin プロパティがコントロールの幅よりも
大きな値に設定されている場合に限り表示されます。
このプロパティの値は、コントロールの幅と同等か、わずかに小さいだけでも
かまいません。


467 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 04:22:39.48 ]
>>466
トンクス
今度から真っ先にヘルプを探してみます
どうもすみませんでした

468 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 16:56:45.49 ]
VB6でコレクションにあるクラスが入っています。
項目を取り出すとき、中に入れたデータはクラスですが、返り値はObjectで帰ってくるようになっていると思います。
この項目をあるクラスの変数に復元して入れることは出来ませんか?


469 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 20:36:27.12 ]
エスパーすれば言いたいことは解るけど、あえて突っ込ませて貰う

>>468
日本語(自然言語)で理路整然とした文章を書けない奴に
プログラム言語は無理

470 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 09:29:44.30 ]
>>469
あえて突っ込んでおく
意外とそうでもない

471 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 11:48:36.25 ]
句読点も打てない奴に、んなこと言われたくねーよ。

472 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 12:04:36.97 ]
>>471
どこに句読点が必要なんですか?
わかりません><

473 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 14:07:44.66 ]
禿、同。

474 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 14:24:32.33 ]
コンパイラさんやインタプリタさんって自然言語で文章書けるんだ



475 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 15:15:13.42 ]
>>471
が、今顔真っ赤にして、恥ずかしがってる、気が、してならない。


476 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 16:34:28.76 ]
よほど悔しかったと見える。

477 名前:デフォルトの名無しさん [2011/08/23(火) 18:00:29.63 ]
>>468
こゆこと?

Dim col As New Collection
Dim c1 As Class1

Set c1 = New Class1
c1.Key = "abc"
col.Add c1, c1.Key

Set c1 = New Class1
c1.Key = "efg"
col.Add c1, c1.Key

Set c1 = New Class1
c1.Key = "hij"
col.Add c1, c1.Key

Set c1 = col.Item("efg")
MsgBox c1.Key

'この例はClass1には Public Key As String のプロパティ作ってある

478 名前:デフォルトの名無しさん mailto:sage [2011/08/23(火) 19:29:57.11 ]
>>468
ちゃんと中に入れたクラス型ががわかっているなら
取り出す時に、同じクラス型の変数に入れてやれば良い。
キャストの手間は無い。

479 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 06:29:00.96 ]
>>476
悔しかったというより、471は恥ずかしかったんじゃねーの?
というか、恥ずかしいという自覚を持てずに悔しがっちゃうようだとお粗末すぎるし・・・

480 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 10:40:39.57 ]
なんで>>471が叩かれてるのか、さっぱりわからない

481 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 11:07:34.49 ]
>>477-478
回答ありがとうございます。

なるほど、このような時は明示的なキャストというものはしないのですね。

なんとなく動いてはいたんですが、ちょっと怖い気がして質問させていただきました。
日本語がおかしかった部分に関しては・・・お恥ずかしい限りですが焦っていたのもありました。

ご回答ありがとうございました。

482 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 19:44:11.09 ]
WebBrowserを使いサイト内のiframeに書かれているURLにアクセスして
テキストを入力するプログラムを作っているのですが、本体とiframeで
ドメインが違っていて「アクセスが拒否されました」とエラーが出てしまいます。

IInternetHostSecurityManager.GetSecurityIdというのを実装すればいいと
いうところまでは調べてわかったのですがどう実装していいものなのかわかりません。

IInternetHostSecurityManager.GetSecurityIdの実装方法もしくは別ドメインへの
アクセス方法が他にあるのであれば教えていただきたいのですが・・・。

よろしくお願いします。

483 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 23:36:23.52 ]
親のURLからたどればいいんじゃない?

484 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 02:06:22.17 ]
VB6と関係ない質問ぽくね



485 名前:デフォルトの名無しさん [2011/08/25(木) 04:48:59.67 ]
何の話か判らんけど以前、ネット上のサイト読むのに
WinSockでシコシコ読んで文字コード変換までしてたけど
今はアドレス渡すだけで一発でソースをテキストファイルに落とすAPIがあるんだね

486 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 07:05:54.57 ]
HTTPごときでシコシコはいいすぎだと思う

487 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 12:46:17.93 ]
html程度ならふつーのOPEN命令でも読めたりするんだよな
タイムアウトなどの処理はどうだったかしらんけど

488 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 13:55:21.85 ]
Open "www.google.co.jp/" For Input As #1
で読めるってこと?

489 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 14:52:29.18 ]
なぜ自分で試さないのか

490 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 21:59:14.75 ]
やってる事はほぼ一緒だけど、「メモ帳」でもURL入れて開けばhtmlが出るんだよな

491 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 23:25:02.10 ]
>>489
なぜ試す前に聞いちゃいけないの?

492 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 11:47:02.05 ]
復活

493 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 14:31:56.12 ]
ほんとだw出たw
Windowsの仕様?Win7とかでも出るのかなVB6サポートされてるからって
このOpenの仕様はVB6とは関係ないかんじなのかな


494 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 14:58:04.76 ]
>>491
別にいけなかないが、自分で試せばすぐにわかることだろ。
>>488書いてから、誰かがレスするまで何時間も待つのか?



495 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 15:09:24.16 ]
くだらないやりとりやってないで、答えてやれよ

>>488
もちろん、読める

496 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 15:30:40.24 ]
読めるわけ無いだろ

497 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 18:53:53.31 ]
少なくともメモ帳ではマジで開けた

498 名前:デフォルトの名無しさん [2011/08/27(土) 15:29:03.29 ]
すごーい、OPENで読めた
VB2からやってるけど、これは知らなかったわ
凄い物知りがいるんだなここは

>>486
サーバーからバッファに受信したデータを結合したりチャンク形式に対応したり
かなりシコシコなコードになったよ
でもまぁ、2ちゃんの鯖の時刻を時刻合わせに使ったり、自前のコードは色々と
応用がきくから捨てたもんじゃないけど

499 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 15:42:48.08 ]
>>376-の時はみんなスルーだったのに…

500 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:20:58.43 ]
つまりOPENでsubject.txtを読み込み、改行コードでsplitしたあと2次元配列にいれていくってことか

501 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:26:50.52 ]
subject.txtの取得時ってUAは関係ないっけ?
openで読む時リクエストヘッダを任意で指定できるのかな
なんかそう言う細かいところはできなさそうな雰囲気で結局WinSock叩く方が早いっていう結論になりそう

502 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:35:52.91 ]
HTTPプロトコルを喋りたいのなら、
HTTP用のライブラリを使えばいい。

WinSockを使う必要はないし、
様々なヘッダの解釈面倒だろ。

それすっ飛ばしてWinSockにいっちゃう人って
逆に知識ないんじゃないかって思う。


503 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:37:05.62 ]
というか.netに行くのが正解

504 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 08:52:19.46 ]
httpdのログ見るかぎりはIEで接続されてる事になってるよ



505 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 12:05:28.58 ]
>>502
とりあえずお前のお勧めのVB6用HTTPライブラリ教えてくれ

506 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 13:56:24.69 ]
>>504
だろうねw

どうせユーザーエージェントなんて
urlmonで変えられるだろ。

507 名前:デフォルトの名無しさん [2011/08/28(日) 14:46:47.87 ]
自作のエディタで開けたからOPENで読み込んだと勘違いしてたけど
ファイル名入力のGetOpenFileNameってダイアログのAPIがファイル名にURLを与えると
IEのキャッシュファイル名を返してきて
OPENは単にTemporary Internet Filesの中のファイルを開いてるだけでした

508 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 15:05:22.59 ]
>>507
でもそれは結局URLを読んでるのと同じだろ?

509 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 17:09:20.25 ]
単にキャッシュ読むなら相手のhttpdログに残らないわけだが

510 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:01:47.10 ]
キャッシュよむかどうかはインターネット設定によるんじゃ?
キャッシュに無ければ実際にhttpでデータとってくるだろ

511 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:20:40.63 ]
インターネットの画面で右クリックしてプロパティを開くと、
WEBページのサイズを確認することができますよね?

それを利用して、サイズが変わった=ページの更新があった という考えで
更新があると
「チェックしているサイトが更新されました」
という風に画面に表示するようにしたいのですが、
このような動作をVB上で実現することはできるんでしょうか?
実現可能であればどのような関数を使って作成すればよいのかを教えてください。
お願いします。

512 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:53:23.63 ]
Content-Lengthが帰ってくる保証は無いしLast-Modifiedも同じくあてにならない
以前のファイルと取ってきたファイルを比べないと正確な更新があったかはわからない

つか、そういうのはそれなりのスレで聞いた方がいいんじゃないかな

513 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:55:21.54 ]
とりあえず、Content-Lengthでやってみて駄目ならでいいんじゃねっていう。
512さん教えてあげて!w

514 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:57:42.87 ]
だがことわる



515 名前:511 mailto:sage [2011/08/28(日) 23:09:48.78 ]
>>512
今はとりあえず、サイズでチェックのみの
簡単なもので作りたいと考えています。
ですのでこの際正確に更新があったかどうかは問わないもので大丈夫です

516 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:19:45.45 ]
winsockのTCPの80でHEADかGETを行い読み解析
詳しくはぐぐってくれ

517 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:21:53.15 ]
くれぐれも実在するインターネットのサイトでテストを行わない事
練習用のサーバを建てて実験するように
冗談じゃなく牢屋にブチこまれるぞ

518 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:26:39.75 ]
ETagがあるんならそっちのほうがいいような気がしてきたが、どうなんだろうな
俺はそんなに詳しくないからわからん

519 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 00:25:42.01 ]
>>517
何で牢屋?

520 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 00:33:26.48 ]
岡崎市立中央図書館事件というものがあってな
サーバ管理者側が意図しない接続をうけたと警察に被害届を出せばとりあえず逮捕するという前例を作ってしまったんだよ

521 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:11:51.80 ]
なんか2chって得意げにそれを挙げる馬鹿が多いよな

522 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:20:41.29 ]
得意げになるようなものか?これ

523 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:30:04.69 ]
投稿者はドヤ顔してるに違いない

524 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:34:25.23 ]
妬むなよ、気持ち悪い。



525 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:16:03.72 ]
>>520
別にそんな例を出さなくても、
誤認であっても逮捕されるなんて知ってる。
世の中のこと何も知らないんじゃないのか?

526 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:22:03.69 ]
具体例を出したら例を出すなと言い、
出さなかったらソースは?と聞く。

527 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:30:24.39 ]
つまり、元々の発言が、くだらないものだってって結論。

逆に言えば、くだらないものだという証明をするために
証拠を出させたとも言える。

528 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:33:07.31 ]
妬むなよ、気持ち悪い。

529 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 03:57:31.85 ]
何だこいつw

524 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 01:34:25.23
妬むなよ、気持ち悪い。

528 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 02:33:07.31
妬むなよ、気持ち悪い。


530 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 19:57:00.41 ]
これ見るたびに2chネラって頭悪い奴が多いなと思うんだけど、
岡崎の件は普通に考えればケーサツの勇み足っていう文脈で言及されるべき事件であって、
こんなのを「犯意がなくてもお縄になる事例」として挙げる奴は脳が湧いてるのかと。

531 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 00:25:22.33 ]
別件逮捕のネタとして使われないとは言えない時代だから困る。お前ら、バグは残すなよ

532 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 02:13:22.64 ]
別件って
何かやましいことでもしてんのかよw

533 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 16:24:32.19 ]
vbのツールバーのボタンサイズを変更するにはどうすればいいんですか?

534 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 21:44:17.98 ]
普通にやればいいんじゃないの?



535 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 08:50:05.40 ]
>>530
実際には当事者であるMDSの嘘を専門家の意見として鵜呑みしている時点で
勇み足というレベルではなく深刻な警察の腐敗が明らかな大問題

536 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 02:35:40.05 ]
>>535
犯罪だという訴えがあって、逮捕状も出た(んだよな?当然)のに、
逮捕しなかったらそれは警察の怠慢。そっちのが腐敗しとるわ

537 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 19:58:58.45 ]
逮捕状ってのは警察が請求すれば自動的に出ることになってるんですよw

538 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 01:28:24.17 ]
結局使ってるのは人間だからなぁ

539 名前:デフォルトの名無しさん [2011/09/04(日) 09:18:47.55 ]
再起動するのは
Shell App.Path+App.ExeName+".exe", vbNormalFocus
End

でしょ
このコードで動くのは自分がドライブルートにある場合だけ
ルートにある場合だけApp.Pathの末尾に¥が付く理由とは?

540 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 10:05:41.94 ]
態度が気に入らないから教えません

541 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 17:13:42.74 ]
FileSystemObjectのBuildPath使えば\のこと気にせず

542 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:12:14.90 ]
>>540
×態度が気に入らないから教えません
○私は知識がないので教えられません

543 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:46:16.22 ]
自らを正すのではなく相手に逆切れ
そんな朝鮮的な感情、ステキやん?

544 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 14:22:04.85 ]
つーかさ、教える教えない教えられないとか以前に、>>539に「理由」を回答する必要あるのか?

理由や原因が解れば、ユーザー側で対処改善出来る類の物なら理由を聞くのも解るが
件のはそういう類のものではない。あえて言うなら「仕様だから」で、なぜそういう仕様なのかという「理由」は
MSに聞くべき。

なのでユーザーとしては
「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく
「ルートにある場合だけApp.Pathの末尾に¥が付く」前提での対策を考えるべきだ。


因みに俺の場合、基本クラス(全てのプロジェクトに組み込む自作クラス)のInitializeで

変数=App.Path
if right(変数,1) <> "\" then 変数=変数 & "\"

的な処理をして、
「App.Path」相当のものを「クラス.AppCurrentDir」で、ルートでもそれ以外でも
必ず末尾\有りで取得でき、
「App.Path+App.ExeName+".exe"」相当のものを「クラス.AppFullPath」で
ルートでもそれ以外でも正しく取得できるようにしている。


ついでに言うと
Shell App.Path+App.ExeName+".exe", vbNormalFocus
ではなく
Shell App.Path+"\"+App.ExeName+".exe", vbNormalFocus
として
「このコードで動くのは自分がドライブルートにある場合だけ」
ではなく
「このコードでは自分がドライブルートにある場合だけ正常に動かない」
と主張するのが普通でしょ。



545 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 15:19:29.38 ]
>>544
FileSystemObjectのBuildPath使えよ

546 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 17:49:27.99 ]
>>544
>「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく

「末尾に\が付く」んじゃなくて、ルート="\"だよ。
C:\abcは、「ドライブC」の「ルートからたどって」「abcというフォルダ」

547 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 18:43:38.85 ]
つか、ルートに\がつく理由は、それが仕様だから
最近決まった仕様でもないし、その仕様にどうこう言っても始まらない

なぜそういう仕様なのか考察するのは別のスレでやってくれ

548 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:17:06.90 ]
>>545
君、お馬鹿さん?

549 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 02:18:30.69 ]
まあルートがバックスラッシュなのはwinに限らない訳で
それを何故と問われても困るわな
でもそれで起源を辿ってみるのも面白いかもよ?

550 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:30:42.85 ]
>>548
お前のわけのわからん俺クラスを使われるのより、BuildPath使った方がよっぽどいいよ

551 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:35:18.11 ]
>>547
> つか、ルートに\がつく理由は、それが仕様だから

まだ、ルートに\が「つく」とか言ってるのかよ。
「つく」んじゃなくて、ルート="\"だってば。

552 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:51:20.00 ]
C:\A\B
二個目の\はAのルート、BはAのルートの中にある、ってはなしだな?

553 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:36:37.23 ]
何言ってるんだろうか

554 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:39:28.57 ]
ルートは一つ



555 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:58:49.26 ]
>>552
ルート以外の「\」はパス区切り文字。
ディレクトリ構造の概念を知らないのなら、ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA

556 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 13:19:38.94 ]
ディレクトリやパスを扱う場合は、"C:\A\B"のかわりに"C:\A\B\"という入力もValidなので、
いつでもBuildPathを使っといた方がいい。で、どうせFileSystemObjectを使うんだから、FSOの
その他のメソッドも積極的に使う方がいい。

557 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:00:08.68 ]
BuildPathというかFileSystemObjectに拘ってる奴がいるな
\つけて\\を\に置換すればいいだけだろ

558 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:16:04.18 ]
newpath$ =Replace(path1$ & "\" & path2$, "\\", "\")
こう?

559 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:27:57.73 ]
FileSystemObjectのインスタンスあればBuildPath使えばいいし
FileSystemObjectを使ってない場面では自前処理で問題ないだろう
場合場合で使いわければおk

560 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:02:26.90 ]
なんかいかにもVB厨らしいアホな会話w
普通に考えれば>>556の言ってることが一番まとも。

Win98以前の時代なら躊躇する合理的理由もあったが、いまさらWin9x環境のことを考慮する必要もないだろう。

FileSystemObjectのインスタンスあればって何だよ。
ライブラリ化しとけよそんなの。

561 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:58:57.70 ]
VB6で正規表現っぽい処理させるにはどうしたらいいの?

562 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:13:27.42 ]
Microsoft Visual Basic 6.0 で正規表現を使用する方法
support.microsoft.com/kb/818802/ja


563 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:47:28.72 ]
>>560
FileSystemObject = ライブラリだよ

564 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:21:14.75 ]
一方、俺はめんどくさいので最初に専用の変数を用意し、
そこにApp.Pathをぶち込んで末尾の"\"を確認してない場合にその変数に"\"を追加して、
以降はずっとその変数を利用している。後悔はしていない。反省もしていない



565 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:29:34.98 ]
A:\
B:\

566 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:44:03.96 ]
>>563
VB厨様には「ライブラリ化する」って表現が通じないことがよく分かった。

567 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:47:10.00 ]
ライブラリ化するという表現は伝わるけど、どうも >>560 の言うライブラリ化は
違う意味のようだ。

568 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 00:34:30.73 ]
いやまあ概念は知っといて損は無いけど
要は意図した形になってりゃ良いんじゃねーの
問題無く動くならそこから先は自己満足の世界だろ
今のスペックなら悪意でも無きゃ差なんて出ない

569 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:09:59.38 ]
>>557
UNCパスを考慮しない前提に限ればな

570 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:26:19.22 ]
なんか解ってない奴ばかりだな

571 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 11:03:01.99 ]
>>557
> BuildPathというかFileSystemObjectに拘ってる奴がいるな

ということにしないと、自己崩壊しちゃうの?

572 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 13:30:35.84 ]
>>570
何が?

573 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 01:40:34.47 ]
>>566
すでにライブラリになっているものを
ライブラリ化する意味はない。

普通にライブラリを使えばいいだけ。

574 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 14:10:36.19 ]
>>573
君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ



575 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 14:42:53.22 ]
でもFileSystemObject を再度ラップしてライブラリ化する意味はあんまない気がするね。
使う人によるだろ

576 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 15:01:57.45 ]
FSOに限らず、エラーハンドリングの一元化とか、ログ出力の一元化とか、足りない機能の追加とか
いろいろあるでしょ。ちなみにFSOに足りないのは、再帰処理。

577 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 12:04:31.43 ]
リストビューをリスト表示にしたとき
ある文字数(15文字くらい)に行くと
途切れてしまうんですが、
文字数を増やす方法って何か無いですか?

578 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:38:15.05 ]
>>574
> 君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ

何を言ってるんだ?

FSOを使って新たにライブラリを作る意味が無いだろ。

ライブラリを作る場合は、
既存にはない機能を作るんだよ。

VBの標準関数をライブラリしてどうするんだw


579 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:39:01.13 ]
>>576
うん、ならFSOに足りない機能をライブラリとして作ればいいわけで、
FSOはそのまま使えばいい。

580 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:49:07.65 ]
>>578
そういう馬鹿なこと言ってる(もちろん自覚ないんだろうけど)と、
これがVB厨ですって感じでどこかにコピペされちゃうよw

しかし、本当にマジで言ってるのかそれ。

581 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 09:30:19.38 ]
>>580
反論しろよw だからお前はw

582 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 12:59:09.34 ]
車輪の再開発は必要ないけど
車輪を応用したものを造るか てのは個人の好みだろ
クラスにするとかしないとか モジュールにするとかしないとか

583 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 13:05:34.13 ]
話は車輪の再発明じゃないよ

使いやすいキーボードに
キーボードカバーをかけるようなもん。

せっかく完成されたものを使わずにラップしてどうする。
世の中に普及しているライブラリってのは一般によく設計された作られているもの。
理由があってこうなっているのに、それをラップしても使いにくくなるだけ。
ラッパーは作るのがかなり難しいんだぞ。

十分に説得できる根拠がなければ、それは単に機能低下させているに過ぎないものになる。
どうせ、ラップして簡単に使えるよ→それじゃこういう場合に使いにくいだろ→拡張するよ→繰り返す→ラップ前と殆ど変わらいよ。になる。

既存のライブラリが使いにくいのなら、ラップするのではなく使いやすくするヘルパーライブラリを作ればいいだけの話。
そうすれば、あるときはヘルパーライブラリで簡易な操作をしながら、それでいてオリジナルの全機能もそのまま使える。


584 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 18:46:40.88 ]
長文なわりにレベルは低いな



585 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:39:25.37 ]
ほら、またw 反論しろよ。だからお前はw

586 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:47:17.06 ]
何がほらか知らんけど、複数の人物を同一人物だと妄想してる馬鹿がいるな。

そんなことはどうでもいいが、さすがにFSOを使用した自作のユーティリティー関数(の集まり)
をライブラリーとは言わないだのとか言った話は、馬鹿らしくて話にならない。

反論って、そもそも無知で馬鹿で非常識すぎて話が噛み合ってないのに反論も糞もあるか。

587 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:49:25.01 ]
じゃあ黙ってろよw
言いたいことがあるから、黙らずレスしたんだろ?
なのに、その肝心の言いたいことがかかれてないのだから、馬鹿にされて当然。


588 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:25:52.35 ]
こういう子が居るからVB使いはバカにされる

特に、「バカほど声がでかい(掲示板では必死な文を書く)」の格言通りの奴が多いから
尚更バカが目立つ

589 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:27:05.71 ]
で?

590 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:27:16.58 ]
VBって、VacaBakkaの略ですか?

591 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:28:47.88 ]
>>588
馬鹿にしてるのはお前だろうと

592 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 22:31:18.60 ]
>>586
>ライブラリーとは言わないだのとか言った話
そんなレベルの話してるやついたのか?

FSOを使うためのライブラリ作るべきか不要かの話してるやつは結構居たがな
まあそんなの環境と要件と個人の趣味で好きにすれば良い話

593 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:34:19.51 ]
こんな感じ?

'FSOEx.Class
Dim mFSO As IWshRuntimeLibrary.FileSystemObject

'フォルダ以下のファイルリストを取得する
Public Function GetFileList(strDirPath$, Optional colFileList As Collection = Nothing) As Collection
Dim f
With mFSO.GetFolder(strDirPath)
For Each f In .SubFolders
GetFileList f.Path, colFileList
Next
If colFileList Is Nothing Then Set colFileList = New Collection
For Each f In .Files
colFileList.Add f
Next
End With
Set GetFileList = colFileList
End Function


Public Property Get FSO() As IWshRuntimeLibrary.FileSystemObject
Set FSO = mFSO
End Property

Private Sub Class_Initialize()
Set mFSO = New IWshRuntimeLibrary.FileSystemObject
End Sub


594 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:55:08.72 ]
IWshRuntimeLibrary.FileSystemObjectのインスタンスをScripting.FileSystemObjectの変数へ代入



595 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 01:52:14.94 ]
FileSystemObjectのインスタンスは状態を持ってないので
「どこからかデータを書き換えられる」ことがないので
いちいち生成する必要はありませせん。

つまり、標準モジュールにPublic FSO as new FileSystemObjectと書けばいい。


596 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:07:26.29 ]
Set FSO = Nothing


597 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:08:39.04 ]
newで宣言してるからFSOにNothing入れてもFSO呼び出されるときインスタンス生成される

598 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:12:06.75 ]
こうか

'FSOEx.bas
Public FSO As New FileSystemObject

'フォルダ以下のファイルリストを取得する
Public Function GetFileList(strDirPath$, Optional colFileList As Collection = Nothing) As Collection
 Dim f
 With mFSO.GetFolder(strDirPath)
  For Each f In .SubFolders
   GetFileList f.Path, colFileList
  Next
  If colFileList Is Nothing Then Set colFileList = New Collection
  For Each f In .Files
   colFileList.Add f
  Next
 End With
 Set GetFileList = colFileList
End Function

599 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:12:23.35 ]
>>596
そこまで防ぎたいのなら
標準モジュールにperoperty getを
書けばいいだけなんだけどね。

やる意味が無いから俺はやらないけどw

600 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:17:14.23 ]
DimでNewをつけてるから>>596のコードがどこに入ろうとも効果無しだよ

601 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:18:08.82 ]
>>598
mFSOをFSOに直さないとエラーでるよ

602 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:06:51.09 ]
えーとFSOをそこまでしなきゃならない理由を是非

603 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:20:42.96 ]
そこまでって何かすごいことをやってるのか?

604 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:49:29.82 ]
VB6って今SP6だけ入れれば最新の状態ですか?
その後に、何か不具合や脆弱性のあるものの修正パッチとかありましたか?



605 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:50:43.28 ]
あ、言い訳にはならないかもしれませんけど、
まだ中学生でVBもまだほとんど分からないのです。
よろしくお願いします。

606 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 11:25:29.17 ]
俺が中学生のころはアセンブリとBASICが
バリバリ使えたが。これだからゆとりは。

607 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:06:03.47 ]
それはあなたが特殊なのでは

608 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:24:31.93 ]
それはあなたが特殊隊員なのでは

609 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:51:40.50 ]
>>606
おもちゃをバラしたのはいいが、元に戻せなくなってしまった的な
アセンブリですか?

610 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 15:39:12.99 ]
特殊じゃねーよ。少なくともパソコン部のもんは
みんなできたし。

611 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 16:33:06.63 ]
なんかわざとらしい会話が繰り広げられているなぁw 何が目的か。

612 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 16:37:24.56 ]
ここに棲んでる奴らの回答なんか当てにならんだろ
MSに問い合わせろ

613 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 16:39:29.15 ]
>>604
ここに棲んでる奴らの回答なんか当てにならんだろ
MSに問い合わせろ




614 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:31:14.08 ]
VBで作ったアプリにVBS(ActiveScript)のマクロを搭載するにはどうしたらいいの?

ActiveX.exeにすれば、VBS側からVBアプリを呼んで、VBアプリ内の関数が返した値をVBS側で取得できるが
逆にVBアプリ側からVBSを呼んで、VBS内の関数が返した値をVBアプリ側で取得したい
VBSをWSCにすれば素で出来るけど、WSCはxmlで定義を書かなければならず使いにくいのでVBSが使えるようにしたい

実際、VBSやJSのマクロを組み込んだアプリは存在しているので間違いなく可能なはずだけど
検索してもVB6とExcelなどのOfficeアプリマクロの連携の話とかばかりで目当ての記事が見つからず・・・・・

VB6-SP6、WinXP-SP3です



615 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 20:37:36.83 ]
>>613
604です。
すみません、MSもなんか問い合わせ先が沢山あったり、
上手く伝えられないので、知っている人いたらなんとか
教えてもらえませんでしょうか。

616 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 22:19:04.11 ]
>>615
俺の知ってる範囲ではこの2つ

Microsoft Visual Basic 6.0 Service Pack 6 セキュリティ ロールアップ更新プログラム
ttp://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=e27eebcb-095d-43ec-a19e-4a46e591715c&DisplayLang=ja

Microsoft Visual Basic 6.0 Service Pack 6 累積的な更新プログラム
ttp://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=cb824e35-0403-45c4-9e41-459f0eb89e36&DisplayLang=ja


617 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 11:49:57.26 ]
>>614
「VBで作ったアプリにVBS(ActiveScript)のマクロを搭載する」って具体的にはどういうこと?

618 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 17:01:28.39 ]
コンポーネントの追加でMicrosoft Script Control (msscript.ocx) を追加して頑張れ

Private Sub Command1_Click()
 ScriptControl1.Eval "Msgbox(""hoge"")"
End Sub


619 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 17:36:07.13 ]
NS Basic
www.nsbasic.com/app/

元々はPalm用のBasic言語の開発環境だったみたいだけど、これってどうなの?
サイトではモバイルデバイス向けのVBだとホザいてるけどw
一応Visual Basicのサブセットとも謳ってる。

620 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 20:42:17.59 ]
>>616
ありがとうございました!

621 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:06:36.96 ]
なんでもかんでもサブセットだなぁ

622 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:32:14.03 ]
>>619
VBって商標?

623 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 07:57:31.56 ]
>>619
それ元々Palmの開発環境だった筈。
その頃もVBユーザーを標的にしてたと思う。

624 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 14:38:16.12 ]
>>619
もともとPalm用の開発環境だったんだっけな



625 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 09:14:21.14 ]
windowsメッセージキューをクリアしたいんですが
どうやったらいいでしょうか?
クリックイベントを除去したいのです。

626 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 09:50:40.08 ]
すみません。除去できました。

627 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 06:19:00.37 ]
Windows 8 Developer Previewに VB6インストール

628 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 16:47:55.65 ]
WindowsXPにVB6をインストールとVB6のSP6もインストールしたんだけどさ
インストーラーがwindows\system32フォルダにいろいろとファイルコピーしてたけどさ
あれってちゃんとバージョンチェックしながらコピーしてるんだろうか
XPにもともとあるファイルでこの古いVB6のより新しいファイルを上書きしちゃったりしてないだろうか
してたらどんなトラブルの原因になるかわからん
怖いな

629 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 18:30:24.25 ]
気にするとハゲるぞ

630 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 20:04:15.07 ]
インストール前の物と後のものを比較すればいいじゃないか。
でも、dllって問答無用で上書きじゃなかったっけか?

631 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 12:20:47.13 ]
質問させていただきます。


プロシージャの引数ですが、オブジェクト型であっても、値渡しできますよね?
  Public Sub hogehoge( ByVal obj As Foo)
のように。

この引数で渡されたobjというのは、コピーしたものが渡されるのでしょうか?


632 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 21:34:20.05 ]
ByValとByRefの比較テスト用プロシージャ作って試してみれば

633 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 23:20:44.61 ]
>>632
値渡し出来るけど、コピーしたものが渡されるけど、
何がコピーされたかが重要。
Dim obj as object
set obj = new Form1
call hogehoge(obj)
って書いた時、
objはForm1の実体(インスタンス)を参照する為の4バイト(多分)しか持ちません。
hogehogeを呼ぶ際、その4バイトのアドレス情報がコピーされ渡されます。
なので、ByValだからってフォームが2つになるような事はありません。

634 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 23:21:29.64 ]
訂正
誤)>>632
正)>>631



635 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 01:01:27.88 ]
こんな感じで検証でもしてみればヨロシ

Public obj2 As Foo

Public Sub hogehogeV(ByVal obj As Foo)
 MsgBox obj Is obj2
 obj.value = 100
 Set obj = New Foo
 obj.value = 200
End Sub

Public Sub hogehogeR(ByRef obj As Foo)
 MsgBox obj Is obj2
 obj.value = 100
 Set obj = New Foo
 obj.value = 200
End Sub

Dim obj As Foo
Set obj = New Foo
Set obj2 = obj
obj.value = 0
Call hogehogeV(obj)
MsgBox obj.value
MsgBox obj Is obj2

Set obj = New Foo
Set obj2 = obj
obj.value = 0
Call hogehogeR(obj)
MsgBox obj.value
MsgBox obj Is obj2

636 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 01:57:39.24 ]
オブジェクト変数はオブジェクト参照のアドレス値が格納されている変数で
引数でByValで渡すとオブジェクト変数に格納されている値であるアドレス値のコピーが渡されるのであってオブジェクトのコピーが渡されるわけではない
一方ByRefだとオブジェクト変数が参照しているオブジェクトじゃなくて、オブジェクト変数自体への参照が渡される

637 名前:デフォルトの名無しさん [2011/10/02(日) 00:37:19.04 ]
ご教授下さい。

AUTOCADというCADソフトのVBAで、コマンドをいろいろ作っているのですが、
コマンド実行中、他のアイコンが選択された場合にだけ Unload Me で終了したい
のですが、他のアイコンが選択されたというイベントを知るにはどうしたらいいのでしょうか?

638 名前:デフォルトの名無しさん [2011/10/02(日) 00:38:53.94 ]
配列の先頭インデックスは0だ。
この常識が通じないバカな言語が一匹居る。
それがVB


639 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 00:58:06.83 ]
alt+タブでウインド選択する機能をデザインしたヤツバカだろうね。
同じアイコンがならんでて選ぶたびに順番変わるし
普通あの機能使うのは順番に列挙したいからだろ?
なんで選ぶたびにどれをえらんで、どれがまだ試してないのかわからないまま
闇雲に操作してんだよ
何年も何年も。
ばかじゃん。

640 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 01:17:08.22 ]
>>639
突然なんだ? 誤爆か?

ちなみに、ちゃんと「アクティブになった順」っていう「順番」になってるじゃん。

641 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 02:44:14.86 ]


642 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 05:36:15.67 ]
普通とか言って普通だった試しが無い法則

使い道間違えたまま何を
闇雲に操作してんだよ
何年も何年も。
ばかじゃん。

643 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 05:50:35.09 ]
またバカが


644 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 12:35:27.16 ]
ちょっと何言ってるのかわからないですねー



645 名前:デフォルトの名無しさん mailto:sage [2011/10/04(火) 08:11:01.98 ]
複数のファイルを選択またはドラッグドロップして、ある文字列を別のファイルに検索して、書き出したいです。
複数のファイルの参照ができないので、教えてください。
別のファイルの書き出しはできました。

646 名前:デフォルトの名無しさん [2011/10/07(金) 13:57:58.06 ]
エクスプローラからドラッグするの
またはリストボックスのセレクテッドを拡張して複数せんたくするの
あるもじれるを別のファイルにけんさくってちかんのことをいってるのだろうか

647 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 20:40:39.41 ]
おさわりまんこのひとです

648 名前:デフォルトの名無しさん mailto:sage [2011/10/07(金) 23:18:58.20 ]
>>645
www.geocities.co.jp/siliconvalley/4805/vbtips/vbtips003.htm

649 名前:デフォルトの名無しさん [2011/10/08(土) 12:11:49.33 ]
>>637
他のあいこんとはどkのあいこんでしょか
ですくとっぷのあいこんなら自身がふぉあぐらんどにないことをたいまでみればいいかもー
(かなりいいかげん

650 名前:デフォルトの名無しさん [2011/10/09(日) 20:10:14.17 ]
>>649
>他のあいこんとはどkのあいこんでしょか

同じアプリケーション内のアイコンなのです。



651 名前:デフォルトの名無しさん [2011/10/10(月) 14:23:40.79 ]
何で作ってるアイコンでしょうか
ImageならImage_Click、PictureBoxならPictuteBox_Click、ButtonならButton_Clickでいいじゃないですか
そこにUnload Meと書けば

652 名前:デフォルトの名無しさん [2011/10/18(火) 21:52:09.27 ]
クラスモジュールでEnumWindow関数を使いたい場合
AddressOfが使えないのですが
関数へのポインタを取得する方法がなく困っています
XPSP3でEXCEL2000のVBAで作成していますが
実現したい事はあるWindowと同じプロセスの
Windowがあった場合にWindowTitleによって
異なるMessageを送信する。です
元のWindowはデータ転送アプリで
進捗が進むと不定期にダイアログが表示され
都度進捗が止まるので自動でダイアログに
Messageを送り進捗を進めたいのです


653 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 22:56:51.42 ]
>>652
なら標準モジュール使えばいいだけでは?
何が聞きたいのかよくわからんよ

654 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 15:05:39.99 ]
VBScriptについて質問をさせてください
【やりたい事】
1.InternetExoirerで表示されたホームページからデータを取得したい
2.取得したデータの検索結果を自動で入力したい

取得したい部分はサンプル↓の あいうえお! かきくけこ という部分です

<form action="/hogehoge" method="post">
あいうえお! かきくけこ<br>
<input type='submit' name='aaaa value='1' accesskey='1'>
<input type='submit' name='aaaa' value='2' accesskey='2'>
<input type='submit' name='aaaa value='3' accesskey='3'>
<input type='submit' name='aaaa value='4' accesskey='4'>
<input type="hidden" name="mode" value="start">
<input type="hidden" name="ccc" value="2222222222">
<input type="hidden" name="ddd" value="1111111111">
</form>

この部分を取得して、予め作成しているスクリプトの検索にかけて
検索結果によってsubmitで1〜4のいずれかを入力する、というスクリプトを作成したいのです

検索部分について、データを取得できたと仮定してソースはできました
検索元となるhtmlからの取得と、sendkeyの部分がよくわかりません
調べてみましたが、お手上げ状態です
どなたか宜しくお願いします



655 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 15:37:50.53 ]
素人はそういうことしないの

656 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 01:26:56.33 ]
俺は8年前までVB6のプログラマーだったが転職して
excel のvbaやsqlでツール作るのが殆んど、、、
最近、処理速度が必要なツール作成にvb.netを使おうと思ってるがどうかね?

657 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 04:54:45.77 ]
そういう高度な要求が来たら
ちゃんとしたシステム作りましょうよと

あとツールで処理速度が変わる訳じゃ無い
大事なのは設計と作り方、そしてマシンのスペックだ

658 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 08:21:40.09 ]
>>656
論外。

高速化したいなら設計レベルで対応したほうが効果が高い。
ツールを選ぶのは、それだけでは補えない場合の話だが、
VB.NETは高速なソフトウェアを作るには向かない言語。

659 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 10:34:02.59 ]
>>658
ベンチマークしてから言えよw

660 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 14:14:50.66 ]
>>655 同意
>>654 「CreateObject InternetExplorer」「document.forms」でググれ

661 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 01:44:18.05 ]
新しいのはみんなそうだけど、誰でも比較的簡単に一定のレベルと品質で
ってー方向で作られてるから特に.netだから早いってもんじゃ無いよ
ツール選択って開発効率をどうこうっていう話だろ
速さで言ったらネイティブが一番早いのが当然なんだから。

662 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 01:45:37.11 ]
.netは実行時はネイティブで動いてるんだってばw

机上の空論言う前に、ベンチマークしろ。

663 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 02:11:15.29 ]
.netが遅いんじゃなくてwinformsが遅いんだよね

664 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 03:05:01.57 ]
何とくらべて早いとか遅いとか、向いてるとか向いてないとか言ってるんだ



665 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:17:54.89 ]
比較対象なんて無くても絶対的に遅い物は遅い。
お前は野垂れ死無ければ、裕福だと思うのか?

666 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:35:33.62 ]
>>665
比較対象のない絶対的評価で早いも遅いもない。たんに絶対的な評価がそこにあるだけだ

技術論を主観で語られても困る
お前の例だと、野垂れ死にするやつは、野垂れ死にしないやつより裕福じゃない。それが客観的事実
それを本人がどう思うかは主観問題

667 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:36:00.91 ]
というか>>656がどんな事したいのかによるよな
Excelのデータをセルをグリグリ読んで回してるとかだったらDB使えよって話しだし
いやそんな事はとっくにやってて単純にスピード上げたいってんなら.net化も有りだし
バッチ化してデータ整形だけは夜にやっとくとかまあ色々有るじゃん
処理速度上げたい処理とやらを具体的に書いてくれなきゃなんとも言えん

668 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 20:31:40.22 ]
ちょっと質問です 最近VB弄り始めてばかりです 前は日本語プラグry
やってたんですけど
まァ本題へ
パスワードをかけて そのパスワードが違ったら違いますという
成功していたら 成功していますという処理にするにはどうすればいいんですか?
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
(Name).Enabled = False
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


If TextBox1.Text = "nozomi" Then

MsgBox("認証成功")
(Name).Enabled = True
Else

MsgBox("違います")

End If

End Sub
と打ったんですが
(Name).Enabled = False
~
ってでてくるんですけど 何がおかしいんですか?

669 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:39:33.35 ]
頭がおかしい

670 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 20:43:30.66 ]
わからないならわからないでいいですよ

671 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:55:34.09 ]
【知っているが…】

             「 ̄ `ヽ、   ______
             L -‐ '´  ̄ `ヽ- 、   〉
          /           ヽ\ /
        //  /  /      ヽヽ ヽ〈
        ヽ、レ! {  ム-t ハ li 、 i i  }ト、
         ハN | lヽ八l ヽjハVヽ、i j/ l !
         /ハ. l ヽk== , r= 、ノルl lL」
        ヽN、ハ l   ┌‐┐   ゙l ノl l
           ヽトjヽ、 ヽ_ノ   ノ//レ′
    r777777777tノ` ー r ´フ/′
   j´ニゝ        l|ヽ  _/`\
   〈 ‐ 知ってるが lト、 /   〃ゝ、
   〈、ネ..         .lF V=="/ イl.
   ト |お前の態度が とニヽ二/  l
   ヽ.|l         〈ー-   ! `ヽ.   l
      |l気に入らない lトニ、_ノ     ヾ、!
      |l__________l|   \    ソ

672 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:56:34.61 ]
スレのタイトルと1をもう1度よく読みましょう

673 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 20:57:49.14 ]
>>668
VB6なら多少わかるけど
見たことない文法だからVB6以前のものなのかな?
それともVBSとかいうやつなのかな?

674 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 21:02:00.63 ]
あァ悪い間違えた
Visual Basic 2010だお
パスワードを入れる前はFrom?の有効はオフでパスワード認証成功したら
Fromの有効をオンにする方法はどうやるのですか?



675 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 21:07:17.34 ]
VB2010ってここのスレが該当なの?

676 名前:のぞみ ◆fv9SHj5ibk [2011/11/01(火) 21:18:41.50 ]
>>675 何処に行けばいいのですか?

677 名前:デフォルトの名無しさん [2011/11/01(火) 21:22:16.19 ]
>>676
>>1
Google
 www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。

678 名前:デフォルトの名無しさん [2011/11/01(火) 21:44:49.22 ]
>>676
VB2010はVB.NET

VB.NET質問スレ(Part37)
hibari.2ch.net/test/read.cgi/tech/1317448996/l200


679 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 21:46:46.92 ]
>>1のテンプレにさ
対象外のVBのバージョンも列挙しようよ
あまりにも.NETのやつら来すぎ


680 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 22:04:43.72 ]
タイトルを読まない人が、ましてテンプレ読むとは思えませんが。
そういうの無駄な努力って言うんだよ。
そもそも、テンプレなんて、言っちゃ何だけど書いてる奴の自己満足。
EULAみたいに読まれなくても書いてあることに法的な意味があるわけじゃないんだから。

681 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 23:19:44.99 ]
テンプレ書いてあるだろで済ませる為のもんだろ
何も書いてなけりゃいちいち説明せにゃならん

682 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:07:05.89 ]
済ませるって何を済ませるんだよ。
あんたの気が済むかどうかってこと?
ああそうですかw

VBスレらしい知的な会話だな

683 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:50:34.99 ]
>>682
VBは関係ない。VBのせいにするな。

単にお前が馬鹿なだけだ。

684 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 11:06:53.58 ]
VBで電卓作って、動きは完成したんだけど
メニューバーの表示を押したら、ラベルの計算した数式が表示されるようにしたいんだけど
どうしたらいい?

メニューエディタで表示ってやつは作れた




685 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 18:04:33.77 ]
>>684
もうちょっと正確な日本語で頼む

686 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 00:24:34.71 ]
>>685
www.asmix.co.jp/product/desk-goods/dg009/c1222c1221c1201.html

こんな感じの計算式をメニューバーの表示を押したら、表示されるようにしたいんだ


687 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 00:58:51.80 ]
あまり関わりたくない臭いはするが…
表示したい計算式は文字列として存在してるの?
計算結果は自力で計算するの?
ボタンを押して、それぞれのラベルにそれぞれの文字列を代入するだけの話?

688 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 03:13:04.01 ]
>>687
どうもすみません
ボタンを押してラベルに計算結果を表示させてるんですが

例えば1+2=3って押したらラベルには3って表示されてるんだけど
その答えの計算式である1+2=3をメニューバーの表示に表示させたいんです



689 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 04:37:41.65 ]
メニューのcaptionのの値を変更とかそんな話題なの?

690 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 06:41:17.71 ]
>>688

Label1.Caption = 表示したい計算式

691 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 09:03:11.83 ]
>>687
日本語よめる?

692 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 09:20:33.01 ]
VB6なのですが。
csv読み込み→リッチテキストボックスに表示→
必要な情報を検索(find)→テキストボックスに表示
というものを作りました。
csvの内容は品番、ロット、その他情報が1行ずつ入力されています。
リッチテキストボックス+findを使ったやり方で以下の問題にぶつかっています。
・リッチテキストボックスに情報を全て読み込ませないと検索できない(情報が多い)
・リッチテキストボックスが狭くて、行が折れていると複数行としてカウントされる。
・列毎に検索対象を絞れない(その他情報に品番が書かれていると対象になる)
初めて作ったプログラムなので根本的な所から間違っている気がするのですが
こういった情報を検索する場合、どういった方法が良いのでしょうか?
一から作り直す覚悟はあるのですが、必要なキーワードが思いつかず
MSDNやgoogleでの検索にも行き詰っています。
どうかお助けを。

693 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 14:10:32.04 ]
リッチテキストを使わなければ解決するよね?

694 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 14:44:54.41 ]
>>693
すみません、openで開いたファイルというのは
リッチテキスト等で表示させなくても
読み込んだデータを検索したりすることが出来るということでしょうか?




695 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 15:30:05.28 ]
csvの内容を読み込んでその読み込んだデータをそのままテキストとしてユーザに見せる必要はあるの?
全てのデータを見せる必要がないなら、csvを変数に読ませておいてその変数の中を検索したら?
findっていうのが俺は使ったことないからどんなのか分からないけど・・・
で、変数の中を検索して見つけたところを別の変数に部分的に書き出すなり何なりして
表示用のテキストボックスでも用意してそこに表示するとか

696 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:08:21.44 ]
>>690
それだったらラベルに計算式が表示されませんか?
ラベルには答えを表示したままで、表示エディタにその答えの計算式を表示させたいのです

計算式というのは電卓なので動的で、必ず決まった計算式というわけではありません

繰り返しになりますが、>>686のような計算式を表示エディタに表示したいです
すみませんが、よろしくお願いいたします

697 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:27:08.77 ]
>>695
>csvの内容を読み込んでその読み込んだデータをそのままテキストとしてユーザに見せる必要はあるの?
ないです。Findで検索するために表示してます。
>変数の中を検索して見つけたところを別の変数に部分的に書き出すなり何なりして
変数の中を検索するとは、Instrを使用するということでしょうか?


698 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:35:02.12 ]
>>697
そんなレベルの人がそんなもの今更VB6などでやる必要あるの?
他の言語やソフトを覚えた方がいいよ、会社でVB6しか使ってはダメでもないかぎり

699 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 17:47:14.34 ]
>会社でVB6しか使ってはダメでもないかぎり
まさにそのとおりの状況です。

700 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 17:58:53.69 ]
じゃあ仕方がないな
会社にVB6の入門書やVB6が使える人がいるだろう、じっくり勉強してください

701 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:10:44.36 ]
>>696
表示エディタ.Caption = 表示エディタ.Caption & 押したキー.Caption

702 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 18:16:20.62 ]
電卓のほう書いてみた
ll.la/a5+~
キーワード vbpart56
やりたいのはこういう事?

703 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 19:46:36.79 ]
>>702
どうもわざわざありがとうございます
動きはこういうことですね

ソースは>>701のような感じなんでしょうか?
>>701もありがとうございます

704 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 20:36:00.93 ]
>>699
今すぐ離職を考えたほうが良い。
技術者として使い物にならなくされる前に。



705 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 21:03:19.98 ]
>>703
入力はただのテキストボックス
メニューを押すとテキストボックスの式を計算して
その結果をラベルに代入しているだけ

706 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 21:53:06.54 ]
>>705
なるほど
どうもありがとうございました!

ちょっとやってみます

707 名前:デフォルトの名無しさん [2011/11/07(月) 12:04:47.18 ]
実行って、ビルドしてからしかできませんか?

708 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 17:06:39.62 ]
>>699
リッチテキストでのプログラムが出来たなら
type,get辺りでググれば出来ると思うよ。


709 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 21:47:48.66 ]
>>708
ありがとうございました。
簡易的なものは組めましたので
何とかなりそうです。

710 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 00:59:20.93 ]
でも今からVB6てのはお勧めしないよいや割と本当に
現状でも保障なんて無いしな。
Officeなら2010でもまだVBA生き残ってるから大丈夫だろうけど

711 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 06:14:48.16 ]
>>708
どうにか作ることが出来ました。
本当にありがとうございました。

712 名前:デフォルトの名無しさん [2011/11/09(水) 16:48:23.22 ]
710はキモい文章をお書きになりますね

713 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 20:46:04.15 ]
仕事で困ってる人間へのアドバイスが
"お勧めしない"ってのは無理な話だよな。

714 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 21:17:38.00 ]
UNICODEがまともに使えないって時点で終わってるし
仕事でプログラムやってるならVB6だけで食えるという人なんてもういないだろうからどうでもいい話だわな
今の時期に入門としてVB6を指定したのなら鬼畜かそいつを辞めさせたいかどちらかだろう



715 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:49:38.96 ]
FA制御系だとVB6の方が都合良かったりする。

716 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 16:18:48.15 ]
FA制御って何でやるの?

717 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 20:55:27.36 ]
>>715
ガベコレの都合だよな?

718 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 10:42:29.04 ]
>>716
IOやGPIBボードで。こういうことを聞いてる?
ttp://www.interface.co.jp/io/index.asp

メカ自体はPLC(シーケンサー)での制御だけど大量のデータ演算なんかはPCを使う。
最新環境はマイクロソフトやプログラマーの都合だけであって、エンドユーザーからすれば
新規装置でも過去装置との互換を保つ方が何かと都合がいい。

>>699はそういう環境なんじゃないかと思う。
俺なんかもWin95〜XPまではVB6も使ってるけどね。需要は多いよ。

719 名前:デフォルトの名無しさん [2011/11/21(月) 02:40:22.80 ]
>>714
VBでUNICODEがまともに扱えないとは
例えばどんな状況でしょう?
VBはUNICODEが基本でしゅが

720 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 15:04:08.78 ]
VB6のコントロールでUNICODEにまともに対応しているやつってあるのかな

721 名前:デフォルトの名無しさん mailto:sage [2011/11/21(月) 20:36:04.41 ]
UIが対応してないんだよね

722 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:50:41.81 ]
古いソフトをVB6で更新する仕事を受けたんだが、
テキストファイルをバイトサイズで分割して〜
というような仕組みだったので
UNICODEにしてしまうVB6ではちょっとめんどくさい事になった。

723 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:01:41.15 ]
そういう仕事を請け負う会社が無くならない限り
VB6は不滅です

724 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:50:02.47 ]
byte区切りならテキスト形式で開かなければいいし
改行で分割するならバイナリで開けばいいし
2バイト文字区切りならバイナリで区切って文字コードで判断すればいいし
VB6のせいなのかねぇ



725 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 09:23:02.67 ]
2バイト文字の途中で区切ってもいいのか?
だとすると、もはやテキストではないので
バイナリファイルとして考えれ

726 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 10:56:10.77 ]
単に、固定長テキスト形式ってヤツだと思うが・・

727 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 20:05:54.86 ]
それが単に固定長でもないのよ。
AパートとBパートがあるとして、
確かにAパートもBパートも固定長だが、Bパートは1〜複数存在する。
改行は無い。
AパートもBパートもそれぞれさらに細かく分割される。

バイナリで読む方法はもちろん試したが、文字化けが生じてしまった。
最終的には、ADODB.streamの文字コード変換を使って解決した。

728 名前:デフォルトの名無しさん [2011/12/07(水) 12:55:30.21 ]
Ethernet-シリアルコンバーターを接続した装置への通信プログラムを作成しようとしています。
シリアル通信プログラムは
ttp://www.picfun.com/serial00.html
等のサイトで基本的なコードは書けたのですが、Ethernetを経ているのでどのように装置にアクセスしたら良いのかわかりません。

ルータ(192.168.1.1)
 ┣制御PC((192.168.1.2)
 ┗Ethernet-シリアルコンバンーター((192.168.1.3)━(RS-232C)装置

環境:Visual Basic 2008 Express Edition

よろしくお願いします。

729 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:06:59.23 ]
>>728
dobon.net/vb/dotnet/internet/tcpclientserver.html
この辺をみて

730 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:12:21.82 ]
>>728
仮想COMポートはないの?

731 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:17:54.26 ]
Visual Basic 2008 ってありなのか?このスレ。

732 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:27:40.57 ]
無しですよ?

733 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 13:28:53.15 ]
Ethernet-シリアルコンバンーターというのが
どこのメーカーのなんと言う製品なのかによるな

734 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:10:11.38 ]
VB6のIDEでタブを入力するとスペースに変換されてしまうんだけど
これはどこで設定したら良い?



735 名前:デフォルトの名無しさん [2011/12/07(水) 23:27:05.55 ]
728です。
Ethernet-シリアルコンバンーターは、CONTECのRP-COM(FIT)H-AFです。
www3.contec.co.jp/B2B/ConIWCatProductPage_B2B.process?Merchant_Id=1&Section_Id=54&Catalog_Id=54&Product_Id=1528
当機は、仮想ポートには対応しております。


736 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:49:48.95 ]
じゃあ解決だね


737 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:51:42.93 ]
>>735
マニュアルとドライバぐらいダウンロードしないよ。

制御PCに仮想COMドライバをインストールすればよい。
後は普通のCOMポートと同じように使用できる。

もしくは、もう一台シリアルコンバーターを買ってきて、
制御PCのCOMポートに接続してあげればよい。

もし制御PCからUDPを使って装置を制御する事を期待しているなら、
装置のファームウェアを変更して、RP-COM(FIT)H-AFの専用コマンドに
対応するように作りかえる必要がある。

ただし、この手のハードウェアは制御線の動作に癖があるので、
CS/RSやCTS/RTSを変わった使い方してるとまともに動かない事もある。



738 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 00:00:45.20 ]
>>734
ない。

739 名前:デフォルトの名無しさん [2011/12/08(木) 01:36:46.69 ]
728です。
大変参考になりました。
ありがとうございました。


740 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 09:43:50.99 ]
VBの総合スレみたいのはないのかな。
コードは出来てる(と思う)んだけど、今VBが使えない環境なもんで、
誰か代わりに実行してULし直して貰えたりしませんか?
www1.axfc.net/uploader/Sc/so/298858.zip
同梱ファイルのバイナリを書き換えるだけの物なんだけど、手動じゃちょっと膨大で。


741 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 10:50:53.13 ]
その程度の内容ならVBじゃなくてもベクターなどから適当なBasicなり他の言語でもひろって作ればええやん

742 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:00:51.92 ]
>>727
>文字化けが生じてしまった
あたりまえだ。
固定バイトで区切るんだから、2バイト文字の間で区切ったら
文字と対応しないバイト列になるんだから
表示できない。

文字コード変換してとか解決したように見えただけだろ。
もし表示できてるなら、指定バイトで区切られてないはず。

表示したものをもう一度書き出すプログラムなんて世に送り出さないでくれ。

743 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:23:58.60 ]
>最終的には、ADODB.streamの文字コード変換を使って解決した。
2バイト文字を切ったとかじゃなくて、そもそも違う文字コードのを
データを表示しようとして化けただけじゃないか

シフトJIS固定長で文字が境界またぐなら、格納時に考慮しとくべき問題だが


744 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:38:34.22 ]
>>741
すみません、スマホしかないもので。
ダメもとで、とりあえずあちこち見ながら書いてはみたものの。
でもそれ程基礎的な物ならスマホ上でも動くアプリあるかもしれないですね。
もう少し勉強し直してみます、ありがとうございました。



745 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 13:04:46.33 ]
スマホで動くものをVBで作れと?

746 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 13:06:52.79 ]
Androidのアプリなら作れるけど

747 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 14:17:19.97 ]
VB6でやろうとするのはどんな苦行だろう

748 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:07:09.17 ]
Windows Mobileと呼ばれる前のPocket PC 2003で動くeVB3用アプリなら作れるけど

749 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 21:21:16.25 ]
俺はeVC3なら作れる

750 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 01:46:41.86 ]
いわゆる趣味でプログラミングとかしてんだけど
ちょっとした作業ツールとか作るの慣れたVB6が楽すぎて未だにVB6から離れられない

751 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 03:19:45.10 ]
すごく初歩的な質問なんだけど、インスタンスの生成方法がさっぱり分からんorz
Dim btn As CommandButton ' コンパイル通るし、実行してもエラー起きない
Dim btnA As New CommandButton ' New キーワードの使い方がだめ とエラーが出る
Set btn = New CommandButton ' 同上
Dim a As New Class1 'Class1は何も書いてない適当なクラスモジュール。 問題ない。

おそらく、CommandButtonは抽象クラスだから生成出来ないのかな?と考えてはいるんですが
エラーメッセージが変だし、Class1でコンストラクタなど定義してないにもかかわらず、生成出来る不思議。

そして、ネット上で探してもノイズ(VB.NET)が多すぎてよく分からんorz

752 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 03:42:06.27 ]
あと、変数の宣言を強制する方法は分かったけど、
(デフォルトで入れておけよ…デフォルトで入ってないから未定義の変数を読み出す様なひどいソースを引き継ぐことになったorz)
型変換、キャストも強制するオプションはどうすれば?

あと、誰かLongのリテラルの書き方教えてくれ、
Dim j As Long
j = &HFFFF
MsgBox(j) ' -1 !?
MsgBox(&H10000 - 1) ' 65535
とりあえず
Const H0xFFFF = &H1FFFF - &H10000
Const H0x8000 = &H18000 - &H10000
というようなのを定義してごまかしてるけど。
とりあえず、この入門書(笑)は風呂の焚き物にしかならんな…

753 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 05:08:55.90 ]
私こと初心者が適当な風に回答します

>>751
CommandButtonなどのコントロールは、たしかNewでインスタンスは生成できないとか
「VB6 動的 コントロール」でググるとコントロールの動的追加について記載サイト出てくるかも

>>752
こゆこと?
Dim a As Long, b As Integer, c As Single, d As Double

Dim a&, b%, c!, d#

a = 100& (Long型)
b = 100% (Integer型)
c = 100! (Single型)
d = 100# (Double型)

オプションは分からないけどキャストは
CInt() CLng() CSng() CDbl() とかそういう関数あるよ

754 名前:753 mailto:sage [2011/12/09(金) 05:10:49.37 ]
勘違いしてたり間違ってたりしてたらごめんなさいね



755 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 07:12:29.84 ]
>>751
UI部品のインスタンスを動的に作成する場合にはいくつか制限がある。
フォーム上にボタンを張り付けて、Indexに0と指定しておく。
でもってコントロール配列に対して「Load Button1(1)」とすれば、
インスタンスを生成できる。


756 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 07:27:23.06 ]
>>742

答えは>>743。VB6が勝手にUNICODEにしてしまうところでそうなった。
境界またぎはさせてないよ。

757 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 08:17:21.17 ]
配列にしなくても動的作成できるなんて始めてしった
7ujm.net/VB/VB6Controls.html

758 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:26:32.58 ]
配列でロードする方法ならIndex 0のプロパティがほとんどコピーされるから
実行時に型を変える(TextBoxに入力したコントロール名のを作成)とかで
ない限り、配列ロードでいいんじゃないの。

759 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 09:28:04.83 ]
えー
ださいよー


760 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 15:15:33.32 ]
New使ってるからLoadでのコピーは用途違うんじゃねの?知らんけど

761 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:24:09.53 ]
>>753
ああ、なるほど、ケツにつけるから併用出来るのか
MsgBox(&HFFFF&)ででけた

自動でキャストされることになれてないから、キャストを明示的に指定しなきゃいけない様に設定できたら
VB初心者のおいらでも安心してくめるかなと。そうした方が後継者もあんまり混乱しなくてすむし。

>>755-760
thx。要素数に応じて、コントロールを並べることを考えてたからコントロール配列で良さそうだわ。
コントロール配列使えばたぶん必要ないことだと思うけど、
VB6にはまだ匿名関数でクロージャをやったりとか出来ないよね?(確認)
コールバックとか難しそうだな…AddressOfで取得したのを直接実行できないのかよ。

762 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 16:33:10.59 ]
AddressOfは外部APIに渡すときしか使えなかったような

763 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 17:08:05.52 ]
何言ってるのかさっぱりわからん

764 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 18:31:41.95 ]
>>763
いやさ、おまえらみたいになれてる奴には気にならんかもしれんけど
d.hatena.ne.jp/snaka72/20100126/1264514893
ここに書いてあるようにCallByNameっていうevalっぽいものじゃなくて
Sub hoge(callback as Method)
 callback()
End Sub
hoge(AddressOf(foonction))
みたいに出来るもんだと思っててさ。まあ、セキュリティ的に直接関数ポインタを実行出来ない方が正しいと思うけど。

しかし、このIDE使いにくいな… &HFFFF& <-コレはいい、 &HFFFFF& <-勝手に&外される &H0FFFF <-勝手に0を消される



765 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:09:16.34 ]
勝手に&が消されるのは指定しなくてもLong型で認識されるからじゃねの

766 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:16:14.63 ]
CallByNameで諦メロン

767 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:33:37.14 ]
(インスタンスとか意識して作ったことないから俺には話の内容が高度すぎて)何言ってるかさっぱりわからん

768 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 20:36:46.71 ]
ちげーよw

769 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:10:33.06 ]
VBはじめたいのですがもうVB6.0は手に入らないのでしょうか?
VB6用の本を買ったのですがVB2010というのでもいけますかね?

770 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:12:46.13 ]
VB6とVB2010では全然違うから
VB6のやり方ではVB2010では何もできない
VB2010のやり方ではVB6では何もできない

771 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:12:58.41 ]
>>769
6.0と2010は全く違うものです
それに6.0は今から覚えるには古すぎるのでお勧めしない

772 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:14:34.67 ]
数年前はMSDNのイロイロ入りの奴で手に入れるのが通説だったんだが
今はどうなのかねえ。

773 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:15:44.89 ]
>>770>>771

そうなんですか・・・2010用の学習書を買い直しますありがとうございました

774 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:21:16.77 ]
>>769
VB2010はVB6とは全く別物。.netベースになってる。 VC++2010みたいにWin32も開発できるなんてことは”ない”。完全に.net専用。
つか、新しく始めるならなぜにVB6とか苦行するしw

.netでもかまわないならC#とかおすすめよ。C#の方が新機能とかの追加が早いし。
研究とかで.netが使えないなら、C/C++あたりが無難。誰でも使えるしな。
RADツールがほしいならDelphi3〜7という手も悪くない。マイナーだが、プログラム経験があれば1週間もあれば誰でもかけるようになるだろう。
過去の遺産の引き継ぎとか、明確にVB6でなければならない限り、VB6を使う理由もないし、使うべきじゃない。

入手先の前にまず再考を。 別にその本をどぶに捨てたところで全然惜しくないしな。



775 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:31:06.68 ]
>>774
Cはある程度できるんでC++にしようかなと思います。
ただ簡単なソフトを作ったりするのにはVBが一番簡単かな?と思ったんです

776 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:32:18.67 ]
ディスコンになって10年経過してる商品について>>769はさすがにネタ投入(ただし全然面白くないが)
としか思えんけど。

逆にネタじゃないなら相当頭がどうかしてる。
こんなところに書き込んでるわけだから、最低限webにアクセスできる環境にはあるんじゃないの?

777 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:36:23.30 ]
たとえそうだとしてもそのレスをする必要はないような

778 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:38:39.02 ]
いつもイライラしてるIT土方が来たようだな^^

779 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:39:04.41 ]
いつまでもVB6なんて使ってる化石をからかっただけですけどね

780 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:41:04.82 ]
やべえ、真性のアスペかよこいつw
どこに「いつまでもVB6なんて使ってる」なんて書いてあるんだw

781 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:41:39.00 ]
おい、つまらんレスはするなバカども

782 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 21:42:54.61 ]
>>781
じゃああなたが面白いレスの手本見せて下さいよ〜

783 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 05:39:23.55 ]
簡単なもの作るだけならExcelでも使っとけ
つかVBマクロて人気なんだな
OpenOfficeに最も望まれてる追加機能がVBA対応とか
これじゃVB無くならんわ

784 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:03:38.31 ]
>>783
Excelっていう土台と、初心者と本格的プログラミングの中間にある
開発環境が他にないからね。

Accessまでいっちゃうと、本格的プログラミング寄りで、何より、データベース
って土台は初心者にキツイ。

ということなのだろう。

ただ、そろそろVBAは、言語体系を.NETに近づけたほうがいいとは思う。



785 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:14:13.29 ]
Excelとかのマクロ言語はVBAやめてJavascript系にしちゃえばいいのに

786 名前:デフォルトの名無しさん [2011/12/11(日) 16:34:15.51 ]
学校のVisual Basic 6.0で線形探索とファイル処理を使ったプログラムを作る課題がでました。
Excelでデータを作って対応させるのように指示を受けました。
私は商品名を入力し、実行するとその商品の画像を表示するようにしたいのですが、
この場合、Excelのデータ作成はどのように行えばいいですか?

787 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 16:44:32.25 ]
商品名と画像ファイル名だけじゃないの?

788 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:39:35.98 ]
学校ってまだVB6使ってるの?

789 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:41:41.90 ]
>>784
近づけるというか、いっそうVBAとCOMを取り除いて、.netベースにしてしまって
VBAの代わりにVB.NET(移植向け)、C#(新参/初心者向け)を使えるようにすればいいんじゃね?

ExcelやAccessでlinqが使えれば、業務系の人にもうけが良いだろうし。(むしろにて異なるものでキモがられるかね?)
>>785
.netって基盤を作ってきたMSだから、今更Javascriptはないと思う。
OOoはVBAとか誰得なものをつけるより、Javascriptでマクロを組めた方が遙かに現実敵だとは思うが。
Google Docsの方はJavascriptだけども、サーバサイドで動くので使いにくいね。 

790 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:43:13.57 ]
>>786
研究室の過去のプログラムの更新にやむなくってのは分かるが
学校で今更VB6を教えてるって、その学校かなりヤバくね?

中学校の部活か何かでVBAでプログラミング体験とかなら分からんでもないが。課題もそのレベルだし。

791 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:48:42.38 ]
情報系じゃないが、若いセンセが嘆いてた
教える老人のノート、数十年前のものいまだに使ってるって

792 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 02:34:55.91 ]




ワイは日本人やが聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な元の中国に戻るらしいで
みんなも知っての通りもう経済は破綻してて、取り戻すのは無理なんだそうや


その世界ではごっつい有名な政府関係者筋から聞いた確かな情報やで

まあお前らほどの頭の良い連中には、今さらなくらいのネタやな、失礼なくらいかもしれん
お前らからすればもう常識的なくらいの知識やろ?









793 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 10:26:11.26 ]
Windows7で「Microsoft Shell Controls And Automation」を参照設定してexeファイルを作り、XPのパソコンで実行すると、
実行時エラー430(クラスはオートメーションまたは予測したインターフェースをサポートしていません。)が発生しました。

shell32.dllのバージョンが原因なのでしょうか?



Dim oShell As New Shell
Dim oFolder As Folder2

Set oFolder = oShell.BrowseForFolder(0, "選択してください。", 1)

If oFolder Is Nothing Then
Exit Sub
ElseIf oFolder.Title = "デスクトップ" Then
    MsgBox "デスクトップは選択できません。", vbOKOnly + vbCritical
Set oFolder = Nothing
End If

If Not (oFolder Is Nothing) Then
txtFolder.Text = oFolder.Items.Item.path
pFileDir(lstFile.ListIndex + 1) = txtFolder.Text
End If

Set oFolder = Nothing


794 名前:デフォルトの名無しさん [2011/12/12(月) 15:51:10.15 ]
VB初心者なのですが、
xlsmファイルって読み取ることができますか?
読み取れるようであれば例文教えていただけると
ありがたいですm(_ _)m



795 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 15:52:47.84 ]
Excelが入ってれば読めるよ

796 名前:デフォルトの名無しさん [2011/12/12(月) 15:58:29.53 ]
>>795
Excelも入れていて読み込めるはずなのですが

xlsmfile = New FileIO.TextFieldParser("ファイル名.xlsm",
System.Text.Encoding.GetEncoding("Shift_JIS"))

xlsmfile.TextFieldType = FileIO.FieldType.Delimited
xlsmfile.SetDelimiters(",")

この文では読みこめないのでしょうか?


797 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:09:00.17 ]
>>796
createobjectして読み込むんだよ

798 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:23:43.16 ]
>>796
ひょっとして.net+VSTO?VSTOは実は単なるCOMラッパーだったりするから微妙だけど。

そもそも、Microsoft.VisualBasic.FileIO.TextFieldParserって、zipしてある奴も読めるのか?
MSDNをさっと目を通すと、CSV/TSVとかのテキストファイル前提っぽいが。

>.GetEncoding("Shift_JIS"))
あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とかUnicode系じゃねーの?

あと念のために聞くけど、PC初心者?まるで分かってないオーラが漂いまくってるけど。
ついでに、VSTOはそんな便利じゃないよ。イテレートもろくに使えないし。

799 名前:デフォルトの名無しさん [2011/12/12(月) 16:27:08.33 ]
>>797

試してみたんですができませんでした。
createobject の使い方教えてくれませんか?

800 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:41:55.33 ]
そういえばExcel2007以降とか見たこと無かった。

801 名前:デフォルトの名無しさん [2011/12/12(月) 17:01:08.62 ]
>>798

テキストファイルを読むことを前提にしているので大丈夫です。

>あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とか
Unicode系じゃねーの?

調べてみます。

PC初心者です。
これから勉強していきたいのでよろしくお願いします。

802 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:01:50.87 ]
>>794
読めます。
中身はZIP形式で圧縮されたテキストファイルです。

試しに拡張子をzipに変更した後、開いて、中のファイルをメモ帳ででも開けばよい。


803 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:02:57.81 ]
>>799
どう試してみたの?

804 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:06:09.39 ]
>>799
ググった? あと、ここはVB6スレなんだが間違いはないか?



805 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 02:14:57.18 ]
>>796のコードはVB6のコードには見えないな。文法が違う

806 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:17:11.38 ]
細かいこと気にスンナよ

807 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 12:45:11.56 ]
>>801
ここID出ないから、名前欄に1個前のレス番を毎回入れるか
最初にレスしたレス番を入れるとかしてくれないと誰か分かりづらい。
絞り込みして見る事もできね。

Googleで VB6 XML 読み込み をキーワードに検索して結果の1件目。
t-yoshi-tomi.at.webry.info/200905/article_2.html
>Dim XmlDoc As DOMDocument 'xmlデータ用変数
>Set XmlDoc = CreateObject("Microsoft.XMLDom")


808 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:12:37.25 ]
>>806
言語が全く違うんだから気にスンナレベルじゃねーだろw

>>807
VB6ならExcel COMから読み出せば良いんじゃね?
VB.NETなら、どこかのZIPライブラリ使って中のxmlをlinqで列挙するのがお手軽かと思うけど

809 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 02:49:46.98 ]
すげー初歩的、ランゲージリファレンス嫁ってレベルだと思うんだが
イベントについてさっぱりなので教えてくれ。

eventキーワードでのイベントの定義については分かった
RaiseEventでのイベントの発生も分かる
だけど、実際にメソッドを結びつける方法が分からん まるでわかめ。
privatepaste.com/3e1d507e11


810 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:29:20.92 ]
イヴェントの使い方
'Class1.cls
Public Event EventDaYo()

Public Sub Hoge()
RaiseEvent EventDaYo
End Sub

'Form1.frm
Private WithEvents c1 As Class1

Private Sub Form_Load()
Set c1 = New Class1
End Sub

Private Sub Command1_Click()
Call c1.Hoge
End Sub

Private Sub c1_EventDaYo()
MsgBox "EventDaYo"
End Sub

811 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:46:13.88 ]
>>810
キモの部分は
Private WithEvents c1 As Class1
Private Sub c1_EventDaYo()
これ?
でもコレって、ClassAの中にあるCoClassBのイベントにはどう対処するんだ?
ClassA:
 Public Property Get CoClassB(index as integer) as CoClassB
CoClassB:
 Public Event CoClassScream()
ってあった場合…
ClassAが内包しているクラスのイベントをリレーしないとだめ?

というか単純に配列の中にオブジェクト入れてた場合はどうなるの?

812 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:51:35.30 ]
WithEvents 発生したイベントをキャッチするための入れ子を宣言する
(配列にできない、Newで宣言できない、Moduleでは宣言できない)
WithEventsを宣言したForm(またはClass)内でしかそのイベントをキャッチできない



813 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:55:05.51 ]
>>810
Class1で宣言したイヴェントはClass1内からのみ発生させられる
Class1のインスタンスから発生したイヴェントをキャッチするには
WithEventsでClass1のイヴェントをキャッチする入れ子を宣言し
それにあらかじめインスタンスをつっこめばそのインスタンスから発生したイヴェントをキャッチできるようになる
が入れ子に設定されたインスタンスからのイヴェントしかキャッチできない


814 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:57:03.36 ]
>>812
(配列にできない、Newで宣言できない、Moduleでは宣言できない)
↓訂正
(配列にできない、Newで宣言できない、標準Moduleでは宣言できない)





815 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:05:48.74 ]
内包リレーってこんな感じか?
'Class1.cls
Public Event EventDaYo()
Private WithEvents c2 As Class2
Public Sub c2_EventKaYo()
RaiseEvent EventDaYo
End Sub
Private Sub SetC2(c As Class2)
Set c2 = c
End Sub

'Class2.cls
Public Event EventKaYo()
Public Sub HogeHoge()
RaiseEvent EventKaYo
End Sub

'Form1.frm
Private WithEvents c1 As Class1
Dim c2 As Class2
Private Sub Form_Load()
Set c1 = New Class1
Set c2 = New Class2
c1.SetC2 c2
End Sub
Private Sub Command1_Click()
Call c2.HogeHoge
End Sub
Private Sub c1_EventDaYo()
MsgBox "EventDaYo"
End Sub

816 名前:デフォルトの名無しさん [2011/12/14(水) 05:09:59.08 ]
VB6 イベントを作る - RaiseEvent, WithEventsなど
homepage1.nifty.com/rucio/main/shokyu/jugyou29.htm


817 名前:デフォルトの名無しさん [2011/12/14(水) 05:20:06.22 ]
質問者は質問をわかりやすく明確に
回答者は回答をわかりやすく明確に
カオスな流れになってるぞ

818 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:25:49.38 ]
イヴェントをキャッチしたいForm(またはClass)内でWithEvents入れ子を作れ
Class1内のClass2インスタンスのイヴェントを
そのClass1のインスタンス内でキャッチしたけりゃClass1内にWithEventsを書いてそのClass2のインスタンスへの参照入れろ
Class1以外、たとえばForm1でClass1内のClass2のイヴェントをキャッチしたけりゃ
Form1内にClass2のWithEvents書いてClass1内のClass2のインスタンスの参照を渡すか
Class1内でClass2のイヴェントをキャッチしてClass1でイヴェントをキャッチしたってイヴェント発生させろ



819 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:36:14.32 ]
質問者と回答者の会話が噛み合ってないな

820 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:25:05.62 ]
イベントは別のクラスに書くんだよ

821 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:32:10.37 ]
ヴェとか書くからなんかごちゃごちゃした文章に見える

822 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:36:56.97 ]
これが参考になる
oshiete.goo.ne.jp/qa/504573.html

823 名前:デフォルトの名無しさん [2011/12/14(水) 16:28:56.24 ]
VBのアプリで、USBメモリにテキストファイルを書きだした後
タスクバーから取り出しを実行すると定番の
 「デバイス'汎用ボリューム'を今停止できません。」
の表記が出て、アプリを終了するまで停止できません。

一応調べましてFileSystemObjectを使い、ファイル保存の際に使用していた
dirからFolderExistsに変更ましたが、"アプリ起動後"にUSBメモリを挿すと
想定通りUSBメモリの取り外しが行えるものの"アプリ起動前"から
USBメモリが刺さっていると上記のエラーが出て取り出しができないのです。

更に調べて、上記に加えて最後にchdir("C)でローカルドライブに変更してやると
アプリ起動前にUSBメモリを挿していても、問題なく取り外しが行えるように
なったもののどうもしっくりきません。

どなたかこの状況から原因をエスパーできる方はおりませんか?

824 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 16:46:33.22 ]
ローカルに書き出してからUSBにコピーするのがいいよ



825 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:30:43.68 ]
□投稿者/ サテア 一般人(1回)-(2011/12/15(Thu) 10:25:45)

環境/言語:[windows7/visual basic6.0/?] 
分類:[VB6以前] 

4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示するプログラムを作成するノルマを与えられています。
しかしvisual basic6.0だとあまりい良い文献がなく、ほとんど参考になりません。
ちなみに自分はオブジェクトを配置するくらいの技能までは持っています。そこから先がすすめません。

何だよそのノルマと技能はwww

826 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:34:58.64 ]
リストボックスに入れてソートさせるのがVBっぽい

827 名前:デフォルトの名無しさん [2011/12/18(日) 12:22:19.04 ]
>>823
大きな問題として
Dir関数って、フォルダを参照した後で内部的に終了処理がなされてないよね
Loopでファイルの列挙ができるようになってる都合上、参照し続けてしまう
前の方のレスにも書いたけど
Dir ""とすれば開放できるとするサイトがあるけど、それでもカレントフォルダを参照してしまう

で、話は戻るけど
やっぱりDir関数を修正した以外の場所で使ってるんじゃないの?
またはchdirかも知れないけど、
最後にchdirでUSBメモリ以外を参照すれば抜けるっていうのは、その証拠でしょ

828 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 16:25:51.45 ]
>>825
初心者に対する非常に良い問題なのだが、VB6っていう環境が
初心者の学習に向いてない。

投稿者は明らかに初心者なのだが、こういう掲示板で
どういう言葉遣いで質問するかわからないから変な用語使うハメに。



829 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:37:06.04 ]
単純にソートアルゴリズムの勉強させられてんじゃないの
自分も新人の時に最初の課題として出されたよ
実際自前でソートする事なんかほぼ無いが
あの時色々と調べて得た知識は今も生きている

830 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:47:27.78 ]
そっとしといてやれよ

831 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 22:16:07.93 ]
実はわざわざVB6でやらせて苦行を強いる上司のパワハラ

832 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 09:47:21.79 ]
>>827-832
ここはVB6のスレなんだ。
VB6は古いとか.NETやれとか言ってるやつはスレち。
答える気がないなら来るな。

って書こうと思ったら、ここへの質問じゃないのか。
まあいいや。
VB6のスレなんだからVB6かわいがってやってくれ。

833 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:38:55.79 ]
VBでメモ帳を作成しろと言われた
誰かサンプルソースZIPでくれエロい人

834 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:47:11.67 ]
>>833
誰に言われたんだ



835 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:16:57.89 ]
>>832

>>825はな…どっかの掲示板の転載やで…
答えは求めてないだろ。
(かといってヲチする板でもないがな)

836 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:25:46.75 ]
>>834
講師

837 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:36:01.93 ]
VB6でやれって言われたのか?

838 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:50:28.15 ]
>>837
VB2010Expressです

839 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:15:39.13 ]
>>838
ここはVB6.0のスレ。
VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。

それが出来ないなら余所のスレに行け。

840 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:44:57.96 ]
うぜえなこいつ

841 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:52:06.76 ]
>>839
スレ違だボケって意見には賛成できるけど
>VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。
コレは同意できないw

842 名前:デフォルトの名無しさん [2011/12/21(水) 05:57:54.47 ]
じゃ、VB6で
Shell "notepad", VbNormal

843 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:03:46.00 ]
よくサブルーチン(戻り値のないメソッド)をCallで呼び出しているけど
アレは直接呼び出すのと違うの?メリットって何?

844 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:38:04.44 ]
>>843
リファレンスぐらい読めよ。
msdn.microsoft.com/ja-jp/library/sxz296wz(v=vs.80).aspx

「コードの読みやすさが向上します」って書いてあるだろ。
メリットはそれだけだ。デメリットはタイピング量が6文字増えることかな。



845 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:49:12.71 ]
>>844
VB6のリファレンスってまだ残ってたのか! と思ったらコレVB.netのじゃん…
>プロシージャを呼び出すときに Call ステートメントを使用する必要はありません。ただし、そうするとコードの読みやすさが向上します。
>argumentList を指定する場合は、かっこで囲む必要があります。
つまり、引数を括弧で囲めるようになるのか…確かにこれは有用だな。

むしろ、括弧を省略しなければいけない仕様の方をdo…おやこんな時間に誰だろう?

846 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 20:08:03.41 ]
俺はずっと以前からCall使ってる。
理由は、コードが見やすくなるからだ。

847 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:24:27.15 ]
>>846
まぁ、本当はCall命令はFunctionステートメントやSubステートメントが
無かったころの残骸なんだけどな。

VB1.0の頃には、見た目以外にはほとんど意味の無い命令になった。

848 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:42:06.92 ]
だいたい、VBってタイピング量にかけては最悪だろ。

If で開始して、End If で終わる。

Do while〜 Loop で終わる。

CとかJavaとかC#は if で開始して } で終わる。

コードの見やすさからすれば断然C#。

VB6やっててよかったと思う事は、俺にはただ一つ。

VB6 で作ったクラスとかをほぼそのままVBAにも適用して動作可能にできる点だ。
(DB関係はそれでExcelにも使えてる)

849 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:03:11.42 ]
タイプ量=みやすさ とでも思ってるのか
ほんとに綺麗なソースもホントにひどいソースもみたことないんだな、きっと

850 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:30:12.89 ]
見やすい見にくいとかどうでもいいよ。動けば

851 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:54:11.41 ]
>>847
BASICの頃のはラベルへGOTOとかGOSUBじゃなかったっけ?
CALLとか使った覚えなさす。 もっともあの頃のBASICはテキストデータを格納して
マシン語を走らせるためのブートローダー的なものだが。

>>850
お願いだからいろんなモジュールのグローバル変数をごっちゃにして
未定義でなおかつ代入してない変数を読み出して、たまたまうまく動いているプログラムを量産しないでください。

イコールの位置とかそろえなくて良いけど、インデントくらいはまともにやってください。
If a = 0 Then ' インデントレベル 0
If b = 0 Then c = 0 ' レベル 0
 d = 0 ' レベル1
End If ' レベル0
…これ難読化ツールでも使ったんですか?… 

852 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:03:15.42 ]
絶対自分しか見ないってんなら良いけど
他人が見るの前提ならCallは付いてた方が良いよな
つか付けてくれ
あと.Textとか.Valueとかも付けといてくれ
Option Explicitも忘れないでー

変数なんだかオブジェクトなんだかSubなんだかFunctionなんだか
そもそも作った人がtypoミスしたまま気が付いてないとか

解らないから!解らないから!

853 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:28:40.89 ]
>>851
インデントもロクにしないっていうのは
単に初心者かCOBOL文化の名残り?

854 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:21:19.98 ]
>>853
おそらく仕事/上司が気に入らない事への腹いせでやって、逃げていったんだと思う。
一般的に禁忌と言われてることを一通りやってるし、ドキュメントも残ってないし。

ちなみに禁忌って言ってるのはだいたいこのこと。
・インデントをろくにつけない。つけないと言うより、したりしなかったり。全くしないよりたちが悪い。
・リテラル値を多用してハードコーディング
・もちろんファイルハンドル#1なども、一時的、永続的含めて直接指定
・他のモジュールで宣言してあるグローバル変数の多用
・変数の宣言をしてないことは日常
・文字列を数値化したり、文字列化したりしながら使用
・↑と併用して、状態として保持しておくべき値をコントロール(主にラベルなど)のキャプションで保持
・他のモジュールへコントロールを渡してそこでUIを操作
・ロジックとUIの分離? いえいえ当然、積極的に混合してます^q^
・バージョン管理? キチンとしてるよ! ほらここから数行下までのコメン(ry
・適切なコード内ドキュメント
'ファイルをクローズ
Close #1
少なくても初心者なら、ここまでひどい事するか? これは分かってる奴が意図的にやってるようにしか見えないぞ。



855 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 09:23:27.25 ]
>>854
そのぐらいなら、まだ許せるんじゃね?

・2000行を超える超巨大関数。もちろんバグつき。
・無駄にテクニカル。
  CallByName、AddressOf、VarPtr、ActiveX、etc...
・何処でもやたらとDoEvents。
  DoEventsが無いと長時間応答なし、でもあると落ちるみたいなバグつき。
・何処でもやたらと状態遷移で管理。でも状態遷移図はコーダの頭の中だけ。


856 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:12:39.72 ]
>>855
2000行を超えて無駄にテクニカルってのが笑えるw

>>854
わざとやってる臭いね

857 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:31:59.07 ]
>>854
どっからどうみても俺が今やってるプロジェクトのソースだが

858 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:18:54.82 ]
今VB6でやってるのかよw
どんな会社だよ。
ついでにそんな会社にいるあんたのレベルも知れてるな

859 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:15:29.69 ]
新規はさすがにないだろうが、既存システムの修正はまだあるだろ

860 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:26:43.23 ]
VB6で新規もありうるんじゃね
今もVB6のソフト使ってるなら
そのパソコン(?)で新たに何かしようとその会社が考えてたら
そのパソコンで稼動するソフト制作を要求するんじゃねの

861 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 09:30:04.25 ]
VB6はMSのサポートが終わってるという建前で小さい新規の開発はお断りしています

862 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 17:50:08.15 ]
リプレースがあってもVB6の糞コードを
アップグレードウィザードで.netに引き継いでやってたりするから怖い

863 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 01:29:31.71 ]
なんだかんだVB6ってよく出来てたと思うんだよなー。
.NETはC#だけにしてVBはVB6の延長で進化すればよかったのに。
微妙にC#に出来てVB.NETに出来ないことがあって面倒だ。


864 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 01:48:11.61 ]
どんな言語でも最初は簡単でも後から難しくなるもんだw



865 名前:デフォルトの名無しさん [2011/12/26(月) 00:49:07.79 ]
汎用に使えるプロシージャだと、先頭に機能だけ一言書いて
わざとインデントなくしてコメントも削除して納品することがある
流用されないようにというケチな気持ち

866 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 01:11:20.72 ]
ねえよカス

867 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 05:19:47.49 ]
そもそもソース提供してる段階で流用を認めないとかあり得ないと思うが

868 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:23:44.95 ]
ちょこっとしたソフトでも、開発に2人月かけたとして
納めた会社が大量にコピーして使ったりしてるのを見ると
どうかと思う。もっと金とるかライセンス契約にするか。

ま、そういう会社はOFFICE製品とかも海賊版使いまくってたり
するんだけど。

869 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:42:35.68 ]
もしドラブラよろかよ

870 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:51:37.21 ]
もしドラえもんにあったら その時は ブラジャーによろしく

871 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 19:53:10.25 ]
今なら「もしドラブラよろ」でググれば出てくるな

872 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:44:02.15 ]
もしドラゴンクエストでブライがよろいを着たら?

873 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 04:05:53.56 ]
もしもし、ドラ焼き100人前ブラックでお願いします よーそろー?

874 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 01:42:07.29 ]
もしドラ×ブラよろかよレベル高ぇーなオイ



875 名前:デフォルトの名無しさん [2012/01/02(月) 14:47:56.67 ]
ゴミのような奴しかいないスレになってるな

876 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:47:31.01 ]
そんなに謙遜するなよ

877 名前:デフォルトの名無しさん [2012/01/06(金) 23:34:52.86 ]
初めて書き込みます。

現在、VB6.0でプログラミング機能付きのRPN電卓を作るという課題に取り組んでいます。

電卓機能についてはある程度できたのですが、プログラミング機能の方が全く分かりません。

どこが分からないかというか・・・どのように動いているのかイマイチ理解できていません。

解説していただけたら助かります。

878 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 23:57:22.55 ]
Scriptlet

879 名前:デフォルトの名無しさん [2012/01/07(土) 00:11:57.42 ]
877です。

これを元に作ります。

kie.nu/3mI

880 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 05:22:37.64 ]
いきなり上げられたexeをクリックする勇気は無いな

881 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 05:59:33.44 ]
学校って進歩とか進化ってしないの?
いつまでVB使うの?

882 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:44:43.23 ]
センセイがくたばるまでだよ?

883 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 11:43:17.04 ]
実務ならまだしも、学校とかは別にVBでもいいじゃん
VBだとコーディングスキルはさほど身につかないだろうけど
手軽にプログラムを作る楽しみを実感できる

いきなり敷居の高い高等言語を強制して
何も形にならずに「プログラミングってつまんねー」ってなるよりは
下等でも手軽な言語で簡単なものを色々作り
思い通りのプログラム・アプリケーションを作ることの楽しさをまず知ってもらい
高等言語に移るのは下等な言語に自分で限界を感じるくらいのスキルが身についてからで十分

884 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 11:51:44.95 ]
学校が何の学校かによる。

話の流れからすると、ごく普通の高校レベルを
想定しているようだが、その程度の学校で
プログラミングに何を求めるかだ



885 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 14:34:46.66 ]
>>883
高等の使い方間違ってね?

886 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 15:13:08.69 ]
某県立工業高校情報コースだった10年ほど前、PC-98のMS-DOSから動かすたーぼしーでCの実習したの思い出した

887 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:48:58.16 ]
>>881
実を言うと、参照が無くなったら即座に解放するというガベコレ方式のお陰で、
常時動作させる(例えば自動情報収集系)ようなソフトを手軽に作るには
VB6は便利。

.NETとかJavaで同じような事をしようとすると、気軽にインスタンス生成するのが
難しくなる。考えて作らないと。

あと、VB6で作ったクラスはExcelでも「ほぼ」そのまま使えるという利点がある。
.NET以降は、オブジェクト指向の理解が必要なので、学校ならカリキュラム的に
長くなると思う。

個人的には、初心者にはまずCをやらせたい。学校ならやってるとは思うが。
ここは進化しなくて良いよ。

888 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:54:47.30 ]
>>887
ちょっと何言ってるのか(w

それって普通は逆で、循環参照の問題がクリアされてないVB6の方が普通は注意を要する。
ドトネトやジャヴァにはその心配がない。

889 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:56:28.67 ]
>>888
循環参照は気をつけてたら良いよ。
簡単にメモリリークで落ちるよね。
その「気をつける」ってのが、そんなに考えなくても可能。

.NETとかJVMは、ある程度溜まってからガベコレするので
ソフトがひどい時は数秒止まるでしょ。
常時自動で情報収集するとか、FA用途とかみたいに
絶対に停止させたくないものだと、数秒止まるとか致命傷になる。



890 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 19:19:03.42 ]
>>889
VB6に固執してる人ってすぐそれだけど、そんな事実はないよ。
N88-BASICの時代じゃあるまいしそんな間抜けなことするわけないでしょw

っていうか、それを言うならシングルスレッドのVB6の方が余程リアルタイム性の
要求される処理に向いてない。
話にならん。もうアホかと。

891 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 19:58:55.81 ]
>>890
俺は.NETでもリアルタイム性の要求のあるモノ作るけど、
何も考えずにJavaのwebアプリ作るのと同じ要領で
ValueObjectの類をどんどんnewするような設計にはしない。
これをやってると、ガベコレによる停止時間がひどくなるから。
ValueObjectをどんどんNewしない設計については大まかに分けて2つの方法がある。
意図的なGCを利用できるというのは前提でな。
www.atmarkit.co.jp/fdotnet/directxworld/directxworld06/directxworld06_01.html
一応このへん参考。

VB6で作る場合は、循環参照だけ避けてれば後は楽。
VB6で作るわけだから、そんなに手の込んだものにはしないわけで、
シングルスレッドでもそんなに問題にはならない。

892 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:12:36.09 ]
循環参照って
Dim a New Class1, b New Class1
Set a.value = b
Set b.value = a
みたいな感じのこと?

893 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:37:43.69 ]
まあそんな感じだけど。

>>887の彼の発言が奇妙なのは、俺はVBランタイムのメモリ管理に詳しいわけじゃないが、
どのような方法にしろ自動管理である以上断片化は避けられないはずで、
であれば.NETのガベコレの(括弧つきの)「問題」と同じ問題を抱えているはずだと思うけど。

まあガベコレで数秒処理が止まるとか言ってる時点であれだけど

894 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:49:24.63 ]
レガシーな人なんだろ
負の遺産だけど



895 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 01:05:36.32 ]
VB6ランタイムのGCは参照カウント方式で、
カウント数が0になったら領域解放。

.NETとかJavaはバーチャルマシンがGCを担当。
マークアンドスイープとかコピーイングの方法の複合に加えて
古い・新しい領域せ世代別にも管理。

ここで、古い領域のGCがFullGCと呼ばれるもので、>>891の説明している
「数秒止まる」だろうと思う。
ヒープの断片化が問題なわけじゃなくて、ある時一気に
@生存オブジェクトのマーキングAマークなしオブジェクトの除去、
Bヒープの再配置 という流れでGCを行うので、GC自体がかなりの処理
で重たかった。ヒープの再配置を行うので、どうしてもアプリケーションの
停止時間が発生する。昔のJavaのwebアプリだと、数秒どころか数分無応
答という事があった。www.atmarkit.co.jp/fjava/rensai2/webopt06/webopt06.html
企業の基幹システムだと搭載メモリ量も多く、いったんFullGCがはじまると
手が付けられなかった。チューニングで対応したり、夜中に再起動させたり。

俺は.NETには詳しくないんでJavaで解釈するけど、今のJavaはさらに別
のGC方法があって、VMの起動オプションで指定するんだけど、GCの流れ
が@→A→@→Bみたいになる。アプリケーションを停止するのは@だけ
で、AやBの時はアプリケーションと並列処理される。
だから、以前ほど「数秒止まる」というのは体感しにくくなっている。
かといっても、この方法も万全じゃないんで、上の古い方法と組み合わせ
で使う。だから結局、無応答時間を完全に回避できないんだけどね。

.NETも、IDE使ってると時々プチフリみたいな事が起こって、会社の先輩か
らは、これが.NETのGCって説明されたけど、本当かどうかは知らない。
ただ、プチフリ程度でも、問題になる領域のソフトはあると思うけど。

GCについては詳しく知ろうと思ったら余裕で本一冊になる。売ってる。


896 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 03:25:46.11 ]
>>883
VB6ってどちらかと言えば
>敷居の高い高等言語
の方に入らないか?まあ、確かに電電の方とかC言語よりアセンブリの方がより直接的で分かりやすいって人も居たが。

今のC#のすべての機能(linq/ラムダ式、型推論)を使いこなすのは難しいかもしれないけど
VB6でやる程度のことなら、C#/VB.netとかの方が遙かに楽に出来ると思う。
それに、オブジェクト指向の説明だって、継承とかその辺の仕組みとかについての説明は難解かもしれないが
すでにあるクラスやメソッドを使う分にはむしろ楽になるだけだろ。 少なくても、今扱ってる変数・値が数値か文字列かはっきりしない言語よりは分かりやすいかと。
GCの事に関しても、それに気を遣わなければならないレベルの事なら、他の言語を検討しても良いわけだし、明示的にコントロールしても良いわけだし。

そもそも、VB6ってExcelのマクロを組むためだけの言語だろ?教育目的で使うなと思うんだが。
RADツールが使える環境なんて.net系以外でもDelphiとかいろいろあるわけで、わざわざVB6を選択する必要は無いし。

897 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 03:49:13.22 ]
学校側がVB6使いたがるのはVBScriptやExcelのVBAに応用しやすいからという理由からじゃね

898 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 20:35:16.36 ]
>>896
VB6を糞にしてるのはVariant型だよな。

899 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 21:11:47.82 ]
Variantは使わなければいいだけの話じゃないのかな

900 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:41:21.77 ]
よくある事だが、VB6で作られたソフトで、標準モジュールもクラスモジュールも無いという事はよくある。
関数への切り出しすらなく、イベントプロシージャに全部長々と書いてあったり。
変数もVariantバリバリ。

初心者がwindowsアプリを作るにはVB6がやさしいのな。

901 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:46:08.75 ]
>>900
それはVBに限らない

902 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 00:10:36.22 ]
>変数もVariantバリバリ。
おまえコレが言いたかっただけだろ

903 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 00:56:35.72 ]
>>901
CやJavaでwindowsアプリ作るのはしんどいぞ。

904 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 03:35:02.26 ]
まあVBAに転化しやすいてのは小規模アプリとしては大きなアドバンテージ
今後ExcelやAccessが消えるとは思えないしねぇ



905 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 14:01:44.01 ]
>>896
>そもそも、VB6ってExcelのマクロを組むためだけの言語だろ?
VBAの間違いだよな?


906 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:07:25.69 ]
とりあえず、Joel on Softwareの「はじめてのBillGレビューのこと」
でも読んでからVariantに呪いでもかけてみるといいよ

907 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 15:13:24.45 ]
動的型付け言語って全部Variantだけどなw

908 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 16:53:37.31 ]
>>905
もちろんVB6系全般だよ。むしろ、それ以外で使い道あるか? 
VB6は特にofficeのCOMを操作するために特化した言語・環境だろ。それ以外の用途なら他にいくらでもマシな選択肢はあるし


909 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 17:15:03.51 ]
>>908
理由、理由w

910 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 19:32:45.32 ]
>>908
COM操作に特化したってのはまあ同意できる面もなくはないが
VB6はべつにofficeに特化してるわけではない

VBAはVBのサブセット的な位置づけで、VBAが実質officeの操作に特化してるというなら
同意できる面もなくはない

とりあえずお前がVBとVBAの区別ができてないのが良くわかった

911 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 20:06:07.35 ]
VB5CCEの話とごっちゃになってそう

912 名前:デフォルトの名無しさん [2012/01/09(月) 20:43:37.75 ]
初心者ですが、Visual Basicを始めるにあたって周りに教えてくれる方がいません
簡単な物理計算をして、それを表示できるだけでいいのですがお勧めの指導書などありますか?

913 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:17:08.01 ]
答え : いまの時点でVBを0から始める馬鹿はいない

914 名前:デフォルトの名無しさん [2012/01/09(月) 21:20:21.49 ]
>>913
すいません、始めなければならないんです
0からでも



915 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:22:13.19 ]
>>914
現在入手可能な、お勧めの指導書はありません。
0からオンラインヘルプを頼りに始めるのが良いと思います。

916 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:22:50.93 ]
まあ落ち着け

VBとVB.netは別物だぞ
まずこれを理解してないと会話が成り立たない

917 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:28:54.17 ]
単純な計算と表示だったら他のBASICの入門サイトなどで代用できるよ
N88互換のBASICも生きてるものがあるだろうし、そっちから攻めるといいんじゃないかな

918 名前:デフォルトの名無しさん [2012/01/09(月) 21:29:07.72 ]
>>915
そうなんですか?オンラインヘルプか...
>>916
自分が使っているのはVisual Basic2010express editionなのでVB.netとはちがいますよね?;

919 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 21:32:41.26 ]
せつこ、それどっとねっとや

920 名前:デフォルトの名無しさん [2012/01/09(月) 21:35:03.64 ]
>>919
え、そうなんですか?
なんということでしょう...

921 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 01:47:17.97 ]
>>910
VB6とVBAの違いっていっても大してねーじゃん。平等に(ry

僕が言いたいのはVB6自体、COMを扱う、つまり主にofficeを扱うために作られたような言語でしょ?
そりゃ、それ以外の用途にも使えるかもしれないよ?でも向いている訳じゃないだろ。
VB6はVBAと違ってGDIを直接触らなくてもグラフィックを描画出来るかもしれないが、それもおまけみたいなものだし。

922 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 02:01:34.36 ]
>>921
えとさ、COMってOfficeの事じゃないよ
1から勉強しなおしたほうがいいんじゃない?

923 名前:デフォルトの名無しさん [2012/01/10(火) 02:48:07.37 ]
一口にVBって言っても色々あるようですね
少し書店などで立ち読みしただけでは初心者には組めそうにないと思ったので...
やはり大学の授業や講座などを受けるべきなんでしょうか

924 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 03:24:27.84 ]
>>922
揚げ足とりすぎ
COMとofficeは表裏一体だろ。もちろんoffice意外に使えないわけじゃないけどさ、使わないだろ?それ以外だとIE周りとか?
COMはofficeとVBのための技術といっても過言じゃないし、VBはCOMを扱うための言語、
ならVBはofficeのための言語って言っても差し支えねーじゃん。VB6、COM、Officeこいつらは三つ子の兄弟だよ。

>>923
何をしたいかによる。大学っていっても情報専門の学科以外での授業なんて、中学生の部活でちょっとやる程度のことしかしないよ。
新しくVB6を始めるのはあり得ないが、VB.netなら特に苦も無く学べるんじゃない?
全く経験が無いならC#の方が取っつきやすいとは思う。どっちもほとんど同じものだからどっち選んでも良いけど。

とりあえずここはVB6スレであってVB.netはスレ違だ



925 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 03:33:55.59 ]
Officeのための言語ならここまで広まらなかっただろうな

926 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 03:37:49.57 ]
>>924
だからさ、Windowsのあらゆる部分にCOMは使われてるの。
マルチメディア関係、サウンド、動画、もほとんど
COMだぞ。

927 名前:デフォルトの名無しさん [2012/01/10(火) 03:51:52.39 ]
>>924
なるほど...
聞いた感じかなり難しそうですね
CもVBもあまりかわらないものなんですか?


928 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 04:34:58.35 ]
>>924
揚げ足でも何でもなくて本当にお前の理解不足だから
そのていどの理解力でCOMがどうこう言うのはやめれ

929 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 13:10:03.82 ]
>>926
そうらしいね
レジストリのクラスIDとして登録されてるのがCOM?

930 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 13:20:37.77 ]
DirectXもCOMだよ

931 名前:デフォルトの名無しさん mailto:sage [2012/01/10(火) 14:38:22.59 ]
>>927
CとVBは全く別だよ。C#とVB.netは同じ.netだから、同じように扱えるし、書き方もにてるから
C#の知識がないVB.netの人でもC#のコードが読めるし、逆も読めるよ。
blogs.wankuma.com/jeanne/archive/2007/02/26/64122.aspx このあたりにまとめてある

そしてC言語とC#、VB6とVB.netはまるで別だよ。 もうすこし調べたり考えたりしてから書いた方が良い。
要は「英語と中国語では文法(ゴジュン?)が似てる」っていうのを「ラテン語と韓国語はあまりかわらないものなんですか?」って返してるようなもの
それにスレ違だって。

932 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 03:43:44.63 ]
COMはwindowsの中核を成す技術仕様だぞえ
officeはそれに準拠してるというだけだよ
それにCOM自体はUNIXなんかにも実装されとる
個人法人問わず自作のCOMコンポーネントが大量に配布されてるじゃん
officeとVBだけってんじゃあ勿体無さすぎだなぁ

>>927
VBでって事はwindowsは確定だとして、簡単な物理計算と表示だけで良いのなら
Excelに関数かマクロ突っ込むだけで事足りるんじゃなかろうか?

933 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 18:15:32.51 ]
コンピュータ動かすんやからCもVBも.NETもJavaも全部ほとんど一緒やろ!
似たようなもんやで〜〜
全部IFとかFORとかそんなんやん!!どや?


934 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 18:18:56.80 ]
Javaにforってあるん?



935 名前:デフォルトの名無しさん [2012/01/13(金) 00:34:01.99 ]
すみません、VB上でWin32APIのSleepを使って、現在のスレッドを
1000ms(1秒)一時停止させる処理を入れたいのですが、その際、
下記のようなソースの場合、DoEventsが実行されるタイミングは、
Sleep 1000でスレッドが停止して1秒たち、再度一時停止していた
スレッドが再開した後でしょうか?

それとも、Sleep 1000で1秒間分のスレッド一時停止が開始された
直後にDoEventsが実行されるのでしょうか?

やりたいことは、Sleep 1000でストップしている間に、他のスレッド
で発生してたまったWindowsメッセージを処理させたいと思っています。

---以下ソースの一部---

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
  Sleep 1000
  DoEvents
End Sub


936 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:10:41.27 ]
>>935
「それとも」って接続詞の使い方間違ってない?
どっちも同じ意味にしか聞こえんけど....


937 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:22:59.63 ]
ああ、>>935の意味がやっと分かったw
要するに>>935はスレッドが何か全然分かってないんだね。

コード(当然DoEventsを含む)が実行されるということは、そのスレッドが
制御を持ってる(ブロックされてない)ということ。

〜が実行されるのは眠った後ですか?なんて質問は愚問過ぎ。
実行されない状態を作るのがSleepなんだよw

938 名前:935 [2012/01/13(金) 01:23:04.80 ]
>>936
わかりにくくてすみません。。

Sleepで一時停止中か、一時停止しスレッドが開始した後か
という意味です。

939 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:25:11.09 ]
停止中はどのような命令も実行されないわけですが

940 名前:935 [2012/01/13(金) 01:25:28.49 ]
>>937
ありがとうございます
やはり、Sleepが実行されて、そのスレッドが止まると、
当然次の処理であるDoEventsも停止中は、実行されない
と言うことですね。

であれば、DoEventsするスレッドを別に立てるしかないという
ことでしょうか?

941 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 01:32:12.87 ]
>>940
いやまず最終的に何がしたいのか書かないと何とも言えんと思うけど....

「(重い)処理」を別スレッドでやるのなら普通はDoEventsなんて必用ないですよ。
DoEventsは、UIスレッドで(ビジーループ的な)重い処理を実行しても
UIが無反応になることを避けたい場合だけに使うんですよ。

942 名前:935 [2012/01/13(金) 01:50:55.91 ]
>>941
説明不足ですみません。

>>935は一例としてあげたソースになります、実際には、、

UI(Form)に配置したTextBoxに時計表示を出して、それを1秒ごとに更新して
表示させたいのですが、同時に3秒ごとに別の処理の繰り返しをしたいと思っています。
その際、3秒待つのに単純にSleep 3000という行を追加すると、UIの時計更新が止まって
しまうので、3秒待っている間でもForm上の時計表示は動かしたままにしておきたいと
思い質問しました。

ちなみに、UIスレッドとは、Formのソース内に書かれているプロシージャ群の
処理が実行されるスレッドということでしょうか?

943 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 05:47:47.09 ]
x秒ごとに処理したいのにスレッドを止める必要ないでしょ
だいたい処理が瞬間に終わるわけでもあるまいし。
インターバルを設定できるTimerってのがあるんだけど

944 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 07:19:27.57 ]
VB6でマルチスレッドってActiveXを使うやり方?



945 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 08:53:01.02 ]
できた

Private cnt As Integer

Private Sub Form_Load()
  cnt = 0
  Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()

  cnt = cnt + 1
  Label1.Caption = cnt
  
  If cnt Mod 3 = 0 Then
    Shell "notepad" '重い処理
  End If

End Sub


946 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 09:21:22.64 ]
VBは1つのスレッドで、DoEventsによって並列処理を
しているように見せているだけ。
Sleepしたらそのスレッドは止まるのだから、VBプログラムの全てが止まる。
DoEventsでそういうことをやっているとデッドロックしやすい。
DoEventsをSwitchToThreadを同じようなものだと思っていると痛い目を見る。
非同期処理したいのであれば、Timerを使うべき。

947 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 09:38:57.77 ]
マルチスレッドがやりたいならvb.netを使ったほうがいいよ
vb6でやるならマルチプロセスでやったほうがいいな

948 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 14:16:45.68 ]
ActiveXExeのスレッドでマルチスレッドをやってみたことはある。

非同期で処理しようと思ったら、結局別スレッドで作成した
FormにTimerをおいて、そこから処理をスタートさせなければならない。

メソッドやプロパティはオブジェクト側のスレッドで同期して実行されるので
別スレッドのオブジェクトを呼び出しまくると、全然並列処理にならないw

949 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 18:56:07.60 ]
>>934
あるよ。
FOR EACH的なものまである。

>>933
制御文レベルだとどれも似たようなもん。
しかし、それをもってほとんど一緒というお前はまだまだ素人。

950 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 19:08:54.62 ]
>>942
Sleep 3000 は、3秒間何も出来ません、の意味。
やるんなら

Private Sub Timer1_Timer() 'インターバルを1000にしておく
  Static cnt As long
  
  If cnt = 0 Then
    'ここに3秒ごとの処理を入れる
  End If
  
  Text1.Text = Format(DateTime.Now(),"yyyy/mm/dd hh:nn:ss")
  
  cnt = cnt + 1
  If 3 <= cnt Then
    cnt = 0
  End If
End Sub


>>945
それだとcntが32768でオーバーフローになる

951 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 16:29:09.18 ]
VisualBasicEditor(VB6 や OfficeVBA のエディタ部分)の
初期フォントの決定ルールを教えて欲しいです。分かる方、いますでしょうか。
日本語環境なら、MS ゴシック、英語環境ならCourier Newのようです。

オプションダイアログからフォント設定を変更した後ならレジストリに記録されてましたが、
インストール後からフォント変更するまでは、レジストリには項目がありませんでした。

知りたい理由は、VisualBasicEditor上に同じフォントで文字を描画したいからです。
同じフォントで描画ができればいいので、稼働中のVisualBasicEditorのフォント名などの情報や
HFONT、LOGFONTなどを取得する方法がありましたら、そちらの方が適切に思うのですが、
VBEウィンドウに対してGetDC、GetWindowDCした後、GetTextFaceなどでは駄目でした。

初期フォントや稼働中フォントの取得方法が分かる方、どうぞよろしくお願いします。

952 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 16:58:49.24 ]
ここってやっぱりVB.NET扱ってませんよね(´・ω・`)?

953 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 18:48:29.76 ]
>>952
扱ってたら>>1に「VB〜6.0の」なんて書いてありませんよね。日本語理解できてますか(´・ω・`)?

954 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 19:18:03.31 ]
>>953
いるよねぇ。こういう一言多いやつ



955 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 19:34:06.91 ]
やっぱり扱ってませんでしたか
お騒がせしました(´・ω・`)

956 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 20:21:19.59 ]
>>955
もう見てないと思うが、.netはここ

VB.NET質問スレ(Part38)
toro.2ch.net/test/read.cgi/tech/1325083428/

957 名前:デフォルトの名無しさん [2012/01/27(金) 04:15:41.25 ]
>>951
VBインストール直後はフォント情報がレジストリにないということは
レジストリ読んでみて、登録されてなかったら、そのデフォルトフォントにすればいいのでは?

レジストリ読むAPIはAPIビューアの定義は間違いだらけだから気をつけて
あれってVB5の時から間違ったままだから、初心者に諦めさせるように故意に間違えてるんだろか

958 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:32:31.10 ]
APIの引数はByVal As Longで宣言して
StrPtrとVarPtrで渡す時代

959 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:24:21.02 ]
>>957
レス感謝です。もうレスは無いかと半ば諦めてました。

今のところ、まずはレジストリから取得するようにしています。
デフォルトフォントはOSの言語で決まるようだったので、できれば決め打ちではなく、
VB6と同じような何らかの決定ルールに従いたいと思ってました。
(英語版VB6を日本語版WinXPで試したところ、MS ゴシックがデフォルトフォントになりました)

詳細は読めなかったのですが、中国のサイトでソフトが紹介されているのを見つけたので、
少数ながら、海外にもユーザーがいるみたいなので、それもフォントを決め打ちにしたくない理由の1つです。

色々試してみて、どうやらレジストリから取得しているわけではなさそうなのですが…。

960 名前:デフォルトの名無しさん [2012/01/28(土) 08:35:49.31 ]
そうねぇ、外国のOSならMSゴシックはないよねぇ
とするとWindowsのどこかに・・

フォント名が定義されてるレジストリは余りないようだけど
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
あたりはどうでしょ
こんなのを別のフォント名に変えてVBを新規インストールしてみて
その変えたフォントになるかどうか
ま、人に配布するソフトはそんな推測で作っちゃいけないよね

961 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:50:30.26 ]
>>960
VB6新規インストールは行っていないものの、
レジストリ上の"MS ゴシック"、"MS Gothic"、"msgothic.ttc"を
別のものに変えて試してみたのですが空振りでした。

色々試してみたところ、VB6については、OSの言語に依存しているのではなく、
[コントロールパネル]-[地域と言語のオプション]-[詳細設定]-[Unicode 対応でないプログラムの言語]
の設定に依存していることが分かりました。
また、この項目で「中国語(香港)、(マカオ)、(シンガポール)」を選択すると、
VBEで使用するフォントが必要な状況になるとVB6が強制終了してしまうことが分かりました。
内部でベタで持ってるのかもしれませんね…。

とりあえず、レジストリから取得、取得できない場合はベタ書きにしようと思います。

962 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:31:01.21 ]
961に誤りがあったので、誰かが変に参考にしないように訂正を。

[Unicode 対応でないプログラムの言語]の設定を
「中国語(香港)、(マカオ)、(シンガポール)」にするとVB6が強制終了すると書きましたが
それは英語版VB6の話で、日本語版VB6の場合は問題ありませんでした。

963 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:47:40.78 ]
会社で仕事関係の一切の情報持ち出し、持込禁止になってから止めてたんだけど、PCにVB6インストールしようかなあ。
久しぶりに触りたくなってきた。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<260KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef