◆VB初心者質問スレ Part5
■ このスレッドは過去ログ倉庫に格納されています
0001引越しました
NGNGPart1 = http://piza.2ch.net/test/read.cgi?bbs=tech&key=968328471&ls=50
Part2 = http://piza2.2ch.net/test/read.cgi?bbs=tech&key=990793224&ls=50
Part3 = http://pc.2ch.net/test/read.cgi/tech/1000523122/
Part4 = http://pc.2ch.net/test/read.cgi/tech/1006922992/
Win32 API関連スレ
http://pc.2ch.net/test/read.cgi/tech/1006783012/l50
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調てみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
0232あじゃぱ
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG基本ではあるが良いとはお世辞にも以下略。
0235デフォルトの名無しさん
NGNG全部覚える必要はないよ。使わないものも多いから。
でも、AccessやExcelとの連携やSQL操作の仕事が一番多いかな。
>>231
いちおう対応する変数は全部必要。型宣言は不要だけど。
0236デフォルトの名無しさん
NGNGネタ…?
Dim buff_p() As point3D
Dim s, e, rz As Integer
<初期化、計算処理>
Call rotateZ(buff_p, s, e, rz)
0237デフォルトの名無しさん
NGNGえーっと。サブプロシージャを見つけて、
使おうとしたのですが、どうすればよいのか分かんなかったのです。
説明するのに頭の部分だけで良かったのかどうか分からないのですが、
やってみます。ありがとうございます。
0238デフォルトの名無しさん
NGNGネタ…?
それじゃ、s と eがバリアントだけど。
0239デフォルトの名無しさん
NGNGrzはSingleだし。
それに、呼び出し側で同じ変数名使うかな。
面倒くさい時は使うか…。
0240デフォルトの名無しさん
NGNG人に聞く前にまずやってみて、ばんばんエラーを出すほうが
覚えていくもんだよ。
0241デフォルトの名無しさん
NGNG>VBプログラマーになる上で、何が出来たら一人前といえますか?
自分で考えること。
自分で調べること。
自分で実験すること。
>プロパティーや関数、メソッドなどは全て覚えなければいけませんか?
そんなの全部覚えてるやつはおらん。
(長いことやってれば、どのコントロールにどんな感じのプロパティやメソッドが
あるのか知ってるし、似たようなコントロールなら予測もできるけど)
・はじめてのコントロールを使うときは、まずヘルプでそのコントロールの
プロパティ、メソッド、イベントに一通り目を通す。
・使ったことのない関数を使うときも、ヘルプで使い方を調べる。
さらに、その関数を使った小さな実験プログラムを作って自分の目で
動作確認をする。
VBに限らずプログラミングの基本中の基本。
0242デフォルトの名無しさん
NGNGしていくと、あるところでListBoxなどが「プロシージャの呼び出し、また
は引数が不正です」なるエラーを出てしまいます。タイトルバーしか表示
されないというところまでフォームを小さくするためには、どうしたらいい
のでしょうか。
0243デフォルトの名無しさん
NGNGそんなこと、今まで誰もやってないと思われ。
ListBoxを不可にするとか、不可視にするとかは?
0244デフォルトの名無しさん
NGNG0245242
NGNG242で書くべきでしたが、フォームのリサイズの際にListBox
のサイズも変更されるように、次のような記述をしています。
List1.Move 120, 120, Me.ScaleWidth - 240, Me.ScaleHeight - 240
これで、List1のHeightが240に達すると先のエラーを吐いて
しまうようです。ご指摘の通り、不可視にすればエラーを回避
できました。次の記述を加えてみました。
If List1.Height < 250 Then
List1.Visible = False
一応の解決を見ました。ありがとうございました! ところで、
> そんなこと、今まで誰もやってないと思われ。
これはどういう意味なのでしょうか。もしかして、他にもっと
いい方法があるのでしょうか。ご指導いただけると助かります。
重ね重ねよろしくお願いします!
0246デフォルトの名無しさん
NGNGもしかして、Form_Resize で、そのリストボックスの高さとか幅を、
フォームサイズに合わせてない?
高さや幅の値が<0になってエラーになってるだけと思うが。
ちゃんとチェックしてマイナスにしないようにするのが良いが、
手抜きとしてはこんなんもアリ(笑
Private Sub Form_Resize
On Error Resume Next '//手抜き
List1.Height = Me.ScaleHeight - List1.Top
End Sub
0247デフォルトの名無しさん
NGNGお返事ありがとうございます。
昨日は睡魔に負けてしまいました。
わからないことがまだ沢山あるので、その時はお願いします。
0248名無しさんです
NGNGありますよね?例えば付箋関係なんかが良くやって
ますが、あれって自力で枠周辺を監視して処理して
いるのでしょうか?だとしたら具体的にどういった処理
が必要になるのでしょうか?
0250248
NGNGサブクラス化しなきゃできないですかね〜。
当方開発環境がwin98なのでサブクラス化すると
ステップ実行したりエラー出たら落ちたりするんで
できればサブクラス化はしたくないのです…。
NT系だとサブクラス化しても問題無いと聞きますが。
0251VB使い
NGNGまあ、サブクラス化はめんどくさいからな。
俺も完成寸前にしか動作させない。
んじゃこれ使ってみれ。
1.フォーム作ってフォームのコードに貼り付ける。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Form1.hwnd, &hA1, 11, 0
End Sub
2.実行してフォームをドラッグする。
あとはMSDNでWM_NCLBUTTONDOWNとか見れ。
0252250
NGNGサイズ変更できました。あとは外周マウス座標をなんとか
すればイケそうですね。MSDNでちとイロイロ調べてみます。
サンクスでした。
0253250
NGNG0254242
NGNG自宅に帰ったらさっそく試してみたいと思います。
ありがとうございましたm(_ _)m
0256デフォルトの名無しさん
NGNGSVGA(800×600)対応のフォームを作ろうとしたら、
XGA以上のディスプレイで設計しないといけないんですか?
0257デフォルトの名無しさん
NGNGマ板で叩かれてた人かい?
http://pc.2ch.net/test/read.cgi/prog/1010916886/
0258デフォルトの名無しさん
NGNGVisualStudioのSPですが、最新版だけ当てるのは
駄目なのでしょうか?
よろしくおねがいします。
0259デフォルトの名無しさん
NGNGプロパティウィンドウで設定できるのは画面のサイズまでだったと思うので、
実行時にフォームのサイズを合わせれば一応できますが・・・
でも、実行する度に画面いっぱいいっぱいで開発効率が非常に悪いのは
言うまでもないでしょう。
0260デフォルトの名無しさん
NGNG最新版にはそれまでの修正が全部含まれてます。
0262257
NGNG0263256
NGNGなるほど、できないことはないんですね。
月末、XGAのノートPCが到着するから、
それまで違う部分を作ることにします。
ありがとうございました。
>>262
ちがいます(w
0264デフォルトの名無しさん
NGNG現在、ダイアログを作成してるんですが、親のフォームからの
値の取得をどうやるかで悩んでいます。いまは、わざわざLabel
コントロールに値をいったん格納し、それを
AAA = Form1.Label1.Caption
などといったふうに読み出しています。この方法でも問題なく
処理はできるんですが、今一スマートさにかけるような気がし
ています。コントロールを作ることで余計なメモリも食ってし
まうような気もしますし。。。プロシージャやフォーム単位を
超えた、プロジェクト内で自由に使用できる変数の設定って可
能なんでしょうか。よろしくお願いします。
0265デフォルトの名無しさん
NGNG新たに、「標準」モジュールを作って、そこに
Public 変数名 as 型
と宣言すべし。全モジュールより参照できる。
こんな場合なら、構造体を使うのがベターだな。
オブジェクト指向っぽくないが、VBなので気にするな(w
0266デフォルトの名無しさん
NGNGフォームモジュールの先頭に
Public AAA As String
とすれば、外部からはForm1.AAAでそれにアクセスできます。
また、変数自体はPrivateにしておいて、
PublicなPropertyプロシージャを作ればリードオンリーにしたり、
入力チェックをしたり、細かいアクセス制限もできます。
その場合もぷろぱてぃ名がAAAならば、
Form1.AAAでアクセスできます。
0267264ではないですが
NGNG>構造体を使うのがベター
それってもしかしてclassのことですか?
VBのclassがわからなくて、ある人は「C言語の構造体のようなもの」だといってました。
C言語もよく知らないんですが、VBでclassを使うといいのは どんな時ですか?
0268あじゃぱ
NGNG皆さんはVBを一通りこなせるようになるのにどれくらいの時間がかかりましたか?
さらにプロレベルになるのにどれくらいかかりましたか?
0269265じゃない
NGNG>それってもしかしてclassのことですか?
クラスと構造体は別。構造体にあたるものはVBではユーザ定義型と呼ばれるよ。
クラスはクラスモジュールに記述する。
>VBのclassがわからなくて、ある人は「C言語の構造体のようなもの」だといってました。
>C言語もよく知らないんですが、VBでclassを使うといいのは どんな時ですか?
クラスはあるデータのまとまり(プロパティ)とそれらを操作するメソッドで構成されてる。
クラスはいくらでも量産することができる。標準モジュールだとこうはいかない。
実際に使ってみないと実感わかないと思うよ。
0270デフォルトの名無しさん
NGNGそれ聞いてなんかの参考になるん?
0271あじゃぱ
NGNG参考までにとしか言いようがないです.
まあ早く覚えて就職したいと考えているので、参考までに他の人は
どれくらいなのかなと思ったので.
0272267
NGNGありがとうございます。むずかしいですね・・・。
ある人は「クラスは概念だから説明しづらい」とも言ってました。
参考書なんかにもなかなか載ってないし・・・。
どんな時に必要になるのか、まだよくわかりません。
>>269さんはどうやって勉強しましたか?
0273
NGNG助けてください
0274デフォルトの名無しさん
NGNG早い人は早いし、遅い人は何年たってもダメ。
たとえば何年勉強すれば、英語しゃべれるようになる?
0275デフォルトの名無しさん
NGNG移動させる方法を教えてください。
お願いします。
0276269
NGNGttp://www.interq.or.jp/www-user/komurak/main.html
ttp://homepage1.nifty.com/CavalierLab/lab/
http://www.gj.il24.net/~nakasima/
とりあえず1番目がお勧め。
3番目はある程度わかるようになってからの方がいいかな。
0277デフォルトの名無しさん
NGNG超FAQ。
SetFocusで移動。KeyCode=0でBeep音対策。
入力チェックには、Validateなんかおすすめ。
0278デフォルトの名無しさん
NGNG>皆さんはVBを一通りこなせるようになるのにどれくらいの時間がかかりましたか?
サラからでもひと月も毎日使っていれば普通の人なら理解できるよ。
うちの会社にいる茶髪ねーちゃんでも出来たもん。
>さらにプロレベルになるのにどれくらいかかりましたか?
プロっつーてもピンキリあるからなぁ・・・
「VB」を覚えようとするな「プログラミング」を覚えろ。
「プログラミング」はすぐには身につかん。経験が絶対必要。
本気でプロになるつもりなら、とにかく作れ。なんでもいいから作れ。
プログラムだけでなくソースも他人に見せて叩かれろ。
他人に見せられないようなソースは売り物にならん。
↑は俺の言葉じゃないけど、間違ってないと思うよ。
0279デフォルトの名無しさん
NGNGありがとうございました。
text1からtext2に移動させるとしたら、これで良いのでしょうか?
とりあえずはうまくいったのですが.....
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
Text2.SetFocus
End If
End Sub
それと、色々調べてる時にEnterキー移動はあまりお勧めできない
って書いてあったりするのですが、何か問題があるのでしょうか?
もしよろしければ教えていただけませんか?
0280デフォルトの名無しさん
NGNGそして、勉強している間は給料の文句は言うな
もお忘れなく。
VBと関係無いんでsage
0281デフォルトの名無しさん
NGNGWindowsの標準はTabでフォーカス移動だから。
標準から外れるからには棘の道を進む覚悟が必要。
0282デフォルトの名無しさん
NGNGKeyPressはキーを押した後なので、それより前のKeyDownに書くほうがベター。
キーイベントの発生順序は、KeyDown → KeyUp → KeyPress なのだ。
さらに、KeyAscii = 0 の後に、
Text1.Enabled = False
Text1.Enabled = True
の2行を入れるのがM$推奨だったりする。
WindowsがTABキーで次項目に移動する仕様になってるから。
操作の統一という意味でお勧めできないというだけ。
Enterで移動するのはDOSの仕様で、これに慣れてる中年クライアントの
希望が実際に多い。ExcelもEnterによるセル移動を捨ててないしね。
0284デフォルトの名無しさん
NGNG>>282
ありがとうございました。
TabキーがMS標準なんですね。
エクセルやアクセスを使っているとEnterキーが
標準のように思ってました。
色々と勉強になりました。
0285267
NGNGクラスについてのサイト紹介、ありがとうございました。勉強してみます。
あと>>279さんのご質問に関しての>>282さんのレスについてなんですけど、
>さらに、KeyAscii = 0 の後に、
>Text1.Enabled = False
>Text1.Enabled = True
>の2行を入れるのがM$推奨だったりする。
のところの意味がわからないんです。これはどういうことでしょうか?
0287デフォルトの名無しさん
NGNGEnabled=Falseにすれば、次のコントロールにフォーカスが移る。
その後で、Enabled=Trueに戻せばいいってこと。
これに対しSetFocusだと、フォーカスの順番を無視できてしまう。
ただ、それだけの違い。
作成過程の都合=コントロールを貼り付けた順番のままで、
フォーカスの順番なんてまったく考慮してないアプリもあるけどね。
0288てちゅや
NGNGFor i = LBound(aryParam) To UBound(aryParam)
'aryParamを使った処理
Next
End Sub
動的配列を引数に使った上記のような関数を作成しているのですが
この関数の呼出しもとで以下の
Erase aryData
Call HogeHoge(aryData)
の様に Erase でメモリ開放をおこなってしまうと
LBound(aryParam) 及び UBound(aryParam)
の所で「実行時エラー'9' インデックスが有効範囲にありません」
が出てしまいます。
これの回避に IsArray() で判定してみたりしたんですが、
Erase をしていても宣言時に Xxxx() としていると配列扱いです。
どうやってメモリが確保してあるか判定すればいいのか分からないです。
もしかして、On Error ステートメントで実行時エラー判定させる
しか方法はないのでしょうか?
よろしくお願いします_(._.)_
0289はぢめてのVB6
NGNG単純なゲーム形式のプログラムを作りたいのですが
「あっちむいてほい」の逆の形式で、Rnd関数で提示した方向(ピクチャで)に対応して
キーボードの←↑↓→を押す。
正解なら正解の回数をカウントしてもう1度
不正解なら正解するまでそのまま(正解以外の入力を受け付けない)
(できればタイマーで時間制限つき)
KeyDOwnイベントと正解をカウントするってところでつまづいてます。
手元に参考書になるものが少ないので是非皆さんの力を借りて完成させたいのです。
0290バァ
NGNGウp希望
0291デフォルトの名無しさん
NGNG0292VB使い
NGNGつまり、動的配列の初期化/未初期化の判定をしたいんだよな?
・・・たぶん無理。
一応、On Error〜か、Redimの後に必ず初期化するか、ファイルに書き込んで
サイズを調べるとか方法があるけど一番いいのは初期化だと思う。
あとバリアントに入れてメモリをチェックするって方法があるかも。今ちょっと分からんが。
他に知ってる人キボーン。
>>289
もうちょっと具体的に頼む。
0293デフォルトの名無しさん
NGNGそれだけじゃ答えようがないから、
今どんなふうにやってるのか示せ(コードをupしろ)ってことだろ。たぶん。
嫌われる質問の仕方の見本みたいな書き方だからな。
「つまづいてる」って言われても289にしか状況がわからん。
「こういうエラーが出る」とか「こうしたいのにこうなってしまう」って具合な
問題点を示してくれないと答える側はいやなもんさ。
せっかく答えても「すいません、質問の仕方がわるかったです〜」みたいに
なる場合が多いからな。
0294285
NGNG>>287
ありがとうございます。よくわかりました。
ただあとひとつだけ。
>SetFocusだと、フォーカスの順番を無視できてしまう。
とありますが、それを無視できてしまうことの問題というのがいまいちピンとこないのです。
EnterとTabとを押した場合でフォーカスがうつる順番がちがってしまうということでしょうか。
0295VB使い
NGNGSetFocusを使うとどこでもフォーカス飛ばせるんだけど
それはWindowsの行儀に反してるから順番どおりにフォーカスを
移動するようにしてね。
とMicosoftが主張してるってこと。
0296285
NGNGなあるほど。ありがとうございました。
また疑問ができたのでお願いします。
ひとつのプロシージャの中で、まったく関係のないループ処理が複数ある場合、
ループカウンタとして使用する変数を たとえば Dim i As Integerと宣言したら、
そのiを使い回していいんでしょうか。
それともそのループごとにわかりやすいように別に作るほうがいいんでしょうか。
プロの方はどうされているのか 教えてください。
0297デフォルトの名無しさん
NGNGVB使いさんと同じで、バリアントで受けるぐらいしか案がない。
>>289
KeyDownより、←↑↓→をキャプションにしたコマンドボタン4個の
ほうがVBらしいかも。まず、そっちで作ってみたら?
>不正解なら正解するまでそのまま(正解以外の入力を受け付けない)
最悪でも4回押せば正解になっちゃうの?
>296
変数名とかは好みの問題かも。
使い捨てループには iを使うけど、intLoopとか使ってる人も。
要は、後で見てもわかりやすいほうを選べばオッケー。
0298VB使い
NGNG俺は使い回ししてるな。
For〜Nextのネストレベルで変数名を同じものにして。
どっちにしろ一番大事なのは常にそうする、ということ。
(会社でやるなら会社に合わせる。)その時々でいちいち変えると
どんなにいい手法でもデバッグがめんどくさい。
0299デフォルトの名無しさん
NGNGSafeArray〜のAPIで調べられるけど、
エラートラップを使ってチェックする関数を自作する方が間違いなく楽でシンプル。
>>296
>ループカウンタとして使用する変数を
>たとえば Dim i As Integerと宣言したら、そのiを使い回していいんでしょうか。
その変数がたいした意味がない場合、あるいは、同じ意味のときは使いまわす。
そうでない場合は、別々の変数にする。
でも、基本的に2つ以上のFor文が出てきたら、機能分割して、
その部分がプロシージャにならないか検討する余地あり。
0300299
NGNG追加。
296>ひとつのプロシージャの中で、まったく関係のないループ処理が複数ある場合、
関係のないループで同じ変数を使いまわす場合は、
299>その変数がたいした意味がない場合、あるいは、同じ意味のときは使いまわす。
の中のその変数にたいした意味がない場合だな。
For文の場合そもそもが単純明快なループのみに絞った方がわかりやすいと思うので、
i,jで十分だと思う。制御変数自体に意味があるなら、意味のある変数名にした上で、
Do〜Loopを検討した方がいいかも。
0301デフォルトの名無しさん
NGNG1)imageでpngファイルを表示することは可能でしょうか?
2)imageでjpgファイルを表示することは可能でしょうか?
3)pictureでpngファイルを表示することは可能でしょうか?
−)pictureでjpgファイルを表示することは可能ですね。
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGpngはDLLかOCXを使うと表示できる。
0305はぢめてのVB6
NGNGほんとにすみませんでした。
>>297
画面にはピクチャ以外何も表示したくないのでキー操作専用にしたかったのです。
>最悪でも4回押せば正解になっちゃうの?
それは数をこなすことでなんとかしたいです。
とりあえず、自力で形になるくらいまではこぎ着けたのですが、
ピクチャが表示されっぱなしだと、切り替わった際に「ピクチャの形の違い」で
判別しやすかったのでピクチャー1回ごとにを消せるようにしたいです。
(正解して次に切り替わる際に若干消えている時間が欲しい)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'キーの入力方向に対してaに値を入れる
If KeyCode = vbKeyUp Then a = 1
If KeyCode = vbKeyDown Then a = 2
If KeyCode = vbKeyLeft Then a = 3
If KeyCode = vbKeyRight Then a = 4
If KeyCode = vbKeyZ Then a = 0 'スタートボタンとして設定
'iをランダムに変化させて1〜4に対応したピクチャを表示
Select Case i
Case 1
Picture1.Picture = Picture2.Picture
Case 2
Picture1.Picture = Picture3.Picture
Case 3
Picture1.Picture = Picture4.Picture
Case 4
Picture1.Picture = Picture5.Picture
End Select
' a = iを正解とし 正解数をxとして設定し、政界した場合にはカウントする
If a = i Then x = x + 1
'正解した場合のみ次のiを決定する
If a = i Then i = Rnd * 3 + 1
'正解数を表示する
Label2.Caption = x
Randomize
If KeyCode = vbKeyX Then End 'ENDボタンとして設定
End Sub
0307>305
NGNGここは、次のブロックみたいに、Select Case で書いたほうが見やすいし、
キーの連打にも対応できる。
>Picture1.Picture = Picture2.Picture
ピクチャボックスは配列化しちゃおう。
Picture1(0).Picture = Picture1(i).Picture
>Randomize
これはフォームをロードする時に1回だけ実行すればいい。
>If KeyCode = vbKeyX Then End 'ENDボタンとして設定
これは上の入力部と同じところに書いたほうがいい。
Endは強制終了だから、使用禁止。Unload Me を使う。
>(正解して次に切り替わる際に若干消えている時間が欲しい)
3秒待ちは、こんな感じ。
Dim Wait As Date
Wait = Now
While DateDiff("s", Wait, Now) < 3
DoEvents
Wend
0308デフォルトの名無しさん
NGNGテキストですと同じ方法でロードできるのですが。。。
Dim strBuff_zu As String
Dim intFileNum_zu As Integer
Dim strFullPath_zu As String 'フルパス
Dim strSoutaiPath_zu As String '相対パス
strSoutaiPath_zu = "\tekisei\toi" & i & "\gazou.jpg"
strFullPath_zu = App.Path & strSoutaiPath_zu
intFileNum_zu = FreeFile()
Open strFullPath_zu For Input As #intFileNum_zu
Line Input #intFileNum_zu, strBuff_zu
Close #intFileNum_zu
Image1.Picture = LoadPicture("\strBuff_zu"
0309デフォルトの名無しさん
NGNG画像を読み込むだけなら、LoadPictureの1行だけでいい。
()の中にはパスを入れる。EXEと同じフォルダなら、ファイル名だけでも可。
上のブロックは、テキストファイルを読み込む時のやり方で、画像とは関係ない。
0310296
NGNGありがとうございました。
0311デフォルトの名無しさん
NGNGできるならばやり方ご存知の方お願いします!!
0313デフォルトの名無しさん
NGNGそのファイルのパスを取得したいのです。
でも、command関数を使っても、ファイル名が8文字までしか認識されません。
しかも、WinMeだとフルパス認識出来るのに、Win98SE以下だと駄目なのです。
APIを使っても、まずファイル名をプログラム内で指定しないと駄目ですし、
どうしようか、手詰まりになっています。
わかる方いらっしゃいましたら教えていただけないでしょうか?
以下、コードです。
Dim args1, args2 As String
Dim nn As Integer
args1 = Command()
nn = Len(args1)
args2 = Mid(args1, 1, nn)
Open "C:\My Documents\Doc検索\minami.txt" For Output As #1
Print #1, args2
'Print #1, nn
Close #1
ret = Shell("C:\Program Files\FileMaker\ファイルメーカーPro 5.5\ファイルメーカーPro.exe C:\My Documents\Doc検索\Docu検索01.fp5", 1)
End
End Sub
0314311
NGNGソウッス(・∀・)!!
0315VB最高
NGNGというよりフローチャートってなんですか?
0316VB使い
NGNGVBはポインタを扱えないので、まぁ基本的に無理ってことで。
ただ、無理やりやるなら
1.アセンブラで関数のポインタに飛ぶコードを書いてVTableを自作し、
VtableにアセンブラコードとポインタをいれてOleaut32のDispCallFuncを
呼び出す
2.クラスを作成しインスタンス化した後Vtableのアドレスを書き換える
とかいう方法があるけどどちらも無理矢理なんでC使えるならDLLを作ることを
お勧めする。
一応1のサンプル。(DispCallFuncについてはまだよく知らないので)
Option Explicit
Private Declare Function DispCallFunc Lib "oleaut32.dll" ( _
ByVal VtblObject As Long, _
ByVal FunctionOffset As Long, _
ByVal CallConv As Long, _
ByVal ReturnType As VBA.VbVarType, _
ByVal ArgsCount As Long, _
ByRef ARefArgsType As Integer, _
ByRef ARefArgs As Long, _
ByRef RefResult As Variant) As Long
Function Func1() As Long
MsgBox ("(・∀・)ウマクイッタ!")
End Function
Sub main()
Dim pFunc As Long
pFunc = GetAddress(AddressOf Func1)
MyCall pFunc'ココがポインタ使ってるとこ。
End Sub
Function GetAddress(Functions As Long) As Long
GetAddress = Functions
End Function
Private Function MyCall(ByVal FunctionPointer As Long) As Long
Dim cd(0 To 7) As Byte 'アセンブラコード
Dim pTable As Long
Dim TableOb(0 To 1) As Long
cd(0) = &H59: cd(1) = &H58: cd(2) = &H51: cd(3) = &HFF: cd(4) = &H60: cd(5) = &H4
pTable = VarPtr(cd(0))
TableOb(0) = VarPtr(pTable)
TableOb(1) = FunctionPointer
DispCallFunc VarPtr(TableOb(0)), 0, 4, vbLong, 0, 0, 0, 0
End Function
0317VB使い
NGNGもしかしてMYDOCU~1とかになるってことならDOS名なんで
VBの標準関数ならそのまま使えるぞ。
>>315
フローチャートってのはプログラムの流れを図にしたもの。
昔は機械語直接書いてたんでそういうのが必要だった。
今は・・・まあ書いたほうが分かりやすいがめんどくさい。
316訂正。
(DispCallFuncについてはまだよく知らないので)
↓
(DispCallFuncについてはまだよく知らないのであんまり信用しちゃダメ。)
0318デフォルトの名無しさん
NGNG言葉が足りませんでした。
ドラッグ&ドロップしたファイルのパス名をそのままファイルメーカーに新規レコード
として入力させたいのですが、どうしてもそのまま~付のファイル名として
入力してしまいます。
これを、そのままのファイル名として入力したいのです。
ついでながら、Win98SE以下だと、ファイルメーカーにレコードとして入力すら
出来ない状態です。
WinMeだと、このコードでもうまく行くんですけど。
0319デフォルトの名無しさん
NGNGなんか名前を入れると、エラーが出るもんで...
0320デフォルトの名無しさん
NGNGVB.NETを待ち望むのも無理は無いと思うよ。ところで実はVBは使った事は
無いんだが、ハックしなくてもCOMのシンクイベントみたいなやり方で
できるんじゃないの?<関数ポインタ
0321Delフサギコ
NGNG画像ファイル(JpegとかPNGとか)
を動的に作成したいと思っています。
メモリ上で画像を描画する方法は
VBではあるのでしょうか?
VBで無理ならActiveXDLLをVBと接続して
描画させてやらなきゃいけないのかなと
考えてます。
とりあえず可能か不可能かを知りたいのと
わかりやすいリンク先とかありましたら
教えてクラサイ
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ オシエテクン デス
ミ,, ゚Д゚彡
〃 つ旦~~
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0324Delフサギコ
NGNGSetDIBitsToDeviceってAPIかな?
>メモリの画像を表示したいなら
なんか微妙に違うような....
Webアプリでグラフみたいなので
動的に画像ファイルを作成したいの。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ サンクスコ
ミ,,゚Д゚彡∬
〃 つ旦O
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0325308
NGNGどうすればいいのでしょうか?
どなたかお願いいたします。
0326デフォルトの名無しさん
NGNGそのメモリを、PNG、JPGに変換して、出力とか。
0327デフォルトの名無しさん
NGNGfunc1 op1, op2
Sub func1(r1 as OptionButton, r2 as OptionButton)
r1.value = ...
End Sub
てなことをやりたいのですが、呼び出し時に「型が違います」云われてしまいます……
何が間違っているのでしょう……
0328デフォルトの名無しさん
NGNGhttp://mbs.jp/maji/
ここのHPにある投票フォームをソースで表示してどこかイジって
クリックするとある選択肢に投票されるプログラムを作りたいんですがわかりません。
私は全くそういう知識がなく、この板にくるのも初めてです。
どうかアドバイスお願いします。
0329327
NGNGなんか納得いかない……
0330VB使い
NGNGop1の宣言と、Setを使ってるかをチェックしてみれ。
>>324
俺ASPって今知ったんだけど、ASPからVBって使えるの?
VBScriptみたいなもんなんかなあ?
0331デフォルトの名無しさん
NGNGVBでコンポーネントを作って、それをASPから呼び出すんさ。
■ このスレッドは過去ログ倉庫に格納されています