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インストールしようかなあ。 久しぶりに触りたくなってきた。