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


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

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



1 名前:d mailto:age [2008/03/30(日) 09:01:59 ]
このスレッドはVBについて、
他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします


前スレ
くだすれVB6.0以前(超初心者向け)
pc11.2ch.net/test/read.cgi/tech/1165574205/

792 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 08:07:13 ]
どこを縦に読むんだ?

793 名前:デフォルトの名無しさん [2009/04/13(月) 23:18:04 ]
>>790
そもそもどちらもRaiseではあるけど、
まったく別の用途だから並んでることにすごい違和感を覚える。

クラス間連携でRaiseEventを使わざるを得ないこともあるし、
On Error Resume Next で拾わざるを得ない処理は Err.Raise 必須だし、
どちらも一般的に使いそうなもんだけどなぁ。


794 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 09:45:23 ]
>>793
俺もそう思う

795 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 18:21:00 ]
officeXPのaccessのmdbをVB6でGetObjectしています。
それからDoObj.RunSQLでSQL設定しています。

ところが、accessをoffice2007に変更すると、
GetObjectのところでunknown errorになってしまいます。
何かDLLか足りないみたいですが、ググっても
見つかりませんでした。どなたかヒントあったら下さい。
お願いします。

796 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 02:28:57 ]
救世主スレ見つけたw

VBで作ったスケジュール管理システムを、ネットを使って外からスケジュールをアップデートできるようにしたいんですけど
VBをHTMLでネット経由で動かす方法がまったくわかりません(´・ω・`)
学校の一学期使ったプロジェクトレベルのシステムなので、そんなに複雑じゃないので十分です。
自分はHTML担当で、VBを稼動ブラウザか何かで稼動させなくちゃならないのですが、
知識が無さ過ぎて何をググって良いのかも分からないっす(><)

何か良いページでもあったら、教えてくださいm(_ _)m

797 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 02:53:15 ]
VBでhttpdを作りたいって事?CGIとしてVBプログラムを動かしたいって事?クライアントがVBって事?

798 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 03:04:48 ]
>>797
>CGIとしてVBプログラムを動かしたいって事?
おそらくこれです!
MSISSとOracleとVBとAccessでスケジュール管理システムを構築するのですが、
利用者が自宅からスケジュールをチェックしたり更新したりする必要があるので
そのインターフェースをHTMLで。との事です。

799 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 03:09:25 ]
では VB CGI IIS でぐぐればいいんじゃないか?

800 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 03:12:14 ]
>>799
どうもありがとうございます!
逝ってきますノシ



801 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 03:32:05 ]
>>787
>>788
助言ありがとうございました。
あれから色々試してみたのですが、どうもダメでした・・・
せっかく教えて下さったのに申し訳ありません。

802 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 10:34:13 ]
VBでCGIは作れないよ
IIS使えるならASPで

803 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 10:46:32 ]
Win32APIで標準入出力できるからCGIは普通に可能
でもhttpdはCGIを呼ぶ側だろ
httpdもWinsockなどを使えば当然作れる

804 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 11:01:55 ]
API実装してまでやるんだったら
Cで書いた方が早くね?

805 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 12:25:46 ]
VBでやりたいって言うんだからしょうがないだろ

806 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 16:51:07 ]
FSOでできるだろ

807 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 23:26:48 ]
普通に考えたら、コンポーネント化して、ASP/ASP.NET から呼ぶだろ

808 名前:796 mailto:sage [2009/04/16(木) 01:26:57 ]
えっと・・・。何がなにやら・・・。
自分達はプログラマーじゃなくて、システム管理のクラスをとってるだけなんです(´・ω・`)
VBとSQLの基礎をちょっとやった事があるくらいのレベルなのに、
自分達でシステムをくみ上げなければいけないと言うクレイジーな状況でして・・・。
自分もHTMLのHPくらいは作った事あるけど、データを扱うとか皆目検討が付かないorz
一応ソースの一部を提供されてるんですけど、何がなにやら。
ソースの一部です。

<body lang=EN-US style="tab-interval: .5in">

<form ACTION = "/cgi-bin/Demo1" METHOD =GET>
<p>Type a word in each box, then press the Submit button
<p>

<p><INPUT TYPE="text" NAME="Field1" VALUE></p>
<p><INPUT TYPE="text" NAME="Field2" VALUE></p>
<p><INPUT TYPE="submit" VALUE="Submit Message"></p>
<p>
<p>
The button will call the VB program Demo1.exe

</form>

</body>

809 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 01:34:23 ]
こりゃあ一般人が二階建て住居を建てるようなもんだな
がんばれよ

810 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 01:38:03 ]
ちょwwまwwww
何か参考になるサイトの紹介でもいいんで、助けてプリーズ・・・orz



811 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 01:42:17 ]
VB → VBScript
exe → asp
にかえてもらえ。

たいしてかわらんだろ。

812 名前:796 mailto:sage [2009/04/16(木) 01:48:42 ]
>>811
あ、できると思います。
あくまで参考のソースなんで、使っても使わなくてもいいらしくて。
最終的には「ちゃんと動けばいい」くらいの話なんで。
質問には答えるけど、自分達で調べて勉強しろよー。と言う
千尋の谷に突き落とすと言う名の半手抜き講義っす(# ^ω^)

813 名前:796 mailto:sage [2009/04/16(木) 01:59:44 ]
>>811
ありがとうございます!
asp vbscript のセットでぐぐったら、入門ページがいっぱw
見てきます(・ω・)ノシ

814 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 23:34:28 ]
なんともこの業界の輝かしい未来のあるスレよ


815 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:05:03 ]
素人なのですが、VB6.0で遊んでます。手軽にWYSIWYGエディタ 機能 を
実現できる dhtmled.ocx(AvtiveX)が便利なのですが、
なにやrら、ネットに接続した場合脆弱性の問題が生じるとか。
その問題はWindowsXP環境だと最新にアップデートしてあれば
クリアできる?

816 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 10:36:26 ]
クリアできるかどうかすら定かにならないからセキュリティー問題ってのは難しいんだよ

そもそもこんなところで聞いて「クリアできる」って答えが返ってきたら、君はそれを信用するのか?
だとしたらソフトやコンポのセキュリティー以前に、君の思考セキュリティーに問題有りだ。
逆に信用しないなら、聞くこと自体意味がない

817 名前:デフォルトの名無しさん [2009/04/18(土) 18:43:07 ]
>>816
激しく同意

>>815
まずコンポーネントのメーカに確認しろよ

818 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 02:20:53 ]
>>793
VBのキーワードのおおらかさ(笑)を言い出したら、
N-BASICの時点でGETがグラフィックだったりファイルIOだったり
するしなあ・・・
いまじゃファイルIOとプロパティかw

819 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 17:17:49 ]
Form2.Show vbModal, Form1
のようにオーナーフォームを指定して呼び出した場合に
Form2のForm_Loadでオーナーフォームを取得する方法を教えてください。

手続き的にはForm2にグローバルプロパティとか作って、Showの後に直接Form1を渡せば
Form2側でForm1を取得すること自体は出来ますが、そういう方法ではなくForm2から辿る方法を知りたいです。
FormオブジェクトのメンバにOwnerFormとかParentObjectとか有るかなと思ったけど無いようだし、
GetWindowLongのGWL_HWNDPARENTでは、ThunderRT6FormDC(フォーム)ではなくThunderMainが取得されてしまい
他に有用なAPIも見あたらないです。

ThunderRT6FormDCを列挙するだけなら出来ますが、どれがオーナーフォームに設定されてるか
或いはオーナーフォーム指定無しで呼び出されているのかを取得するにはどうすれば良いのでしょうか?

820 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 18:02:38 ]
GW_OWNER指定してGetWindowでハンドルが取れるらしいけど。
ハンドルが取れればFormsで列挙して探せるんじゃないのかな。

でも、オーナーを指定して表示&オーナーフォームの取得ができるフォームの
インターフェイスを定義してそれを実装する方が簡単な気もする。

しかし、VBってそんなプロパティもなかったんだっけ。



821 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:40:14 ]
VB6を使用してIISアプリを作成したいのですが、
新規にプロジェクトを作成すると「IISかPWSが必要です」とエラーが表示されてしまいます。
IISはインストール済みなのですが他にも必要なものがあるのでしょうか?
OSはWindows2000Proです

よろしくお願いします。

822 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 22:01:24 ]
>>821
IISのバージョンが新しすぎる。VB6時代の古いのが必要。

823 名前:デフォルトの名無しさん [2009/04/22(水) 00:26:25 ]
VBEの ツール/オプション/エディタの設定 で、コードの文字色とか背景色とか設定できるけど
ここで指定できる色を書き換えるのってどうやるんだっけ?
以前何処かで見たんだが、そのときは「へぇ、こんな事も出来るんだぁ」くらいにしか思ってなかったが
今になってどうしてもやりたくなったので、知ってる人が居たら教えてください

824 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:26:49 ]
クラスモジュールって、初めは何なのか全く理解不能な怪物だったな。
クラスモジュールの説明をしてる本って無いんか。
VB4〜6の本やExcel VBAの本やWord VBAの本で、いずれも見たことが無い。
VBをほったらかして、別のプログラム言語を学習してたので、その知識を応用
すれば、理解できるようになった。
VBで直接クラスモジュールの学習をしたことが無い。
Visual C++人の作ったソースファイルだから、C++言語の学習しといて正解だった。
正しくVB用語使ってくれないからな。そのせいで、危うく理解不能で仕事失格になる
ところだったぞ。ユーザー定義型を構造体って言ったり、オブジェクトの参照のこと
をポインタと言ったりするのは、まだCにもあるから序の口だが、メンバ関数とか、
コンストラクタとか、デストラクタって言葉はC++の用語だということを後から知った。

クラスモジュールは上級者用の本なら載ってるんかいな。

825 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:33:43 ]
どこからタイムスリップしてきたんだ?

826 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:34:12 ]
載ってるだろ

827 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:39:17 ]
どの本に載ってるんだ。

828 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:42:53 ]
> ユーザー定義型を構造体って言ったり、オブジェクトの参照のこと
> をポインタと言ったりするのは、まだCにもあるから序の口だが、メンバ関数とか、
> コンストラクタとか、デストラクタって言葉はC++の用語だということを後から知った。

世の中と違う用語(MS俺様用語)を使うのはVBくらいのもので、それ以外の言語では
どこいっても通じるんですよ。

829 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:43:45 ]
上級者用プログラミング言語C++のプログラム人も、VB6を使うこともあるんですか。

830 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 00:44:36 ]
俺は「VBCOM」って本で勉強した記憶がある
ググるの面倒だから勝手に探して



831 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 02:05:31 ]
モジュール変数の宣言をPrivateと書くな、Dimと書け。

832 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 02:08:18 ]
>>831
何故それを強要するの?

833 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 20:18:49 ]
変数はDimで宣言が普通。ちょっと知的なムードを漂わせたい時はGlobalかな。
変数名は短く略語で大文字で。
クラスモジュールは言語オタクの為の機能だから禁止。


834 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 20:34:12 ]
>>833
しぬの?

835 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 08:54:03 ]
質問があります。

環境:VB6 SP6@XP Pro SP3

・リッチテキストボックスかテキストボックス内で、改行のみの行を削除したいです。

=========
あいうえお
かきくけこ
       ←改行のみの、この行を削除
       ←上に同じ
さしすせそ
=========

以上、どうかよろしくおねがいします。

836 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 09:03:52 ]
リストに突っ込むときに

if( 項目 = vbcrlf) then

とかではじけばいいじゃないか・・・・

837 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 10:32:46 ]
あいうえお[vbCrLf]かきくけこ[vbCrLf][vbCrLf][vbCrLf]さしすせそ

ってことだから、vbCrLfの連続をvbCrLf単一に置換すれば良いだけでしょ

正規表現使えば、2個以上→1個を一発で出来るし
2個→1個でループ回せば、正規表現無しでも出来る

838 名前:835 mailto:sage [2009/04/30(木) 10:36:51 ]
>>836
レスありがとうございます。
一気に>>835に書いた例で取り込んでしまっているのです。

>>873
レスありがとうございます。
ループの方で試してみたいと思います。


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

839 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 10:55:54 ]
VB6だと配列を返す関数を下のように書いて動くの?
俺はVB使いじゃなくてVBAなのだが、VBAじゃAs Integer()としないと動かないんだが。
もっともExcelのユーザー定義関数として使うなら引数もInteger型にしないと動かないけど。
動く動かないはおいといてByte型はないと思うな。
これって数値に使う型じゃねーもんな。

Function fnc(ByVal a As Byte, ByVal b As Byte) As Integer
Dim ar(1) As Integer
ar(0) = a + b
ar(1) = a - b
fnc = ar
End Function

ここに書いてあった。
oshiete1.goo.ne.jp/qa3511531.html?from=navi_ranking



840 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 11:43:05 ]
> VB6だと配列を返す関数を下のように書いて動くの?
  ↓
> すみません Ano3です
> 関数宣言の As Integer は As Integer() でした
って補足回答ついてるじゃん

> これって数値に使う型じゃねーもんな。
数値に使う型だよ
バイナリってのが0〜255の正数の配列だから
0〜255の正数を扱うByte型を配列にした物が、バイナリの格納にも利用されるってのが正しい解釈で
Byte型ってのがバイナリ用なわけではなく、あくまでもByte型は数値を扱う型ね



841 名前:839 mailto:sage [2009/04/30(木) 12:23:07 ]
>>840
補足見落としてたのか。
Byte型を数値計算に使うべきじゃないと思うけどな。
そこは考え方の違いとしてもfnc(255,1)はオーバーフローするな。


842 名前:839 mailto:sage [2009/04/30(木) 12:30:21 ]
>すみません Ano3です
なので見落としたのか。
Ano3じゃないもんな。

843 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 12:38:15 ]
>>841
使うべきか使うべきじゃないかなんて話は一言もしてないよ
Byte型が数値に使う型か否かって話をしただけだ
君が「この場合は相応しくない」という状況に応じた話ではなく
「(Byte型は)数値に使う型じゃねー」という定義付けの話をしたから俺も定義付けの話をした

そのユーザー提議関数で使うべきか否かって話なら、俺の意見も「使うべきじゃない」だ

>>842
A no 3 じゃん

[A]nswer(回答)
[No](ナンバー)
[3]番目

844 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 12:45:49 ]
>>843
別にユーザー定義関数として使わなくてもByte型はないと思うな。
「数値に使う型じゃねー」じゃなくて「数値計算に使う型じゃねー」って書けばよかったかな?
Ano3は俺も書いた後気がついた。
あそこは初めてなのでそんな使い方するとは知らなんだ。

845 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 13:09:07 ]
>>838
おそれすだけど
SPLIT使って配列にしてしまえば?
対象は改行で
改行が
CRLとCRLF交るとか言うならREPLACEでやってからとか
配列にしときゃぁどうにでもなるっしょ?

846 名前:835 mailto:sage [2009/04/30(木) 15:03:22 ]
>>845
レスありがとうございます。
改行コードはCR+LFなので、Splitでも試してみたいと思います。
どうもありがとうございました。

847 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 00:04:49 ]
VB6.0からWordを操作しようと思ってるのですが、
「WINWORD.EXE /a」の様に、起動スイッチを付加して
applicationオブジェクトを生成することは可能なのでしょうか?
ご教示お願いします。

848 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 00:07:11 ]
>>847
無理。起動してから GetObject() とかでどう?

849 名前:デフォルトの名無しさん [2009/05/08(金) 08:41:35 ]
>>848
なるほど、GetObjectですか。試してみます、ありがとうございます!

850 名前:デフォルトの名無しさん [2009/05/08(金) 14:05:17 ]
はじめまして

VB6のプログラムを修正することになり、
試行錯誤で頑張っているのですが、
どうしても情報が少なくて行き詰ってしまいました、
ここの皆様のお知恵を貸して頂けますでしょうか

アナログモデムを使って、遠隔地のデータセンターと接続し、
ベーシック手順でデータの送受信を行う

そんなことがVBでできるのかすらわからないのですが、
調べた情報として
グレープシティの「PowerTools ActiveComm」という製品で、
モデムを使った送受信ができそう
というところまでで、行き詰ってしまいました

この製品で大丈夫なのか、遠隔地との接続はどうするのかなど、
まだわからないことばかりですが、
何卒、宜しくお願いいたしますm(__)m



851 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 14:22:15 ]
MSCommでよさそうなものだが

852 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 20:49:45 ]
自作は敷居高くね
全銀ベーシック手順なら、通信してテキストファイルに落してくれるパッケージ買った方が早いと思う。


853 名前:デフォルトの名無しさん mailto:sage [2009/05/08(金) 21:01:53 ]
自作ってのはWin32API使って実装することだろ
それにMSComm任せなら十二分に敷居は低い

854 名前:デフォルトの名無しさん [2009/05/11(月) 00:30:39 ]
VB6でフォームのあるディスプレイの解像度の取得方法は可能なのでしょうか。

VB.NETでいうところのScreen.GetBoundsにあたるやつです。
VB6ではできない、など助言をいただけますと助かります。

どうぞよろしくお願いします。


855 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:37:49 ]
Screen オブジェクトから取れなかったっけか?

856 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:52:49 ]
>>855

情報小出しですいませんでした。

プライマリとセカンダリのディスプレイがある構成で、
セカンダリの方の解像度が知りたかったのです。

Screen.Widthですとメインのディスプレイしか取得できませんでした。

現在フォームがあるディスプレイの解像度を取得することで
セカンダリの解像度わかるはずと思ったのですが、
VB.NETのScreen.GetBoundsの情報しかなかったため質問させていただきました。

なんとか実現する方法はありませんでしょうか。

857 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 01:02:11 ]
マルチモニタ用の API を呼ぶしかないね。

858 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 01:20:50 ]
APIで。モニタを列挙して該当モニタの情報を取得、だったかな。

859 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 01:30:27 ]
>>857
>>858
アドバイスありがとうございます。

フォームのあるモニタのハンドルを取得(フォームをサブモニタ位置に移動してから)
MonitorFromWindow

モニタの情報を取得
GetMonitorInfo

でサブモニタのbottom,left,right,top座標を取得することができました。

マジ感謝しております。
ありがとうございました。

860 名前:850 [2009/05/11(月) 09:28:13 ]
>>851-853

返信ありがとうございます

MSCommで調べてみたところ、解決できそうな気がしてきました
ありがとうございました



861 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 07:53:34 ]
Dim c As Long
Dim s As String

c = RGB(&H12, &H34, &H56)
s = _
"R: " & Right("00000000" & Hex(c And &HFF), 8) & vbCrLf & _
"G: " & Right("00000000" & Hex(c And &HFF00), 8) & vbCrLf & _
"B: " & Right("00000000" & Hex(c And &HFF0000), 8)
MsgBox s

と書いて

R: 00000012
G: 00563400
B: 00560000

が表示されるんですが
G を 00003400 として加工するにはどうすればいいですか?

862 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 08:48:50 ]
RightString(8, "0")" & Hex((c Mod &H10000) And &HFF00), 8)

863 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 18:56:04 ]
>>862
ありがとうございました
おかげで希望通りの文字列が取得できました

しかし理解力に乏しいのでまだよくわかりません
>>861で書いた c And &HFF00 の時点で(1)の結果を期待してましたが実際には(2)です
Andでどういう風に演算されているのでしょうか?
00000000 01010110 00110100 00010010 (&H563412)
00000000 00000000 11111111 00000000 (&HFF00)
-------- -------- -------- -------- And
00000000 00000000 00110100 00000000 (&H3400)..........(1)
00000000 01010110 00110100 00000000 (&H563400)..........(2)


864 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 19:20:22 ]
>>863
ウォッチウィンドウで&hff00を入れてみると、Integer型で-256と解釈されていることが分かる。
-256を符号拡張すると&hfffffff00になるというわけ。

865 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 20:22:00 ]
>>864
ありがとうございます
確かにIntegerとして扱われてました
おかげでなぜうまくいかないのか把握できました

866 名前:デフォルトの名無しさん [2009/05/18(月) 08:55:14 ]
質問です。
VBでプログラムのデバッグをしたいのです。
エラーを発生させて確認したいのですが
イミディエイトウインドウにうちこむ
Err.Raiseを使うときの引数の渡し方がわかりません。

Err.Raise(゙゙,゙゙,゙゙,゙゙)
それぞれどう設定すればいいのでしょうか。
画面番号やヘルプテキストなど。

あと、Callなどを付けずに、Err.Raiseだけいれてエンターキー押せばいいのですか?

よろしくおねがいします。

867 名前:デフォルトの名無しさん [2009/05/18(月) 23:42:37 ]
>>866
Err.Raise エラー番号

ex) Err.Raise 9

---------------------------
Microsoft Visual Basic
---------------------------
実行時エラー '9':

インデックスが有効範囲にありません。
---------------------------
OK ヘルプ
---------------------------

まぁ、ヘルプくらい嫁

868 名前:デフォルトの名無しさん [2009/05/19(火) 13:11:46 ]
>>867
解答ありがとうございます。
Err.Raise 9
を入力したのですが、
エラーを発生させて、あらかじめラベルを貼った
Errorラベルにデバッグで移動をしないのです。

やりたいのは

On Error GoTo Error1

処理〜

Error1:
エラーメッセージ出力


これでF8キーで実行してデバッグ中に
Err.Raiseを使用して、Error1ラベルに移行したいのですがうまくいきません。

コードを編集せず、イミディエイトウインドウで行いたいのです。

よろしくおねがいします。

869 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 14:15:14 ]
停まってる車で目的地に行きたいと言ってるのか

870 名前:デフォルトの名無しさん [2009/05/19(火) 20:40:34 ]
>>869
はい。
何らかの処理でエラーが発生してErrにコードが設定されますよね。
例;ファイル書き込み異常など。

その時に、予め設定しておいたエラー処理に移行するのですが、
それをデバッグ中に、コードや環境をいじらず行いたいのです。

Err.Raiseで起こせると過去のログで読んで試したのですが、うまくいかず。

イミディエイトウインドウに教えていただいたコードを設定したのですが、
ポップアップウインドウは出るのですが
エラー処理に移行しないので。
その方法を教えてもらいたいのです。


ソースは、引数のない関数を呼び出しているだけなので、
環境でエラーを起こす方法が、それ以外なくて困っています。

よろしくお願いします。



871 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:11:31 ]
GoTo Error1
でいいんじゃね?

872 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 22:18:54 ]
バカか

873 名前:デフォルトの名無しさん [2009/05/19(火) 23:26:01 ]
>>870
小学生か??ほんとにヘルプ嫁と何度言ったら(ry

Private Sub Form_Load()

On Error GoTo Label1

  Err.Raise 8

  End

Label1:
  MsgBox ("Label1")

End Sub



874 名前:デフォルトの名無しさん [2009/05/19(火) 23:27:14 ]
ちなみにイミディエイトではできん

875 名前:デフォルトの名無しさん [2009/05/20(水) 09:49:28 ]
解答ありがとうございます。
記載しましたが、コードにErr.Raiseを仕込む事なく行いたかったのです。

試行錯誤した所、イミディエイトでエラーを起こす事で例外を発生の後にErrorラベルへの移行ができました。

以下、Yahoo知恵袋にて見つけた記載を転記。

イミディエイトでErr.Raise

マウスでドロップ ←これを知りたかった

後で同じ質問が出た時のために残しておきます。


876 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 12:59:44 ]
>後で同じ質問が出た時のために残しておきます

う・・・うん・・・・

877 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 15:31:20 ]
スレタイ通りで結構

878 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:35:04 ]
VB6で出来たEXEだけを
(例えば一般的なHelloWorldでもいいので)
インストールしたばかりで何もしていないwindows2000マシンに入れて動きますか?
ランタイム入ってるんだろうか…

最悪はExecel2000を入れてもOKです。

ちょっと変な質問なのですが・・・情報が少なくって・・・
よろしくお願いします。
うちの会社にWin2000がもうないので・・orz

879 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:04:02 ]
Windows2000にはMSVBVM60.DLLだけ入っているので
TextBoxやLabel等しか使っていなければ動く

880 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:10:34 ]
日本語表示がおかしくならなかったっけ?
古い話だからあまり記憶に無いが



881 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:17:13 ]
>>879->>880
サンクスです。

ひとまずランタイムは標準最小構成が入ってるから
ライブラリ使わないなら何とか動く感じですが色々問題がありそうですね。

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

882 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:49:55 ]
880も書いてるが、日本語扱うならvb6jp.dllも必要
Msvbvm60.dllとVb6jp.dllがあれば、
標準コントロールのみで参照設定使ってないアプリは動く

あとは使用するコントロールやCOMに応じてdllなりocxなりが必要になる

Msvbvm60.dll、Vb6jp.dllや、コントロールのocxはシステムにインストールしなくても
exeと同じディレクトリに入れておけば大抵動くよ
但しVB6のProfessional以上のライセンスを持ってないと、同梱配布は出来ないけどね

COMの場合はレジストリに登録しないとダメだがな

883 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 17:31:09 ]
>>882
ご丁寧な補足説明ありがとうございます。
Professionalなのでそこは問題がなさそうです。

一回は実際に入れる前にどこかで実験しなけりゃいけないなぁ…・
2000は1つくらい残しておいてほしかった


884 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:09:22 ]
つ仮想PC

885 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:47:46 ]
なんだっけなぁ
MS UI ゴシックは文字化けして、
なぜか MS ゴシック 9 ポイント にすると、文字化けしないんだよね。
化けるなら全部化けるだろ、と思うんだが、
上記設定だと化けない謎。

886 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 18:38:49 ]
どうしてもVBじゃなきゃだめなのか
最小ランタイムで動かすようなものなら他の言語も検討してはどうか

887 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 12:03:42 ]
>>885
俺もそれで悩んだんだけど、各コントロールに明示的にUIゴシックを
設定するとちゃんと表示された

初期状態でUIゴシックになってるのはフォントのプロパティに何も設
定されていなくて、環境依存のデフォルトフォントで表示されるため
らしい。
フォームのソース見ると分かるよ

888 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 12:04:59 ]
>>886
察してやれよ
VB6の人に他の環境使えっていってもムリな話

889 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 16:12:54 ]
VB6のコンボボックスについて質問です。

ドロップダウンコンボでリストから何かを選択したら、選択したものを
リストの一番上に移動するというのをやりたくて以下のようなコードを書いたのですが、
何故か選択した後、コンボボックスの内容表示( .Text )が空になってしまいます。

2〜3で入れ替えを行い、2で消えてしまった表示を4で補完するという流れなのですが
ステップ実行してみると、4が実行されたときにちゃんと選択文字列がコンボボックスに
表示されるのですが、End Subが実行されると何故か消えてしまいます。

原因と解決方法を教えてください。

Private Sub Combo1_Click()
  Dim buf As String

  '1 選択項目の文字列を保持
  buf = Combo1.Text

  '2 選択項目を削除
  Combo1.RemoveItem Combo1.ListIndex   'ここで一端コンボボックスの内容表示は空になる

  '3 一番上に追加
  Combo1.AddItem buf, 0

  '4 選択項目の文字列を表示
  Combo1.Text = buf               ' ステップ実行ではここでちゃんと表示される
End Sub                        ' 何故かここで再度表示が消える

Private Sub Form_Load()
  Combo1.AddItem "aaa": Combo1.AddItem "bbb": Combo1.AddItem "ccc"
End Sub

890 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:51:49 ]
何時間もレスがないようなので・・・

いま、VB6 をインストールしてないので Excel 2003 で上記のコードを動かしてみた。
ちゃんと動いたよ。もしかして、Combo1_Change() プロシージャのない?
Combo1.RemoveItem を実行したときに Combo1_Change() を実行してしまうのが
原因かもしれない。はずれてたら、ごめん。



891 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:53:51 ]
訂正
Combo1_Change() プロシージャのない? → Combo1_Change() プロシージャが存在してない?

対策は、考えてみて。(はずれてたら、ごめん。)

892 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 22:02:37 ]
あ〜、さらに訂正
可能性としては、Combo1.Text を実行したときに Combo1_Change() が呼ばれている方が
濃厚だね。

解決法は、要求してないイベントを起こさないようにするか、Combo1_Click() から
Combo1_Change() を呼び出したときは、何もしないようにする。(なんか変数を用意する)

はずれてたら、ごめん。







[ 続きを読む ] / [ 携帯版 ]

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

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