くだすれVB6.0以前(超初心者向け)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/12/08(金) 19:36:45他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします。
0232デフォルトの名無しさん
2007/04/13(金) 00:15:170233デフォルトの名無しさん
2007/04/13(金) 03:03:33ttp://penhagi.com/access/tips/50_dentaku2.htm
0234デフォルトの名無しさん
2007/04/13(金) 20:48:18全くの初心者で何も分かりません。
初心者向けのヒントください。お願いします。
0235デフォルトの名無しさん
2007/04/13(金) 20:59:42歩ける状態で5k円くらいあるなら本屋へ直行
それか教官に聞く
0236デフォルトの名無しさん
2007/04/15(日) 03:03:56これとか参考になるよ。
http://www.mitene.or.jp/~sugisita/vb6_grph.html
0237デフォルトの名無しさん
2007/04/16(月) 16:35:09VB6.0なのですが、
Formのどのコンポーネントにフォーカスがあったとしても、ただ一箇所に
あるキーダウンイベントを取得することできるでしょうか?
どのコンポーネントにフォーカスがあっても
CTRL+Zのイベントを拾いたいのです。
0238デフォルトの名無しさん
2007/04/16(月) 17:00:23隠しメニューつくったら どうだろう 誤ってctrl+Vにショートカット割振ってしまったことがある
Zも元に戻すがデフォだよね
0239237
2007/04/16(月) 17:09:36メインフォームにKeyPreviewというプロパティがあり、これをtrueにすると
メインフォームのKeyDownでイベントを拾うことができました。
次に、というわけではないのですが、
もし知っていたら教えてほしいのですが、
同様にMouseDownイベントを拾うことはできるでしょうか?
0240デフォルトの名無しさん
2007/04/16(月) 17:12:47やった事ないけど全てのコントロールのイベントに一個そういう処理用のプロシージャ呼ぶようにするとか?
流石にコントロールは出来ないんじゃないかな・・・と VB素人な折れが言ってみる
0241237
2007/04/16(月) 17:22:42ありがとうございます。
コンポーネント全部にイベントを追加するのは厳しいフォーム設計になって
います…。また、今後、私以外が保守するときに余計な特殊仕様みたいにな
ってしまいそうな気もします。
VB素人が保守してる現状がそもそもどうかと思いますが…。
シンプルになる方法を模索したいと思います。
0242240
2007/04/16(月) 17:23:340243デフォルトの名無しさん
2007/04/16(月) 17:36:080244デフォルトの名無しさん
2007/04/16(月) 18:02:45Xpの調子が悪くなって、Vistaは購入することが決まっているので、
乗り換えようかと思って…。
0245デフォルトの名無しさん
2007/04/17(火) 10:09:14一つクラスを作成し、コントロールの型別にWithEventsで定義させて
そのクラス内でイベントの処理をするとかは、どうでしょうか。
クラスでの宣言はコントロール数分ではなく、使用している型数分で済みます。
0246デフォルトの名無しさん
2007/04/17(火) 10:23:230247デフォルトの名無しさん
2007/04/17(火) 10:29:36型指定されたやつ
$ だと明示的に文字列という宣言
詳しくはMSDNで見て
型宣言文字とかで出てきたと思う
あと、それをつける理由は例えばStringとかMSDNで調べてみて
実際にStringがどういう風になっているかがわかるから
説明ヘタでスマン
0248241
2007/04/17(火) 10:30:53ありがとうございます。
でも私のスキルが…orz
その文章の単語をキーワードにして調べながらやってみたいと思います。
また質問するかも知れませんがそのときはよろしくお願いします…。
0249デフォルトの名無しさん
2007/04/17(火) 10:33:00今、手元にMSDNがない環境でしたので
質問させていただきました
でも、なんとなくわかりました
ありがとうございました^^
0250デフォルトの名無しさん
2007/04/19(木) 18:35:55Private Sub Form_Deactivate()
MsgBox "hoge"
End Sub
や
Private Sub Form_LostFocus()
MsgBox "hoge"
End Sub
ってやっても、hogeが出てくれないですし、アプリケーションの終了の仕方もわかりません。
どうか教えてください。VB6.0です。
0251250
2007/04/19(木) 19:06:14Unload Me
でした。
これをウインドウが非アクティブになったときに実行したいのですが、
Private Sub Form_Deactivate()
Unload Me
End Sub
で、うまくいきません。
0252デフォルトの名無しさん
2007/04/19(木) 19:10:04そのタイミングでLostFocusイベントが発生するが。
それとは違うの?
0253デフォルトの名無しさん
2007/04/19(木) 19:21:31フォームは一つなんです。単体で。
0254デフォルトの名無しさん
2007/04/19(木) 19:26:34それともボタンコントロールも知らんのか?
0255デフォルトの名無しさん
2007/04/19(木) 19:30:180256デフォルトの名無しさん
2007/04/19(木) 19:31:01終了させるには、他のアプリがアクティブになったときや、自作アプリが非アクティブになったときに自動で終了してくれないと
面倒なので。
ツールチップみたいなものです。
0257デフォルトの名無しさん
2007/04/19(木) 19:44:300258デフォルトの名無しさん
2007/04/19(木) 19:50:071.プログラムが起動したらAPIで現在アクティブなウィンドウハンドルを取得
2.で、そのアクティブなウィンドウハンドルを保持して
そのフォームの中の処理でWindowsで現在アクティブなウィンドウを常にチェック
3.比較して起動時と異なっていたらアンロード
2はフック使ったほうがスマートかもしれんが
なんとなくこんなの思いついてみたというのをかいてみた
0259デフォルトの名無しさん
2007/04/19(木) 19:50:12Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Sub Timer1_Timer()
If Me.hWnd <> GetActiveWindow Then Call Unload(Me)
End Sub
これ以外にも方法はあるんじゃないかと思うが、
俺的にはこれくらいしか分からないや、ごめんよ。許して。
0260259
2007/04/19(木) 19:54:210261デフォルトの名無しさん
2007/04/19(木) 19:57:49俺も思ったw
というか、ちょっとサブクラス化してメッセージ受け取ったら出来るような気がしたんで
ちょっと書いてみる
VBあんま使った事ないから出来なくても怒るなよw
0262デフォルトの名無しさん
2007/04/19(木) 20:00:06サブクラス化でも可能だけどお勧めしない。
無限ループ(上の例ではタイマー)で都度自分の状態を確認する手法(イベントドリブン)の方が
VBでサブクラス化するより余程いいと思う。
0263デフォルトの名無しさん
2007/04/19(木) 20:00:36思ったとおりの動きが出来ました。
みなさん、ありがとうございました。
0264デフォルトの名無しさん
2007/04/19(木) 20:06:450265デフォルトの名無しさん
2007/04/19(木) 20:13:050266デフォルトの名無しさん
2007/04/19(木) 20:13:36VB6の動きをムリヤリ変えてるようなもんだしね 俺もそう思って>>258かいたんだ
まぁ、そのタイマーとかの監視が嫌だったらって感じだったんだよ
>>263
おめでとw
とりあえずフックでも出来たけどやっぱデバッグで止めたらIDE落ちるからめんどくせぇwwww
0267258
2007/04/19(木) 20:21:18あれ、俺がいる・・・?w
0268259
2007/04/19(木) 20:23:44きっとそれはドッペルだな。
俺のドッペルはいないみたいだ。安心安心♪
0269デフォルトの名無しさん
2007/04/24(火) 09:35:530270デフォルトの名無しさん
2007/04/24(火) 10:29:50コノあたりかな つ SECURITY_ATTRIBUTES
0271デフォルトの名無しさん
2007/04/24(火) 10:54:140272デフォルトの名無しさん
2007/04/24(火) 11:10:32CreateFileとかCreateDirectoryって、
ファイルやフォルダを作成した上で、
それのセキュリティを同時に設定しようってやつだよね。
それじゃないんだよなぁ。
まぁ要望は「もし出来たら」ってことだから、
「出来ません」って言って終わりにしちゃおっかな。。
単なるオプション機能だしw
0273デフォルトの名無しさん
2007/04/24(火) 15:06:51VB6.0なのですが、
Dim picture As Picture
picture = LoadPicture("HOGE.GIF")
とやると画像の読み込みは成功するのですが、
WidthとHeightを見てみると、ピクセル数ではなく何かとんでもない数値が
入っていました。
調べてみると、ここは0.01mm単位でのポイント数になっており、
ScaleX メソッドおよび ScaleY メソッドを使って必要なスケールに変換する
らしいのですが、ちょっと意味が分かりません。
単純にピクセルに変換できる方法などをご存知でしたら教えてもらえないで
しょうか。宜しくお願いします。
0274273
2007/04/24(火) 15:32:50picture_width = ScaleX(picture.Width, 8, 3)
picture_height = ScaleY(picture.Height, 8, 3)
これでピクセル数を算出することができました。
どうもお騒がせしました。
0275デフォルトの名無しさん
2007/04/24(火) 19:33:25NTFSのアクセス権限なら、
SetNamedSecurityInfoのあたりだったとおもう。
もものすごく面倒くさかった記憶しかない。
ファイル共有の権限のほうなら、net shareを叩いて
弄った方が早いと思うけど。
0276デフォルトの名無しさん
2007/04/25(水) 11:31:17ファイル共有の方でござる('A`)
0277デフォルトの名無しさん
2007/04/30(月) 03:41:54MIDIファイルを再生することは
できるのでしょうか?
リソースにMIDIファイルを埋め込むことは
できたのですが、そこからがわかりません。
できれば他のOCXやDirectXはつかわないで
APIなどだけでおこないたいです。
0278デフォルトの名無しさん
2007/04/30(月) 18:44:44ほんと初心者ですみません
0279デフォルトの名無しさん
2007/04/30(月) 18:53:41やったことないけど、
リソースからバイナリデータとして受け取って、一時ファイルに書き出してから再生させてみては?
>>278
もっと説明ちょーだい
0280278
2007/04/30(月) 20:41:06長い分をかくときに二行にわけたいだけです
改行です
0281デフォルトの名無しさん
2007/04/30(月) 20:59:37それなら
a = _
1 _
+ _
2
みたいな
名称忘れた
0282278
2007/04/30(月) 22:31:42ありがとうございます
0283デフォルトの名無しさん
2007/05/02(水) 17:02:04半角スペースにされるとちと困るので。
0284デフォルトの名無しさん
2007/05/02(水) 17:52:150285デフォルトの名無しさん
2007/05/02(水) 18:22:06ここで設定出来ないなら諦めた方が早くね?
別にタブ文字をオンコードしなきゃいけないってことはないだろーに。
タブ文字の出力はvbTabで出来るからな。
塚、あれか。
VBエディタって確かUnicodeだよな。
Unicodeでタブ文字表示しようとすると中黒になるんじゃなかったか?
0286デフォルトの名無しさん
2007/05/02(水) 18:41:25同じ部署のやつがタブコピペしたらスペースになるってうるさいだけだから放置しとくよ。
thx
0287デフォルトの名無しさん
2007/05/03(木) 15:39:580288デフォルトの名無しさん
2007/05/03(木) 19:22:220289デフォルトの名無しさん
2007/05/03(木) 19:23:190290デフォルトの名無しさん
2007/05/03(木) 19:49:36文法で躓くことはないと思う。
0291デフォルトの名無しさん
2007/05/04(金) 21:16:57今ファイルの移動・削除をするプログラムを書いています。
通常のファイル移動はNameステートメントを使い、削除はSHFileOperationでゴミ箱に捨ててます。
移動の際はログファイルを吐いてUndo可能にしているのですがゴミ箱に捨てたファイルの
Undoのやり方が分かりません。
どのようにコーディングしたら良いのでしょうか?
0292デフォルトの名無しさん
2007/05/04(金) 22:48:18アプリでWindowsのUndo機能をそのまま実装するのは難しいと思います。
ファイルの移動でundo機能のためにログを吐いてるのと同じように、
そのアプリ用にtempフォルダを作成し、ごみ箱に捨てるタイミングで
tempにファイルを移動、その情報をログに保存しておけば、ファイルの
復元を疑似的には実装出来ると思います。
0293デフォルトの名無しさん
2007/05/04(金) 23:40:35ちょっと調べてみましたが、意外に難しいというか、MSからの情報がないというか。
ttp://mtamaki.cocolog-nifty.com/blog/2005/01/post_f992.html
ttp://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200310/03100013.txt
あたりを参考にしてみてはいかがでしょうか。
0294291
2007/05/05(土) 00:09:35>ttp://mtamaki.cocolog-nifty.com/blog/2005/01/post_f992.html
>ttp://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200310/03100013.txt
参考になりました、なりましたけどう〜んと唸ってしまいます
ゴミ箱を直接いじれるので仕方ない仕様なのかも
0295293
2007/05/05(土) 00:47:58Win32APIスレの連中ならもう少し真っ当な回答をしてくれるかも。
0296デフォルトの名無しさん
2007/05/05(土) 02:00:37folder.movehere folderitem
で駄目?
0297デフォルトの名無しさん
2007/05/05(土) 08:03:44ありがとうございます。実験はまだですがNameステートメントと違い自前のエラートラップを
減らせそうですね。ゴミ箱からのUndoに役に立つのかどうかはよく読み取れませんでした。
0298デフォルトの名無しさん
2007/05/05(土) 14:18:43やり直しをメニューでやってるのですが、Ctrl+YかCtrl+Shift+Zでやりたいなぁと
思ったのですが、ヘルプや設定を見てもそれっぽいのが無かったので。
0299デフォルトの名無しさん
2007/05/05(土) 15:02:51set folderitem=ゴミファイル
folderitem.invokeverb "元に戻す(&E)"
または>>296
set folder=戻し先
set folderitem=ゴミファイル
folder.movehere folderitem
0300デフォルトの名無しさん
2007/05/05(土) 20:10:40ファイルさえ特定できればその通りなんでしょうけど
http://mtamaki.cocolog-nifty.com/blog/2005/01/post_f992.html
の方法を使う場合XPと2K限定っぽいし、Vista持ってないから
分かりませぬが・・・
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200310/03100013.txt
こちらはExplorer同様直前の動作のUndoなわけで
0301デフォルトの名無しさん
2007/05/05(土) 20:17:420302デフォルトの名無しさん
2007/05/05(土) 20:50:00このFileはCloseさせて頂きます
0303デフォルトの名無しさん
2007/05/06(日) 22:14:31あと、日曜プログラマーならwsh/vbscriptがお勧め。
0304デフォルトの名無しさん
2007/05/08(火) 11:37:48新しいPCを購入。OSはXPです。
そこでVisual Studio 6.0 をインストールしようとすると、
「Microsoft Virtual Machine for Javaのインストールを行う画面」
にて再起動を促され、指示に従うと再起動後、また同じ画面になりインストールが進みません。
またこれをインストールしないと次ボタンが有効にならないため、インストールが進みません。
調べたところ、Microsoft Virtual Machine for Javaの提供終了と関係がありそうでしたが、結局インストール方法がみつかりませんでした。
どうすればよろしいでしょうか?
0305デフォルトの名無しさん
2007/05/08(火) 12:12:03インスコ中断して、事前にjavaVMを入れればそこで聞かれなくなるハズ。
0306デフォルトの名無しさん
2007/05/08(火) 13:35:03なるほど。そういえば今までのマシンでは聞かれたことがありませんでした。
最近のPCだとサポート終了確定のJavaVMはプレではいってないのはわかるが、
じゃあJavaVMいれてインスコしたあとJavaVMをアンインスコでやってみるよ。
0307デフォルトの名無しさん
2007/05/09(水) 17:30:58VB6.0なのですが、CommandButton の Caption を
「決定(&E)」
とすると、"決定"の横に、アンダーバーのある (E) が出ます。
これ、(A)とか(B)とか1文字のはいいんですが、
(DEL) (INS) (ESC) のように、
DELキーやINSキーやESCキーを同じように出すことは可能でしょうか?
0308デフォルトの名無しさん
2007/05/09(水) 19:13:01できるか知らん
0309デフォルトの名無しさん
2007/05/09(水) 19:40:15DELとかINSとかにアンダーバーを付与させることは不可能だが、
メニューのショートカットキー機能を使えば、
押下されたキーでそのボタンに対応した動作を行うことは多分可能。
0310デフォルトの名無しさん
2007/05/09(水) 19:43:200311デフォルトの名無しさん
2007/05/09(水) 20:00:12漏れが読解力無くてすまないが・・・
altキーとDELキーやINSキーやESCキーを組み合わせた
ショートカットキーを作成したいという意味だったりする??
0312デフォルトの名無しさん
2007/05/10(木) 09:36:45Alt使ったらホットキーって言わね?
0313307
2007/05/10(木) 09:52:05>>308
(&D&E&L)は駄目でした…
>>309
キーの判定は、Form.KeyPreviewをtrueにした上で、FormのKeyDownイベントを
拾うことで実現できました。
>>311
いえ、組み合わせは考えていません。
DELキーのみや、ESCキーのみなどのように1つだけです。
色々試してみたのですが、無理っぽいですね。
重要でもないですし、諦めようと思います。(各ボタンのToolTipTextに記載する方法にしました)
皆さん回答ありがとうございます。
0314デフォルトの名無しさん
2007/05/10(木) 16:08:03ESCキーとか標準の窓操作に使われてるからそんなのに使用しないほうがいい。
例;メニューを開いた状態でESCキーではメニューが閉じる
0315デフォルトの名無しさん
2007/05/10(木) 16:28:14311が使用したいと思っているのわけではないだろう。
0317デフォルトの名無しさん
2007/05/10(木) 20:27:340318デフォルトの名無しさん
2007/05/10(木) 22:19:26入ってる。 当然バージョンが6.0ならだけどね。
俺も昔はviエディタとにらめっこだったから
Windows系の開発にウトイのはわかるぜよ。
0319デフォルトの名無しさん
2007/05/10(木) 22:38:130320デフォルトの名無しさん
2007/05/10(木) 22:44:350321デフォルトの名無しさん
2007/05/10(木) 22:57:48スタジオ間違ったなと思いつつ・・・
>>318
ありがとうございます
もう0からの独学の状態でして、助かりました
0322デフォルトの名無しさん
2007/05/11(金) 00:52:12「ポンッ」て音がいやなんですけど、音が出ないようにする方法はありますか?
0323デフォルトの名無しさん
2007/05/11(金) 00:56:01あるけど、あんたの期待している答えなら無い。
0324314
2007/05/11(金) 09:55:52VisualStudio6.0はもう販売してないぞ。
VB6.0のみならまだ単体で出ているので大丈夫だ
>>322
スピーカーをビルの屋上から落とす
0326デフォルトの名無しさん
2007/05/12(土) 07:30:57keydownの
if keycode = &hd or keycode = &ha then
keycode = 0
end if
0327デフォルトの名無しさん
2007/05/12(土) 16:13:50(1,1)
(2,4)
(3,2)
(4,8)
の4点を通る3次曲線y=ax^3+bx^2+cx+dの、
定数、a,b,c,dを求めるプログラムを作りたいのですが…。
今までエクセルのソルバーで計算させていたのですが、
VB6.0でこの4点のプロットからa,b,c,dを出すプログラムは、
どうすればいいんでしょうか?
VBでの連立方程式やら二次方程式やらをググってもみたのですが、
さっぱりでして…。
御助言お願いします。
0328デフォルトの名無しさん
2007/05/12(土) 16:52:11アルゴリズム辞典とかで行列の掃き出し法を
ひけばおわる
0329デフォルトの名無しさん
2007/05/13(日) 17:38:55”商品代金”と”支払い金額”を入力し
もし支払い金額textboxが商品代金textbox未満なら釣銭textboxに不足と表示
もし支払い金額textboxが商品代金textboxを超えている場合は釣銭textboxに釣銭の金額を表示し
更に釣銭金額の各紙幣ないし硬貨の個数を各々の項目の隣に別のラベルとして表示せよ
という課題があるのですが
釣銭金額の各紙幣ないし硬貨の個数を各々の項目の隣に別のラベルとして表示ってどうやるんでしょうか?
0330デフォルトの名無しさん
2007/05/13(日) 17:57:18簡略した流れ図にすると、こんな感じでしょうか・・・
0331デフォルトの名無しさん
2007/05/13(日) 18:41:52自販機のアルゴリズムっぽいけど
千円札がない場合は、購入する前に
札がないランプが点いてるだろうから購入すらできない
=「千円札があるかないか」の分岐は意味ない様な希ガス
全部硬貨で出すのならまた別だろうけど。。。
■ このスレッドは過去ログ倉庫に格納されています