◆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。
0153144
NGNGありがとうございます。
Accessに接続してます。いろいろやってみたいっすね。
>>152
やってみたら出来ました!
ちなみに、これってクエリーも釣れてしまうんですね。
うーむ。よく調べてみます。ありがとう。
0154困った名無しさん
NGNG仕事先での案件で、VB使うことになってインストールしたら、
F1キーで「ヘルプを表示できません」ってメッセージが出るんです。
MSDNは単独(プログラムメニューから)見ることができる。
今まで何も考えずにインストールしてて、ヘルプが表示されないなんて
事無かったよ。
因みに、w2k Server環境でVB6のエンタープライズ。
MSDNはカスタムでフルインストール。
自分の環境(w2k pro)で同じ構成で問題ないのになぁ。
突っ込まれる前に、googleと過去ログ(初心者質問スレ)は見てみました。
他の過去ログは何故か404で見ることができない。
あとMSDNも目を通した(w
0155141=145=149
NGNGありがとうございます。無事表示できました。
しかし、ヘルプが表示されないのですが・・・ヘルプは存在しないということでしょうか?
だとしたらどうやって各メンバの意味をみなさん知っているのでしょう?
(まぁ、shdocvw.dllの1部は、説明がオブジェクトブラウザに書いてあるようですが・・・)
0156困った名無しさん
NGNGんで対応策とか細かくFAQとか有る場所があったら
教えてください。
解決策そのものズバリは特に歓迎(w
0157デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/workshop/graphics/IE4Arch.gif
関係ないけどアーキテクチャ
簡単なリファレンス
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
0158155
NGNGいやいやありがとうございます。なかなか参考になります。がんばってみます。
0159144=153
NGNGなんだかデータベースに書き込み行おうとすると、
ロックされて書き込めないのですが、カタログ使うと、こうなる仕様ですか?
0160デフォルトの名無しさん
NGNGインストール対象がWindowsXPの場合、DLLやOCXが正常にインスト
できないようです。直接System32フォルダに放り込んでもダメです。
なにかいい方法があったら教えてください m(_ _)m
0161デフォルトの名無しさん
NGNG0162お願いします
NGNGERASE を使って解放してあげないと、いわゆるメモリリーク
となってしまうのでしょうか?
0163デフォルトの名無しさん
NGNGならない
0164お願いします
NGNGありがとうございます。
C言語の malloc 見たいに、解放してあげないといけないのかと
思ってました。
0165演算ベンチ
NGNGttp://www.wombat.or.jp/tomoyashuttle/shtml/colum/vbspeed1.htm
バージョンが違うし、整数型だけだし、PCも旧式。>Pentium133,32MB
VB6.0のネイティブ・コンパイルで、実数型だと、どうなりますか?
0166デフォルトの名無しさん
NGNGttp://www.asahi-net.or.jp/~yy6m-wd/kuma/tip/vb.htm#sendkey
などを見ても、winkeyは載ってない。。。
0167デフォルトの名無しさん
NGNG途中で改行させることってできますか?
初歩的な質問ですんません。
0168デフォルトの名無しさん
NGNGたしかwinkeyだけはダメだったと思う。
>167
半角スペースと半角アンダーバーで改行できる。
0169167
NGNGどもありがとうございます。
0170168
NGNGCtrl+EscでWindowsKeyと同じメニューが出せるけど、
こんなもん出してどうするの?
目的はホットキー?
0171デフォルトの名無しさん
NGNG文末を _にすれば次の行は前の行の続きとされる。
if (ながーい条件とか) and _
(ながーい条件とか) then
アンダーバーの前に必ずスペース空けること。
何行にもできるけど、限界はある。
っていうかヘルプ見てみ。サンプルとかで一杯でてくるから。
0172166
NGNGそうです。ホットキーです。
Powertoys for Windows XP を入れたら、
バーチャルデスクトップ機能としてWin+1〜4でデスクトップを入れ替えられるようになったので、
OS起動後にVBSでその辺の処理を自動処理したいと思って。
「Win+■」=「Ctrl+Esc+■」だったららくなんですけどね。。。
0173デフォルトの名無しさん
NGNGVBAを使ってIEを動かしてウェブサーバのBASIC認証を通ることは可能でしょうか?
0174167
NGNGtext1.textに2つの数字を入力して、label1.captionにtext1.textの数字の左側の数字を出したいんですが、やりかたがわからないんです。
教えていただけないでしょうか?
0175デフォルトの名無しさん
NGNG数字二文字(="01")ならleft()、mid()
任意数値を区切り文字で入力ならsplit()を
HELPで当たるが良いと思われ。
0176デフォルトの名無しさん
NGNGターゲットと同じOS、環境でインストール環境を作っては?
VBは普通そうすると思う。
0177デフォルトの名無しさん
NGNG数値は小数部分があるものもあり、また桁もそろっていません。(10.5とか-9849848.1514142など)
誤ったデータはないもとします。(ABCとか、121あ12など)
このテキストファイルは約1GB程あるとします。
もし、このデータをソーティングするとしたらどのようにしますか
0178デフォルトの名無しさん
NGNG少しずつ読み込んで、シェルソートとかしたら?
途中経過はテンポラリファイルに書き出すとかして。
前のスレあたりにも、同じような内容の質問があったような・・・
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGアレはファイルにいったん書き出すのがヤダとかいうから
解決してないのでは?
0181177
NGNGないのでしょうか?
結合するときにまたソーとするのですか?
0182デフォルトの名無しさん
NGNGシェル・ソートってそういうときのために
ある方法だったような・・・記憶が曖昧でスマソ
確か部分数列ごとにソートして収束させていく
というアルゴリズムだと思います。
0183182
NGNG0184182
NGNGレコード番号を配列代わりに使えばできなくはないけど
0185デフォルトの名無しさん
NGNG一種の簡易DBになっちまうが。
0186160
NGNGレスありがとうございます! XPをサブマシンに導入して、
試してみます。ありがとうございました。
0187デフォルトの名無しさん
NGNGヲレならDBにぶち込む。
貴方の問題は1GBのデータをソートする事なのか、
そのソートしたデータを使って何かの処理を行う事なのか?
後者なら先ずは動く事、早くするのはそれからの事。
0188デフォルトの名無しさん
NGNGマージソートの要領で結合しながらソートすればいいと思います。
0189まちゅ ◆VcvMACHU
NGNG1GBのファイルを分割してバブルソートしてはどうかな?
たとえば10MBくらいのファイルを100個作って番号を振っておく。
まずファイル1と2を読み込んでソート。
20MBくらいならオンメモリでできるでしょう。
ソート後にファイル1と2に半分づつ書き戻す。
次は、ファイル2と3を読み込んでソート・・・てな具合にやれば出来そうな気が。
0190177
NGNGアルゴリズムについてあまり知識がないので勉強になります。
私は>>184さんと>>185さんのやり方は、どういうものなのか
理解できませんでした。すいません。。。
>>187さんの方法はDBに一旦全部格納して、SQL文でソートさせて抽出しそれを
ファイルにまた書き出すということでしょうか。それが最も簡単だと思います。
ただもしも、DBに入れられる限界を超えてしまったとしたら、できなくなってしまいます。
>>188さんと>>189さんの方法ですと、少しずつに分けてソートすることが
私にもできそうな気がしてきました。まだ考え方がうまくまとまらないのですが
もっと勉強しようと思います。
0191デフォルトの名無しさん
NGNG再ソートする必要はなくなる。
スワップしまくりのDBより速く結果が出る。
0192デフォルトの名無しさん
NGNG>ここに VB4.0 と VC6.0 の演算速度比較が載ってますが、
>ttp://www.wombat.or.jp/tomoyashuttle/shtml/colum/vbspeed1.htm
>
>バージョンが違うし、整数型だけだし、PCも旧式。>Pentium133,32MB
VB4はP-CODEコンパイルしかないしね。
後、根本的に計測の仕方に違いすぎですね。
・OSがWin95
→計測タイミングでかなり揺らぎがでる。何度か計測した上での平均なのかどうか不明。
・VB側のa,b,AnsがInteger
→VCでintなら、VBではLong。
・VB側の時間計測が精度の低いTimer
→VC側をGetTickCountでやるならVBも同じに。timeGetTimeの方がいいけど。
・終了時間の取得がVCではまず変数に入れてから。
→VB側もt1を宣言して、一旦変数に入れてからに。後、t0、t1共に宣言して。
>VB6.0のネイティブ・コンパイルで、実数型だと、どうなりますか?
両方持ってて暇な人実験きぼんぬ。
0193デフォルトの名無しさん
NGNG(1)入力ファイルをワークファイル0にコピー
(入力ファイルを残さないなら不要)
(2)ワークファイル1とワークファイル2を書き込みでオープン。
(中身は消す)ワーク0は読み込みでオープン。
(3)X=1とする。
(4)ワーク0から一件読み込む
(5)前回のデータより小さいならX=X+1(X=3ならX=1)
(6)読み込んだデータをワークXに出力
(7)ワーク0の最後まで(4)から繰り返す
(8)ワーク2の件数が0なら終了。
(9)全てのワークをクローズして
ワーク1ワーク2を読み込みでオープンしなおす。
ワーク0は書き込みでオープン。
(10)ワーク1とワーク2から一件づつよみこむ。
(11)読み込んだデータで小さい方をワーク0に出力
書き込んだ方は新しいデータを読み込む。
もしワークの最後まで来たならデータを最大値(99999999とか)にしておく。
(12)ワーク0以外の全てのワークが空になるまで(11)から繰り返す。
(13)全てのワークをクローズして(2)から繰り返す。
これがファイルソートの基本中の基本のマージソート(2ファイル)。
ワークを増やせば効率がよくなる。
HDDに元データと同じくらいの余裕(これがなきゃ出力できんわな)と
数件のレコードを保存するメモリがあれば
どんな量でもソートできる。
ちなみにこれは改良の余地がかなりある。
(2)〜(7)までを分配フェーズ、(9)〜(12)を統合フェーズというが
はじめに大小関係が成り立っているデータの塊を
フィボナッチ数でワークに分配しておき
分配と統合を同時に行えるようにするポリフェーズソートとか。
興味があるならアルゴリズムの書籍を読め(古いやつな)。
ちなみにいまどきこんなソート誰もやらん。
DBにつっこんで終わり。
0194デフォルトの名無しさん
NGNGhwndプロパティが無いので、SetWindowLongが使えません。
コントロールサイズそのままで、ラベルに縦方向センタリングをつける方法って
何かありませんか?
0195デフォルトの名無しさん
NGNGハッシュ? ツリー?
For Each 〜 Next でコレクションの中身を取り出すと、
ちゃんと入れた時と同じ順番で出てくるのが不思議なんだけど…。
ひょっとして、リスト構造?
0196PentiumIII 866MHz
NGNG-------------------------
Option Explicit
Public Declare Function GetTickCount Lib "kernel32" () As Long
Sub Main()
Dim i As Long
Dim a As Integer, b As Integer
Dim Ans As Integer
Dim t0 As Long
a = 16: b = 8
t0 = GetTickCount
For i = 0 To 10000000
Ans = a + b
Ans = a - b
Ans = a * b
Ans = a \ b
Next i
MsgBox ("Time: " & CStr(GetTickCount - t0))
End Sub
-------------------------
平均 220ms
=============================
Delphi6 Personal
-------------------------
program SpdDel;
uses
Windows;
{$APPTYPE CONSOLE}
var
I,A,B,Ans,T0,T1:Integer;
begin
A:=16; B:=8;
T0 := GetTickCount;
for I:=0 to 100000000 do
begin
Ans := a + b;
Ans := a - b;
Ans := a * b;
Ans := a div b;
end;
T1 := GetTickCount;
write('Time:');
write(T1-T0);
end.
-------------------------
平均 234ms
0197デフォルトの名無しさん
NGNG文章(例):
ドキュンばっかり珍走団。ケモジャケモジャ。マリオと
オマリー。ドキュンちゃんと食パンマン。VBVBVBVBVBVB
上の文章からキーワードを含む文である、"ドキュンばっかり珍走団。",
"ドキュンちゃんと食パンマン。"を切り取りたいのですが、どうしたら
いいのでしょうか?
キーワードを含む文の長さは不定で複数あります。
0198デフォルトの名無しさん
NGNG便利そう。 := はいただけないが。
0199デフォルトの名無しさん
NGNGドキュン[^。]*。
とか。
0200デフォルトの名無しさん
NGNGそれで2バイト文字は入力できないようにしたいんですが、どのようにやるんでしょうか?
マウス右クリック→貼り付け、[CTRL+V]の貼り付けもやれないようにしたいんですが、できるでしょうか?
0201でく
NGNG0202デフォルトの名無しさん
NGNG2byte数字は1byte数字に変換するようにすると良いですよ。
2byte文字を弾くのは、1byte文字を弾くのと同じようにやればいいかと。
0203デフォルトの名無しさん
NGNG必要なときに必要なアルゴリズムを勉強すればいい。
何を作るかによるが、必要になることは少ない。
時間を持て余しているならUMLの勉強をお勧めする。
0204パン
NGNG今からやろうとしてるのが、帳票や伝票の枠内に数値を印字していきたいのですが、
キャラクター?を設定してズレを防ぎながら作っていくのは気が遠くなりそうなので、
フォーム上にTEXTを並べて微調整していこうとしたら、
A4の用紙だとフォームでは狭すぎて印刷が出来ませんでした。
エクセルやワードをかいして印字する方法や、
アクセスにはフォームエディタみたいなウィザードが用意してあると聞いたこともあります。
行間など環境が変わっても左右されにくいのは、どういった方法でしょうか。
地道な作業なので、確実な手段でして行きたいので、みなさんでしたらどういった手段をとられますか?
宜しくお願いします。
-------------------
OS WinMe
VB6.0 Pro
MS Office
スキル 夜鍋の1年間てーど
-------------------
0205197
NGNG早速、参考書片手にやっています。
試しに、Split関数でキーワードを含む文を***で埋めようとしてみたんですが、
"ドキュン[^。]*。"だと、"***ばっかり珍走団。"という風に
文全体で無く、キーワード部分しか埋めてくれません。
Splitじゃなくて他の関数を使わないと無理ですか?
0206コピペ厨房
NGNG> 今からやろうとしてるのが、帳票や伝票の枠内に数値を印字していきたいのですが、
> キャラクター?を設定してズレを防ぎながら作っていくのは気が遠くなりそうなので、
市販品を使ってよければ、ActiveReportとか使うと簡単にできますよ。
Excelを利用可能であれば、それを使うというのもあります。
0207デフォルトの名無しさん
NGNGstrIn = 例文
strOut = ""
strWork = Split(strIn, "。")
For Each strLine in strWork
If InStr(strLine, "ドキュン") Then strOut = strOut & strLine & "。"
Next
199の正規表現を使うなら、コンポーネントを追加しないと。
0208デフォルトの名無しさん
NGNGテキストを並べるのは、DOS時代のやり方。
VBなら印字位置を0.01ミリ単位で指定できるじゃん。
0209ごるぁ
NGNG0210デフォルトの名無しさん
NGNG>>204
帳票、伝票等をお手軽に済ませたいなら
Excel、Accessを活用する事をお勧め。
0211VB超初心者厨房
NGNGプログラムを作成したいのですが、超初心者でもできそうな
ものはないですか?
0212165
NGNGレスどうも。
よく考えたら、Cの場合、ループ内で値が変化しないなら、
コンパイル時に定数を入れてしまう可能性とかもありますね。
>196
Delphi6も。ありがとうございます。
#VCのベンチもお願いします。>持ってる人
0213デフォルトの名無しさん
NGNG相当するAPIを用いるC/Sのプログラムを作成し、サーバプログラムをNTserverに
配置、作成したクライアントプログラムを用いてサーバプログラムと通信する場合、
NT側のクライントライセンスの追加購入の必要はあるのでしょうか?
ちなみにクライアント側へは、ファイル共有等のネットワーククライアント関連
のインストールはしていません。
0214デフォルトの名無しさん
NGNGDelphi最適化してると使われてないAnsがらみのコード削除しちゃうよ。
定数の代入すらやらないはず。
バブルソートでもやってみたら>ベンチマーク
0215デフォルトの名無しさん
NGNG>イントラネット嬢
ちと萌えるな
0216173
NGNG>ExcelからVBA使って、IEを動かしてるのですが、
>VBAを使ってIEを動かしてウェブサーバのBASIC認証を通ることは可能でしょうか?
回答がないところを見ると、便利なやり方はないけど、
perlでやるみたいに1つ1つサーバにhttpで話かければいけるのでしょうか?
#VBやりはじめなのではずしてる可能性大?
0217デフォルトの名無しさん
NGNGUserプロパティ使えばいけると思うけど、VBAにはないの?
もしなければ、http://ユーザ名:パスワード@www.hoge.co.jp/
とかは通らない?
0218デフォルトの名無しさん
NGNGDelphiはそこまで最適化?
そう言えば、昔のCは、使われてない変数に警告出してたな。
0219213
NGNGあはは…本当ですね。
気付かなんだ。会社で隠語で使えそう。
「オッパイ出してるイントラネット嬢」とか
「超難解イントラネット嬢の隠しバイト」とか。
関係ない話ですいません…質問は至ってマジメというか
業者にアホみたいなライセンス数見積もりで出されたので
ちょっと?って感じなんですよ。ご回答お待ちしております。
0220デフォルトの名無しさん
NGNGDelphiは知らんけど、弟分のBCBでもそんな感じに最適化される。
デバッグする時にそういう無意味な変数にbreak point張ると
何事も無かったかのように素通りしてくれるよ。
板違いネタスマソ。
0221デフォルトの名無しさん
NGNGそんなのMSに直接問い合わせれば?
ライセンス料って結構いいかげんというか
運用形態に拠って変わってこないかい?
NT Serverの事は良くしらんけど、
Oracleとかは馬鹿みたいな金額取られるよ>追加ライセンス
0222デフォルトの名無しさん
NGNG仕事なら221の言う通りMSに聞いて根拠にするのが一番だけど、
ソケット使うだけでライセンス発生するなら
IISでサイト開いてるところは万単位のライセンスが必要になると思うぞ(藁
そのC/Sシステムが何をやっているかによって変わってくる。
0223196
NGNG適当にやってみたけど
-------------------------
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Const SAMPLE = 1000
Private Sub Command1_Click()
Dim I As Long
Dim J As Long
Dim sTmp As String
Dim lTime As Long
Dim A(SAMPLE)
For I = 0 To SAMPLE
A(I) = List1.List(I)
Next I
lTime = GetTickCount
For I = 0 To SAMPLE - 1
For J = SAMPLE To I + 1 Step -1
If A(J) < A(J - 1) Then
sTmp = A(J)
A(J) = A(J - 1)
A(J - 1) = sTmp
End If
Next J, I
Caption = CStr(SAMPLE) & "Samples Time:" & CStr(GetTickCount - lTime) & "msec"
List2.Clear
For I = 0 To SAMPLE
List2.AddItem A(I)
Next I
End Sub
Private Sub Form_Load()
Dim I As Long
For I = 0 To SAMPLE
List1.AddItem Format$(Rnd, "0.000000")
Next I
End Sub
------------------------------------------------
こんなコードで
VBは330msec, Delは100msec位だった。
0224デフォルトの名無しさん
NGNGDelのコードは?
>Dim A(SAMPLE)
Variant型かい!Singleにしましょう。速さ全然違うから。
>Caption = CStr(SAMPLE) & "Samples Time:" & CStr(GetTickCount - lTime) & "msec"
終了時間もまず一旦変数に入れてから後処理してね。
022550のVB爺
NGNG上のDataGridが座標が(0,0)で表示されるようになった。UserFormのInitialize
でDataGrid.Visible=Falseにしておくと、この症状が出るようなんだけど、何か解決
方法はないだろうか。
0226でく
NGNGプロパティーや関数、メソッドなどは全て覚えなければいけませんか?
0228196
NGNGソースとバイナリをここにUPから適当に遊んでくれぃ。
http://r1.ugfree.to/~angriff/596.lzh
しかし、Delのexeはでかいよぉ(w
0229VBer
NGNGこれをVBから他ウィンドウへ対して実行したい時は、
どのメッセージを送ればよろしいでしょうか?
Spyを使って調べながら・・・・
ret = PostMessage(hWnd, WM_SYSKEYDOWN, &H12, &H60310001)
ret = PostMessage(hWnd, WM_SYSKEYUP, &H2C, &HE0540001)
ret = PostMessage(hWnd, WM_KEYUP, &H12, &HC0380001)
を送ってみましたが、上手くクリップボードへ入ってくれませんでした・・・・。
0230デフォルトの名無しさん
NGNGkeybd_eventでどうぞ。
0231デフォルトの名無しさん
NGNGPrivate Sub rotateZ(p() As point3D, s As Integer, e As Integer, _
rz As Single)
以下・・・。
その後Callステートメントで呼び出す時、どう書けばいいんですか?
Call rotateZ・・・この後カッコを付けて、p() As・・・と全部書けばいいんですか?
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でちとイロイロ調べてみます。
サンクスでした。
■ このスレッドは過去ログ倉庫に格納されています