VBプログラマ質問スレ(6.0以前) Part32
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGVB.NETの話題はできるだけひかえてください。
前スレはこちら
Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
Part25 http://pc2.2ch.net/tech/kako/1052/10526/1052627913.html
Part26 http://pc2.2ch.net/tech/kako/1055/10551/1055145106.html
Part27 http://pc2.2ch.net/tech/kako/1058/10586/1058674927.html
Part28 http://pc2.2ch.net/tech/kako/1061/10612/1061296197.html
Part29 http://pc2.2ch.net/tech/kako/1065/10654/1065446334.html
Part30 http://pc2.2ch.net/test/read.cgi/tech/1069160036/
Part31 http://pc2.2ch.net/test/read.cgi/tech/1073732636/
【VB.net関連スレ】
VB.net質問スレ (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1065269043/
【Win32 API関連スレ】
Win32API質問箱 Build16
http://pc2.2ch.net/test/read.cgi/tech/1073830065/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.荒らしは相手しない。
六. VB情報募集中。
七.VB.NETの話題できるだけひかえる。
0002デフォルトの名無しさん
NGNGPart 2 http://piza2.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
0003デフォルトの名無しさん
NGNG0004超電磁ロボ・コンバトラーVB
NGNGどんなにくだらない質問でも、誰かが優しくレスを返してくれるスレッドです。
身の毛のよだつほど低レベル、もしくは質問者自身、何が何だかわからない質問を
勇気をもって書き込んでください。
VB使いが優しくレスを返してくれますが、お礼はVBの普及と初心者の救済を
御願いします。
V・I・C・T・O・R・Y サインはVB!
0005デフォルトの名無しさん
NGNG五.荒らしは相手しない。
0006デフォルトの名無しさん
NGNGVB6.0が売られている店の情報とか?
0007お尻から練乳
NGNGオブジェクト指向的に不完全だとか、なんだとか言われるけど、
QuickBASIC(これはMSの製品で数少ない名作だと思う)にGUIビルダーが
合体した感じの、手軽で小気味よい開発環境だと思っている。
ランタイムの配布の問題や動作スピードの問題も、最近の通信事情や
マシンパワーの増大により、ほとんど(自分自身はまったく)問題がないと思っている。
もし、VB6.0Pro版が見つかったら超ラッキー!! そくゲットしましょう。
0008デフォルトの名無しさん
NGNG0009まだまだ現役で
NGNGこれからVB6.0を勉強しようと思っているのですが。
0010デフォルトの名無しさん
NGNGCでも勉強した方が良いよ。あらゆる構造化手続き型言語のエッセンスが詰まっている。
VB使えます!とか言ってる新卒が仕事で使えた試しもなし。
基礎さえ分かってればあんなもん数週間で人並みに書けるわけで。
それよりも今のうちにもうちょっと広い視野でプログラミングに取り組んでみてはどうだろう?
0011デフォルトの名無しさん
NGNGいつも思うんだがかなりずれてるよなあ。
C言語そのものの習得なんてそれこそ3日もあればできるじゃん。
VBより遥かに覚えること少ないよ。
こういうこと言う人って、アルゴリズムとか処理系のお約束のことを
Cって言ってるのかな?だったらそれこそ勉強したほうが。。
0012デフォルトの名無しさん
NGNGおまえが2chばかりやってるからそう感じるだけだ。気にするな。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG自作自演のつもりですか?
0015(゜Jし゜)
NGNGクラスモジュールを使うと可読性が落ちるから、と言われるんで出来れば使いたくないんですが。
それとも、引数を構造体にまとめずに全部引数として扱うのが普通なんでしょうか?
0016デフォルトの名無しさん
NGNG>構造体をフォームやクラスの引数、戻り値に使えないのは何故なんでしょう?
COM的な仕様です。
>クラスモジュールを使うと可読性が落ちるから、と言われるんで出来れば使いたくないんですが。
アホな上司なり友人ですね。
>それとも、引数を構造体にまとめずに全部引数として扱うのが普通なんでしょうか?
何も考えたくないのならニートな解だと思います。
0017デフォルトの名無しさん
NGNG"aaa.txtbak" というファイルも表示されてしまいます
"*.txt" だけを表示させるにはどうしたら良いのでしょうか?
0018あぼーん
NGNG0019お尻から練乳
NGNG自分の環境では、何の問題も発生しないのですが・・・。
0020デフォルトの名無しさん
NGNG_./ ̄ ̄ ̄ ̄\
/( 人____) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
/ .|ミ/ ー◎-◎-) < 見ろ俺のセクシーなヌードを!! │
,/ (6 (_ _) )\ \_____________/
`、 `,| ∴ ノ 3 ノ‐'`ノ モワ〜
\ ヽ,._____ノ ノ←>>1-1000
豸. ``Y" 拜."..::.::.::.::.::・・'゚。.・'゚。.::。.::・'・'゚。.::。.::・'・'゚。.::。.::・'・'゚。.::。.:
;": :: i. 、 ¥ ノ ・'゚。.:・・'゚。.::。.::・'・'゚。.::。.・:(;´Д`)オエーッ
; .;: :∴:(. ` -‐´;`ー ) ・'゚。.::。.::・'・'゚。.::。.::・・'゚。.::。.::・''・'゚。.::。.::
. ': .;".;": ( 彡 ミ ) モワ〜
: .;"∵;": ::″: ; ゝ '´ ̄"`ヽ
: .;".;":: :.;".;": / ■_,,,,,、 ノ
´ ..‘ :´ ;` :. ~. ;. / /`' ( ノ
:´ `: .``:. ;' ~ヾ ( ノ | (_,,-,,,
: : .~.. :´; ` :` , `: \ `ヽ / __ノ
;`: ,´ ;: ;` : :. .~.. \ \  ̄
; : ..‘:´ ;`:. ~.. ; :,´ : ノ _)
` ;..``:. ; ' ;.~ ;ヾ (.,,_/~
0021デフォルトの名無しさん
NGNGありがとうございす。もう一度よく調べてみます
0022デフォルトの名無しさん
NGNGセルの連結は分かるのですが・・・
ヘルプも結構見たのですがまだ分からないです
ヘルプのここを読めという情報でも良いです。
0023デフォルトの名無しさん
NGNGそんなこと自体が出来るのかな?
0024デフォルトの名無しさん
NGNGSpread6.0 からできるようになったと思います。
ヘルプで「複数ヘッダの設定」という箇所を見るとイメージが見れるのですが
設定方法がどこにも書いてないのです・・・
0025デフォルトの名無しさん
NGNGだれか、>>933の質問に答えてやれよ。
0026(゜Jし゜)
NGNGありがとうございます。
他の人の作成した関数を見てみたところ、最後の
引数に全部ぶち込む方式が一般的なようなのでそれで行くことにします。
後、EnumとかCollectionとかFor Eachって一般的に使われてるんですかね?
さっきのクラスモジュールと同じく、弊社では全く使用されてないのですが。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG2ちゃんで弊社って…(w
5〜10行ぐらい空けて
乱交乱交!
毎日乱交!!
って書いてくれたらなお受けたのにな。
0029(゜Jし゜)
NGNG0002
0003
0004
0005 乱交乱交!
0006
0007
0008
0009
0010 毎日乱交!
0030デフォルトの名無しさん
NGNGCollectionも結構使うぞ。
0031デフォルトの名無しさん
NGNG井蛙。
0032デフォルトの名無しさん
NGNGPrivate Sub Form_Resize()
Text1.Height = Form1.ScaleHeight 'テキストの高さをフォームの高さに合わせる。
Text1.Width = Form1.ScaleWidth 'テキストの幅をフォームの幅に合わせる。
End Sub
しかし、TextBoxはFormのサイズより小さいので、以下のように変更したところ、
ウィンドウ最小化時にエラーが出るようになりました。
Text1.Height = Form1.ScaleHeight 'テキストの高さをフォームの高さに合わせる。
↓
Text1.Height = Form1.ScaleHeight - 1100 'テキストの高さをフォームの高さに合わせる。
解決策、助言等よろしくお願いします。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG即レスありがとでした。
If Form1.ScaleHeight - 1100 > 0 Then
Text1.Height = Form1.ScaleHeight - 1100 'テキストの高さをフォームの高さに合わせる。
End If
これで解決出来ました、ありがとでした。
0035お尻から練乳
NGNGTextBox の TopとLeftのプロパティを[0]にして >>32に記述してある
Private Sub Form_Resize()
Text1.Height = Form1.ScaleHeight 'テキストの高さをフォームの高さに合わせる。
T ext1.Width = Form1.ScaleWidth 'テキストの幅をフォームの幅に合わせる。
End Sub
で、何か支障があるのですか? 今ひとつ、自分には趣旨が分からないのですが・・・。
0036デフォルトの名無しさん
NGNGリサイズのみなら。
0037デフォルトの名無しさん
NGNGエラーがそれ以外発生しないと自身を持っていえるのならそういうのもありかもしれんけど、
本来エラーをチェックする機能であるOn Error Resume Nextを
エラーを無視する用途に使うのはおすすめできない。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGこのプログラムをコンパイルして配布する場合、
EXCELのインストールされていない環境でも動きますか?
VS6.0 と OfficeXP Developer で開発しています。
0040デフォルトの名無しさん
NGNG参照設定した場合はだめだと思った。
CreateObjectで生成するようにする。
まあ、VBで何か作った場合は、クリーンな環境でインストールテストは必須です。
0041デフォルトの名無しさん
NGNGサンクス。あれ、でも
CreateObjectで生成するのに、参照設定は必要ないのでしょうか?
0042デフォルトの名無しさん
NGNG不要、VB アーリーバインドで検索するとPCDNのサイト出てくるからそこ参照。
0043デフォルトの名無しさん
NGNGサンクス
調べてやってみます。ありがとうございました。
0044デフォルトの名無しさん
NGNGADOって参照設定でやってます?
それともCreateObjectでやってます?
参照設定で開発して最後にCreateObjectに置き換えるってのを
聞いたことあるけど最終的にはCreateObjectにしておいた方が良いのかな?
0045デフォルトの名無しさん
NGNGまあ、最終的にはインストール先の環境限定を出来るか否かだと思うけど。
限定できるなら参照設定、できないならCreateObjectか。
0046デフォルトの名無しさん
NGNG参照設定で開発っていうのがどういうものなのかわかりません。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGProperty Get/Let/Set
クラスモジュール
オブジェクトの参照操作
FileSystemObject
とか使っていたら、一般的ではないから使うなとか言う少々上の上司がいるんですが、いったいどうすれば。
今は一人で組んでいるからいいものの、なんかやな感じです。
実際、グローバル変数だらけでワケワカメなソースばかりだし。
こんなんじゃあ、MFCやBCBでも凄いグローバリーなコードになっていないか心配です。きっと後でメンテナンスさせられるんです。
会社辞めようかと検討中です。
0050デフォルトの名無しさん
NGNG意味もないよな。
0051デフォルトの名無しさん
NGNG参照設定とCreateObjectの両方とも理解してないな。
そのEXEを配布するときは参照しているDLLを一緒に撒かなきゃだめだよ。
CreateObjectの場合は、必ずしもそのDLLを撒く必要はない。
あと、バージョン差に対してある程度対応可能になる。(検証は別としてだが・・・)
0052デフォルトの名無しさん
NGNGttp://www.gj.il24.net/~nakasima/vb/tech/style/
とかを見せて、一般的にはこう、というのを認識させるべし。
でも正直そこにしがみつく理由は無いと思う。
0053デフォルトの名無しさん
NGNGVB6.0からEXCELのセル更新をする場合、
まず、ブックを開いて、
xlsControl.Workbooks.Open FileName:=StrXlsFilePath, ReadOnly:=False
セルを指定して更新
xlsControl.Sheets("sheet1").Cells(1, 1) = Format(DATE, "0000/00/00")
で済むと思うのですが、VB6.0とは別に起動しているEXCELのセルを更新するのは
簡単に出来るのでしょうか?
状況としては、常に開いているEXCELが存在して、値が更新されたらイベントを発生
させているのですが、これに更新されなくても一定時間ごとにイベントを発生させたいのです。
EXCELは、ケーブルによって繋がれている他のパソコンにより自動的に更新されます。
EXCELのVBAでタイマーコントロールが使用できれば簡単なのですが・・・・
無いようなのでVB6.0のタイマー機能を使用しようかと考えているのですが・・・
環境は VB6.0、EXCEL2000、OSはWINDOWS NT4.0です。
御分かりの方是非とも御教授を m(_ _)m
0054デフォルトの名無しさん
NGNG(単にキーを鮮度するってもの危険だし)
0055デフォルトの名無しさん
NGNGそーなのか、じゃ、VBのタイマーコントロール使用するためにはVB側から開くしかないですね・・・
ありがとうございました。
0056デフォルトの名無しさん
NGNGFor i = 1 to 100
If ちょめちょめ Then
i = 50
End If
Next i
ってゆうループでiの値変えてるはずなのに
100回周りやがるぞ。
俺の気のせいか?
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGfor i = 1 to j
if xxx then
j = 20
end if
next i
みたいな終了条件を変更するケースは
微妙だった気がする。
0059デフォルトの名無しさん
NGNG気のせいだな。以下でhogeが80を表示。
Dim i As Integer
Dim hoge As Integer
For i = 1 To 100
hoge = hoge + 1
If i = 30 Then
i = 50
End If
Next
Debug.Print hoge
006056
NGNGそれです。
そのパターンで終了値の変数をループ内で変えても
律儀に最初に決めた回数周りやがった。
しかも、ループ脱出後に
変数の値見ると、ループ内で変化させた値になってやがる。
ちなみに純粋なVBじゃなくて、ExcellVBAでのお話です。
俺VBほとんどわからんのだけど(普段はC,Java,Perlプログラマ)
Excelでマクロ書いててこれ食らいました。
ちょっとカッチーンと来たね。
みなさんは、ループの途中で回る回数変えたくなったときどうしてるんですか?
0061デフォルトの名無しさん
NGNG無限ループとか怖いからもっぱらexit forとif文のみ。
てかどんな処理するとループ回数を途中で変えたくなるんだ?
0062デフォルトの名無しさん
NGNG件数が増減するデータを配列に読み込む時とか?
0063デフォルトの名無しさん
NGNG006456
NGNGやりたかったのはこんなこと。
・N日間(分のデータに対して)ある作業を続ける。
・ただしある日(のデータ)にある条件が成立すると、その週いっぱいで作業は終わり。
結局別の方法使ったけど、
こんな場合のVBでの標準的な解決策ってありますか?
0065デフォルトの名無しさん
NGNG自分が無知なのにカッチーンと来たのだろうが落ち着け。
Forは一定回まわす命令。
Doは条件を満たしている限りまわす命令。
場合にあった命令を適切に使え。
006661
NGNGんー、その処理だったら漏れはこうする。
ちょっとややこしいかもしれんが無限ループの心配がないし。
ちゃんと動かしてないからバグがいるかもしれん。
dim daysinweek as integer
dim weeks as integer
dim days as integer
for weeks=0 to 100
days = days + weeks * 7
for daysinweek=1 to 7
days = days + 1
if ('A`) then
exit for
endif
next
next
006761
NGNGdays = weeks * 7
だな。スマソ。
006861
NGNG後のnextの間に
if days=_| ̄|○ then exit for
がいる。
0069デフォルトの名無しさん
NGNG出自はそうだけど、C言語系の文法を持つ言語でのfor 文は
柔軟性が高く、ループ条件の初期化、判定、繰り上がり
(でいいのかな?)の3つを纏めて記述できる便利な前判定
ループになっていて、継続条件文を毎回評価するのよ。
対して、VBのは初回に取り込んでお終いみたい。
(大昔のBASICは変えられた様な気もしたんだけど)
文化の違いみたいなもんだから、こういう勘違いが起こっても
不思議ではないよ。
>>64
break に相当するものとして Exit For ってのがある。
但し、continue に相当する文なかったかと。
ここらへんの痒いところに手が届かないのがVBの難点で
あり、他言語使う人間から嫌がられる所以。
007065
NGNGわざわざ説明されなくても知っているってw
俺はC言語でも終了条件が変わるものにはwhile
終了条件が変わらないものにはforを使うことにしている。
英単語そのものの意味を考えるとその方が自然でしょ?
0071デフォルトの名無しさん
NGNG釈迦に説法でした、ごめん。
for、whileの使い分けは本当はそうすべき
なんだけど、馴れちゃうと面倒で(w
0072デフォルトの名無しさん
NGNGわざわざ説明しなくてもとか言っているが、Forの途中でカウンタや
終了条件をいじろうって言うのは根本的に間違っちょると思うよ。
Exit For使うなりなんなりするべき。
バグの温床になる。
言語仕様でいじれなくしても良いぐらいだと思うけどな。」
分かっててやってるんなら考えを改めると思うべきですが如何。
>>69
Continueほしいのぅ・・・。
結局GOTOでcontnueをシミュレートすることになるが、GOTO排他教信者が
うるさいし。
0074デフォルトの名無しさん
NGNG・・・転職したほうがいいかもなマジで。
>26
コレクションと For Each はいいぞー こればっかり使ってしまう。
てかオブジェクトを使ったプログラミングするなら欠かせないと思うけど。
まぁ変わった会社みたいだしなー
ExcelにアクセスとかVBが良くやるところでも使わないか?
ところで構造体は関数宣言をFriendですれば引数に使えなかったっけ。
0075デフォルトの名無しさん
NGNGGOTOは多重ループからの脱出とかケースバイケースで
使っても良いと思うんだけど、VBのGOTOの一番の難点
は、ラベルが勝手にインデントを無視したレイアウトに
されてしまう事かと。
折角、タブ打っても詰められちゃうし、考えてみるとあの
エディタも結構な難物だったりするかも。
あと、欲を言えば、エラートラップの処理もGOTOだけで
なく構造化してくれんと。
なんか、書いていて涙でてくるな、、、、、、、
>>49
・・・・・・ガクガクブルブル・・・・・・
0076デフォルトの名無しさん
NGNG使える。
正直、最近まで知らなかった
0077デフォルトの名無しさん
NGNG両者の関係がprivate扱いになるからってお話?
007856
NGNGバグの温床になりやすいってのもわかる。
でも便利だからついやっちゃうだよね。これが必要になること結構あるし。
俺が>>64の仕様をcやjavaで書くと
for(i=0; i<n; i++) {
もろもろの処理;
if(ちょめちょめ) {
n = i + weekend(i); //weekend()は0〜6を返す関数
}
}
ってな感じになるのね。
で、VBでも同じようにやったらうまく動かなかったんだよね。
動いて欲しかったんだよ。俺としては。
そういや、俺このときcontinue(に相当するもの)探しちゃったよ。
「あるはずだ」って思って本見て探したけど見つからなくて、
詳しい人に聞いたら「ないよ」の一言。悲しかったぜ。
0079デフォルトの名無しさん
NGNGflag = 0;
for(i = 0;i < length(data);i++){
if(hoge(data) && !flag){
flag = 1;
}
if(weekend(data) && flag){
break;
}
}
0080デフォルトの名無しさん
NGNGテキスト部分をstring変数にうまく格納する方法はありますか?
(MP3ファイルからID3タグを読み込みたいんですが)
0081デフォルトの名無しさん
NGNGSJISでいいの?StrConvのvbUnicodeでいいんじゃない?
0082デフォルトの名無しさん
NGNGバイナリアクセスでOpen、Getでバイト型配列に格納
string変数 = StrConv( バイト型配列 , vbUnicode)
mp3タグ取得のサンプル探せ
0083デフォルトの名無しさん
NGNGタブ打ってもつめられるのはむしろイイと思うけど。
# 左端にくるのがいい、というのではなく、自由度が無いのがいいということ
と言うかインデントはすべて固定にしてホスィ
コーディングスタイルなんかでもめたくない。
If文もブロックIfだけとか…
VBは割と新しいせいかそんなにもめないが、
Cとかはもう宗教がかった連中がうるさくてたまらん。{の位置がどうとかで。
GOTOは・・・無きゃ無いで済むんだが、そのためにはContinueはほしいねぇ。
On Error Goto はあっても良いな。
ってかTry Catchがいいんだけどね。
0084デフォルトの名無しさん
NGNGメッキのような知識だな。
0085デフォルトの名無しさん
NGNGありがとうございました。解決しました。
008683
NGNGどこら辺がめっきっぽかった?反省するズラ
0087デフォルトの名無しさん
NGNGDo
Exit Do
Loop While False
で代用できるけど、正直お勧めしない。
0088デフォルトの名無しさん
NGNGbreak?
0089デフォルトの名無しさん
NGNGGotoの代用なら分かるが・・・
0090デフォルトの名無しさん
NGNGDim i As Long
For i = 1 To 10
Do
If i = 5 Then Exit Do
Print CStr(i)
Loop While False
Next
みたいな感じ。
0091デフォルトの名無しさん
NGNG素直にifで構造化した方が良いと思われ。
0092デフォルトの名無しさん
NGNG俺もそう思うのでお勧めしないっす。
0094デフォルトの名無しさん
NGNG面白いと思うけど、
個人的には他の人も書いている様にそのスタイルよりも
breakやフラグの方が良いと思う。
>>83
新旧で言えば逆。
VBの勝手にフォーマットは、BASICが旧式のインタプリタ
であった事を引きずっていて、
入力ソース → 中間コード → ソース形式で再表示
って流れの中で入力ソースのフォーマット情報が失われる
せいと思われ。途中のVerで治す事も出来たと思うんだけど
.netで改善されるまでやっとらん。
しかも、読みづらい。
(デフォルトの色使いが工夫されているのが救いだけど)
On Error GOTO は 例外をブロック単位で処理できないのが×。
Try{}catch(){}と同じ事しようと思うと、細かく関数を分割か
ラベルを貼りまくる必要が出て来る。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG> 入力ソース → 中間コード → ソース形式で再表示
>
> って流れの中で入力ソースのフォーマット情報が失われる
そりゃ嘘だろ〜インデントとかコメントとか保持されているわけで、
中間言語の形式なんてソースレベルでは関係ない。
エディタで書いてコンパイルしたらラベルにインデントしてもコンパイルできるぜ。
エディタは意識的に前にずらさせてるんだろ。
0097デフォルトの名無しさん
NGNGだから、古い時代からのBASIC故の伝統だと言っている。
ちなみに、インデントは構造から勝手に生成している。
BASICではコメントはrem文と言う命令の一種。
(内部でどの様扱っていたかは流石に知らんけどね)
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG少なくとも94が言うような実装をしたBASICは存在した。
ソースのテキスト料に較べて保存している情報が結構少なくできるメリットがあったんじゃないかと勝手に納得。
0100デフォルトの名無しさん
NGNG左に詰められるのが伝統、ってことねこりゃすまんかった。
>>83で書いた古い新しいって言うのはそういう意味じゃなかったんで
つい勘違いした。
確かに分かりにくかったな。ごめん
0101デフォルトの名無しさん
NGNG>>97は何の反論にもなってないじゃん。
「vbのエディタの仕様はBASICの伝統踏襲してるわけじゃない」、っていってるのに
「いや、そういう伝統があったんだ」なんていってんだから。
0102デフォルトの名無しさん
NGNG新しいエディタが、あんな表示を強要する訳もないのだが。
0103デフォルトの名無しさん
NGNG翻訳に失敗したか?
0104デフォルトの名無しさん
NGNGMicrosoft(R) Visual Basic(R) Programming System Version 5.0 Professional Edition
を入れ直そうと思っているのですが、
Microsoft(R) Windows(R) xp Operating System Home Edition Service Pack 1
にインストールする時に何か問題は発生しますか?
0105デフォルトの名無しさん
NGNGそもそも保障が無いと思う。
0106ビート大根
NGNG実は非常に困っています。VB + ADO + Access2000にてデータベースソフト
を作っています。
問題はサブフォームでして、Accessではめちゃくちゃ簡単に実現できるの
に、VBでは非常に難しい。しかもクエリで作ったテーブルをデータグリッ
ドに投げると、確かに実現はできるのですが、例えばその中のレコードを
削除すると、商品マスタのレコードまで消えうせるのであります。
ということで、select * from 受注明細 にもともとあった親のフォームの
IDと同じものを表示せよという命令を書いたところ確かに消えなくなった
のですが、今度はIDをいれてEnterを押しても、商品名やら単価やらがすぱ
っと出てこなくなりまいた。
どのようにしたらこの状況下で、IDを入れただけで商品マスタのデータを
このデータグリッドに導き出せるのでしょうか?是非にご教示のほどよろ
しく賜りたく存じます。
0108おしえて偉い人
NGNG「フォントサイズ小」の時
UserControl.width = 1000
? UserControl.width
1005
代入した値と違う値が帰ってきます。
? Clng(1000 / Screen.TwipsPerPixelX) * Screen.TwipsPerPixelX
1005
こうなるので、ピクセルに丸められているのかなと思ったけど
画面のプロパティーの設定詳細でフォントサイズを
「カスタムサイズ200%」にすると
UserControl.width = 1000
? UserControl.width
931
? Clng(1000 / Screen.TwipsPerPixelX) * Screen.TwipsPerPixelX
1001
こうなります。
これは、どういうことなのでしょうか?
0109デフォルトの名無しさん
NGNG画面もソースもDB見ないでその質問に答えられると思うか?
だからといってソース○投げなんかすんなよ。
怪しい日本語でダラダラ書いてないで、もうちょっと問題を切り分けろ。
0110デフォルトの名無しさん
NGNG↑口だけ
0111デフォルトの名無しさん
NGNG1000から1100ぐらいまで調べれば法則性がわかるはず。
0112デフォルトの名無しさん
NGNG自分自身を表すクラスってなんでしょうか?
0113デフォルトの名無しさん
NGNGWscript.ScriptFullName
0114ぶぶ
NGNGNTからUNIXサーバーにFTPでファイル転送はできるのですが、ファイル転送後にサーバーにPUTしたファイル
名称の変更をしたいのですが方法がわかりません。どなたか教えてください。
よろしくお願いいたします。
0115デフォルトの名無しさん
NGNG�dクス
そこからパスを抽出します
0116デフォルトの名無しさん
NGNGそれ、VBの質問じゃないです。
0117ぶぶ
NGNG0118デフォルトの名無しさん
NGNGそれも、ここで質問するこっちゃないな。
0119デフォルトの名無しさん
NGNG150 Opening ASCII mode data connection for file list
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (594 Bytes)
>RNFR pgsql.dump.1073709904.deleted
350 File or directory exists, ready for destination name.
>RNTO pgsql.dump.1073709904.deleted_
250 Rename successful
>TYPE A
200 Type set to A
>PORT 218,124,112,68,14,211
200 PORT command successful
>NLST -alL
150 Opening ASCII mode data connection for file list
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (595 Bytes)
ffftpの出力より
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG2. ftp xxx.xxx.xxx.xxx (NT側からUNIX側にFTP接続)
3. put NTでのファイル名 UNIXでのファイル名
これでOKだと思う。
いったん相手先に送ったらrenameコマンドで変えられるかも
(renameって使ったことないけどリモート用コマンドだっけ?)
ここでも見とけ↓
ttp://www.page.sannet.ne.jp/mtoga/html/etc/bih-h_84.htm
0122おしえて偉い人
NGNG1〜1000 の全てを出力して比較しているのですが
「フォントサイズ小」の時はScreen.TwispParPixcel = 15 で
UserControl.width の挙動は Clng( x / 15 ) * 15 とまったく同じでした。
しかし
「フォントサイズカスタム200%」の時はScreen.TwispParPixcel = 7 で
UserControl.width の挙動は Clng( x / 7 ) * 7 とは微妙に異なります。
これは、VB6のバグなのでしょうか?
0123ビート大根
NGNGすみません。状況はフォーム・サブフォームのつくりをしたDB用のフロントエンド
でありまして、改善したいのはサブフォームの側にあります。
テーブル構成は
受注(親フォーム) - 受注明細(サブフォーム) そして、サブフォームのテーブ
ルには、商品マスターのテーブルがつながっています。
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040226102803631.jpg
上記のような状況の時、前回はクエリーを使ってテーブルをつくりそれをDBGridに
表示する形をとっておりました。この方法ですと確かに表示はできるし、目的であ
るIDを入れるだけでスパっと出るのですが、レコード削除のときに商品マスタのデ
ータも削除されるのです。
リレーションシップは以下のような感じです。
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040226102924632.jpg
そこで、単純なSELECT * FROM 受注明細 where 受注コード = " & txt受注コード.Text
を発行したところ、削除しても商品マスタのデータは消えませんでしたが、問題のIDを
いれただけでスパっとは出なくなってしまい困っています。
クエリを使いたいのですが、いかんせんレコード削除の際に商品マスタまでもが削除さ
れてしまうのではどうにもなりません。お助け願えれば幸いです。
0124デフォルトの名無しさん
NGNG"D:\test\a.txt"という文字列があった場合、ディレクトリ部分のみ("D:\test\")を抜き出したいんですが
どうすればいいんでしょうか? 自分で"\"をカウントして抜き出さないとダメですか?
0125ビート大根
NGNGカレントディレクトリを取得する関数を使うと良いですよ。
すると、あるディレクトリにあるファイルという場合には、そのフルパス
を、、、そこのディレクトリの場所をというときは、ディレクトリをとっ
てくれます
0126デフォルトの名無しさん
NGNGこんなのもあるが
PathRemoveFileSpec
GetParentFolderName
VB の機能で自作したほうがいいと思われ
0127124
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGInStrRev関数とLeft関数を使うとヨサゲ.
0130デフォルトの名無しさん
NGNG15/2=7.5を整数化してるのでは?
0131デフォルトの名無しさん
NGNGVBのスライダーの位置を示すヒントが消えないんですが〜〜
今、実数を使っているんですが整数値がヒントで出てしまってうざいんです。
コレって消す方法あるんでしょうか?
0132おしえて偉い人
NGNGええと、その7.5という数字は、なにから求めるのでしょうか?
0133デフォルトの名無しさん
NGNG少しはヘルプ見ようよ。
TwipsPerPixelXの動作に疑問をもったら、普通TwipsPerPixelXでヘルプ検索するでしょ。
そこから芋づる式にヘルプをたどっていくと、「ScaleMode プロパティ」の解説に
Twipの意味が書いてあることがわかる。
それ読めば、どうして"15"って数字が出てくるかわかるでしょ。
小学校の算数ができればだけどね。
# フォントサイズ小のとき
1inch = 96Pixel = 1440Twip ……
0134デフォルトの名無しさん
NGNG遅レスですが・・・
マスターの方のデータまで削除される問題は、前スレに
追求した結果を書いてあります。
Jet4.0 OLEDB Providerの仕様だと思われます。
MDBファイルに読み書きを行う時は、DAOを使った方が確
実で変な仕様に悩まされなくて済みます。
標準で付いてくる表系のコントロールは使わず、サード
パーティ製のを使った方が楽ですよ。
標準で付いてくる表敬コントロールは、はっきり言って
サンプル程度のレベルですし、勉強用程度には良いんだが。
0135134
NGNGクエリを使わない方法で表示されるのが遅いのは、
インデックスの作り方の問題とか考えられる要因は
色々あるんだが・・・(SQL文の記述も含め)
VB6.0になってDAOの代わりにADOを強制する様に
なって非常に駄目になった部分ではありますが。
M$的には、MDBファイルではなく、MSDEを使う事を
推奨しているのかもしれませんが。
OLEDB Provider for SQL Serverは安定しているし
変な仕様も無いんです・・・
0136デフォルトの名無しさん
NGNGData Environmentを使ってるんですけど、それって
あんまり推奨しないんですか?
何をどうすればいいのか・・・。
0137デフォルトの名無しさん
NGNGなるほど。 散々っぱら苦しんで、それが仕様だったとは,,,,,,,,,
なんか、どっと疲れがでてきました。それって、明らかにバグですよね?
SQL的には間違ってはいないはずですし、これ以外はきちんと動いてい
るもんですから、おかしいとは思っていましたが(つまり、レコードの追加
はしても、それが商品マスターにあるものでなければ、間違いがちゃんと
帰ってきていたので)
DataGrid Controlは一見すると、あの特定の列のセルでプルダウンメニュ
ーをはじめから出せるみたいなのですが、いかんせん仕様もなにも公開
されていないみたいで、全然コードが書けないし。
逆に、MSDEつかったら、今回のような問題は起こらないのか?それとも
Access97を使ったら(つまり、Jetの前バージョン)なら問題は起こらない
のか?そこが知りたいです。なにか、お手持ちの情報でありませんか?
この部分以外はかなり作り込まれていまして、今からAccess2000ランタイ
ム使ってやるってのにかなり抵抗が遇ったりはします。インターフェースの
作り直しはそれほど難儀しないんですが(馴れていますから)
0138デフォルトの名無しさん
NGNG定時処理をしてるんですが、起動時間をアプリケーションから自由に設定したいんです。
0139デフォルトの名無しさん
NGNGそういうアプリ組んだことあるけど、たぶん想像しているより簡単にはいかない。
まず、たぶんタスクスケジューラを操作するようなAPIは私の調べた範囲では存在しない。
簡単に言えば(w、タスクのフォルダに.jobって拡張子のファイルを作ればいいんだけど
ファイルのフォーマットが結構クセがあったはず。まあ、でもこれはいろんなタスクを作って
根気よくバイナリエディタで調べればなんとか解析できると思う。
次に、単純ににタスクのフォルダにファイル作っても、タスクスケジューラに認識されない。
削除や上書きも同様にダメ。あるオマジナイ的な方法でタスクスケジューラに
確実に認識させられるのだが、苦労して発見した方法を簡単に教えちゃうのは
なんか悔しいから教えてあげない。(笑)
さらに、Win98だとハードがACPIにちゃんと対応していてもベタにやると
サスペンド状態からタスクで起動すると条件によってはアプリがちゃんと起動しない、
という問題がある。これもあるオマジナイで回避できるのだが…。
0140デフォルトの名無しさん
NGNGタスクの設定ってのが理解できてないから的外れかもしれんけど。
0141デフォルトの名無しさん
NGNGどうすれば実現できるでしょうか?
0142134
NGNGバグっぽい動作だとは思うのですが、現象を見る限り、敢えて
そういう仕様で作ってある様に思えます。
Access97でも、ADOを使う場合はJet 4.0 OLEDB Providerを
使う事になるので結果は同じ事になるかと。
MSDEは、データベースエンジンがSQL Serverと同じ物ですか
ら、OLEDB Provider for SQL Serverを使用する事になります。
なので、こう言った変な現象は出ないと思います。
(SQL Serverでは出ませんから)
アプリケーションに付けてMSDEを配布する事は問題ない筈な
ので、配布方法の調査と検討は必要だと思いますが。
>>136
DataEnvironmentは開発段階で余計な事をされる様に感じて
使った事は無いのですが、やるならDAOをコードで制御する方が
確実かも。(コードを書く量が増えて生産性は落ちるのですけどね)
0143134
NGNGそりゃまた、面倒な事を・・・(汗)
Printステートメントでプリンタポートに直接送り込んで
やる方法とか、そう言うのはあるのですが、プリンタドライバに
よる制御管理が厳しくなってきて、それをやろうとしても
出来ないケースが結構あるのですよ。
0144デフォルトの名無しさん
NGNG0145141
NGNGちょっと面倒かもしれないとは思っていたのですが
やっぱり無理がありますか?
open "LPT1" for output as #1
プリンタの指定はこんな感じになるんでしょうか?
>>144
それでやってみます。
>>143-144ありがとうございました。
0146小学生
NGNGああ、いえ、そういう意味じゃなくて・・・
プログラムでどう取得したらいいのかって・・・
0147デフォルトの名無しさん
NGNGそのくらい、会社もしくは学校ならMSに聞けば直ぐに答えてくれるだろうに。
プッ、
0148デフォルトの名無しさん
NGNGプログラムが自動でキーを押すには、どうすればいいのでしょうか?
0149デフォルトの名無しさん
NGNGまずはプログラムから動かす事ができるロボットを用意して、そのロボットに対して
キーを押すという命令を発行します
0150デフォルトの名無しさん
NGNGアホか。
そんなインテリジェントな指令じゃなくて右小指の第二関節を48°曲げるとかだよ。
0151デフォルトの名無しさん
NGNG馬鹿。
曲げるのは第三関節だ。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGおいおい。
VBなんだからそこらへんは隠蔽されてるに決まってるだろ?
0154デフォルトの名無しさん
NGNGAPIのkeybd_event関数でも使え。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG最もダサい方法。そう言うことだ。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG自己分析ですか、良い心がけです。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG察するに、SendKeyのことを聞いてるんじゃないのか?
もっとも、質問者はもう現れない罠。
0162デフォルトの名無しさん
NGNG移動させて左クリックするしかない?
でも、ボタンの座標って環境によって変わりそう。
0163デフォルトの名無しさん
NGNGその通り、しかしながらコンテナからのオフセットというのはなかなか変わらないので
コンテナのWindowハンドル + 座標で対応可能。
0164デフォルトの名無しさん
NGNGありがとう
0165デフォルトの名無しさん
NGNG一番良い配布方法はどういった方法でしょうか?
インストーラーの選定とか、注意事項とかありましたら教えてください。
開発環境
WindowsXP Pro SP1
VisualBasic6.0 SP5
Spread6.0 (最新修正モジュール)
0166デフォルトの名無しさん
NGNGサブルーチンや関数ごとに区切りがわかるように
例えば線が入るとかするには
どうすればいいのですか?
0167デフォルトの名無しさん
NGNG開発する。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG"End Sub"や"End Function"を見つけたら
次行に線を挿入する簡単なプログラムを作ればいいんじゃないの。
0170デフォルトの名無しさん
NGNGVBのアドオンとして作ればできそうだね。
0171デフォルトの名無しさん
NGNG'----------------------------------------------------------
Function hoge()
0172デフォルトの名無しさん
NGNG(・∀・)ノ[s] ワスレモノ ドゾー
>>162-163
ボタンのウインドウハンドルが取得できるなら座標はキニシナイ
0173デフォルトの名無しさん
NGNG自分で作ってるVBアプリの話なら、ボタンクリックイベントを起こせばいいのでは。
0174デフォルトの名無しさん
NGNGんなわけねーだろと。
0175デフォルトの名無しさん
NGNGそのほうが確実ですね。
>>173
他アプリです。
ユーザがフォントを変えれるアプリだとボタンの相対座標が微妙にずれるので、
getpixelでスキャンして微調整してました。
0176デフォルトの名無しさん
NGNGVBでフォームからフォームへ変数(引数?)を渡すことはできますか?
form2.show
などとして開いたフォームにパラメータを与えたいのですが・・・。
0177デフォルトの名無しさん
NGNG一体なんのパラメータなのかも書かないでなにを逝って居るんだ?
だいたい、目的はなんだ?
0178デフォルトの名無しさん
NGNG------------------------------------------------
Form2
------------------------------------------------
Private m_strCD As String
Public Property Let PR_strCD(ByVal l_strCD As String)
m_strCD = l_strCD
End Property
------------------------------------------------
Form1
------------------------------------------------
Load Form2 '<-- 無くても動くけど書いた方が良い
Form2.PR_strCD = "001"
Form2.show
※注意する点としてはプロパティを渡す時点でForm2のForm_Load は既に通過しているという点
教えすぎ?
0179デフォルトの名無しさん
NGNG世界征服です。
0180デフォルトの名無しさん
NGNG“完全コンパイル後に開始”をしてから
アプリを終了して、VB6を終了しようと
すると、必ずアプリケーション・エラーが
起こります。
何が原因だと考えられるのでしょうか。
0181デフォルトの名無しさん
NGNGサンクス!
まさにこのような方法が知りたかったのです。
本当にありがとうございました。m(_ _)m
0182デフォルトの名無しさん
NGNG>※注意する点としてはプロパティを渡す時点でForm2のForm_Load は既に通過しているという点
これって、不要でないの? たとえフォームがloadされていなくても、変数のやり取りは可能だし、勝手にフォームもロードされない。
もちろんアンロードしても、渡した変数は初期化されない。(標準モジュールのモジュール変数と同様で、アプリ終了まで解放されない)
ちなみに下記のように動的に生成した場合なら、スコープが抜けたときに動的フォームそのものの情報がなくなる(内部変数も含む)ので、ダイアログを呼ぶときには便利。
dim lfrmForm as Form2
set lfrmForm = new Form2
lfrmForm .PR_strCD = "001"
lfrmForm.show
0183デフォルトの名無しさん
NGNGメンバ変数にアクセスすると、その時点で勝手にロードされるでしょ??
表示はされないけどさ。
>アプリ終了まで開放されない
って言うのも、
Set From2 = Nothing
ってしなければの話でしょ。
0184178
NGNG>これって、不要でないの?
たしかに理解できてる人には不要だけど、あなたのように理解できてない人の為に書いているのです
>>183 でも指摘してるように ロードされないという事はないです。
変数にセットした時点でForm_loadが呼ばれるからステップ実行してみなさい。
プロパティで渡したつもりの値をForm_loadで参照して「セットされてない・・・」という
状況になるのを避けるために書いただけです。
0185デフォルトの名無しさん
NGNGこんな初歩的なことしらない人が、>>177のリスト見ただけで
>サンクス!
>まさにこのような方法が知りたかったのです。
こうはならんだろうと思うのだが。。最近この手の知ってること敢えて聞く
寂しい「かまって君」多くないか?
0186デフォルトの名無しさん
NGNG玄人気取りですか。かっこいいですね。
0187デフォルトの名無しさん
NGNG> メンバ変数にアクセスすると、その時点で勝手にロードされるでしょ??
ロードされません。
> 変数にセットした時点でForm_loadが呼ばれるからステップ実行してみなさい。
見事に呼ばれません。実際にステップ実行してみましたか?
というかロードと、インスタンスの生成の違いを勉強してください。
フォームが勝手にロードされる条件は、
・フォーム自身のプロパティ・メソッドを参照した。
・フォーム上のコントロールを参照した。
場合のみです。
フォームにユーザーが作ったプロパティを
参照しただけではロードされません。
0188デフォルトの名無しさん
NGNG昔、そんなゾンビアプリを見たことある気がする。
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGロードしないよ。
フォーム = クラスなんで、
フォームのグローバル変数なんて言い方はおかしいけど。
>>189
理解できないだけでしょ。と煽りに煽り。
0191デフォルトの名無しさん
NGNGこのレベルの話しでそんなムキにならんでも。。
>>188
いや、だからForm2クラスのインスタンスはメモリに「ロード」されるんだけど、
その時点ではForm2クラスのインスタンスはVBの"Formクラス"を継承した
クラスのインスタンス(つまりそれが「フォーム」なんだけど)はロードしない、
ってことよ。
0192デフォルトの名無しさん
NGNG無理やり取り繕うとしても無駄。
> 変数にセットした時点でForm_loadが呼ばれるからステップ実行してみなさい。
Form_Loadが呼ばれると勘違いしていることから、
分かっていないのは明らか。
あと書いている文は意味不明。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGVBを本当に知っているのなら、「(フォームの)ロード」という言葉に
特別な意味があるのを知っているはずだろ?
0195191
NGNGなんか勘違いがあるような。わたしゃ178じゃないよ。>>185とは同一人物だけど。
0196デフォルトの名無しさん
NGNGえっ? ムキになっているのはあんたでは?
間違いをそのままにして置いたらダメでしょ。
なんで間違いを正したら、ムキになっているって逆切れするの?
0197デフォルトの名無しさん
NGNG> Load Form2 '<-- 無くても動くけど書いた方が良い
これは無くてよい。
> 変数にセットした時点でForm_loadが呼ばれるからステップ実行してみなさい。
変数にセットしてもForm_loadは呼ばれない。
>>178は馬鹿ということで終了ですね。
0198191
NGNG>これは無くてよい。
いや、不適切だけど何も書かないより遥かにマシでしょう。
0199デフォルトの名無しさん
NGNG0200178
NGNGどうやら間違った知識を会社で教えられていたみたいです...
先輩の馬鹿ー
0201デフォルトの名無しさん
NGNG動作が違う。
書かない場合は、
「プロパティの初期化」→「フォームのロード」「フォームの表示」
という順番だが、
書いた場合は、
「フォームのロード」→「プロパティの初期化」「フォームの表示」
という順番になる。
フォームのロードになにも書いてない場合は問題ないが、
フォームのロードでプロパティの値を参照すると違うことになる。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGプログラマなら与えられた情報の裏も取らずにそのまま信じるのは気をつけようね。
0204191
NGNGこの人が何言いたいのか分からないのですが、
だれか解説して。。
参照によるインスタンスの暗黙の生成を許せるかどうか、って話しが
なんで>>201みたいな話しになるのか。。
0205デフォルトの名無しさん
NGNGフォームクラスのインスタンスが作成されたときに発生する
Class_Initializeと同じようなもの
Form_Load
フォーム上のコントロールやフォームのCaptionなどを触ったりして
フォームがロード(CreateWindow?)されたときに発生する
・・・という解釈でいいのかな?
0206デフォルトの名無しさん
NGNGVBはなんにも考えずにお手軽にできるところがイヤ。
0207デフォルトの名無しさん
NGNG> Load Form2 '<-- 無くても動くけど書いた方が良い
> Form2.PR_strCD = "001"
> Form2.show
こうなら間違いではないんだけどね。
(俺は書いたほうが良いとは思わないけど、好みの範疇)
Form2.PR_strCD = "001"
Load Form2 '<-- 無くても動くけど書いた方が良い
Form2.show
もしくはコメントを変かえて、こういう目的なら問題ない。
何のためにForm_Loadを発生させるのかはすぐには思いつかんけど。
初期化とかならForm_LoadじゃなくてForm_Initializeでやればいいし。
Load Form2 '<-- プロパティの設定の前にForm_Load発生させるため。
Form2.PR_strCD = "001"
Form2.show
0208デフォルトの名無しさん
NGNGその前におまえが言ったこと(>>191)を説明したらどうよ?
> 参照によるインスタンスの暗黙の生成を許せるかどうか、って話しが
> なんで>>201みたいな話しになるのか。。
そんな話してないしw
0209デフォルトの名無しさん
NGNGOK。
VBではフォームに対して単にロードというメモリにロードじゃなくて
Form_Loadを発生させてGUIを管理し始めることだと思われやすいので注意。
0210デフォルトの名無しさん
NGNG誰か確認するのが面倒だからしないけど、誰かの言ったとおり。
自分で追加したプロパティにアクセス
-> Initializeは通るけどLoadは通らず
元からフォームの持つプロパティ、あるいはコントロールのプロパティにアクセス
->InitializeもLoadも通る。
ややこしいなぁ。
初心者にはきついよな。
型名で暗黙的に作成されている変数ってのは便利だけどややこしいな。
0211デフォルトの名無しさん
NGNGでも、RADしたいならVB。
0212デフォルトの名無しさん
NGNG> 自分で追加したプロパティにアクセス
> -> Initializeは通るけどLoadは通らず
これって、本当か?
漏れはformオブジェクトのInitializeイベントは、EXE起動時の全フォーム作成時、
あるいは動的フォーム生成時のSet lform = New Formするときだけだと思ってたぞ。
0213デフォルトの名無しさん
NGNGごちゃごちゃ言わんと試せと言うことで。
0214178
NGNG確かに他人のソースを見ていたときに見たことがあった現象なので
思い出してみました。
以下のようにすると確かにForm_Loadが呼ばれます。
Form2にTextBoxを配置、名前をText1とする
----------
Form1
----------
Form2.text1.text = "123" ’←いきなり値をセットするとForm_Loadが呼ばれる
Form2.show
これを間違って記憶していて、
値をセットする→Form_Loadが呼ばれると覚えていてしまったようです。
普段はPropertyを使うのでこういった作りはしませんが、他人のソースを見ていると時々見ます。
0215デフォルトの名無しさん
NGNG呼ぶ側のコードで、それがロードされるのかそうでないか、判断できない場合が多いしね。
フォームにロードしないで初期化するメソッド作ったり、呼び方に一定のルール持たせたり、
チーム内でのローカルルール決めとかないと、これの勘違いに起因するつまらないバグ
なんかが出てくるから、割と注意しなきゃいけない個所だね。
0216デフォルトの名無しさん
NGNG参照を使ったアクセスにすべき。
というかうちの先輩社員、Form1というフォーム上のコードで、
Me.captionとForm1.captionの区別を付けていなかった。
多分、今でも同じだと思っているはず・・・、もうちょい勉強して欲しい。
0217デフォルトの名無しさん
NGNG回しにしたり、関数同士が癒着してたり。初めて見たときに頭痛くなった。
DOS時代のコードは捨てて作り直せよぅ。と泣きそうになりながら思った。
0218デフォルトの名無しさん
NGNG触りに行くやついるなぁ。
そっちはもうひたすら勘弁してくれって感じだ_| ̄|○
0219デフォルトの名無しさん
NGNGOption Explicitみたいに暗黙の宣言を無しにできる
オプションがあれば良いのにな。
0220デフォルトの名無しさん
NGNG>>216
インスタンスをべつに作らなきゃ問題ないじゃん
Form1なんて名前付けてるだけに、Form1しか使ってないんだろ?
>>217
別フォームのコントロール直接見に行かないでメソッド作ってやるわけ?
設計書かかなきゃだめじゃん。みんな書きたくないのに
グローバル変数たらいまわし、まさにグローバルじゃん
>>218
そこまで言うなら、初期化時もさわっちゃだめじゃん
>>219
暗黙の宣言しようがしまいが、変数の名前問題は常についてまわるじゃん
変数使わなきゃいいんじゃん
って思う俺は相当VBにいかれてるんでしょうか
0221デフォルトの名無しさん
NGNG> って思う俺は相当VBにいかれてるんでしょうか
お前がいかれているだけ。VBは関係ない。
0222デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG後で再びバイト配列に展開したいんだが
そのまま代入すると一部値が変化してしまう
今は1バイト毎の二文字の16進を連結しとるが
他にいい方法あれば教えてくれ
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGそれが一番安全なんでは?
領域がもったいなければ、Basel64とかもあるけど。
unicodeにしろ何にしろ、禁止されたコードというのは存在しうるし、
そいういうのを使ったときの可逆性は保証できない。
0228デフォルトの名無しさん
NGNGユーザーの再ログオンをアプリ側で検出したいのですが、
何か方法はないでしょうか?
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG同じようなことやるアプリ書いたことがあってちょっと不安になったんで
下のコードでやってみたけど、別に化けたりしないよ。
変なところで余計なStrConvとかかましてるんじゃない?
Private Sub Form_Load()
Dim Source(255) As Byte
Dim Destination() As Byte
Dim Temp As String
Dim i As Long
For i = 0 To 255
Source(i) = i
Next i
Temp = Source
Destination = Temp
For i = 0 To UBound(Destination)
List1.AddItem Destination(i)
Next i
End Sub
0231デフォルトの名無しさん
NGNGUNICODE文字列にマップできないバイト列を渡すと化けたはず。
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGSPYでメッセージ取りまくれ
0234デフォルトの名無しさん
NGNGCCEのことか?
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=1ceb1b0d-24ac-4c66-bf45-0c79aa500c22&DisplayLang=ja
前スレでも同じ質問が出てたし、学習用としても便利だから、次のテンプレに入れてはどうか。
0236デフォルトの名無しさん
NGNGありがとうございます
0237デフォルトの名無しさん
NGNGたとえばF1を押すと
波動拳コマンドというようにするにはどういうAPIを使用すればよいでしょうか?
よろしくおねがいします
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGどうやったら良いかわかりません。
Shell関数だと、プロセスIDしか取得出来ませんし。。。
Cなら出来ると聞いたのですが・・・
どなたかご存でしたらご教授下さい。
0240デフォルトの名無しさん
NGNGbatに戻り値あったっけ。忘れたな。
多重実行だの排他とか無ければbatで環境変数やファイルに値をつっこむのもありかな。
0241デフォルトの名無しさん
NGNGGetExitCodeProcess で実行中か終了したかわかるし、終了コードも取得可
0242デフォルトの名無しさん
NGNGレスありがとうございます。
>多重実行だの排他とか無ければbatで環境変数やファイルに値をつっこむのもありかな。
環境変数に入れた値をVBで取得するにはどうしたら良いのでしょうか?
0243デフォルトの名無しさん
NGNGVB6でVBレポートを使用して作成しました。
セットアップウィザードでXlsReport.dllはセットアップすることにしました(当然)。
それだけでは、帳票は出ませんでした。Excelをセットアップしたら印刷できるように
なりましたが。Excelをセットアップしないでもよい方法はないでしょうか?
Excelは、必須なのでしょうか?
0244デフォルトの名無しさん
NGNGアドバイスありがとうございます。
CreateProcessは初めて知りました。
でもバッチファイル内に複数のコマンドを書いていますので、
今回は無理なようです。
でも参考になりました。
0245デフォルトの名無しさん
NGNGEnviron
0246デフォルトの名無しさん
NGNGローカル変数のようにバッチファイル内でしか影響を与えないから意味ないよ。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGVBでOSに戻り値を返すプログラムは一応作れるけどね。
激しく推奨されてないけど。
0249デフォルトの名無しさん
NGNGVB6.0でアプリケーションを作っているのですが、
VB6.0内で「実行」なり「完全コンパイル後に〜」なりは問題なく行えるのですが、
EXEファイルを作成してそれを実行しようとすると、一瞬画面が表示されてすぐ消えてしまいます。
ためしに適当なものをつくって同じようにEXEファイルを作成・実行してみたら、そっちは
問題なく起動できるのですが・・・。
メモリ確保などの問題かなとも思ったのですが、そんなに大きなものでもないので。
よろしくおねがいします。
0250デフォルトの名無しさん
NGNG環境依存のパスを使ってるとか
0251デフォルトの名無しさん
NGNG起動時に通るロジックで
unload me とかしてる箇所全てにMSGBOXでメッセージを出すようにする。
当然メッセージの内容は全部変えておく。 連番とか
↓
EXEファイル作成して実行してみてメッセージが出たら・・・
0252デフォルトの名無しさん
NGNGLoad Form1
Form1.Show
Unload Form1
End Sub
時々、これ系の間違いをするときあるなぁ。
0253デフォルトの名無しさん
NGNGテキストファイルを Line Input #1 , strTest で読み込み、strTestの中のタブ文字を半角スペースに
変換したいのですが、どうしても位置がずれてしまいます。見た目の位置が変わらないように、タブ文字を
半角スペースに変換するにはどうすればよいのでしょうか。
0254デフォルトの名無しさん
NGNGRegSetValueEXでレジストリにバイナリの値を書き込む時に
String型の変数にchr(&h**)と一旦入れ、その文字列を書き込んでいます。
これは条件によって書き込む値の長さや値自体が変わる為、こう処理しました。
しかし、&hE0を入れると、その値だけ00となっています。
他の値ではSetできるのですが、E0を書き込む事だけができません。
回避策としてはstring型の文字列に入れないことだとは思うのですが
レジストリにバイナリ型で書き出すときはどういう処理が適切でしょうか?
よろしくお願いします。
0255デフォルトの名無しさん
NGNG何に対しての見た目の位置か?
TEXTBOXで表示?ファイル内のTABを半角に置換したファイルを他のエディタで読んだ場合?
0256デフォルトの名無しさん
NGNGByte型を使わずにやれってことか?
0257デフォルトの名無しさん
NGNGフォントとフォントサイズにもよるからなあ
0258デフォルトの名無しさん
NGNGどちらかと言えば後者ですね。例えば、テキストエディタ上で100文字に見えるタブを含む文字列を、
タブを半角スペースに変換して出力し、同じテキストエディタで全く同じように見えるようにするという感じ。
実際には、読み込んだデータを固定長として扱い、その内何文字目から何文字目を抽出する・・・・・
と言った処理を行っています。
0259253
NGNG0260デフォルトの名無しさん
NGNGなんというか、直接「E0」を書き込みたいのですが、一旦String型変数に
WriteCode = chr(&hA0) & chr(&hE0)
のような形で入れています。
それをBINARY型の値を作って放り込む、という面倒な事をしています。
もっと楽にできそうなのですが、試してみるとデータ型の違いでエラーを吐くもので。
0261デフォルトの名無しさん
NGNGバイナリで読み込んで、タブ文字をスペース4(8?)に置換しても駄目なの?
そもそも、その見た目は表示するエディタがTABをどう表示するかの問題では。
0262249
NGNG回答ありがとうございます。
作ったアプリには、ひとつもUNLOADを指定していないのですが
もしかしたらそれがやばいのでしょうか・・・。
こちらでもいろいろためしてみたところ、他に起動しているプログラムを
終了させてから実行したところ、問題なく動作確認できました。
やはりメモリの問題なのでしょうか・・・。
EXEファイル作成の際、あらかじめメモリ領域を確保するように設定することなどは
できるものなのでしょうか。
すみませんがよろしくおねがいします。
0263デフォルトの名無しさん
NGNGやり方が悪いんじゃないかなぁ。1文字ずつ読み込んで処理してったら普通にできたよ。
タブ位置の計算方法間違ってんじゃない?
0264デフォルトの名無しさん
NGNG以下のコードはヘルプから抜粋ですが、一度のExecuteで
3フィールド(同一レコード)をUPDATEしたいのですが
SET 以降のフィールド=更新値の区切りをどうすればいいでしょうか?
Sub UpdateX()
Dim dbs As Database
Dim qdf As QueryDef
' この下の行を、使用しているコンピュータ上の
' Northwind のパスに変更してください。
Set dbs = OpenDatabase("Northwind.mdb")
' 社員のレコードで現在 2 に設定されている
' ReportsTo フィールドの値をすべて
' 5 に変更します。
dbs.Execute "UPDATE Employees " _
& "SET ReportsTo = 5 " _
& "WHERE ReportsTo = 2;"
dbs.Close
End Sub
0265デフォルトの名無しさん
NGNGOSは何使ってんの?win9x系か?
0266デフォルトの名無しさん
NGNG"," で区切れ。
0267デフォルトの名無しさん
NGNGせめて本屋でSQL入門買うか、ネット上でSQL入門のページを見つけてから聞いてくれ。
聞いてる内容がいろはのいの一画目ぐらいだぞ。
0268デフォルトの名無しさん
NGNGだって、本代とかネット接続料金がもったいないじゃん。
しかも質問に答えてないし、これぐらいサクッと答えろよ。クズ
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGありがとうございました やってみます
>>267
すみません緊急をようしましたので
甘えた質問をさせてもらいました。
前にトピックで聞いたら鬼のように叩かれてしまいまして。。。。
0271デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG今SetWindowPosで常に手前に置いてる状態なんですが、使用するプログラムがOS上でアクティブな場合にだけ
発動してほしいんです。
お願いします。
0275デフォルトの名無しさん
NGNG普通はそのプログラムがアクティブなら手前にウインドウが表示されるだろ?
0276デフォルトの名無しさん
NGNG何が言いたいのかがわからないっす。
OS上でアクティブってどういうこと?普通に取ったら対象アプリを使用している状態だよね。
それならば普通に常に手前に来ると思うけど。
アクティブなのに背面に行くのは、他のアプリがSetWindowsPosで前に来てるからじゃないの?
0277デフォルトの名無しさん
NGNGアクティブになったら、他のウインドウ(常に手前になっている奴も含む)
よりも前に出したいということか。
プログラムがアクティブになる状態ってのはサブクラス化して直接
ウインドウメッセージを処理しなきゃならないと思う。
0278264
NGNG無事動きました。
取り急ぎご報告まで
0279デフォルトの名無しさん
NGNG早い回答ありがとうございます。
文脈変ですいません。わかり辛かったですね。
やっぱりサブクラス化しないと駄目ですね。
ありがとうございました。
0280デフォルトの名無しさん
NGNGWin98とMEでは動くんですが・・・・
Win2000だとrun-time error429と表示されてしまいます。
VBのバージョンや作成環境はわかりません。
何かヒントがあったら教えてもらえないでしょうか。
0281デフォルトの名無しさん
NGNG現在、VB6で以下のような処理を行っています。
1.印刷データを生成
2.印刷データをプリンタへ出力
3.出力先プリンタをPDFライターに切り替える。
(レジストリ操作)
4.印刷データをPDFへ出力
5.終了
(PDFとプリンタに出力している情報は同一です)
以上の4の部分へ移ったときにエラー448となり、PDFに出力されません。
デフォルトプリンタ切り替えが終わる前に、
プリンタ出力を行ってエラーとなっているのではと
疑っていますが、スマートな解決策が思い浮かびません。
やはり素直にウェイトをいれるほうがよいのでしょうか?
ご教授おねがいします。
0282281
NGNGOSは2000及び98になります。
0283281
NGNG3のレジストリ操作でPDFのファイル名も指定しています。
0285デフォルトの名無しさん
NGNGそもそもプリンタ切りかえるのにレジストリ操作ってのが意味不明な気が。
もう旧VB1年以上触ってないんで自信ないけど、
プリンタオブジェクトのコレクション(たしかPrinters)のから、名前が一致する
プリンタオブジェクトを探せばいいんじゃないの?
0286デフォルトの名無しさん
NGNG429は「ActiveXコンポーネントはオブジェクトを生成できません」
だな。
Excel必須なアプリなのにExcel入ってないとか、そんな感じだろう。
何かDLLが足りないんだよ。
何かまではわからん。
>>249
別にUnloadの前だけじゃなくてそこらじゅうにメッセージボックス
貼り付けてみたら?
0287デフォルトの名無しさん
NGNGOS書いてないけど、プリンタ切り替えが有効にならないのはFAQ
0288デフォルトの名無しさん
NGNG何をしたいのかわからん。
普通プリンタ選んでから出力だろ。
Printersオブジェクトとか使おうよ。
0289249
NGNGお返事ありがとうございます。
ためしに一番最初に実行されるLOADのところにMSGBOXをはりつけてみたところ、
一瞬メッセージボックスが現れ、OKを押すまえにプログラムが終了されてしまいます。
この自作のプログラムはとあるひとつの大きなソフトの補助的なもので、
(二つのプログラム間でのやり取りはありません)
できればその大きなソフトと同時に起動していたいのですが、
そのソフトを起動していると上記のような現象がおき、
ソフトを終了させると問題なく自作プログラムを起動できます。
タスクマネージャでそのソフトの使用メモリ量を調べてみるととんでもなく膨大で(約270MB)、
こちらの勝手な予想ですがそれが問題ではないかと踏んでいます。
そのソフト自体は市販のものなのでこちらではどうすることもできないので、
自作のほうでちゃんと確保してやる必要があるのかなぁ、、、と。
今までこのような現象が起きたというかたも少なそうですが、
ご意見お伺いしたいです・・・。
0290デフォルトの名無しさん
NGNGたとえばそれがゲームだとして、あなたが作ったソフトはチートソフトと思われているとか。
他のアプリの起動を阻害する何かが入ってるんじゃないかねぇ。
270Mのメモリを使用するソフトが横にいたからといって、起動するなり死亡なんて
事は無い。
起動する前にメモリを確保しておくなんて事もできないし、できる必要も無い。
0292291
NGNGとくに98系ならかなり可能性が高いと、
0293デフォルトの名無しさん
NGNG>>284
0294249
NGNGお返事ありがとうございます。
なるほど、殺されている可能性もありますね・・・。
たしかに、自作プログラムをたちあげておいて、ソフトを起動してみると
途中で消されてしまいます。
しかし、起動が無事できるプログラムもある(たとえば初心者用のテキストにのっている
簡単な電卓プログラムなど)ので、
いろいろと試行錯誤してみようと思います。
やろうとしていることはそんなに大したことではないので・・・。
長々とお付き合いいただき、ありがとうございました(_ _)。
0295デフォルトの名無しさん
NGNGなんか「サポセン」に載ってるアホな客みたい。
ただ「動かない、動かない!」じゃ、なんのアドバイスもしようがないでしょ。
特殊なケースについて聞いてるんだから、最低ターゲットのアプリは具体的に何かとか、
自作アプリはどういう処理をしているかとか書かなきゃ答えは得られないんじゃないの?
0296デフォルトの名無しさん
NGNGdim Data() as Byte
fot i = 0 to 9
Data(i) = 1
next i
RegOpenKeyEx(Rootkey, Subkey, 0, 2, nHandle)
RegSetValueEx(nHandle, KeyName, 0, REG_BINARY, Data, i + 1)
だとRegSetValueEXの行で「型が一致しません」、と出ます。
RegSetValueEXのバイナリ値のSetを使用しているソースを探したのですが
同じような記述しか見つかりませんでした。
バイナリはどう設定すればいいのでしょうか?
0297デフォルトの名無しさん
NGNGAPIの定義はどうなってるの?
as Byteの配列にするか、as Anyの配列とかにしてる?
0298デフォルトの名無しさん
NGNGPublic Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Any, ByVal cbData As Long) As Long
というように定義してあります。
上記の状態でString値は書き込めるので、lpData以外に変更が必要な所ってありますか?
0299デフォルトの名無しさん
NGNGByVal lpData As Any
これを
ByRef lpData As Any か、ByRef lpData As byte に変えて、
コールする時に次のように配列の最初の要素を渡してやったらどう?
RegSetValueEx(nHandle, KeyName, 0, REG_BINARY, Data(0), i + 1)
0301デフォルトの名無しさん
NGNGどうしたらいいでしょか?
0302デフォルトの名無しさん
NGNG開発環境においてなのか、既に稼動してる環境に対してなのか?
何から何にバージョンを上げるのか?
質問になってない質問が最近多いよな。
0303デフォルトの名無しさん
NGNGhttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c
0305デフォルトの名無しさん
NGNGオブジェクトが多いので、オブジェクト数を減らすために別フォームにしたのですが、
使い勝手が悪いので、フォーム上にフォームを貼り付けることが出来れば色々
都合がいいのですが、可能でしょぅか?
0306デフォルトの名無しさん
NGNGMDIにしたら?
0307デフォルトの名無しさん
NGNGユーザーコントロールにしてしまえばいいのでわ
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGノートPCで作成していた、VB6の自作コードを新しいデスクPCにコピーして実行したところ、
ノートPCの時は問題なく動作していたプログラムが『メモリが不足しています』という
エラーメッセージで動いてくれません。
コードの改変は一切行っていないのに・・・、何度実行しても同じ理由でアウトです。
(※試しにノートPCで再度実行したところ、きっちり動作するのですが)
ちなみにPCのスペックはそれぞれ以下のとおりです。
ノート→ メモリ:128MB HDD: 30GB CPU:Pen3 1.13GHz OS:XP Pro
デスク→ メモリ:512MB HDD:120GB CPU:Pen4 2.80GHz OS:XP Pro
メモリが足りないということは、どう考えてもあり得ないと思うのですが・・・。
どなたか原因が分かる方、教授して下さい。よろしくお願いします。
0310デフォルトの名無しさん
NGNG何でエラーでてんの?
ソースあるんでしょ?
ステップ実行して未りゃ分かるんちゃうの。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGバグありだけど一応動くみたいだ。
IDE上でフォント切り替えトラブルが、漏れ的には許せないがな。
ttp://www.microsoft.com/japan/msdn/vs_previous/vstudio/techinfo/toolos.htm
0313デフォルトの名無しさん
NGNGフルパスで指定しているとかそういうことしてたときに
空ファイル読んでしまってエラーでたり。。。
# 確か、strconvかsplitでメモリが足りませんって出ることが
0314デフォルトの名無しさん
NGNG>>310
ステップ実行してみても原因不明、コードそのものに誤りはないはず。
(ノートPCでは動作するので)
>>313
strconv も split も使ってません。
まったく原因不明だす。氏のう。
0315デフォルトの名無しさん
NGNG偶然とは思えないんだが。
ひょっとしてVBのソフトはランタイムやocxレジストリに登録されてないと動かない、
なんて基本的なことを知らないんじゃないの?
0316デフォルトの名無しさん
NGNGどなたかこんな初心者道まっしぐらの漏れに温かい救いの手を・・・
とりあえず特定アドレスの値を新たな値で「上書き」する関数は出来てます。
open 〜 For Binary As FileNumber の後
getで配列にぶっこんでおいて、書き換え位置の配列の値を直接書き換えて、
元のファイルをKillした後に新たに置き換えたファイルをputしてるんだけど、
やっぱ挿入位置の後の配列を全部+1する手しかないでしょうか? _| ̄|○
激しく長文でスマソ
0317デフォルトの名無しさん
NGNG>ステップ実行してみても原因不明、コードそのものに誤りはないはず。
なんていう関数で出てるかここでいってくれればいいじゃん、
ってかなんでそれを言わないの?
デバッグ環境じゃ出ないの?
わざと情報隠してるとしか思えない。
これ読んでこいや
http://www.redout.net/data/osietekun.html
0318デフォルトの名無しさん
NGNGひとつづつずらすのは嫌なの?
きわめて普通なやりかたやとおもうけど。
Byte型の配列ってLeftBとか使えたような気もするから、
それでうまいことできるかもしれんけどなー
0320デフォルトの名無しさん
NGNGPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Function JoinByteArray(ByRef bytArray1() As Byte, ByRef bytArray2() As Byte) As Byte()
Dim bytTemp() As Byte, lngUbound1 As Long, lngUbound2 As Long, i As Long
lngUbound1 = UBound(bytArray1())
lngUbound2 = UBound(bytArray2())
ReDim bytTemp(lngUbound1 + 1 + lngUbound2)
Call CopyMemory(bytTemp(0), bytArray1(0), lngUbound1 + 1)
Call CopyMemory(bytTemp(lngUbound1 + 1), bytArray2(0), lngUbound2 + 1)
JoinByteArray = bytTemp
End Function
参考までに。(たぶん、動く。)
0321デフォルトの名無しさん
NGNG格納できる便利だなぁ・・・と思いまして・・・
0322デフォルトの名無しさん
NGNGSetParent(Form2.hWnd, Me.hWnd)とかw
0323デフォルトの名無しさん
NGNGできるよ
0324デフォルトの名無しさん
NGNGリソースとして追加するとか
0326デフォルトの名無しさん
NGNGなにかいい方法はないでしょうか...exit do とかではないです
C言語でいうwhile とcontinueの関係なんです
0327デフォルトの名無しさん
NGNGgoto
0329デフォルトの名無しさん
NGNG上の人とは違うけど
>ひょっとしてVBのソフトはランタイムやocxレジストリに登録されてないと動かない
って説明のあるところを教えてください。
MSDNのこの場所とか言うのでも構いません。
orこの言葉でMSDN検索しろって言うものでもいいです。
0330デフォルトの名無しさん
NGNGあ・・・
ランタイム ocx レジストリ でMSDN検索したら
実行可能ファイル (.EXE) の作成、実行、配布 ってところで出てきた・・・
でもこれってファイルがありませんって事はあってもメモリ不足とか表示されるもんだろうか?
0331VB初心者 ◆wxqClswUC2
NGNG「aaa」という文字を表示させたいときに
SWC.Text = "aaa"
とするとエラーが発生するんですがなぜでしょうか
0332デフォルトの名無しさん
NGNGエラー内容すら書けないのか
0333VB初心者 ◆wxqClswUC2
NGNGコンパイルエラー:
メソッドまたはデータ メンバが見つかりません。
0334デフォルトの名無しさん
NGNGSWCってのはどうやって作ったの?
0335VB初心者 ◆wxqClswUC2
NGNG0336デフォルトの名無しさん
NGNG別のフォームなどからSWCをいじろうとしているとか
0337VB初心者 ◆wxqClswUC2
NGNG0338デフォルトの名無しさん
NGNGおいおい。何が原因だったんだよ
単なる釣りか。
0339デフォルトの名無しさん
NGNGそこで、VBでVC++のmallocと同じようにメモリを取得するらしいGlobalAllocを使って、
実現しようとしたところ、どうしてもうまくいきません。CopyMemoryがメモリを荒らしてくれます。
以下にソースを載せます。何か悪いことをしているところがあるでしょうか?
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function GlobalAlloc Lib "kernel32" (ByVal Flags As Long, ByVal Size As Long) As Long
Public Declare Function GlobalFree Lib "kernel32" (ByVal Mem As Long) As Long
Public Const GMEM_FIXED = 0
Dim pc1 As Long, pc2 As Long
pc1 = GlobalAlloc(GMEM_FIXED, 10 * 4)
pc2 = GlobalAlloc(GMEM_FIXED, 10 * 4)
CopyMemory pc1, pc2, 10 * 4
GlobalFree pc1
GlobalFree pc2
【最終的にやりたいこと】
VBで確保したメモリをVC++で作成したDLLで参照したい。
どなたかご存知の方、教えていただけないでしょうか?
0340デフォルトの名無しさん
NGNGGlobalLock/UnLockくらいは使おうね
0341デフォルトの名無しさん
NGNG俺はReDimで問題なくVCのDLLに渡せてるぞ?
どんなやり方してるんだ
0342デフォルトの名無しさん
NGNGまぁ、いったん要素数を1にしないといけないと思うけど。
0343デフォルトの名無しさん
NGNGByRef hoge as Any で普通に渡せるぞ。
biteArray(0)を渡すのがミソ
0344デフォルトの名無しさん
NGNGで byteArray(0)を渡すって言うのは
ってのは
ByVal hoge as Long
でVarPtr(byteArray(0))を渡すのと等値です。
0345デフォルトの名無しさん
NGNGByRef と ByVal の違いについても調べた方がよろしかと
0346デフォルトの名無しさん
NGNG同じパスにあるa.datを読み取って
中身は
山田
佐藤
武田
だとします
それでメニューの中の
人物リスト
・・・山田
・・・佐藤
・・・武田
みたいなことをしたいのですが可能でしょうか・・・
可能ならばメニューに追加する方法だけでいいので
教えていただけないでしょうか・・・
0347デフォルトの名無しさん
NGNGあなたのレベルがわからんのですが・・・
ファイル読み込み
dim strName() as string
dim i as long
Open App.Path + "\" + ファイル名 For Input As #1
do while (EOF(1) = false)
redim Preserve strName(i)
Line Input #1, strName(i)
i = i + 1
loop
Close #1
まぁこんな感じ。
メニューに入れるのは
For i=0 to ubound(strName)
if i <> 0 then
load mnuName(i)
mnuName(i).Visible = True
mnuName(i).Caption = strName(i)
Endif
Next
こんな感じ。
あらかじめmnuName ってのを作っておいて、
そのとき「インデックス」ってのに0を入れるのを忘れずに。
0348デフォルトの名無しさん
NGNGif i <> 0 then
load mnuName(i)
mnuName(i).Visible = True
Endif
mnuName(i).Caption = strName(i)
Next
こうだろ
0349デフォルトの名無しさん
NGNGありがとうございます!!
無事できました!!!
このスレの人たちって優しいですね
0350デフォルトの名無しさん
NGNGなにも気にせずレスしてたがよく考えてみると矛盾があるぞ。
CopyMemoryAPIの使用方法・・・
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
の場合は、CopyMemory(コピー先の変数, コピー元の変数, コピーバイト数)
でもってGlobalAllocでかえってくるLongは"変数のアドレス"
これじゃうまく動かないどころかpc1で取得したメモリがメモリリークを、、、
変更例は
Public Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Long, Source As Long, ByVal Length As Long)
Public Declare Function GlobalAlloc Lib "kernel32" (ByVal Flags As Long, ByVal Size As Long) As Long
Public Declare Function GlobalFree Lib "kernel32" (ByVal Mem As Long) As Long
Public Const GMEM_FIXED = 0
Dim pc1 As Long, pc2 As Long
pc1 = GlobalAlloc(GMEM_FIXED, 10 * 4)
pc2 = GlobalAlloc(GMEM_FIXED, 10 * 4)
MoveMemory pc1, pc2, 10 * 4
GlobalFree pc1
GlobalFree pc2
一例なだけだけど。
0351デフォルトの名無しさん
NGNGもちつけ
0352デフォルトの名無しさん
NGNGサブクラス化してWM_EraseBkGnd無視したり、SetWindowLongでWS_EX_TRANSPARENT追加したりしたんですが、
なかなか出来ないです(´д`;)
誰かやり方解る方いたら、よろしくお願いします
0353デフォルトの名無しさん
NGNG339のCopyMemoryの呼び出しを、
CopyMemory ByVal pc1, ByVal pc2, 10*4
にするのが良いと思うけど。
339はうまく動かない気がするが、問題はByValかByRefなのかなので、350もおかしい。
0354デフォルトの名無しさん
NGNG背景をピクチャボックスにコピーしちゃダメなのか。
0355デフォルトの名無しさん
NGNGレイヤーみたいな感じで使いたいんです・・・
前はTransparentBltとか使ってやってたんですが、
画像サイズが大きくなるにつれて転送の処理が重くなってくるので、PictureBoxに直に描画させたかったんです
0356デフォルトの名無しさん
NGNGPictureBox上に Lineとかで描画した結果のイメージを
そのまま印刷 もしくは 画像として保存したいのだけど
何か方法あるでしょうか?
0357デフォルトの名無しさん
NGNGフォンノイマン型コンピュータの仕組みを概念的にでも知っているか、
アセンブラでコード書いたことがあれば、別にたいして理解むずかしくないんだけど
いまどきそんな実入りの少ない回り道する人いないからなあ。
0358デフォルトの名無しさん
NGNGBMP保存で良いなら、SavePictureで行けるんじゃない?
0359デフォルトの名無しさん
NGNGリージョンという手もないことはないけどお奨めしない。
UserControlの背景透過でどうにかならないかな?
0360デフォルトの名無しさん
NGNGレイヤーにしたいんだったら見えないピクチャボックスを用意しておいて
それぞれのレイヤーの描画はそれに対して行うようにして、
表示だけ合成すればいいじゃん。
手で書くときはその表示用の奴と、見えない対応レイヤピクチャボックス
両方書き込むようにしておいて、レイや切り替えとかのときだけ合成
するようにすれば割と軽いんではないか。
0361デフォルトの名無しさん
NGNG一番上のレイヤーのみが変更(手で書く)の対象になるなら、それでいいだろうけど。
そうとは限らない場合が多いんじゃないか?
だからといって良い方法を思いついたわけでもないんだけど・・・
もし「手で書く」の意味が違ってたらごめん
0362デフォルトの名無しさん
NGNG>>359
先ほどUserControlをフォームに貼り付けて使ってみたんですが、
BackStyleを透明にするとイベントが受け取れません(ノДT)
色々やってるんですが、よくわからなかったです・・・
>>360
それでも良いんですが、下のレイヤーに描こうとすると上手く行かないんです・・・
0363361
NGNGって話なんだよね(?)。変なこと書いてごめん
とりあえず、359が書いてる方法でできないか試してみて、
だめだったら転送範囲をクリッピングようにするしかないんじゃない?
面倒くさいと思うけど
0364デフォルトの名無しさん
NGNG処理が速いPCではそうでも無いらしいんですが、私のPCは低スペックなもので・・・(´д`;)
とりあえず今は>>359の方法で色々やってみています。
どうしても出来なかったら転送範囲指定で・・・
0365デフォルトの名無しさん
NGNG360が書いてある方法は最上面に描くのであれば普通の描画の倍の
時間しかからないわけで、そんなに遅いとは思えんけど。
途中のレイヤを編集するときも、レイヤ選択時に合成用の上レイヤ
も作成してもっておくようにすれば、合成用上レイヤのみを合成コピー
すればいいんだしそんなに重くないと思うけどなぁ・・・
・描画用バックグラウンドとレイヤピクチャボックスに描画
・描画用バックグラウンドに合成用上レイヤを合成
・必要な部分だけ描画用バックグラウンドを転送
・・・ちょっと遅いかな
リージョンができるんならいいけど、結構だるいよ。
リークとかやりがちだし。不定形リージョン作成させるのもビットマップ
解析で時間喰うと思うけどなぁ。
0366361
NGNG編集中より上のレイヤをあらかじめ合成しておけば速くなりますね。
勉強になりました。
0367デフォルトの名無しさん
NGNGなるほど、そういう事ですか・・・
後でその方法で試してみます。
今は>>359のUserControlを使う方で試してみてます。
リージョン作成の方法はまだやった事ないですね・・・
0368デフォルトの名無しさん
NGNGUserControlの後ろにPictureBoxでも配置してそこでイベントを拾う…
やっぱり美しくないかな
0369デフォルトの名無しさん
NGNGフォンノイマンコンピュータにポインタって必須だったっけか?
プログラムカウンタは文字通りカウンタで実装できるしな。
と、吊られず頑張った同志達の思いを無にするテスト。
0370デフォルトの名無しさん
NGNGその辺は大丈夫か。
0371デフォルトの名無しさん
NGNGRADで作れる物を作るときに低級言語を「使う」のは無駄だが。
「学ぶ」と「使う」は違う。学ぶ低級言語。使う高級言語。
0372デフォルトの名無しさん
NGNG手段と目的がごっちゃになってませんか?それって。
0373デフォルトの名無しさん
NGNGなってませんよ。
コンピュータの基礎知識を勉強するという目的には
低級言語を学ぶという手段が最適です。
0374デフォルトの名無しさん
NGNGその通りです。
だからと言ってVBでちゃっちゃと物作れと指示したのに、おもむろにアセンブラを勉強しだしたらあなたはキレるのでしょう?
0375デフォルトの名無しさん
NGNG> だからと言ってVBでちゃっちゃと物作れと指示したのに、おもむろにアセンブラを勉強しだしたらあなたはキレるのでしょう?
あたりまえでしょ?
誰がVBで仕事をする時にアセンブラを勉強しろといいましたか?
0376デフォルトの名無しさん
NGNGそのニュアンスで書いたのにあなたが突っかかってきたんですよ。
0377375
NGNGそもそも、物を作るという目的が勉強する目的に変わってるしw
目的ははっきりさせないといけないよ。
勉強するのが目的のときは低級言語とか勉強する。
作るのが目的のときはVBなり適した言語で作る。
わかった?
0379357
NGNG>フォンノイマンコンピュータにポインタって必須だったっけか?
こういう疑問が出てくるのは、それこそフォンノイマンコンピュータが
概念的にすら理解されてないからでしょ。
ByVal,ByRefの意味、あるいはポインタの意味がわからないのは、
「変数」という仮想化されたもののフォンノイマン型コンピュータ上での
実体がわからないからじゃん。
まあ、「実体」なんていったって厳密にいえばどのレイヤーの話しかによって
全然ちがうんだけどさ。メモリだのアドレスだのだって電子工学的視点からいえば
仮想化の産物でしかないわけだし、固体電子工学的視点から言えばトランジスタだって
仮想化の産物なわけだけど。
0380デフォルトの名無しさん
NGNGスパゲッチーコード書いてれば良いです。でダメか?(w
0381デフォルトの名無しさん
NGNG必要充分な速度が出て、それなりにバグ駆除してるなら、スパゲッチー
でもパスタでもいいんでないかな? 「ユーザー」にとっては「プログ
ラマ」の志向なんで正直どうでも(・∀・)イイ!!。
0382デフォルトの名無しさん
NGNGおまえ、会社とかで複数の人と開発する仕事するなよ。まわりが迷惑だ。
0383デフォルトの名無しさん
NGNGスパゲティで困る、ってことはないんじゃないの?
困ったクンの困るところは、
● やたらグローバルやモジュールレベル変数・フラグを使う。
● しかも命名センスがなかったり略し過ぎだったりして意味不明。
● 処理の関数への分け方が不適切。1つの関数が無意味に長かったり、
逆にバカの1つ覚えで「関数は<絶対に>短くなければならない」と思い込んでいて
無意味に細切れだったりする。(これがスパゲティと言えないこともないか)
● コメントがコードの直訳only。「'hogeにpiyoを代入」ってそんなのコードみりゃわかるよ。
こんな感じのがむしろ多いんじゃないかな。
0384デフォルトの名無しさん
NGNG経験から学ぶのもいいが、ソフトウェア工学勉強した方が近道だぞ。
0385383
NGNG意味不明。経験から学ぶ愚者にぜひ、「ソフトウェア工学的な観点から」、
「VBとか使ってる限り、アンポンタンが書いてもあんまり スパゲティで困る
ことはない」ってのが間違いであることを解説してください。
いや、できないなら別に無理することないですよ。
でも実際、アホが書いたコード見ても「スパゲティで困る」なんて
経験はあまりないんですけどね。
0386デフォルトの名無しさん
NGNGByVal・ByRefの使い方とか、Cの関数呼び出す方法なんて、MSDN読めば書いてあるんだから。
自分の使うAPI・言語(・アルゴリズム)について、きちんと勉強してればいいだけじゃん。
まあすんなり理解するには、ソフトウェア工学とか、いろいろな知識があったほうが良いに決まってるけど。
0387デフォルトの名無しさん
NGNGスパゲティなVBソースを見たことがないのかい…
Gotoだけじゃなくて関数の再入までついてくるともうねアボカド(ry
0388デフォルトの名無しさん
NGNGそういう人はリカーシブコールなんてまず知らないし、知ってても使えない。
また、そういう人は、GOTOもかなりの確率で知らないか、知ってても使わない。
なぜなら、VBの入門書のかなりはGOTOは扱ってないし、書いてあってもそれは
「GOTOは使うべからず」というネガティブな紹介の仕方をしているから。
0389デフォルトの名無しさん
NGNG再帰が理解できないひがみ?
0390380
NGNG工学とかアーキテクチャ、プログラミングスタイルにこだわるなら
C++でもJavaでも別の言語を使ったほうが良いんじゃないかと。人好き好きだけど。
あと、事態の収拾。こんな議論してたら質問する人もしないんでねぇのと。
0391デフォルトの名無しさん
NGNG言いたいことは分かる。その通りだ。
そんなスレでノイマンとか持ち出すアホは癌だな。癌。
0392デフォルトの名無しさん
NGNGたとえこだわってない人が多いとしても、こだわらなくていいという結論にはならない。
たとえ汚く作れたとしても、汚く作っていいという結論にはならない。
再帰とか理解しなくて作れたとしても、理解しなくていいという結論にはならない。
プログラムスタイルにこだわるのなら他の言語を使うべきというこにもならない。
ただの一言語ですよ。VBは。もちろんC++もJavaもね。
言語より大事な物があるでしょ。それはどの言語でも有効だし適用すべきだよ。
0393デフォルトの名無しさん
NGNGその通り。
よって開発効率主義にいらんテクニックは不要。
0394デフォルトの名無しさん
NGNG「いる」テクニックは「要ります」
再帰とか(使うのなら)要るテクニックですね。
一般的な基礎知識も開発効率を上げるのに役立ちますよ。
たとえば「こんなこと」も知らないからぐちゃぐちゃになると言われるのなら
「こんなこと」は開発効率を上げるのに有効な知るべき知識でしょう。
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGマルチスレッドって使えたっけ?
0399デフォルトの名無しさん
NGNG本来再帰を使うべきじゃないところで再帰になっているとかかな。
例えばShowMessageって関数があって引数によって
メッセージをラベルに表示、プリンタに表示、ダイアログボックスに表示
に処理をわける。そして、プリンタに表示した後に「終了しました」と
ダイアログボックスに表示したいからShowMessageを呼び出す。
ん〜。これで汚い再帰になったかな?
0400デフォルトの名無しさん
NGNG再帰的なアルゴリズムでもないのに再入が起こるようなコードがあったら、
そりゃ単なる無意味にトリッキーな冗長な処理をしているかバグだ。
0401デフォルトの名無しさん
NGNG論理分割?
0402デフォルトの名無しさん
NGNGだからマルチスレッド。
0403デフォルトの名無しさん
NGNG> ダイアログボックスに表示したいからShowMessageを呼び出す。
この部分。ダイアログボックスに表示したいからShowMessage内で
ShowMessageをダイアログ表示の引数で呼び出す。ということね。
関数自体の仕様も変だが、(言っとくけどただの例だよ。)
本来はShowMessage呼び出し元がShowMessageをダイアログ表示の引数で
呼び出すべき。もしこれでShowMessage内でグローバル変数なんか使われていたら…
>>401
さぁ?
汚い再帰ってのが思いつかない人がいるみたいだから
例を考えてみただけ。
誰かが再帰自体がわからんと言っているわけじゃないよね。
0404デフォルトの名無しさん
NGNGMoseMoveとかでなんかやってるとうっかり2回入っちゃったりするんだよなー
0405デフォルトの名無しさん
NGNG上でも書いたがソフトウェア工学勉強した方が良いぞ。
0406デフォルトの名無しさん
NGNG>>404
なるほど、再帰と再入を取り違えてるってのがなんとなく分かった。
0407デフォルトの名無しさん
NGNGああ。なんかわかる。changeイベント内で
値を修正した途端、その場でchangeイベントが発生するとか。
0408デフォルトの名無しさん
NGNG俺が言ってたマルチスレッドによる再入に近いかと。
0409デフォルトの名無しさん
NGNGわざと汚い例だしたのに、それに突っ込まれてもなー。
0410404
NGNG再帰とは違うのは分かってるけどさ、今このスレでの用語として「汚い再帰」があったから
それを使ったまでよ。
出まぁ汚い再帰ネタはこれぐらいでいいでしょ。まったり次の質問者をまとうや。
0411デフォルトの名無しさん
NGNGそれでは的確に的を射た「再入」を用いるべきだったのでは?
0412デフォルトの名無しさん
NGNG>>407を防ぐ方法があるってことですよね。
いきなりレベル低くてすみませんがやりかた教えてください。
0413デフォルトの名無しさん
NGNG素人だけど、フラグ使えばいいんじゃないの?
0414長島監督ガンバ!
NGNG1着=1倍
2着=0.4倍
3着=0.25倍
4着=0.15倍
5着=0.1倍
なのですが、ここで、数値の左から3桁目を四捨五入しなければなりません。
どなたかプログラムできませんか。参考にさせていただきたいと思います。
0415デフォルトの名無しさん
NGNGでもそこで空ループを使うとCPU使用率が100%になってしまって嫌です。
どうしたらいいですか?
0416デフォルトの名無しさん
NGNGタイマーイベントは?
0417デフォルトの名無しさん
NGNGSleepでも試してみたら
0418デフォルトの名無しさん
NGNGを取得するにはどうしたらいいですか?
Dim IISObject As Object
Set IISObject = GetObject("IIS://LocalHost/msftpsvc/1/Root")
Debug.Print IISObject.Name
だと"Root"って出るだけだし、どんなプロパティやメソッドがあるのかも
よく分からないので・・・
参照設定してなくてもプロパティやメソッドが分かる方法もあれば知りたい
です。
0419415
NGNG>>417 いままでずっとそれでやってきたのですが、例えば、
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sleep2 ( 10 )
Private Sub Sleep2(Sec As Float)
For m = 1 To sec * 100
Sleep (10)
DoEvents
Next
End Sub
と。でもこの方法だと、CPU使用率が高くなると、
10秒以上かかるようになるのです。んで、
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Sleep2(Sec As Single)
Sec = Sec * 1000
From = GetTickCount()
While Sec >= Diff
Diff = GetTickCount() - From
DoEvents
Wend
End Sub
に変えたのですが、空ループでCPU使用率100%になって嫌でつ。。
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG> >>416 タイマーイベントはどうすれば良いですか?
"待つ"という考え方を変えなければならないと思うけど、
タイマーイベントなら取り敢えずCPU使用率100%にはならないよ。
但し精度は厳しいかもね。
フォームにボタン一個とタイマーコントロールをを貼り付けて・・・
Private Sub Timer1_Timer()
'五秒後に終了
End
End Sub
Private Sub Command1_Click()
Timer1.Interval = 5000
End Sub
0422デフォルトの名無しさん
NGNGそのためのDoEventsじゃん。
CPU使用率100%ってのは、他の、例えばタイマイベントかなんかで
再入が起こるような変な処理してるんじゃない?
OSがNT系だとタイマの挙動が9x系と違うよ。
0423デフォルトの名無しさん
NGNGVB+ASPの仕事が終わっちまった
VB.NET勉強するかな
もうちょいVB使いたいんだが、世の中の流れには勝てんかなぁ
どっかいい派遣会社ないですか(w
0424デフォルトの名無しさん
NGNG板違いするような馬鹿が仕事できるのか?
0425デフォルトの名無しさん
NGNGSleep2の方にSleep(10)とかをはさもう。
10ミリ秒程度の誤差も気になるのなら
Sleepの引数をループの最後の一回を(もしくはその都度)微調整する。
0426デフォルトの名無しさん
NGNGいや。後半のコードは100%になるよ。DoEventsは他の処理に制御を渡すだけ。
他の処理がすんだらすぐに自分に帰ってくるので結局100%になる。
0427長島監督ガンバ!
NGNG1着=賞金の1倍
2着=賞金*0.4倍
3着=賞金*0.25倍
4着=賞金*o.15倍
5着=賞金*0.1倍
で出すのですが、この後、それぞれの数値を、左から3桁目を四捨五入しなければなりません。
どうすればうまく数値が出ますか?よきアドバイスをお願いします。
参考およびコピー&ペーストさせていただきます.
どうでもいいけど、なかなかレスくれる人いないみたいです。
0428デフォルトの名無しさん
NGNG名前が悪いんじゃない?
0429デフォルトの名無しさん
NGNGlog10ってレスしてくれてる人いるじゃん。
log10って聞いてピンとこないならそういう処理は諦めたほうがよくない?
まあ、対数とらなくてもやる方法はあるけど、この程度のこと人に聞くような
奴には無理。
0430422
NGNGやってみたけどやっぱりならないよ。
232C使った通信で、相手からの応答待ちでよくこの手のコード書いてたけど、
そんな問題が起こったことは今まで一度もないし。
0431よこからすまん
NGNG0432デフォルトの名無しさん
NGNG後半のコードだぞ。なるって。ちゃんとやってみ。
あ〜。そういや9x系だとバグかなんかでCPU使用率を
正確に取得するのができないとか難しいとかあったような。
0433デフォルトの名無しさん
NGNG一応、VB情報かなぁって
VBの現状とかあんまないんだよね
仕事でやってるってやつはあんま書き込まんのだろうけど
まぁ日曜大工程度の仕事しかできないんですがね
0434デフォルトの名無しさん
NGNGホームラン級のバカだな。
プログラマー板にでも行ってこいよ。
0435デフォルトの名無しさん
NGNGあのコード、確かにタスクマネージャーに表示される
数値は100%になるのだけれども、他のアプリケーションを
動かしてみるとその動作が重くならないのに気付く筈。
100%と言っても、CPUにはかなりの余力がある状態なので
処理能力を使い切っている訳ではないです。
0436デフォルトの名無しさん
NGNG>>427
左から三桁目とか訳わからんよ。
123456678 とかあったら 123000000 にしたいって事かね?
桁数数えて1000000でわって小数点以下を切り捨てて、またかけたらダメなの?
桁数はLog10で求まるけどまぁ何やって求めても問題ない。
0437デフォルトの名無しさん
NGNG同じことをする方法があったはずなんですが忘れてしまいました。
SetWindowPosとかの「常に手前に表示」じゃなくて、VB5のShowと
同じ効果のやつです。
たしかSetWindowLongじゃないかと思ってかなり探したのですが
みつかりません。ちゃんとForm_Unloadでオーナー指定解除しないと
バグるとかは覚えてるのですが・・・。
誰か知って(覚えて)ますか?
0438デフォルトの名無しさん
NGNG処理能力を使い切っているよ。
他の動作が遅くなったように感じないのは
他の動作に適切にCPUが割り振られているからなだけ。
CPUの温度とか計測したら分かる。
0439デフォルトの名無しさん
NGNG違う
CPUのあまった時間をVBプログラムが使っているだけ
温度が下がらないのはCPUのHOLTなどがきかないため
0440422
NGNGそういうの、「使いきってる」っていわないでしょ、だから。
0441デフォルトの名無しさん
NGNGVB6.0 SP5
Windows98
標準FormにMSCommを1つ貼り付けて
MSCommを用いてRS232C通信をしようとしています。
CommPort=1
setting="9600,n,8,1"
RTSEnable=true
Rthreshold=1
InputLen=0
InputMode=comInputModeText
PortOpen=true
上記のように設定して、後はOnCommで待っています。
何もしなければ受信もできます。
が、OnCommに来る前にFormをドラッグすると、
100%固まってしまいます。
OnCommの頭にDoEventsを入れると、
スタックエラーと表示されます。
MSCommが受信しようとしているにもかかわらず、
ドラッグして処理をとめているために、
固まるのではないかと思うのですが、
解決策が思いつきません。
ActiveX.DLLにMSComm受信処理を逃がしても
症状変わりません。
WindowsXPでも試してみたのですが、
同様の症状は見られず。ドラッグもできますし、
正常に受信しています。
Windows98の場合、何かしなければならないことがあるのでしょうか?
よろしくお願いします。
0442デフォルトの名無しさん
NGNGNT系だったらSystem Idle Processが使う。
VBがCPUを100%使っているのは確かだよ。
0443デフォルトの名無しさん
NGNGでもCPUを100%使っているとは言いますよね?
現にCPU使用率が100%になっているのですから。
0444422
NGNGWindowsのマルチタスクの仕組みでも何かで読んでもらったほうがいいかも。
ていうか、普通1コしかないCPU本当に占有してるんだったら他に何も
できないことは常識でもわかると思うけど。
>>441
対策1:NT系のOS使いましょう。ドラッグしてもOnCommきまっせ。
対策2:OnCommイベントなんて使うの止めましょう。パケット長固定で
受信するとかでなければ、OnComm使う意味なんて全然ないです。
どのみちWinでリアルタイム処理なんてできないんだから。受信バッファ
ちょっと多めに取って、タイマイベントなんかでRead入れましょう。
0445デフォルトの名無しさん
NGNG感じないだけで。そもそも、Do:Loop (無限ループ)を実行したって
他のアプリは遅くなったように感じない。
遅くなったと感じるのは処理を期待した実行時間で処理できなかったときだけさ。
他のアプリが遅くならないから問題ないと思っているのなら書き直したほうがいい。
0446デフォルトの名無しさん
NGNGなにが問題なのか分かってないの? マルチタスクなんだからCPUを
完全に占有しないのはあたりまえ。誰もそんなこと問題にしていない。
問題なのは不必要にCPUを使用すること。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG通常NT系のはCPUはCPU能力があまっているときはHALT命令を実行して休んでいます。
動画を見たりゲームをしている場合以外はCPU能力はあまっているので、
HALT命令を実行して休んでいます。もちろん小さい間隔で休んでいるので
人間は休んでいると気が付きません。
しかしあのコードを実行するとCPUが休まなくなります。
これは分かりますよね? これが望ましい動作だと思いますか?
このときのことを一般的にCPU使用率が100%といって避けようとしているのです。
>>447
その通り。こうやってループして何かを待つことをビジーウェイトというね。
一般的に代替方法があるのなら他の方法でやるべき。
タイマーコントロールとか使うのが良いけど、正確さを求めるのが難しいからね。
0449デフォルトの名無しさん
NGNG質問人はどの程度を期待しているんだろう?
0450デフォルトの名無しさん
NGNGVS-FlexGridを使った画面を作っています。
セルをドロップダウンリストのようにして
データ抽出したいのですが、方法がわかりません。
どなたか親切な方、教えてください。
0451デフォルトの名無しさん
NGNG使いたいと思って、マイクロソフトのサイトからダウンロードしてみたのですが、
難易度が段違いでどう使って良いのかさっぱり分かりません。
ていうか、デストリビューションウィザードも単にウィザードの赴くままにしか
使えない体たらくですけど・・・
やりたいことは単純で、たった一つのプロジェクトのインストーラーを
作りたいだけなのですが、その際にプログラムのショートカットを
スタートメニューのプログラムの方に持っていきたいのですが、
どうやって良いのかさっぱり分からなくて、教えて頂けないかなと思いまして。
VSInstaller使うのはターゲットマシンにXPがあり、デストリビューションウィザードでは
XPでは相性が悪いようなのですね。
0452デフォルトの名無しさん
NGNGttp://dobon.net/vb/installer/installer2-2.html
0453デフォルトの名無しさん
NGNGThanks! 助かりました。Dobonのページは知っていたのですけど載ってたとは。
しかし、なかなか大変そうですねぇ、VSIって。
0454441
NGNG使う環境がWindows98から変更できないのです。
対策2もやってみました。
バッファを10500程度とって、Timerこんぽーねんとで
ポーリングしてみましたが、だめでした。
同じように固まってしまいます。
ポーリングのときもRthreshold=1にして、OnCommは無処理にして
TimerでEventを監視してやるようにしているんですが、
これが間違ってるのでしょうか。
昔の人はどうしていたんだろう・・・
0455デフォルトの名無しさん
NGNGこんなの発見。検証はしてないけど。
これも違う症状だが98でおかしく2000なら問題なしと書いてある。
これと同じくバッファを1バイトにしてみれば直ったりして。
http://d.hatena.ne.jp/nanashi666/200311
> 昔の人はどうしていたんだろう・・・
自分はPDQComm(有料。MSCommはPDQCommのお試し版?)を使った。
バッファをどうしていたかは忘れた。
PDQCommにソースコード付きのモジュールが入っていたんだが
それがバグありで苦労した。
0456デフォルトの名無しさん
NGNGデバイスマネージャで認識されているかチェックする方法ってあるのでしょうか?
認識されていたらtrueでなければfalse等・・・
よろしくお願いしますm(__)m
0457412
NGNG>>413 それはstaticのフラグをchangeイベント内に用意してうんぬんってやつですよね。
それだとイベント内の「処理」は飛ばせるけどイベントの発生は抑えられないですよね。
>>407読んで、イベントの発生自体を回避する方法があるのかと思ったんで。
0458デフォルトの名無しさん
NGNG出たのですが(Cの開発者が社内にいないのでDllファイルは作成不能)
DLL化することのデメリットは何があるでしょう?DLL HELLは聞いた事は
あるのですがそれ以外に重要な物は何かありますか。宜しくお願いします。
0459デフォルトの名無しさん
NGNGDLL HELLのみだ。重要な物は。
広い意味でな。
0460デフォルトの名無しさん
NGNG自社の専用DLLならHELLするのも自分次第だろ?w
自社のバージョン違いがだめなんてのは、自己管理責任。減るの意味がわかってるのかと。
で、ActiveX DLLは普通のDLLと若干イメージが違うので注意してください。
0461415
NGNG結局ループの中に Sleep 10 を入れました。
これがいいのか悪いのかわかりませんが。
>>449 いま簡易マクロ言語を使うアプリケーションを書いていて、
SLEEP 10.5
で10.5秒、そのプロセスが停止するようにしたかったんです。
でも Sleep 使うと、例えばそのプロセスと同時にリネージュ2なんか
立ち上げるとどんどんずれていくんですよね。。
で、いまは後者のコードで、
While Sec >= Diff = GetTickCount() - From
Sleep 10
DoEvents
Wend
Sleep 0 じゃ駄目な
0462422
NGNG>ポーリングのときもRthreshold=1にして、OnCommは無処理にして
ポーリングするんだからRthreshold設定する意味ないかと。
Rthreshold=1だと、空っぽだろうが何だろうがイベントハンドラ(OnComm)
残ってたらなんか受信するごとにいちいちコールされるんじゃないかな?
でもどんなスペックのPC使ってるかわからないけど、今時のPCが
その程度のイベントの連鎖で「固まる」かなあ。。
なんかMSCOMMと無関係なところで他におかしなことしてる気もするけど。
0463454
NGNG>PDQComm(有料
有料だけど、ナイスなツールがあったのですか。
今回の件でVCでMSCommExみたいなものを作ろうかと思いました。ハァ
リンク先も読ませていただきました。
1バイトで受信すると、受信データを逃してしまいました。
ちょっと違ったようですが、大変ためになりました。
>>462
設定0で大丈夫ですか。
PentiumIIIでクロックは不明ですが。
メモリーが64Mです。
ActiveX.DLLを2つ使っているので、
そこらへんも怪しいといえば怪しいのですが、
これも、サンプル読みまくって、
手続き間違えていないように思えますし。。。
結局FormのBorderStyleを0にして、触れないように、、、
だめだめな俺仕様です。(グスン
他の問題点も探して見ます。ありがとうございました。
0464デフォルトの名無しさん
NGNG使用しているDll,Ocxを調べる方法ってあるのでしょうか?
0465デフォルトの名無しさん
NGNGいろいろあるけど、あえてこれ。
Dependency Walker
ttp://www.dependencywalker.com/
0467デフォルトの名無しさん
NGNGシステムに常駐して特定のキー(Ctrl + Alt + F12等)を感知して動作するようにするためには
どのようにすればよいでしょうか?
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGの方法知っている勇者キボンヌm(__)m
0470デフォルトの名無しさん
NGNG表示がreportの状態で自分の好きなようにソートしたいのですが出来るでしょうか?
例えば大、中、小でソートすると小、大、中になってしまいます。
自分なりにやってみた事は大、中、小それぞれに番号をつけて幅0の列を作りその番号を幅0の列に入力。
それでその列でソートしてみたんですが上の列タイトルを動かすと番号が出てきますし。
やはりこちらでソートしてaddで一つづつ加えていくしかないでしょうか?
0471デフォルトの名無しさん
NGNGWinDDK手に入れて(わたしゃWin2k DDKしか知らないけど)
サンプルコードのUSB View(微妙に名前ちがったかも)を解析しる。
これだけは言える。
こんなところで「こうすればできる」、なんて簡単に言えるような、
お手軽にはいかないのは確か。
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNGソート後、ソート用の列を削除すればいい。
0475デフォルトの名無しさん
NGNGリストビュー内の表示位置がズレてしまうんですが、回避、もしくは表示位置を手動で設定する方法ってありますでしょうか?
0476デフォルトの名無しさん
NGNGそれは正式な調べ方なのか?
仕様書はちゃんと存在するのか?
将来のWindowsで変更されたりしないのか?
たまたまそれっぽいのが見つかっただけじゃないのか?
0477デフォルトの名無しさん
NGNGネタだとしても、.NETが出た今、言語仕様、どーすんだろ。
0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNGDim sHoge As String
sHoge = "1"
If sHoge = 1 Then
MsgBox "OK"
End If
この書き方でメッセージボックスが表示される・・・・
おかしくねーか?
文字と数値を一緒にするなと言いたい。
0480デフォルトの名無しさん
NGNG数値はオブジェクトであり、文字との比較の場合
内部でtoString()が呼ばれるだけ。
演算子のオーバーロードってやつだ。
気にするな。
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGNULL許可のフィールドに対して明示的にNULLを挿入する場合って、
何か特別なパラメータとか与える必要があるんでしょうか。
Command.CreateParameter()のValueにNullを渡してCommand.Executeすると、
OracleのプロバイダがOra-01036(変数の名前/数が無効)のエラーを返してきます。
プロバイダがいかんのかとMSDAORAに変えてみたらアクセス違反で落ちるし。
空文字列渡したらOracle仕様でNullが入ってくれるっぽいんですが、なんか気持ち悪い……。
DBNullは.NETにしか無いし。
0483デフォルトの名無しさん
NGNG0485479
NGNGVB6にはtoString()は無いと思うが・・・
作成者以外の人がソース見たときに
混乱を招くような書き方はやめてほしいな。
漏れだったらこんな書き方は絶対しないな。
>>481
漏れもそう思った。
.netでもこの方法が使えるのか?
まあ.netなら480の発言に納得。
VB6ってオブジェクト指向っぽい言語で、
オブジェクト指向ではないという認識を持ってるが
それは間違いなのだろうか?
0487デフォルトの名無しさん
NGNGPC起動時にスタートアップに登録しておいてEXEを起動してタスクトレイに
格納するようにしています。
フォームはHideして隠しておき、タスクトレイ上でクリック、又はデスクトップ上の
アイコンダブルクリックでフォームをShowする処理を作りたいと思っています。
タスクトレイに格納されている間は常にバックで通信をしています。
で、タスクトレイに格納、タスクトレイクリックでフォームをShowはできるのですが
アイコンダブルクリックでもShowというのができず困っています。
App.PrevInstanceですでにEXEが立ち上がっていることを確認した後フォームを
Showしても二重起動の状態になってしまいますし、どうしたらいいのか分かりません。
どなたかアドバイスがありましたらお願いします。
0488482
NGNGいろいろやってみた結果、エラーが発生するのはCommand.Execute()の第二引数に
Parameterの配列を渡して呼ぶ場合のみでした。
Command.ParametersにAppend()した上で、引数なしでExecute()すると正常に動作します。
とりあえず再現する最低限のコードです。
Dim objCmd As New ADODB.Command
Set objCmd.ActiveConnection = objCon ' objConは接続済み
objCmd.CommandText = _
"INSERT INTO SOME_TBL(P_KEY, SOME_DATA)" & _
" VALUES(:P_KEY, :SOME_DATA)"
Dim params As Variant
params = Array( _
objCmd.CreateParameter("P_KEY", adVarWChar, , 9, strPrimaryKey), _
objCmd.CreateParameter("SOME_DATA", adVarWChar, , 1, Null)) ' ここのNullが"0"とかだとうまくいく
Call objCmd.Execute(, params)
おとなしくAppend()しろってことかしらん……。
0489デフォルトの名無しさん
NGNG暗黙の型変換がVB6.0までの有名な仕様ですね。
混乱以前に、この暗黙の型変換に頼っていると思わぬ所で
思わぬ型に変換されて、エラーが出る事もあるので、トラブルを
避けるなら明示的に変換するなり、型を合わせておくのが当然だと。
良くあるのが、整数型に長整数型を代入する形になって
オーバーフローエラーとかだったかな。
絶対しないのが正しいし、それが当然です・・・
0490デフォルトの名無しさん
NGNG俺はDDEで通信して先に起動していた奴に情報を送った後、
後で起動したほうを自殺させてるよ。
0491デフォルトの名無しさん
NGNGmsgbox 1000*1000
ってやったらエラーがでたはず。
>>485
toStringはあの.netの中間言語の話だねたぶん。
0492デフォルトの名無しさん
NGNGFalse,True,True
むしろ数値に変換される(リファレンスの比較演算子の項に書いてあるが)
0493デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNGうん、鬼の首をとったように書く奴は結構いるけどな(w
0499デフォルトの名無しさん
NGNGヘルプで探してみたんですが見つかりませんでした。いちいちDBにSQL文を
使ってアクセスしていると時間が多くかかってしまいます。
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGそうだったんですか。現在自作の関数で引数にIDを使い、そのIDでSQL文を
使ってデータを引っ張ると言う事をやっているんですが上司に遅さが気にな
ると言われ何とか早くする方法を探しているところなんです
0502デフォルトの名無しさん
NGNGSQL文、ライブラリの設定、データベース側の
問題である可能性が大きいだろうな。
使っているライブラリ(DAO、ADO等)はなんなのか、
データベースサーバーはなんなのか、どういうSQL文なのか、
IDはちゃんとキーになっているのか、
そもそもネットワークが激遅なんじゃないのか、とかが気になるな。
0503502
NGNGインデックスはちゃんとついているのか? と言うべきだったか?
なんせデータベースがらみから2年ばっかり離れているので忘れている。
0504デフォルトの名無しさん
NGNGインデックスはちゃんと付けています。DBはオラクルです。
SQL文なんですが
"Select * From 得意先 Where 番号 = '" & CODE & "' "
こんな感じで書きました。
0505デフォルトの名無しさん
NGNG*は良くない、いらないフィールドは取得しない。
番号って文字型だよね、数値だったりしたらORACLEさんが勝手に変換はするけど遅くなるよ。
(数値文字変換が計算結果となるためにインデックスが利用されなくなる)
0506デフォルトの名無しさん
NGNGありがとうございました。早速作り変えてみようと思います。
0507デフォルトの名無しさん
NGNGString型の配列をVariant型配列に簡単に変更することはできないでしょうか?
具体的には、Split関数で取得した配列が、String型配列で、
その配列をADOのAddNew関数の引数として使用したいのです。
AddNewの引数は、Variant型配列じゃないとダメみたいなのです。
単純に、CVar(Arr1) とやっても変換できませんでした。
ループで1つずつ代入するしか方法はないでしょうか?
0508デフォルトの名無しさん
NGNG互換性があるのならAPIがあったり、メモリの型情報を
直接書き換えて・・・なんてやってできるわけ無いだろうな。
0509デフォルトの名無しさん
NGNGVariant型配列作ってString型配列から一つづつ入れてけばいいんじゃ?
一括ってできたっけ?
0510デフォルトの名無しさん
NGNG0511507
NGNG皆様ありがとうございました。
最初Split自作したのですが、配列変換の方が汎用性があると思い、
単純に配列の型を変換する関数を書きました。
0512デフォルトの名無しさん
NGNGなぜでしょう
0513デフォルトの名無しさん
NGNGそれもオブジェクトを配列化で宣言したのですが、
VB6ではそれが可能でしょうか??
0514デフォルトの名無しさん
NGNG可能。
0515デフォルトの名無しさん
NGNGそれは、Controls.Addを使う事?
処理内容は同じだから配列化にして処理を行いたいんだけど
どうすればよいのでしょうか??
すみませんがお教えください。
0516デフォルトの名無しさん
NGNG今度の仕事先でVB6.0+DBで仕事するというので、
データベースの勉強してるんですけど、
「VB逆引き大全500の極意」で
Set rst2 = New ADODB.Recordset
rst2!社員名 = rst1!氏名
といったソースがあるんですが、この!マークってのは
どういう意味なんですか? VB自体、勉強始めたばかり
なんですが、こういう演算子はないみたいだし。
他にも
Dim namae As String
namae = ![受注コード]
なんてのもあるんですが。
やっぱちゃんとした本で勉強しなきゃ駄目かな?
0517512
NGNGCに数値を入力する。
if C>=50 then
ABC.Text="aaa"
End if
50以上の数値を入力してもテキストボックスに表示されません。
(Cに数値が格納できていない)
誰か親切でエロイ方へるぷ
0518デフォルトの名無しさん
NGNGC の型は?まさかStringではないでしょうねぇ?
0519デフォルトの名無しさん
NGNGrst("フィールド名") or rst.Fields("フィールド名")
って書き方と同じ意味合いだが、!を使うのは推奨されていなかったキヲク。
理由は忘れた。
0520517
NGNGStringって何ですか?
0521デフォルトの名無しさん
NGNGどもども。なるほど。
0522デフォルトの名無しさん
NGNGあのだな・・・・
「controls add vb」でググると、一発目にまんまのソースが出てくるわけだが。
もうちょっと調べ方を身につけよう (´-ω-`)
0523517
NGNGIf C <> 0 Then
ABC(0).Text = "aaa": SWN(0) = "bbb"
Else ABC(0).Text = "bbb"
End If
Cというテキストボックスに何を入力してもbbbになります
0524517
NGNGDim C As Integer
If C <> 0 Then
ABC(0).Text = "aaa"
Else ABC(0).Text = "bbb"
End If
0525デフォルトの名無しさん
NGNG初心者以前の問題かと・・・・。
0526デフォルトの名無しさん
NGNGいやいや、イベントを拾うならWithEventsで宣言しなきゃだけど、
配列は宣言できないジャン。それでほか方法ではできないかと質問したわけざんす。
おとなしく一つのオブジェクトをつくって、Loadして増やします。
0527デフォルトの名無しさん
NGNG変数Cにはどうやってテキストボックスの値を入れているの?
C = CInt(テキストボックス.Text)
を追加してみれさ。
0528デフォルトの名無しさん
NGNGいや、なんとなく思いだしただけ。
0529デフォルトの名無しさん
NGNGWebBrowserコントロールを使ってるんですけど、他のコントロールがWebBrowserにフォーカスを奪われてしまいます。
どうしたらよいでしょうか。
0530デフォルトの名無しさん
NGNGそんなことが一体元質問のどこに?
検索の仕方以前に、質問の仕方も勉強しようね (´-ω-`)
0531デフォルトの名無しさん
NGNGはぁ!?
あの質問内容で十分わかるだろ?
イベントを拾わないオブジェクトは何するのさ?
それもテキストボックスとかいてあるじゃん?
お前も少しは頭を回せや
0532デフォルトの名無しさん
NGNGイベントを拾う必要のないコントロールなど
く さ る ほ ど あ る
おまいのテキストボックスには 必 ず イベント処理があるのか?w
0533デフォルトの名無しさん
NGNGブラクラもどきで使われるそうですが
0534デフォルトの名無しさん
NGNGクラッシュミーをアルファベットに直してぐぐれ
0535
NGNGリストボックスを右クリックしたときに
右クリックメニューを表示して
選択行の削除などを行いたいのですが
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 2 Then
Exit Sub
End If
PopupMenu IDMStart, vbPopupMenuRightButton
End Sub
では行が選択されずにポップアップだけが表示されます。
(どの行に対して削除を行うのかがわかりにくいので・・・)
リストを選択しつつ、ポップアップを表示するいい方法はありませんか?
0536デフォルトの名無しさん
NGNG配列で宣言したいって時点でおいらもイベント処理はしないもんだと思ったよ・・・(^^;
配列に拘るならフォームにイベントハンドラのインターフェースを持たせるやり方はどう?
---- クラスモジュール cMyClass
Private mEventHandler As IMyClassEvent
Private mIndex As Long
Private WithEvents mText As TextBox
Public Sub Create(ByRef Frm As Form, ByRef EventHandler As IMyClassEvent, ByVal Index As Long)
Set mText = Frm.Controls.Add("VB.TextBox", "MyClassTextBox" + Format$(Index))
With mText
.Move 0, .Height * Index
.Visible = True
End With
Set mEventHandler = EventHandler
mIndex = Index
End Sub
Public Property Get TextBox() As TextBox
Set TextBox = mText
End Property
Private Sub mText_Change()
mEventHandler.OnChange mIndex
End Sub
0537デフォルトの名無しさん
NGNG---- クラスモジュール IMyClassEvent
Public Sub OnChange(ByVal Index As Long)
End Sub
---- フォームモジュール Form1
Implements IMyClassEvent
Private mTexts(3) As cMyClass
Private Sub Form_Load()
Dim x As Long
For x = 0 To 3
Set mTexts(x) = New cMyClass
mTexts(x).Create Me, Me, x
mTexts(x).TextBox.Text = Format$(x)
Next
End Sub
Private Sub IMyClassEvent_OnChange(ByVal Index As Long)
Debug.Print "Change! "; Index
End Sub
0538デフォルトの名無しさん
NGNGポップアップメニューは MouseUp で出すものだと思うの。
リストを選択→ポップアップを表示 なんだから。
0539535
NGNG言われてみればその通りですね。
気がつきました。
ありがとうございます。
0540デフォルトの名無しさん
NGNGあんたやさしいな。531みたいな書き方されたらぶちきれるけどな。
0541535
NGNGList1_MouseUpでやっても
リスト選択 → ポップアップメニュー
にはなりません。 (右クリック時のみポップアップを表示したいのです)
何かいい方法は無いでしょうか。
0542デフォルトの名無しさん
NGNGなるほど、右クリックだけで選択とポップアップの二つを同時にやりたい訳か。
或いは、マウス移動だけでその位置の行が選択されているってのでも良いか。
ふーん・・・・・オレには分からん(;´Д`)
0543デフォルトの名無しさん
NGNGSendMessageで左クリックを送って、、、とか
0544デフォルトの名無しさん
NGNGよろしくお願いします。 m(_ _)m
↓ ↓ ↓
vb6.exe - アプリケーションエラー
"0x0044f7cd" の命令が "0x00000038" のメモリを参照しました。
メモリが "read" になることはできませんでした。
0545デフォルトの名無しさん
NGNG詳細表示にしてデータベースのテーブル表示に使おうと思ってるんですが、
表示のリミットつけておかないとやばいですよね?
0546デフォルトの名無しさん
NGNG使っているDLLがオーバーランしてるとか。
自作のDLLが原因か、API使って何かしてるところ(CopyMemory使ってるところとか)が怪しい。
0547デフォルトの名無しさん
NGNGVB6のエディタって、「アンカー」は使えないんですっけ?
VB.NETだとアンカーでテキストボックスなんかのサイズを
ウインドウの大きさに合わせて変更できるんですが。
VB6だと自分で処理するんでしょうか?
0548544
NGNGお返事、ありがとうございます。
プログラムをコンパイル実行したら、必ずなんです(涙)
VB6SP5、SPREAD6.0、DataEnvironment、AccessのMDBを使ってます。
以前、アクセスのテーブル名に、-(ハイフン)を入れてるだけで
エラーが出たことはあったんですけど、今回は全く思い当たる
ところがなく困っています。
0549デフォルトの名無しさん
NGNG変換する前の名前が半角かなになって自動的に入れることができる
機能を作ろうとしているんだけどできるかな?(アクセスにある機能)
ヒントでも誰か教えて
0550デフォルトの名無しさん
NGNG詳細キボンヌ
0551デフォルトの名無しさん
NGNGあれこれ悩むよりVBを再インストしたほうが早いと思う。
0552デフォルトの名無しさん
NGNGIMEクラスがどうとか・・・あったような・・・
http://nienie.com/~masapico/api_sample_ime01_c.html
この辺をヒントにできそうかな?
>>547
できない。自分でやるべし。
>>545
メモリが尽きるまで。
AddItemのラッパでも作るか
0553デフォルトの名無しさん
NGNGValueプロパティに日付を返すか返さないからをユーザーがチェックボックスで選べるようになりますよね。
このチェックの状態をコードで変更するには、どう弄くったらいいですか。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG「OSから」ですな。
>>549
ガリバーさんの著書のどれかにあったと思う。
http://www.galliver.co.jp/book/vb300ac/
「269{初} フリガナを取得する」ですね。
0556デフォルトの名無しさん
NGNG─‐────────────‐────────‐∧_∧ ───‐──―
─────‐∧ ∧,〜 ────────────‐(; ´Д`) ────―─‐
──−──‐( (⌒ ̄ `ヽ───_ ───────‐ / /─―./ヽ────
──―───‐\ \ `ー'"´, -'⌒ヽ──────‐| | ../ ‐─‐/ | | ───
―‐――──‐ /∠_,ノ _/_───‐―──―─‐| | /─―/ | |―───
─────‐ /( ノ ヽ、_/´ \―────‐──‐∪ ./──,イ ∪ ───
────‐ 、( 'ノ( く `ヽ、 ―────―‐| /−─/|| | ──−─
───‐‐/` ―\____>\___ノ ──────‐|/──/ || | ────‐
───/───―‐/__〉.───`、__>.―‐―───‐─―‐| || | ────
──/──‐──────────────―−───‐(_)_)───
─/────────−────────────‐─────────
0558デフォルトの名無しさん
NGNGうちのWord2000も終了するとき同じエラー出るよ
気にすんな(違
0559デフォルトの名無しさん
NGNGそうそう。
うちのPC(XP)なんてOS起動時になんか落ちたっていうダイアログがでてたけど、
気にしなければぜんぜん問題なかったぞ(w
0560553
NGNGDTPicker.Value=Nullってやったらチェックオフ、
Data変数の値をぶち込むとチェックオンになりました。
0561553
NGNG0562デフォルトの名無しさん
NGNG>>552
ありがとうごさいます。
アクセスの機能にそういのがあるみたいです。
今アクセスからVBに移植しているので
VBにそのような機能がないかなと思っています。
C言語ですか・・・・あまりやりたくないので(w
VB.NETはどうかな?
0563デフォルトの名無しさん
NGNGID = FindWindow(vbNullString,"dosdos")
ret = TerminateProcess(ID, 0&)
で終了されない。どこが間違っていますか?
ちなみに
ID = FindWindow(vbNullString,"dosdos")
ret = PostMessage(ID, WM_CLOSE,0&,0&)
だとウィンドウを強制終了することは(ry の
DOSのお決まりのダイアログが出ているので
ハンドル取得自体は間違っていないとおもわれます。
0564デフォルトの名無しさん
NGNGhttp://www3.tok2.com/home2/itatisan/cgi-bin/src/itachi0965.jpg
0565デフォルトの名無しさん
NGNG高校生のガキならまあまだ理解できるが、こういうことするのはえてして
20過ぎのhikkieだったりするんだろうな。何か哀れ。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGテキストボックスに
text1.text=rs.fields(1).value
で値を入れるときNULLは入れことができませんよね?
みなさんはIF文で判断していますか?
IF ISNULL(RS.FILEDS(1).VALUE) THEN
TEXT1.TEXT=""
END IF
30個もあるなら結構汚らしいコードになるんですが
なんかいい関数か方法はないですかね
0569デフォルトの名無しさん
NGNG関数作ればいいじゃん。
0570デフォルトの名無しさん
NGNGTextプロパティの内容を受け取って数秒かかるような処理をするコードを書くとき、どうすればよいのでしょうか。
こんなかんぢ:
Private Sub Text1_Change()
Call func1(Text1.Text)
End Sub
Private Sub func1(ByVal strValue As String)
List1.Clear
Do
'(List1.AddItem foo)
DoEvents
Loop
End Sub
こーゆーケースだと、新しくfunc1を呼ぶ前に前のfunc1をアボートさせるべきだと思いますが、
一行ごとにフラグチェック->Exit Subみたいなのを挿入しなければならないのでしょうか。
0571デフォルトの名無しさん
NGNGどんなふうにですか?
関数使ってもできないような
0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNGPrivate Function Func(Src As String) As String
IF ISNULL(RS.FILEDS(1).VALUE) THEN
Func = ""
EL SE
Func = Src
END IF
End Function
text1.text=Func(rs.fields(1).value)
とか。
0574デフォルトの名無しさん
NGNG何を目論んでるのか知らないが
For i = 0 to 29
Text1(i).Text=IIf(ISNULL(RS.FILEDS(i).VALUE),"",RS.FILEDS(i).VALUE)
Next i
みたいなのがやりたいたいわけか?
0575デフォルトの名無しさん
NGNG=(RS(i) & vbNullString)
と文字列と連結するとNULL値が空文字に自動変換される
癖を利用する物と思ったが。
VB.NETではエラーになるので悪い例ではあるが。
0576デフォルトの名無しさん
NGNGVB.NETでも同じ。
APIを使ったコーディングが嫌なら、InputMan等の
市販のコンポーネントを買うか、フリーウェアや
シェアウェアのライブラリを探す事ですね。
0577デフォルトの名無しさん
NGNG>>何を目論んでるのか知らないが
>>For i = 0 to 29
>>Text1(i).Text=IIf(ISNULL(RS.FILEDS(i).VALUE),"",RS.FILEDS(i).VALUE)
>>Next i
>>みたいなのがやりたいたいわけか
そうです。IIF忘れていますた。
しかし、パフォーマンスがかなり悪いと聞いたことがあります
>>576
しかたないですね。あきらめます。
0578デフォルトの名無しさん
NGNGHPで公開している、例えば気象情報を定期的にDLして
DBに読み込みたいのですが、DLして該当部分からデータを切り出すくらいしか思いつきません。
なにか上手い方法ってあります?
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNGやりたいことは、AccessのNZ関数なんかが要求する仕様にもっとも近いので、わたしがおなじことをやるときははMyNZ関数を自作してます。
MyNZ関数の仕様
INPUT:
第1引数 フィールドオブジェクト
第2引数 フィールドの値がNULLの場合の返り値(オプショナル)
OUTPUT:フィールドの値(NULLなら"" or 第2引数の値を返す)
昔のことなのであまり記憶に無いですがこんなかんじ
0581デフォルトの名無しさん
NGNG言語が何でもよければ、
1)EXCELのWEBクエリ機能を利用してEXCELにWEBデータを必要部分のみ取り込み、
2)そこからDBへの取り込みはEXCELのRANGEオブジェクトからDBに保存するプログラムをVBAで自作する
ってなかんじが楽そうですけど、かっこ悪いですね。それにそうか。ここはVBプログラマのスレですよね。失礼しました。
やっぱ、DLして該当部分からデータを切り出すのがいちばん、いちばん。
どうやって切り出すかにポイントを置いて議論するのがいいのでは?
やっぱ切り出すならvbscrptかな?(じつはよく知らず)
0582デフォルトの名無しさん
NGNG>>578さんじゃないけど、
エクセルでWEBのデータ取り込みって以上に時間がかかるね。
しかもakamai....ナントカっておかしな所に勝手につないでるし・・
なんかちょっと不気味だ
0583デフォルトの名無しさん
NGNGそれはエクセルなんかは関係なく単にスパイウェアが
0584デフォルトの名無しさん
NGNGInetの場合以下で見れるデータを
Inet.Password = "パスワード"
Inet.UserName = "ログインID"
wByte = Inet.OpenURL("https://URL", icByteArray)
WebBrowserではどうするの?
ちなみに以下ではログイン出来ないので駄目です。
WebBrowser.Navigate "https://URL"
0585デフォルトの名無しさん
NGNGダイアログボックスが出るので入力して下さい。
0586デフォルトの名無しさん
NGNGもういっぱい、いっぱい、なんですよ。
ログインした状態にしたいに決まってるじゃないですか。
いじわるしないで下さいよ。
お願いしますよ。
0587デフォルトの名無しさん
NGNG通報しました
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGえ、自分だけですか?
0590デフォルトの名無しさん
NGNGhttps://USERNAME:PASS@URL/
試してないから動くかわからんし、いろいろ問題あるし。
0591デフォルトの名無しさん
NGNGBASIC認証はMSの自転車操業アップデートのおかげで無効化されてるん
でなかったっけ?
0592デフォルトの名無しさん
NGNGありがとうございます。ですが駄目っぽいです。
inetで取得してローカルファイルに「ファイル名.html」として書き出して、
そのファイルをNavigateで見れないかなと思ったのですが駄目っぽいです。
inetで取得したデータをなんとかWebBrowserに表示出来ないでしょうか。
0593デフォルトの名無しさん
NGNGfile://なるスキームがあるけれど。
0594592
NGNG>そのファイルをNavigateで見れないかなと思ったのですが駄目っぽいです。
ごめんごめんフルパスで指定したらとれたわ。
0595デフォルトの名無しさん
NGNG文字列でいいのなら
WebBrowser1.Navigate "about:blank"
WebBrowser1.Document.Clear
WebBrowser1.Document.Open
WebBrowser1.Document.Charset = "Shift_JIS"
WebBrowser1.Document.Close
WebBrowser1.Document.body.innerHTML = String
これで出来る。
以前にちょっと作ったブラウザはこれで動いた。
最後の行以外一回実行しないと怒られる。
0596デフォルトの名無しさん
NGNGあんた、某MLで相談しなかった?
0597デフォルトの名無しさん
NGNGしていませんが。
変な言いがかりはやめてください。
0598デフォルトの名無しさん
NGNGごめん。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGWindows XP home
VB6.0です。
ゲームのウィンドウの任意の座標のRGB値を監視するという物を作りたいのですが、
どうしたらいいのでしょうか
0601デフォルトの名無しさん
NGNGDirectXを使ったゲームの事か?
0602デフォルトの名無しさん
NGNGどういう目的でそういうことをしたいのか書いたほうが早いと思う
0603デフォルトの名無しさん
NGNG0604600
NGNG例えば、将棋ゲームなとで対戦相手が来たら音で知らせるとかそのために、画面上の色を判別して変化を監視したいんです。
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGなぜに? インストールすれば普通に使えるじゃん。
ソースが見たいとか?
0607デフォルトの名無しさん
NGNG0608584
NGNGしまった。
>Inetの場合以下で見れるデータを
> Inet.Password = "パスワード"
> Inet.UserName = "ログインID"
> wByte = Inet.OpenURL("https://URL", icByteArray)
ログイン出来てなかったわ。
ログイン出来てない時表示される画面が出てきた。がっくり。
しょうがないからSendKeyでもするか。
なんかいい方法ありませんか?
>>596
まぁ、そうかな。
0610デフォルトの名無しさん
NGNGPrivate Sub Command1_Click()
WebBrowser1.Navigate "http://www.google.co.jp/"
Do While WebBrowser1.Busy
MsgBox "ページが表示されるまで待つ"
Loop
With WebBrowser1.Document.Forms("f")
.Item("q").Value = "VBプログラマ質問スレ"
.submit
End With
End Sub
0611デフォルトの名無しさん
NGNG最近おまえのような言いがかり吐く馬鹿が多く見かけるが、
同じような質問が存在していたら
マルチか? おめでたい馬鹿だな。ここ来るなよ。
お前のような非生産的な人間の脳味噌のプログラミングな
ど誰も見たくも聞きたくもない。
0612デフォルトの名無しさん
NGNGはあ?
0613デフォルトの名無しさん
NGNGはぁ?
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNGキーボードから指定したキー(例:ALT+A)を入力した時に、
VBプログラムウィンドウのアクティブ/ノンアクティブにかかわらず、
指定した関数を呼び出すという処理は、VB6.0でできますでしょうか?
わかる方いましたら教えてくださいませm(__)m
0617デフォルトの名無しさん
NGNGVCなどで作ったDLLを利用するならVB6.0でもできるけど、VB単独ではたぶん無理。
0618デフォルトの名無しさん
NGNGここの過去スレで見たぞ。
0619616
NGNG回答ありがとうございます。
VB単独では無理なんですね・・・
VCをやったことがなくて、フックについてよくわかって
いないので、この機会に勉強してフックのDLL作ってみます。
ありがとうございました^^
0620デフォルトの名無しさん
NGNGRegisterHotkey でホットキーを登録して、サブクラス化してウィンドウプロシーヂャで
WM_HOTKEY を処理で出来た気がする。詳しいことは忘れた。
0621616
NGNGまじですか〜^^;
探してみます。
ありがとうございましたm(__)m
0622デフォルトの名無しさん
NGNG>>618は無視か。検索もできないとは。
0623デフォルトの名無しさん
NGNGプッ
0624616
NGNGいろんなやり方があるんですね〜
詳しいやり方調べて試してみます。
ありがとうございました。
0625デフォルトの名無しさん
NGNGCでできることは基本的にできるはず。
と、言っておく。ただし、Cより面倒になる危険性あり。
0626デフォルトの名無しさん
NGNGBTreeとか言ってみる。
0627デフォルトの名無しさん
NGNGVBアプリケーションを関連付け起動したときに
起動時のファイル名を取得する方法を教えてください。
例)
拡張子bmpをvbapp.exeに関連しておいて
test.bmpでvbapp.exe起動したときに
test.bmpのファイル名パス名が知りたいのです。
0628デフォルトの名無しさん
NGNGCommand
複数のファイルやスペースの入ったファイル名に(ry
0629デフォルトの名無しさん
NGNGdim rs as ADODB.RECORDSET
dim cm as ADODB.COMMAND
三つの違いってどうなってるんですか?
まずコマンドの発行はcn.executeでやれるからCOMMANDの存在理由がわかりません
そんでレコードセットの取得も
rs.openかset rs = cn.execute()かset rs = cm.execute()と3種類あるがどうちがうのか
さっぱりわからん。
みなさんどのように使い分けてますか?
0630デフォルトの名無しさん
NGNG使い分けって・・・。
オブジェクト階層図を見れば一目瞭然なんだけど。
きちんと理解すればなぜそのようになっているかわかるよ。
0631デフォルトの名無しさん
NGNGdim rs as ADODB.RECORDSET
dim cm as ADODB.COMMAND
三つの違いってどうなってるんですか?
まずコマンドの発行はcn.executeでやれるからCOMMANDの存在理由がわかりません
そんでレコードセットの取得も
rs.openかset rs = cn.execute()かset rs = cm.execute()と3種類あるがどうちがうのか
さっぱりわからん。
みなさんどのように使い分けてますか?
0632デフォルトの名無しさん
NGNG使い分けって・・・。
オブジェクト階層図を見れば一目瞭然なんだけど。
きちんと理解すればなぜそのようになっているかわかるよ。
0633デフォルトの名無しさん
NGNGコネクションは文字通り接続管理、ログイン、トランザクション制御が役割。
コマンドで更新系を発行、レコードセットは導出表がある場合に使用。
0634629
NGNG>オブジェクト階層図を見れば
MSDNにありますか?
>コネクションは文字通り接続管理、ログイン、トランザクション制御が役割。
>コマンドで更新系を発行、レコードセットは導出表がある場合に使用。
更新形のコマンドはみんな、Commandオブジェクト使ってるますか?
私はCommandオブジェクト宣言するのがあれなのでコネクションから発行してます
0635デフォルトの名無しさん
NGNGMSDNには無いと思う。
昔のVBマガジンを漁ればある。
あと、どのように使い分けてるか質問して、>>633でそれに対して回答してるんだから、
>>634では何を聞きたいのか判らないよ。
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNGADOオブジェクトモデル、MSDNにあるよ。
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdconadoobjectmodel.asp
0638629
NGNGオンラインMSDNでありました
>どのように使い分けてるか質問して
>何を聞きたいのか判らないよ。
すみません。生理できていませんでした。
MSDN読んだら雰囲気的ですがわかりました。
>>636
キーワードサンクスです。
MSDN漁るの苦手なんです。
0639629
NGNGリンクサンクスです。
質問した経緯は処理時間が異常にかかったからなんです。
もしかして、記述がわるいのではいのか。。。。
ACCESSのT1というテーブルの3700レコードをレコードセットでまわして
いたら、15分くらいしてから処理が戻りました。もう、フリーズでもしたのかと
ADO+ACCESSってこんなに時間かかるものですか?
0640デフォルトの名無しさん
NGNGオブジェクトの参照する階層が深ければ、遅くなります。
最初の話からすると、列の値を見るのにConnection.xxx.xxx.xxxってな感じでオブジェクト辿ってるとかありません?
0641デフォルトの名無しさん
NGNGどこが間違ってるんでしょうか?
Dim a(6), i
Private Sub number()
For i = 0 To 5
a(i) = 6
Next i
For i = 1 To 5
a(i) = Rnd * 5 Mod 5
For j = 1 To 5
If a(i) = a(j) And i <> j Then
i = i - 1
End If
Next j
Next i
End Sub
0642デフォルトの名無しさん
NGNG0643629
NGNG>オブジェクトの参照する階層が深ければ、遅くなります。
ADOの場合に限ってのたとえが思いつきませんが
こういうことですか?
dim obj1 as Obj1a
do while obj1.obj2.obj3.propaty1 = 1 ← 遅い
set obj3.propaty1 = obj1.obj2.obj3.propaty1
do while obj3.propaty1 = 1 ← 早い
>列の値を見るのにConnection.xxx.xxx.xxxってな感じでオブジェクト辿ってるとかありません?
列の値を見るのにConnectionオブジェクトからたどれることは知りませんでした
むしろ、スピードで気になっていたのは、レコードセットのループの中で
レコードセットを毎回生成することがいけないのかと気になっていました。
set recordset = nothing
set recordset = new adodb.recordset
recordset.open,,,
if recordset.eof = true then goto owari
recordset.close
set recordset = nothing
0644629
NGNG列の値は普通?にたどっています。
recordset!フィールド名 = 値
recordset.field(x) = 値
このどちらかです。
0645デフォルトの名無しさん
NGNG前段はまあそういうこと。
後段は一つのSQLで取れるならばそれのほうが早い。
あと、開くレコードセットはなるべく軽いオプションにするといい(=読み取り専用、前方のみ・・・とかあるはず)
0646デフォルトの名無しさん
NGNGデータベースからアクセスしてコンボボックスに値をセットするのですが
入れることができる制限がありますよね。
みなさんはどうしています。
0647デフォルトの名無しさん
NGNG聞き方が629さんっぽいんだが。w
何に対する制限でしょうか?で、何が上手くいかなくてどうしてるかを聞きたいのでしょうか?
0648デフォルトの名無しさん
NGNG>レコードセットを毎回生成することがいけないのかと気になっていました
大元のループの件数が可変であるなら、基本的にこの手法はNGと思っておいた方が・・・
テスト環境だとデータの件数が少なくて大した事無くても運用に乗ると目も当てられない
事になりそう。
0649デフォルトの名無しさん
NGNGそれも以前試したんですが、エラーが出ます
0651デフォルトの名無しさん
NGNG> ADO+ACCESSってこんなに時間かかるものですか?
十中八九作り方が悪い。
> むしろ、スピードで気になっていたのは、レコードセットのループの中で
> レコードセットを毎回生成することがいけないのかと気になっていました。
> set recordset = nothing
> set recordset = new adodb.recordset
> recordset.open,,,
> if recordset.eof = true then goto owari
> recordset.close
> set recordset = nothing
これでしょ。なにやってんのか知らんが、connection/recordsetのオプション。
データ量、SQLの書き方によってはeofの取得にものすごく時間が掛かる。
もちろんeofが悪いんじゃないよ。使い方が悪い。
それとレコードセット自体を生成するのが悪いのではなく、
生成するレコードセットが問題だろう。
必要なく大量のデータのレコードセットを生成しているとか。
ループの中でのレコードセットの生成もそこでいま必要とされているデータを
そのタイミングで取得しなければならないのなら問題ない。
まず、RDBというものをちゃんと理解して効率の良い書き方を知ること。
なんでもそうだが、書き方次第で強烈に早くなったり強烈に遅くなったりする。
適当にオプションを弄くるなんて小手先のテクニックで解決しようとせずに、
根本的な問題を解決してね。
0652629
NGNG現在実運用のレコード件数でテストしています。
だいたい4000件程度です。
4000件に対してキーを取り出して、別のマスタを開いてそのキーで
問い合わせしています。
>基本的にこの手法はNGと思っておいた方が・・・
では、もう大元のレコードセットにマスタも合体させてから
ぐるぐるまわすほうが根本的にいいってことですか?
0653デフォルトの名無しさん
NGNG651さんも書いているが、SQLで結合して一発で取り出せないの?
0654629
NGNG>>653
>SQLの書き方によってはeofの取得にものすごく時間が掛かる。
do while not recordset.eof
処理
loop
こんなんやってます。。。。
>根本的な問題を解決してね。
OK牧場
>SQLで結合して一発で取り出せないの?
結合考えます。
作る前に。。from inner joinとかで結合するのと
from table,table2,table3 where table.a = tabale1.a...
どっちのほうがいいとかありますか?
0655629
NGNGtextboxの入力時にリターンキー押したらエラー音がでます。
別にbeepとか実行していないのですが、この回避策はありますか?
処理としてはtextboxの中でリターンキーを押すと次のtextboxに
フォーカスをあてています。。。
0656デフォルトの名無しさん
NGNGVBのコードとSQLの組み合わせはやりたいことで最適な方法が
大きく変わる可能性があるのでなんとも・・・。
一連の処理全体で考えないといけないし。
0657570
NGNGアプレットなら、
WebBrowserコントロールをペタ
↓
アプレットを開く(スタイルシートでアプレットの座標を(0,0)あたりに絶対指定すると良し)
↓
GetDC(もちろん使い終わったらReleaseDCを忘れずに)
↓
GetPixel
でいけるハズ。アプレットを開く方法に関して、object.Document.Writeを使えばファイルを介さずに表示できる。
(…で、だれか俺の質問に答えてください…)
0659デフォルトの名無しさん
NGNG少なくとも、Text1_Changeの中でfunc1を呼び出す前にチェックするようにすればいいでしょう。
そもそもfunc1の中でDoEventsしなければText1_Changeもこないわけだが、
まあそれは大人の事情でダメなんだろうと推測
0660デフォルトの名無しさん
NGNGプログラムでキーを押していなかった事にすれば音はでません
0661570
NGNG言葉ッ足らずでゴメンナサイ。大人の事情を説明します。
なにがしたいかというと、テキストを入力->その文字列から始まるファイル/フォルダ一の覧をリストビューに表示という処理。
すなわち俗に言う自動補完をしたいんですが、アイコンを取得したりしてるので、ファイル数が多いと結構な時間がかかるのです。
(もちろん、拡張子ごとのキャッシュはしてますが)
その間も、テキストボックスの入力は受け付けなければなりません。
Doeventsを呼ばなければならないのはそのためなんですが、Text1_Change()の中でフラグを見てしまうと問題が出てきます。
このタイミングだと、ビジーなときは「関数を呼ばない」という選択をしなければならないとゆーことになるハズです。こーなると、
リストビューの内容を逐次更新できなくなってしまいます。そこで、前書いたようなどうにかアボートさせたいと思ったわけです。
うーん。他の言語ではこういうケースに対応できたりするんでしょうかね。
0662デフォルトの名無しさん
NGNGえーと
Private mCount as long
private Func1
dim myNum as long
mCount = mCount + 1
myNum = mCount
do
...
DoEvents
If mCount > myNum then exit do
loop
if gCount > myNum then exit sub
gCount = 0
続き処理
とかまぁこんな感じで。
かなり力技だけど。スマートなやり方もあるんかしら。
0663デフォルトの名無しさん
NGNGリストボックスに追加する数が少ないうちはやらないほうが却って
いいかも知れんぞ。
10回に一回にするとかでもいいかも。
0664659
NGNG残念ながら、スマートな方法は思いつかんなぁ・・・
662の方法が、現実的な解かも。
とりあえず、他の言語なら、入力を受け取るスレッドと補完リストを作成するスレッドに分ければ、少しはましかも。
あるいはlispならcall/ccという最終兵器がある。(よくわからんが、たぶんこれでなんとかなるんじゃないかな)
まあVBの開発なら無い物ねだりだね。
ちょっと仕様が変わるからダメかもしれないが、入力文字が少ない内は補完候補が多いので補完せずに、
ある程度入力が進んで補完対象が減ってから補完リストを作成するとか。
あるいは、Commandパターンで、func1に対応するConcreteCommandに相当するクラスを使って、
いろいろやればなんとかなるだろうけど、無駄にソースが複雑になるよなぁ・・・
0665デフォルトの名無しさん
NGNG遅延をかけてみては?
タイマーを配置してIntervalを500くらいに設定する。
テキストの変更があったらタイマーのEnabledをFalse→Trueにする。
タイマーイベント中でタイマーのEnabled=Falseにしてからファイルを列挙。
ファイルは全部列挙せず上限を設けて表示する(リストに5000とか表示したってユーザーは見ない)。
0666デフォルトの名無しさん
NGNGVB2製のこれをVB6に移植しようとして、いきなり
どんな処理してるんだろう?というところで躓いた。
処理の重さを数値で指定してその間隔も指定するみたいな感じに見えるけど
どうやれば他のプロセスの有無に関わらず一定のCPU負荷を保てるんだろう…
CPU負荷は軽くするのが普通だからかぐぐっても軽くする方法しか出ない…
0667デフォルトの名無しさん
NGNGWin3.1とNT系じゃプロセス管理が違うから無理だと思う。
0668デフォルトの名無しさん
NGNGいいですか?
0669668
NGNGすいません、前の人が作った.ctlでした。
自作.ctlの作り方ってなんで.ocxでないのですか?
0670570
NGNGDoEventsはplanet-source-code.comに、
If GetInputState() <> 0 Then DoEvents
とするとグーと書いてあったので、そうしてます。
遅延も考えましたが、根本的解決という面で結局は参照カウンタもどきなフラグを使った
>>662の手法がいちばん手っ取り早そうですね。キューイングするようなものでもないですし。
ファイルの列挙については、FindFirstFileとゆーよーなかったるい関数を使うよりもむしろ、
DirListBox/FileListBoxで取り出した方が簡単で速いので、この部分はVBサマサマです。
みなさまありがとうございました。m(__)m
ちなみにウィンドウをサブクラス化したいときは、↓のが便利です、海の向こうって結構イッちゃってますよね。
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37102&lngWId=1
>>666
http://www.vector.co.jp/soft/win95/util/se221407.html
こんなのもあります。
0671570
NGNG日本語おかしいけど、.ctlはユーザーコントロールという名前がついていて、
「GUIが持てるクラス」みたいなものです、OCXと同じように扱えるし、コンパイルすれば
OCXになるわけですが、あえてする必要はないかと。連続投稿スマソ
0672デフォルトの名無しさん
NGNGそれのドキュメントから
> スライダが二つあります。IとLっての。
> Iは、インターバルの値で、値が大きいとCPU負荷は軽くなります。
> Lは、ループの値で、値が大きいとCPU負荷は重くなります。
ソフト起動してないけど、インターバル値ってのがTimerコントロールの
Intervalの値で、ループの値ってのがタイマーイベント内で負荷をかけるための
処理のループ回数のことじゃないかな?
> どうやれば他のプロセスの有無に関わらず一定のCPU負荷を保てるんだろう…
このソフトにはこんな機能無いよね。自分の案? 案自体はいいと思うんだけど、
ちょっと難しそう。CPU使用率は取得できるわけだから、TimerのIntervalを
少なめにしておき、CPU使用率を見てループ回数を自動的に調整すればいいんじゃない?
>>667
そんなこともないでしょ。確かにプロセス管理はそれとはほぼ同じ方法でできると思う。
注意する点といえば、アクティブなプロセスにより多くのCPUリソースを割り当てられるから
負荷かけソフトの優先順位を上げておいた方が良いかもしれないってとこかな。
そういえば、ストレステストと呼ばれる類のテストツールで
負荷をかけるソフトがありそうな気もする。
それとWindowsって特定のプロセスのCPUリソースを制限することって出来ないんだっけ?
0673672
NGNG× 確かにプロセス管理はそれとはほぼ同じ方法でできると思う。
○ 確かにプロセス管理は違うけど、それとはほぼ同じ方法でできると思う。
(それとはVB2製のソフトのことね)
0674668
NGNGありが�d
へーvb見直したよ
0675デフォルトの名無しさん
NGNG「windows インストーラ」というものが起動して
「選択した機能は現在使用できないネットワークリソースにあります」
と言うメッセージが出てきてアンインストールできないんですがどういう状況なのでしょうか?
また、どうやったら強制的にアンインストールできますか?
0676デフォルトの名無しさん
NGNGえーと、それはVBになんと関係があるのかな?
0677デフォルトの名無しさん
NGNGVB=VirusBuster
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNGConst msg="Error Msg"
を定義してからコマンドモジュールで参照すると
”変数が定義されていません”とエラーがでるのですけど
定数は一般モジュールから参照できないのですか?
すいませんがご教授お願いします
0680デフォルトの名無しさん
NGNGPublic~
ってゆーかヘルプ嫁
>既定では、定数はプライベートになります。
0681デフォルトの名無しさん
NGNGPublic Constにしてもだめ?
今デフォルトがどっちだか忘れたけど、スコープ定義はデフォルトに頼らずに明示するほうが後が楽。
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNG例外とればいいんじゃないの?
0684デフォルトの名無しさん
NGNGState プロパティ
・・・がそれっぽい
0685デフォルトの名無しさん
NGNG内部で何やってるかは見当つきませんが
気になったので>>666に書いてあるGHelperをWinXP(P4-2G非HT環境)で試しました。
(問題なく起動した)
他にゲームなど起動せず最大負荷(L=10000)でCPU使用率約40%。
そのまま他のゲームを起動してもGHelperのCPU使用率は約40%を保っているようです。
その為ゲームがCPU60%までしか使えず少し遅くなる。
あとそのゲームは>>670の「こんなの」対策がありましたw
「こんなの」が起動してるとゲームが激烈に不安定になる(速くなったり遅くなったり)
0686デフォルトの名無しさん
NGNG俺は、レコードセットをテキストボックスと連結してるんだけど
そのフォームを閉じる前に、必ずそのレコードセットを、close
してます。
開いているかどうかチェックしてのオープンは、
if ( rs.State <> adStateOpen ) then rs.open
にしてます。
0687682
NGNG>>686氏の if ( rs.State <> adStateOpen ) then rs.open
でうまくいきました。
0689デフォルトの名無しさん
NGNG>>ってゆーかヘルプ嫁
>既定では、定数はプライベートになります。
>>681 名前: デフォルトの名無しさん [sage] 投稿日: 04/03/17 15:09
>>679
>>Public Constにしてもだめ?
いけました。ありがとうございます。
MSDNいれられないんです(大きすぎ)
本も近くにないので。
0690デフォルトの名無しさん
NGNGオンラインで見れるじゃん。
ttp://www.microsoft.com/japan/msdn/library/default.asp
0691デフォルトの名無しさん
NGNGCDからみればいいじゃん。
0692デフォルトの名無しさん
NGNG>やりたいことは、AccessのNZ関数なんかが要求する仕様にもっとも近いので、わたしがおなじことをやるときははMyNZ関数を自作してます。
お返事ありがとうございます。
力作業でもできるんですけどやはり関数作れば便利ですね。
こんな話題でてもいいけどなかなかでえませんね
(私が厨房なのかも)
0693デフォルトの名無しさん
NGNG一つ一つをクリックするのは大変なので、ドラッグするとクリックした事にしたいのですが
どうすればいいでしょうか?
0694デフォルトの名無しさん
NGNGが時々固まってしまいます。
これはどういった原因が考えられるのでしょうか?
0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGまじですか?
やってみます。
0697デフォルトの名無しさん
NGNGでも固まるのが発生しました。
ファイルの書き込みのときにFreeFileで
番号をとってなかったのがいけないかと思い
ただいま試験中
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGフレームのマウスダウンで座標を覚えておきマウスアップでその中の
範囲のボタン全部にクリックをCallなど
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGOptionボタンの配列を Option(0)からOption(2) まで
作ってフォームに配置して、別にチェックボックス
も1つ配置します。
それでチェックボックスがTrue の場合に Option(0)を
選ばないようにしたいのですが、どうやったら
できるでしょう?
Click イベントを拾って、index = 0 のときに
Option(1).Value = true としても
うまく行かないんですよね。どうも Valueプロパティに
代入した段階で再度 Click イベントが呼ばれてしまう
ようで実にややこしい。
オプションボタンでウインドウの状態を遷移させる
前に、修正フラグが立ってたら、遷移させない
ような処理がしたいんですが。
0702デフォルトの名無しさん
NGNG本当に問題を解決したいのなら、まず問題を他人に正確に伝える努力をしないと。
こんな質問の仕方じゃ、まずどんな親切な人も答えようがないと思う。
だって、言ってることの意味が理解できないもの。
0703デフォルトの名無しさん
NGNGOption(0)のValueとEnabledをFalseにすれば良いだけでは?
0704デフォルトの名無しさん
NGNG普通チェックボックスがONになったときにオプションボタンはEnabe=False
にするだろ。
ぎゃくにFalseになってないのに変えられr内なんてストレスたまるぞ
0705デフォルトの名無しさん
NGNGども。
OptionA(0).Enabled = False
OptionA(1).Enabled = False
OptionA(2).Enabled = False
この状態で Value プロパティに代入しても
Clickイベントが呼ばれました。
やはりダメみたいです。
ユーザーの入力ができないだけで
アプリからの操作はできるみたい。
>>704
例えば、スプレッドシートの「表示」と「修正」と「追加」の
3つの画面の遷移をオプションボタンで変更するという
状況を想定しています。
修正画面で修正項目に変更が加えられている場合は
表示画面に遷移する前に修正画面の変更を破棄するか
どうかを問い合わせたい場合があると思います。
破棄していいのであれば、そのまま画面を遷移させる。
また破棄したくないのであれば、画面を遷移させずに
オプションボタンも前の位置に戻したい。
0706デフォルトの名無しさん
NGNGそれじゃあ、Clickイベントの中で、Enabledの値を見たらいいんではないの。
0707デフォルトの名無しさん
NGNGチェックボックスにオプションボタンが従属しているわけじゃないのね。
とりあえず、押される前にイベント取るのは無理。
押されてから、Option1(1).Value=1とかするしかなかろうな。
もう一度Clickに来ちゃうのはフラグでも使って明示的に回避するしかないだろう。
0708デフォルトの名無しさん
NGNGスクロール位置をコードで制御する事は可能ですか?
表を生成したあとに、自動的にスクロールバーが一番下がっている状態(一番最後の行が見えている状態)
に移動するようにしたいです。
0709デフォルトの名無しさん
NGNG色々やったけど難しいんです。
どういう動作になってるのか分からないんですが、
フラグを使って回避しようとしても1回は回避される
んだけど、2度クリックすると切り替わってしまうんです。
>>705のスプレッドの例は実際に仕事で関わったことの
あるケースです。そのケースでは変更破棄の確認を
行わずに、すぐに画面を遷移させていました。(当然
修正内容があっても破棄される)
はじめから、こういうデザインを行わないようにするしか
ないのでしょうかね。
0710デフォルトの名無しさん
NGNGどういう動作になっているか分からないって、確認すればいいじゃん。
良くわからん。
Private Sub Option1_Click(Index)
If CancelOptionClickFlg = True Then Exit Sub
If Index = 0 and Option1(0).Value = True then
CancelOptionClickFlg = True
Option1(1).Value = True
CancelOptionClickFlg = False
End If
...
これでいけないか?
CancelOptionClickFlg はフォームレベル変数で。
0711デフォルトの名無しさん
NGNGIf CheckBox.Value = 1 then
CancelOptionClickFlg = True
Option1(1).Value = True
CancelOptionClickFlg = False
End If
End If
こうだなすまん
0712デフォルトの名無しさん
NGNGVBだけじゃできなかったような・・・
EnsureVisibleで検索してみると分かるかな?
リストビューのウィンドウに鮮度メッセージでEnsureVisibleに対応する奴を
投げればいけると思うよ。
0713デフォルトの名無しさん
NGNGSendKeys "{END}"
だけじゃだめなの?
0714デフォルトの名無しさん
NGNGListView_Scroll マクロ
実際は SendMessage で LVM_SCROLL メッセージとXYを送る
0715デフォルトの名無しさん
NGNG何かよい方法はないでしょうか?
0716デフォルトの名無しさん
NGNGないです。APIで正規の実装方法もありますが、なにかと面倒です。
(確かWM_SCROLLとかを引っ掛けなきゃいけない。)
直に実装するとゴミゴミするので再利用したいなら
ユーザーコントロールにしてスーパークラスっぽくするのがオススメ。
あと、Windows2000だと標準のスクロールバーは白くなる仕様ですので気をつけて。
0717デフォルトの名無しさん
NGNG先ほど再度確認してみたらできますた。
どうもです。
0718デフォルトの名無しさん
NGNGだからゴミゴミだろうと何だろうとその実装方法が知りたいんじゃない?
実際に表示したいピクチャーボックスの他に、そのコンテナとなる
ピクチャーボックスを用意して入れ子にして、実際に表示したい
ピクチャーボックスのTopなりLeftプロパティをスクロールバーでコントロール
してやればいいと思うんだけど。
0719デフォルトの名無しさん
NGNGMSに定番のサンプルコード載ってるけど。
0720デフォルトの名無しさん
NGNGフォローすると、外のピクチャーBOXが枠になって、その中を動かすことで擬似スクロールとなると。
VBの開発環境で、ピクチャーBOXの中にピクチャーBOXを置いて、内側の奴をマウスで動かしてみればイメージがわくと思う。
あとはそれを動かすロジックを、スクロールバーと連携させればいいだけ。
0721デフォルトの名無しさん
NGNGどうすればいいでしょう?
0722デフォルトの名無しさん
NGNG全部取り出してソート。
0723デフォルトの名無しさん
NGNGまじかよ!
0724デフォルトの名無しさん
NGNGText1.text=rs.Fields(0).valueに
rs.Fields(0).valueがNULLで値を
代入しようとしたときエラーになるのはなぜ?
別にいいじゃんと思うが
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGそそ!Nullと""は別物ですよね。
0727デフォルトの名無しさん
NGNGだな
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG∧_∧.(_)
( ;・∀・) ||ドキドキ
( つ||
| | |
(__)_)
0730デフォルトの名無しさん
NGNGもし読み取り専用属性がついていたら解除する関数を作りたいんですが、
どうすればいいですか。
GetAttrで読み取り専用属性がついているか確かめ、
SetAttrで読み取り専用属性をつける事ができるのはわかったのですが、
解除が分かりません。
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNGSetAttrで解除もできます。
SetAttr path,GetAttr(path) And Not vbReadOnly
0733デフォルトの名無しさん
NGNGVBで関数内のstatic変数を初めて関数が実行されたときに
初期化したい時はどうやるんでしょうか?
はじめて実行のための booleanフラグでも用意しておかないと
ダメですか?
それと社長に変数の宣言をプロシージャの冒頭にまとめろ
っていわれたんですけど、このスタイルはどうなんですかねぇ。
しょうがないので、会社ではそのスタイルで書くことにしますけど。
0734デフォルトの名無しさん
NGNG古い考え方だな
0735デフォルトの名無しさん
NGNGんー、よくわからないけどコピペしたら出来ました。
ありがとう。
0736デフォルトの名無しさん
NGNGstatic変数はVB.NETで廃止される。(C#やJavaにもない)
その変数がある所はフォームやクラスモジュールだろ?
だったらメンバ変数にすれば良い。
フォームはクラスの(General)の部分にかけばメンバ変数になる。
あとはフォームやクラスのInitialize(他言語で言うコンストラクタ)で初期化する。
関数が初めて実行されるというより、関数が含まれるオブジェクトが始めて生成されたときだが。
標準モジュールに置いた変数の場合は無理。
あとは変数はそれぞれの型の規定値に初期化されると
決まっているのでそれを上手く利用するとか。
> それと社長に変数の宣言をプロシージャの冒頭にまとめろ
冒頭に置く理由は無いんだけどね。でもVBの場合はスコープとして見れば
プロシージャより小さいスコープ(ifやfor等のブロック内のスコープ)は無いので、
冒頭にまとめるようにしてもいいんじゃないかな?
途中で宣言したくなるって事は関数が長いってことかも
知れないから分割した方がいいのかもしれないし。
まあ趣味レベルの問題。
0737デフォルトの名無しさん
NGNG>>だな
Isnullで判断してもいいんですけど(関数作ってもいいし)
みなさんはどうしてるのかなと
Text1.text=rs.Fields(0).value & ""
ようにしてるんですか?
ネタじゃないんですよね?
IF ISNULL(rs.Fields(0).value) THEN
Text1.text=rs.Fields(0).value
END IF
0738デフォルトの名無しさん
NGNGFunction Nz(ByVal Value As Variant)
If IsNull(Value) Then
Nz = ""
Else
Nz = Value
End If
End Function
0739デフォルトの名無しさん
NGNGの方が処理速度はかなり速いけどなー
0740デフォルトの名無しさん
NGNG関数呼び出しのコストだけどな。
Value = rs.Fields(0).value
If IsNull(Value) Then
Text1.text = ""
Else
Text1.text = Value
End If
が一番速い。
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNG>static変数はVB.NETで廃止される。(C#やJavaにもない)
>その変数がある所はフォームやクラスモジュールだろ?
>だったらメンバ変数にすれば良い。
釣りだと思いたいところだがなんかベタマジっぽいなこの人。。。
しかし俺のほかに誰も突っ込む奴がいないこのスレってどうなってんだおい。
0743デフォルトの名無しさん
NGNGたしかに↓はコンパイラ通らないよ。(Java)
privateメンバ変数とメソッド内部のstatic変数では
使い方が違うので、後者が廃止されるのが流れと
すれば残念だなぁ。
class StaticTest {
public static void main(String args[]) {
System.out.println(GetNum());
}
private static int GetNum() {
static int x = 1;
return x++;
}
}
0744デフォルトの名無しさん
NGNGrs.addnew
rs.fields(1).value="Hello"
rs.update
でフィールドがオートナンバならrs.fields(0).valueに値を入れなくて
いいですよね?
なんでエラーでるのかな
0745デフォルトの名無しさん
NGNGなんてエラーが出るの?
0746デフォルトの名無しさん
NGNGお前動かしてみてないだろ?
rs.fields(0).value & ""を関数にすると>>738よりも遅くなる。
>>738の関数を>>740のように関数から出すとrs.fields(0).value & ""よりも速くなる。
0747デフォルトの名無しさん
NGNGただ、IIFはTRUE/FALSE両方評価しちゃうから、変数アクセスで例外がでるならだめだけど。
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG>>738の引数のByValをByRefに変えて、標準モジュールに置いたら、
rs.fields(0).value & "" と速度は全然変わらん。
よって見やすいように関数にするのがいい。
""と連結している奴はアフォだな。
>>741の意見(どうせ推測だろうが)のIsNullも全然遅くないようだ。
0750デフォルトの名無しさん
NGNGIif(条件,引数1,引数2)は、条件の結果にかかわらず、
引数1,引数2の両方を評価するから遅い。
0751デフォルトの名無しさん
NGNG関数呼び出しのオーバーヘッドとの比較だな。
>>749のいうようにByRefじゃなければ、変数のコピー分遅い。
0752749
NGNGFunction Nz(ByRef Value As Variant)
じゃなくて
Function Nz(ByRef Value As Variant) As String
にするべきだったな。
しばらくVBやってなかったから忘れてた。
もう検証ソース消しちゃったけど、
As Stringをつけたら""と連結する方法より速くなりそうだな。
0753デフォルトの名無しさん
NGNGSQL文でNVLとかダメなのか?
0754デフォルトの名無しさん
NGNGif isnull( )then =9秒
&""=8秒
function=8秒
結論=たいしてかわらん
個人ならなんでもOKだけど 共同開発なら分かり易さでfunctionだろうね
俺ならSQLに組み込むけどね
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGrs.fields(0).value=text.text & ""
でエラーがでた。
ネタか.だまされた
0757デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGCPUの仕組みを理解している?
0760デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>731
0761デフォルトの名無しさん
NGNGCPUは関係ないだろ?
0762デフォルトの名無しさん
NGNG来月からの仕事(某銀行)でいるので誰か教えて。
0763デフォルトの名無しさん
NGNG( ・∀・) | | カッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>731
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGヤフオク
0766デフォルトの名無しさん
NGNGものの簡易版)を作りたいのですが、スマートにして効率的な手法はありませんか?
どこかのサイトを参考にして
While true
doEvent
hogehoge'設定時刻と現在時刻を比較
Wend
こんな感じで書きましたが、CPU使用率が100%になってしまいます。
(CPUの余剰分をすべて使ってしまう)
タスクスケジューラみたいにきれいに動かないものでしょうか。
0767デフォルトの名無しさん
NGNGVBのプログラマスレでCPUがどうとかほざいている馬鹿を見るのは久しぶりだな。
Basicがどういったものなのかまずはお前から勉強してこい(w
CPUの仕組み?アセンブラでも組むつもりか?
現代のPCでCPUの仕組みなど考慮する必要もない。 未だにCPUの命令セットが
どうとか、テクニカルな要望するのはサーバー分野以外はっきりいってただのハー
ド馬鹿の戯言。
消えろ そして二度と来るな。 CPUの言葉でた段階でアセンブラ当然書けるだろ?
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGタイマーコントロールで数秒か数分ごとに
時間をチャックすればいい。
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNGatでくんじゃダメなの?
あと、タイマーで毎秒監視、前回と今回の間に設定時間があったら起動でいいんじゃないの?
0774デフォルトの名無しさん
NGNG組込みならともかくサーバ分野でそんなに要求されるのかな
0775デフォルトの名無しさん
NGNGさあ ?
>>767 の脳内では、サーバー ≡ すごい機械 (= アセンブラが要求される) となっているんじゃないかな。
0776デフォルトの名無しさん
NGNG変数でDate型宣言したとき
初期値ってどうしてます?
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGたしかにそうだが、そもそもCPUを持ち出してきた>>759は
CPUの仕組みとは全く関係ないところにCPUを持ち出してきている。
0780デフォルトの名無しさん
NGNGデータの分布によっては分岐予測などで速度が変わりうる
大差無いだろうが
0781デフォルトの名無しさん
NGNGその通りだが、それが何の関係があるの?
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG↓
数十秒後にVBでエクセルを起動しまたエクセルの処理をして終了後に
VBを起動してエクセルを終了という処理を繰り返したいのですが
タイマーの使い方がよくわかりません。
教えてください
0785デフォルトの名無しさん
NGNG何が言いたいのか全然わからない。
文章の推敲ってものを知らないのか、あるいは自分以外の人は
エスパーか何かで、君の言わんとすることを皆まで言わずとも
理解できるとでも思っているの?
しかし最近こういうレス多すぎないか?
0786デフォルトの名無しさん
NGNGbooleanの変数を用意しておき?(この部分はいまいち)
API(sdkプラットホームで検索)を使って実行ファイルの処理を行う。
ぐらいかな。(タイマーよりアプリの終了とかの法が面倒かな)
わからんけど。
0787デフォルトの名無しさん
NGNG何でそんな変な処理が必要なのかよくわからん。
VB でできることは、ほとんど VBA でできるから VBA で統一するか、VB 側をメインにして適時 Excel を起動するように作るとかの方がいいと思う。
ちなみに、タイマーはタイマーコントロールをフォームに貼り付けて (名前を仮に Timer1 とする)
Timer1.Interval = 10000
Timer1.Enabled = True
とかすると、10秒後に Sub Timer1_Timer() が起動されるはず (だったと思う。最近 VB 触ってないから間違ってたらスマン。)
>>785
これぐらいの文章の理解力がないと、実社会では厳しいぞ。
0788757
NGNG全然理解できてないと思うよ。
そういうのは「理解」でなく、「思い込み」と言う。
相手の考えを勝手に推測することなんて誰にでもできますけど。
maybe
0789757
NGNG>Timer1.Interval = 10000
>Timer1.Enabled = True
>とかすると、10秒後に Sub Timer1_Timer() が起動されるはず
こんなことも知らない奴が果たしているだろうか。。
0790デフォルトの名無しさん
NGNG連続して処理をするとリソース不足になるため処理を細切れにして
リソースを回復するために処理ごとにエクセルを終了しようとしています。
VBAの方でリソースの回復命令のようなものを探したのですが見つからなかったので。
使用しているのはwindows98、Excel97です。
0791デフォルトの名無しさん
NGNGそれでどうしてその「リソース不足」の方に手を打つことを優先せずに、
そんな妙ちくりんな回避方法を考えてここで質問するのか、まったく理解不能ですな。
こういう人のいう「リソース不足」ってのは、そもそも本来の意味で
「リソース不足」なのか大いに怪しい。
VBからオートメションでエクセル操作するコードを何にも考えずに
漫然と書くと、よくエクセルが固まったりするが、そういうエクセルの
不具合に起因する問題のことを、なんかどっかで聞きかじった「リソース不足」
って言ってるんじゃないの?
ていうか、
>Timer1.Interval = 10000
>Timer1.Enabled = True
>とかすると、10秒後に Sub Timer1_Timer() が起動されるはず
こんなこと書いてる人に聞いたって答えなんて得られっこないだろう。
0792デフォルトの名無しさん
NGNG> >>785
> これぐらいの文章の理解力がないと、実社会では厳しいぞ。
読解したつもりで的外れな回答をするよりは、
判読可能な文章に書き直してもらうほうが、ゴールは近い。
プログラムは思ったように動くのではなく、書いたように動く。
プログラマは読む側の努力でなんとかするべきでない。
0793デフォルトの名無しさん
NGNGぷぷっ、指摘されたのが相当悔しかったみたいだな。
>>789
>> タイマーの使い方がよくわかりません。
タイマーの使い方ってこれ以外になんかあるか ?
「VB やってる奴全員がタイマーの使い方知ってる」と考える方が、よっぽど「思い込み」が激しいぞ。
>>790
まあ、どっかでリソースの解放漏れしてると言うのがありがちだけど、Win9x + Excel ででかい表扱うと単に使ってるだけでもリソース不足になることあるから、一概にプログラムの問題とも言えないしな。
いちばん簡単なのは OS を変えることだろうけど、それも難しいんだろうな...。
でも、相互に起動し合うというのはちょっといただけないから、VB 側をメインにして Excel の終了を待った方がいいと思うよ。
VB の Shell() できどうしたプログラムの終了を待つ方法はググれば出てくる。
例えば (申し訳ないが、内容は未確認)
http://www.bcap.co.jp/hanafusa/VBHLP/tap_PrgEnd.htm
>>792 (あんまり思いたくないけど、>>788-789, >>791 とは別人か ?)
悪いけど、読解できてないのは君たちだと思うぞ。
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNGまだ始めたばっかりの奴はしらんだろうが、
今知らないだけで、すぐに使い方ぐらい知る。
0796デフォルトの名無しさん
NGNGレベルあわせってのが現実には一番大切なのは皆わかってることだろ
でも、掲示板でできるのも限度があるでしょ?
質問がわかんなかったら、答える必要ないじゃん
こういうこと言ってるのかもって思う奴だけが書けばいいんだよ
誰も答えてくんなかったら、答えてくれるようにどうにか考えて書くだろ?
おまえの質問はわからんって言われてきた奴ばっかなのかもしれんが
ここでその憂さを晴らされてもなぁ・・・
0797792
NGNG> >>792 (あんまり思いたくないけど、>>788-789, >>791 とは別人か ?)
> 悪いけど、読解できてないのは君たちだと思うぞ。
悪いけど、>>788-789, >>791とは別人。
言ったろう、思い込みで話を進めるから、ややこしいことになるって(汗
0798そもそも、ひゆと読めるかどうかが怪しいか。
NGNG自分がか ? そりゃそうだろうな。(藁
>>795
だから、>>789 と言うのか ?
君にはマルチスレッドのプログラムは無理だね。
(さて、この比喩がわかるかなぁ...。)
>>797
はぁ...、わけわかの奴が複数いるのね。
で、どうややこしいことになってるって ?
悪いけど、それは流石に「理解」できないから説明してくれる ?
「思い込み」で解釈しちゃダメなんだろ ? (藁
0799デフォルトの名無しさん
NGNGまた逆も可能ですか?
#2次元配列からエクセルのセル(範囲)に貼り付ける方法はやったことがあります
#ので、上記も可能なのかとは思いますがどこから調べていいかわからず。
0800デフォルトの名無しさん
NGNG文章が厨っぽい。放置します。
0801デフォルトの名無しさん
NGNGコンボのテキスト(Addnewで入れたリスト内のText)が変わった瞬間に発生するイベント
を起こして、EnabledのTrue Falseを変えたいのですが、うまくいきません。
コピペするしこんな感じなんですが
Private Sub Com編集_KeyPress(KeyAscii As Integer)
If Com編集.Text = "編集する" Then
Tex見積.Enabled = True
Else
Com編集.Text = "編集しない"
Tex見積.Enabled = False
End If
End Sub
「KeyPress」の所を変えてあげればいいのかな?と思ってるのですが、うまくいきません。
どなたかご教授を・・
0802デフォルトの名無しさん
NGNG全角のコントロール名は…はおいといて
Changeイベントじゃだめなの?
0803デフォルトの名無しさん
NGNG残念ながらチェンジはだめでして。。
チェンジだとTextに「入力しようとする」と発生していいのですが、「クリック」や「スクロールボタン」
では発生しないのです。
「クリック」や「スクロールボタン」で発生させたいのです
0804デフォルトの名無しさん
NGNGならClickイベントは?
0805801
NGNGさっきまでだめだったのになんでだろ。。。_| ̄|○
0806デフォルトの名無しさん
NGNG全角使ってあるの、あたい初めてみた。(゜Д゜)
0807801
NGNG全角だったからさっきダメだったのかな?
0808デフォルトの名無しさん
NGNG0809彼 (等) は我慢できるかな ?
NGNGププッ、反論できないだけだろ ?
0810デフォルトの名無しさん
NGNGタイマーは別スレッドで実行されるぞ!
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGどうすればよいでしょうか?
0813プッ、マルチスレッドと言う言葉しか読み取れなかったんだね。
NGNGで、それがどうかしましたか ?
0814デフォルトの名無しさん
NGNGタイマーはアトミックだからなぁ・・・。
0815デフォルトの名無しさん
NGNGネットワークとは、どこからどこまでの範囲?どうやって繋がってる?相手のOSは?
0816デフォルトの名無しさん
NGNG同意。スレッドとは挙動が全然違う。
0817マジで、比喩がわかってなかったんだな...。
NGNG>>813 の名前欄
0818デフォルトの名無しさん
NGNG麦茶をビールと呼ぶのは比喩とは言わんよ。
0819デフォルトの名無しさん
NGNG0820まあ、お前ら釣られ杉ってこった。
NGNGマジで理解してないの ?
>>795 に書いてあることには、「隙間」があるんよ。
で、マルチスレッドのバグ一例として、その「隙間」に気づかないことをあげつらったわけ。
と説明しても、理解できないんだろうな...。
まあ、これは理解できなくてもしょうがないと思うよ。
俺も簡単にはわかるようには書いてないから。(比喩だし。)
0821デフォルトの名無しさん
NGNGタイマはスレッドでもなければ割り込みでもないよ。
0822やっぱり理解できないんだ...。
NGNG>>820 の「隙間」と言うのは、
今知らないだけで、
^^^
すぐに使い方ぐらい知る。
^^^^^^
の間のこと言ってんだけど、伝わってないのかな ?
VB のタイマーについては、ここでは関係ないよ。
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825812
NGNGすみません。イントラネット環境です。OSはWin系。
VBアプリからサーバ上の共有ファイルを複数のクライアントPCから
アクセスしたいんです。
1クライアントがOPEN中の場合は、CLOSEされるまで待つようにしたい。
現状は、「aaa.txt」をOPENする時、
IF 「aaa_(xxxxxx).loc」というファイルがあるか THEN
ファイル使用中
ELSE
「aaa_(クライアントPC名).loc」というファイルを作成し、「aaa.txt」をOPEN
ENDIF
CLOSEする時に「aaa_(クライアントPC名).loc」を削除。
という形でやってますが他に方法が無いかと…
0826デフォルトの名無しさん
NGNGまっとうなDBを使うかサーバに専用のプログラムを動かしてクライアントは
それにアクセスするか、etc.etc.・・・
0827デフォルトの名無しさん
NGNG受付係なソフトを作ってサーバーに置いて状況管理・通知をそれに頼るとか。
0828デフォルトの名無しさん
NGNGCreateFileでdwShareModeを0に。
オレなら素直に、>>825と同じ処理でやる。
ファイルを作りたくないなら、リードオンリーにしておけないかな。
0829デフォルトの名無しさん
NGNG厳密に言えばそれじゃだめだけどね。
・現在誰も使ってない状態
・クライアントAが使ってないと判断
・クライアントBが使ってないと判断
・クライアントAがlocファイル作成
・クライアントBがlocファイル作成
という流れもありうる。
単純に、aaa.txtをロック状態で開いて、(openの引数でロックできるのは
知っているよね?)エラーが起きたかどうかで判別した方が良い。
>>826が書いているようにDBサーバーを使うほうが何かと便利だと思うけど、
DBサーバーを使うにしろ使わないにしろロックについてもう少し調べて方が良い。
ロック中は他クライアントが読めなくてもいいのかとか、書き込むときだけロックするのかとか、
その場合はクライアントA読み込み、B読み込み、B書き込み、A書き込みとなったらどうするのかとか、
そういう一般的な問題の解決の手がかりにもなると思うし。
0830デフォルトの名無しさん
NGNG>>825はその流れを考慮してると思うよ。
それが証拠に、ロックファイルにマシン名が入れてある。つまり、
1) ロックファイルを作成
2) 自分以外が作成したロックファイルがあるか調べる
3) なければファイルを開く
ということをやってるんじゃないかな。
こちらの場合、開ける状態で譲り合うケースがあるけどね(汗
0831デフォルトの名無しさん
NGNGいや、やってないな(w
マシン名のとこだけ見て、考慮してるんだろうと思ってしまった。
単に、だれが開いてるか知りたいだけか。
0832825
NGNG>>826,827
いまさらDBに出来ないし、別ソフトはサーバマシンに負荷がかかるし・・・
(サーバマシンもクライアントとして動かすので。サーバ専用マシン入れるほど予算が無い)
>>828
それって、CLOSE前にクライアント側が異常終了した場合に残ってしまうので・・・
>>829-831
1.OPEN前にチェック
2.locファイル作成
3.再チェック
という手順でやってます。お見合いを避けるため占有権を取得できない場合は、
MAX10回まで再試行すると・・・
0833825
NGNG実はlocファイル名は、「aaa_(クライアントPC名)_(x).loc」
x=0:READ占有権(他PCのREADは許可する)
x=1:WRITE占有権(他PCからのアクセス全て不許可)
としてます。
やはりOPEN時にロックモード設定して、エラートラップしかないでしょうか?
「ロックによるエラー」って判別可能ですか?単にOPENエラーでは困るし・・・
0834825
NGNGPC名指定して占有権ファイルを削除する機能を一応付けてるんですけど・・・
うーーん・・・あふぉですみません。。。
0835デフォルトの名無しさん
NGNGそいつがロック監視及びロックしてるクライアントの生存確認をするようにしたほうがいいわな。
ソケットかなんかで通信して。
0836デフォルトの名無しさん
NGNGバーを貼り付けて、プログラムでデータ表示等のボタンを配置しているのですが、
データ表示の処理中にボタンを押せないようにしたいのですが、どうしても上手く
いきません。解決策をご存知の方がいたらよろしくお願いします。
EnabledやVisibleは使用してみたのですが、やはりダブルクリックをしてしまう
と連続処理に入ってしまいます。
0837デフォルトの名無しさん
NGNGなるの??
どこでEnabled設定してるの?
0838デフォルトの名無しさん
NGNGEnabled=Falseの直前にDoEvents。
0839デフォルトの名無しさん
NGNGできるかもしれんが、どっちかってっと直後?
というかDoEventは止めたほうが・・・後でややこしいことになったりするよ
0840デフォルトの名無しさん
NGNG>後でややこしいことになったりするよ
それは使い方が悪いからだろう
0841デフォルトの名無しさん
NGNGそのとおり使い方が悪いからだが、>>836の質問者が
使いこなせるとは思えないので、やがて使い方が悪くなると思うわけよ。
それでお勧めできないなと。
0843デフォルトの名無しさん
NGNGていうか、Enableプロパティって別にコントロールがリフレッシュされなくても
値を設定した直後から有効だと思うんだが。。
0844デフォルトの名無しさん
NGNGだから、その辺のWindowsの仕組みをきちんと理解せずに使うと副作用でまくり。
0845836
NGNG使いこなせそうにないですね。Refreshを使ってみようと思います。
0846デフォルトの名無しさん
NGNG>>843が間違ってるとおもうぞ、この件に関しては。
リフレッシュはあくまで再描画命令。
溜まったクリックイベント(=メッセージ)を吐かせるにはDoeventsだと思うけど。
0847836
NGNGEnabledを入れた部分はツールバーのボタンクリック時イベントプロシージャです
。プログラムの流れはボタンをクリックすると実際の表示関数に飛ぶようになって
います。DoEventsをHELP読んで勉強してみます。もしこのやり方に間違いがある
ようでしたら教えてください
0848デフォルトの名無しさん
NGNG順序変えればいいだけ何じゃないの?
0849デフォルトの名無しさん
NGNGCommand1.Enabled = False
処理A
DoEvents
処理B
DoEvents
処理C
Command1.Enabled = True
End Sub
0850デフォルトの名無しさん
NGNGTrueにする直前で一発でいいと思うんだけど。
0851836
NGNG教えてもらった通りに書いたら思い通りに動きました。本当にありがとう
ございました。
0852デフォルトの名無しさん
NGNGおねがいします
0853デフォルトの名無しさん
NGNGSendKeyでやれば。
0855デフォルトの名無しさん
NGNGWebBrowser1.Navigate2 "http://www.google.co.jp", 4 + 8
どこかのサイトにこうすればキャッシュを削除して
ページを読み込めるって書いてあったのですが、
オブジェクトがサポートしてないとか出て
うまく動作しません・・・・
誰か解決方法を知っていたら教えていただけませんか・・・?
0856デフォルトの名無しさん
NGNGじゃあマクロでやりなよ。フリーで使い手いいのがいっぱいある。
ttp://www.vector.co.jp/vpack/filearea/win/util/bat/index.html
「できないからやって」みたいにコード作成依頼するのは、宿題丸投げ
っぽくていくない。
0857デフォルトの名無しさん
NGNG只だしw
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG影つきのマウスカーソルを使う。
0860デフォルトの名無しさん
NGNG別のスレに書いたのですが、そちらはどうも質問スレじゃないみたいで
マルチになるかもしれませんが、ここで質問させてもらいます。
VB6サービスパック5でDAO3.6ライブラリーを使用してレコードセットを作成しているのですが、
Private Sub Form_Load()
Dim db As Database
Dim re As Recordset
Dim strDBName As String
Dim strREName As String
Dim intRecs As Integer
strDBName = App.Path & "C:\Documents and Settings\xxx\xxxxxxx\xxxx\xxx.mdb"
strRSName = "Titles"
★Set db = DBEngine.OpenDatabase(strDBName)
Set rs = db.OpenRecordset(strRSName, dbOpenDynaset)
With rs
.MoveLast
intRecs = .RecordCount
End With
MsgBox strRSName & ":" & CStr(intRecs), vbInformation, "Total records in set"
End Sub
★印の付いた行を指定して、
『ファイル名が無効です』『ファイル名が違います』というエラーがでるのですが、
これはなにがいけないのでしょうか?
パス表記の仕方が間違ってるってことでしょうか
0861デフォルトの名無しさん
NGNG氏ねカス野郎
0862デフォルトの名無しさん
NGNG向こうでご指摘頂けました。
重複して申し訳ないです
0863デフォルトの名無しさん
NGNGDebug.Printなりで表示させて確認すればいいのに。そうすれば今回の
は明らかにおかしいって見つけられたはず。
0864デフォルトの名無しさん
NGNGその後もそのウィンドウを操作するようなプログラムを組みたいと思ってます。
ShellExecuteの戻り値はウィンドウのインスタンスハンドルなのですが、
これをウィンドウハンドルに変換できないのでしょうか。
調べてみたんですが、ウィンドウハンドルからインスタンスハンドルの取得というのはありましたが、
逆は見つかりませんでした。
分かる方いらっしゃいましたら、教えてください。よろしくお願いします。
環境:VB6.0, windows2000
0865843
NGNGこういう人がいるから「VB厨」って言葉ができるんだな。
コントロールのイベントを無効にしたい、って話してるのに、何が
>溜まったクリックイベント(=メッセージ)を吐かせる
なのだろう。意味わかっていってるのかねえ。。
0866デフォルトの名無しさん
NGNG意味がわかってないのはお前のほうだ。
0867デフォルトの名無しさん
NGNGそれとも、リストラや左遷されて、さびしかったの?かまってほしいの?
もしそうなら、他の板でやってね。
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870855
NGNG0871855
NGNGスレ汚しスマソ。。。
0872デフォルトの名無しさん
NGNGなんとかしてください。
0873デフォルトの名無しさん
NGNGリファラを設定することってできますか?
0874デフォルトの名無しさん
NGNGどっかのスレでその話題あがってたが、どこだったか忘れたな
0875デフォルトの名無しさん
NGNG一つのインスタンスが持っているウインドウは一つとは限らないからねぇ〜
0個かもしれないし32767個かもしれない。
存在するウインドウを列挙してそのインスタンスを調べてみるとか?
(APIでプロセスIDかスレッドIDからウインドウの列挙できる方法が
あった気がするけど夢だったのかもしれない)
0876デフォルトの名無しさん
NGNGコード書きますか?
左から4番目が数字で6から7番目が月で数字とか
書いています
0877デフォルトの名無しさん
NGNGIsDate
0878デフォルトの名無しさん
NGNGだれかわかりませんか?
2つのコマンドボタンがあってどれを押されたか判別するにはどうしたらよいのでしょうか?
トリガーみたいなのはVBにないのでしょうか?
0879デフォルトの名無しさん
NGNGコントロール配列にしてClickイベントにてIndexの値を参照
0880デフォルトの名無しさん
NGNGあえて釣られてみるか。
まずフォームにコマンドボタンを2つ貼り付けて、
エディットモードのままそれぞれのボタンをクリック汁。
そんでもピンとこなかったらプログラミングの適正はゼロだと思って
諦めることだね。
まあ、この程度のことでヘルプも引かずにいちいち人に聞いているようじゃ
どのみち先は暗いと思うけどさ。
ところでトリガーみたいってトリガーって何??
0881デフォルトの名無しさん
NGNGありがとうございます。
すこし頭ぼけてむつかしく考えすぎました
0882デフォルトの名無しさん
NGNG>ところでトリガーみたいってトリガーって何??
ピンとこなかったらプログラミングの適正はゼロだと思って
諦めることだね。
まあ、この程度のことで辞書も引かずにいちいち人に聞いているようじゃ
どのみち先は暗いと思うけどさ。
0883デフォルトの名無しさん
NGNGとある事情でメイン画面がActiveXEXEなのですが、他の外部ActiveXDLL
が共通で使用するアカウントやホスト名、パスワードなどを
メイン画面のクラスに定数として持たそうとしているのですが
当然ながらCLASSにPublic宣言は不可能です。
で標準モジュールにパブリックで定数を宣言して
CLASSの何とかゲットと何とかレッツを使いたいのですが
コードの書き方がわかりません。
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGじゃなくてLETSだたような VBって難しすぎですよね
0887デフォルトの名無しさん
NGNGってかあなたの言っている意味が分かりませぬ。
もちっと整理したら?
用語もわからん状態で聞くより、用語を調べたほうが
解決に近いと思うよ。
0888デフォルトの名無しさん
NGNGはい 仰せの通り基本を調べてきました
Property Let と Property Getっぽいです。失礼しました。
通常このプロシージャーは 定数のやり取りを外部と行う為に
用意されているものなのですよね?
どっちがどっちかとか あまり説明ではイメージがわきません
厨みたいな質問ですいません。
0889デフォルトの名無しさん
NGNG定数とかかぎらない。
また、変更するときの範囲のチェックなどもそこで行う。
0890883
NGNGPrivate sub Aproc()
Dim objCls as class1 'OLE EXEのクラス
Set objCls = New class1 'インスタンスの作成
Call objCls.ConstData1(strHostName) 'OLE EXEプロシージャコール
Set objCls = Nothing
End sub
とした場合
この外部DLLへ提供するべき定数はGet ですか? Letですか?
イメージで質問してすみません
0891883
NGNG×この外部DLLへ提供するべき定数はGet ですか? Letですか?
○この外部DLLへ提供するべき定数のやり取りはGet ですか? Letですか?
0892デフォルトの名無しさん
NGNG列挙型を使えば良いと思った。
0893883
NGNG今 ちょっとテストで作ってみました。
これを外部から呼び出す時は
Call objCls.とやっても宣言した定数の一覧がでてきませんが
コールする際はどのように書くのでしょうか?
0894デフォルトの名無しさん
NGNGPublic Property Get Hoge() as Long
Hoge = 定数
End Property
で一応出来るよ。
Enumはクラスでパブリック宣言できたっけ?
まぁインテリセンス使いたいならPropertyGetでいいんじゃね。
でも本来これは定数を返すためのもんじゃないよ
0895843
NGNG定数クラス、って発想をする人がプロパティの意味がわからんなんて
ちょっと考えにくい。
アホなVB厨どもが知ったかして素っ頓狂なことぬかすのを笑ってやる腹とみた。
0896デフォルトの名無しさん
NGNGあんたの853の返事の抜け作加減からして他人を厨呼ばわりする資格は
無いと思うが如何?
0897デフォルトの名無しさん
NGNG絵を数枚用意してボタンをクリックすると、絵が動くというプログラムを組みたいのですが
フォームにPictureBoxとコマンドボタンを付けてPictureboxに絵を読み込み、コマンドボタン
をWクリックしてPicture1.Picture = LoadPicture ("ファイルへのパス")を数枚やってみたのですが
コマンドボタンを押すと超亜速で絵が動いてしまい、ハハーンここは時計のマークのやつを
使うんだな?という事くらいまではわかったのですが、どうやらここで脳みその限界を迎えてしまいました。
そこで、コマンドボタンを押す→絵が0.5秒単位くらいで動く→終わり
というプログラムを組むにはどうすればいいのでしょうか
0898843
NGNG>>853ってのは>>843の間違いだよね?
「抜け作加減」ってのは、具体的に何のことを指すのでしょうか?
厨房な私としては是非ご指導を仰ぎたいのですが。
ま、ただの釣り師のつもりの「知ったか君」の予感がしますが。。
>>897
またそんな釣りみたいなレスを。。
本当はそんなこと分ってるんじゃないの?
0899883
NGNGそしておはようございます。
>>894
ありがとうございます。
今からちょっと作ってみます。インテリセンス
っていうか また厨なイメージのレスになってしまいますが
本当はTypeのようなで複数要素の集まりを宣言した中に常に静的な定数を保持しておき
Property Getの型をこの要素の集まりを宣言します。
で 外部からこのプロシージャ(仮にProcGetAとして)を
コールし、
ProcGetA.HostName
ProcGetA.UserName
ProcGetA.PassWord
のように一つのプロシージャコールより それぞれの要素レベルで
帰ってきた定数を各外部DLLで使いたいなあと思いました。
0900デフォルトの名無しさん
NGNG時計のマーク=タイマーコントロールをはりつけたら
それをダブルクリックして出てくるSUB関数の中に絵を切り替える処理を書くんだよ
そのSUB関数が定期的に
0901デフォルトの名無しさん
NGNGRun-time error '9':
Subscript out of range
というエラーが出て、落ちてしまいます。
原因わかる方いらっしゃいますでしょうか?
よろしくお願いします。
0902デフォルトの名無しさん
NGNGそもそもその組み合わせって可能なのか?
VB6にはOffice2000じゃないの?
VBとOfficeを連携させる場合、結構バージョン限定しないとつらいよ。
(他のツールでもOffice連携の場合はそうだと思うけど。)
で、質問のエラーの場合、オブジェクトの生成、ファイルのOpen はOKで
シートオブジェクトに触ったところでエラーという感じですか?
0903デフォルトの名無しさん
NGNGすいません、説明不足でした。
補足しますと、日本語環境で開発したものを英語環境で動作させています。
日本語環境では、問題なく動くのですが
英語環境だと今回のエラーがでてしまいます。
今までは、EXCELシートに書き込みに行くという処理を行っており、
それは両環境で正しく動作していたのですが、
今回、EXCELシートを参照しに行くという動きを取り入れ、
今回のエラーが出てしまいます。
0904デフォルトの名無しさん
NGNGランタイムエラーなんでしょうね
>>902さんが言うようにMSアプリ間でのバージョンの互換に
より結構影響を受ける事があります。
ただ偶然にも日本語環境では互換がとれていて問題なく動いていただけで
英語環境に変わる事で動作リンクズレを起こしてしまったのでしょう
よくある事です。開発環境を見直すか別のほーほーを思考しましょう
0905デフォルトの名無しさん
NGNGありがとうございます。
環境を見直して見ます。
0906デフォルトの名無しさん
NGNG一応、お金はかかりますが、Excelインストール不要なExcel操作ツールはあります。
製品名がぱっと出ないのですが、どっとネットマガジンとかの最初のほうの広告を見れば出てると思う。
0907VB.NETに間違えてかいていしまったので
NGNGrs,open "ビュー"・・・・ と
オープンするとレコードの数がー1になるんですけど?
これはなぜなんでしょうか?
degub.print rs.RecordCount
DBはSQLサーバですが?
ビューが悪いのでしょうか
(ビューの中からさらにビューを呼んでいる)
0908デフォルトの名無しさん
NGNGRs.MoveFirst
0909デフォルトの名無しさん
NGNGopenした瞬間とかは一度もフェッチが行われていないので
recordCountはタイミングによっては正しくない値が入ってる時がある。
だから、>>908のように一度、レコードを移動させるかしないと駄目だったと思う。
どっかのマニュアルに書いてあった記憶があるな。
間違ってたらごめん。
逆にレコード件数チェック(1件以上あるかどうかのチェック)程度ならば、
recordCountは使うべきじゃなくて、以下のようにするのが一般的だと思う。
if (not rs.EOF) and (not rs.BOF) then
...
end if
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNGそ う い う 仕 様 だ か ら だ
0912Qest
NGNGその.mdbファイルにログイン/パスワードを設定する方法が
VBのプログラムでありますか?
ありましたら教えて下さい、お願いします!
0913Qest
NGNGその.mdbファイルにログイン/パスワードを設定する方法が
VBのプログラムでありますか?
ありましたら教えて下さい、お願いします!
0914843
NGNG>今までは、EXCELシートに書き込みに行くという処理を行っており、
>それは両環境で正しく動作していたのですが、
>今回、EXCELシートを参照しに行くという動きを取り入れ、
>今回のエラーが出てしまいます。
もうちょっと意味の通る文章を書かないと、知ったかぶりしたい人から
見当違いなレスはあっても、あなたの問題に解答する能力を持つ人からの
レスはもらえないと思う。
まず、ワークシートに書き込みはできるのに参照でエラーが出る、
ってところがそれだけでは矛盾するようにも聞こえるので最低これを
補足しないと。(これに突っ込まないような人のレスは信頼できんでしょ?)
だって、書き込みができる、ってことは、少なくともその書き込みを
行ったワークシートへの参照は成功してるんでしょう?
0915デフォルトの名無しさん
NGNGえらい暗いね。
0916デフォルトの名無しさん
NGNGそれで漢字はすべて、?一文字に変えたいのですが、どうやって調べたら
いいんですか?
Strconv(str,vbNarrow)ではカナはおけで、かなはだめでした。
昆布はあきらめてisKanji(”漢字”)みたいな方法ないですか?
0917デフォルトの名無しさん
NGNG漢字とか考えないで、全部16進数やbase64などの名前に強制変換すりゃいいじゃない
ファイル名の長さだけには気をつけて。
0918デフォルトの名無しさん
NGNGお返事ありがとうございます。
参考になりました。
0919デフォルトの名無しさん
NGNGあんたが一番の知ったかぶりだね
0920デフォルトの名無しさん
NGNG絵文字がきちんと表示されません。ちなみに、J-SH?はうまくいった。
そもそも J-T0?って携帯以外からの絵文字入りメールを受け取っても、
きちんと表示してくれない?
0921デフォルトの名無しさん
NGNGVBとはどんな関係が?
0922920
NGNG逝ってきます…
0923916
NGNGfor Count = 1 to len(InputString)
if isKanji(mid(InputString,Count,1)) then
mid(InputString,Count,1) = "?"
end if
next
にしたい。どうしても。なんかない?
0924デフォルトの名無しさん
NGNGif LenB(StrConv(InputString,vbFromUnicode)) <> Len(InputString) Then
MsgBox "2バイト文字が入ってるよ"
End If
0925デフォルトの名無しさん
NGNGなんか英語版だからという気はしないけど。
インデックスが違うって言うんだから、インデックス値とか調べてみた?
それからVB6とExcelXPは可能だと思うけど。
Excel2000と2002は違うかもしれんけどさ。
取りあえず俺が作った奴はフツーに動いてるぞ。
0926916
NGNGありがと。意味わからんけどやってみます。
LenB(StrConv(InputString,vbFromUnicode)) > Len(InputString)
ってことですね。
0927デフォルトの名無しさん
NGNGどうでもいいが、"?"なんて文字をファイル名にしようとするなよ
0928デフォルトの名無しさん
NGNGデータを行と列の表で表示させたのですが、
DataGridを使用すれば列でソートも出来る表を
作れるのでしょうか?
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG送っているのですが、クライアントごとに番号が異なるようなんです。
考えられる原因を、どなたかご存知ないでしょうか?
よろしくお願いします。
0931デフォルトの名無しさん
NGNGDCLコマプロをキックするなんてできますか?
0932デフォルトの名無しさん
NGNGハコとかマニュアルとかに、問い合わせ先書いてません?
0933931
NGNG@Menu のような文字列を
センドキーにて送っているので 挙動がおかしい時があり
処理の信頼性がないのです。
FTPセッション等の関数より直に起動できるといいのですが
0934デフォルトの名無しさん
NGNG変な略語は使わない->コマプロ=コマンドプロンプト?キック=起動?何を?
出来る出来ないは、両PC間のRPC等の方法を見てからじゃないのか?
0935デフォルトの名無しさん
NGNGコマプロとは?
キックとは?
0936931
NGNGすいません こちらの業務の略語つかってしまいました
癖になってます。
コマプロ= ○○○.COM等の DCLコマンドプログラムです
キック= 起動 及び実行です
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG消えたログに説明があったな
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGいいえ違います
Digital Command Languageの略で
DOSのVAXとかopenVMS版コマンドという意味合いでは似ています。はい
0942デフォルトの名無しさん
NGNGこのようにキーを送り実行しています
Public Sub SendTxt(ByVal StrLine As String)
Dim cutStr As String
Dim i As Integer
i = 0
'長さの分ループする
Do While i < Len(StrLine)
'送信文字列を一つ取得
cutStr = Mid(StrLine, i, 1)
'文字列をセンドする処理呼び出し
Call SendkeyChr06(cutStr)
i = i + 1
Loop
'リフレクションセッションへのセットフォーカス
R2winCtrl1.SetFocus
SendKeys "{ENTER}", True 'ENTERキーを送る
End Function
Private Sub SendkeyChr06(cutStr As String)
setKey = "{" & cutStr & "}" '送信キーのセット
R2winCtrl1.SetFocus 'リフレクションセッションへのセットフォーカス
SendKeys setKey, True '対象キーを送る
End Function
0943デフォルトの名無しさん
NGNG>>939
そのやり方だと、フォーカス当てた後にDoEventsを何個か入れないと間に合わない。
941 名前:933補足 投稿日:04/03/25 15:05
DoEventsですか
なるほど。
いずれにしましてもUNIX側の稼働率や回線のコンディションで
希に文字を送りきれない不具合になっているので
別の方法を考えたほうがよさそげですね
それとEnd Functionは End Subの誤りです
942 名前:デフォルトの名無しさん sage 投稿日:04/03/25 15:11
>>941
だな、入出力をエミューするのではなく、通信コマンドとして直接送受信しないと安定しないだろうね。
943 名前:教えてください。。@初心者です。 投稿日:04/03/25 17:46
VB6です。
作ったアプリを常に最前面に表示させてたいのですが、
VBから他のアプリの制御って可能なのでしょうか?
方法を教えてください。。
もし無理ならAPIでもいいのですが・・・・・
よろしくお願いします。。
0944デフォルトの名無しさん
NGNGSetWindowPos
945 名前:教えてください。。@初心者です。 投稿日:04/03/25 18:18
>>944さん
ありがとうございます!!
やってみます!!
946 名前:デフォルトの名無しさん 投稿日:04/03/25 18:49
感謝するのは早いと思うよ。
だってSetWindowPosなんて>>943に書いてあるようなことには使えないから。
とにかく多すぎるんだよ、>>944みたいな人を糠喜びさせるものでしかない
おたんちんなレスが。
947 名前:デフォルトの名無しさん sage 投稿日:04/03/25 18:55
>>946
スレ違い。
キチガイアンチはうざいからでてってね。
948 名前:デフォルトの名無しさん sage 投稿日:04/03/25 18:55
>>946
何が悪いのかよくわからないなぁ。
ウィンドウハンドル取得できれば別に問題無いのでは。
それとも、ウィンドウの列挙と、プロセスの列挙の方法も教えないと駄目ってこと?
0945デフォルトの名無しさん
NGNG>>948
>>943 で示している用件をどう受け取っているかの
違いだと思うのですが。
他のアプリのウィンドウを制御して、相対的に自分の
アプリを一番上に持ってきたいと書いてある様に受け取れる。
やりたい事とやりたい方法をごっちゃにしている悪い例
じゃないかなぁ。
やりたい事を取り出せば、944になるよなぁ。
やりたい方法が出来なければ駄目、ってのは視野狭窄以外の
何物でもないです。
946 = 「やりたい方法が出来ないじゃないか!!」だろう。
950 名前:デフォルトの名無しさん 投稿日:04/03/25 20:20
WebBrowserコントロールを使って、自動ログインツールを作ろうと思ってるのですが、
ホームページ上のテキストボックスにIDとパスワードを入力しなければなりません。
調べてみると、WebBrowser.Document.All.xxx.valueという方法があるらしいのですが、
そのページがフレーム使用なためか、うまくいきません。
なので、ページの読み込みが完了したら、プログラムにSendKeysでIDを送ろうと思うのですが、
これもうまくいきませんでした。
プログラム上のコントロールにキー入力を送る上手い方法はないでしょうか。
分かる方いらっしゃいましたら、ご教授願います。
VB6.0です。
0946デフォルトの名無しさん
NGNG>>942
そーなんですよー
それにこのコードだと というか 多分仕様だと思うんですが
Redlectionコンポーネントにプロパティが少なくて
Visibleくらいしかコントロールを制御できなくて
センドキー送ってる間にユーザーがフォーカス他に移すと
キー命令がヨソ飛んでちゃいます。だからって
可視 見えなくしたりフォーム使えなくするとセットフォーカス時に
エラーになってしまう。
なんとかCInterNetSessionみたいな接続方でDCLコマンドを起動する事が
できないかと思案してます
952 名前:デフォルトの名無しさん sage 投稿日:04/03/25 23:17
良くわかんないけどFTPで出来るんならFTPでやったら?
Inetコントロール使うなりなんなりで。FTPクラスとか落ちてるし。
953 名前:デフォルトの名無しさん sage 投稿日:04/03/26 02:19
2次元の配列を用意します。それにはいくつかデータがはいっています。
それの中の1つを消したら、後ろの方のデータをつめていく。
というようなことはどう書けばいいのでしょうか?へたな文章ですいません。
また、if ぶんの条件式にfor文を組み合わせることはできるのでしょうか?
if for i 1 to 10 ・・・then のように。
0947デフォルトの名無しさん
NGNG>>953
1つずつ代入
組み合わせ可能 ←やってみればすぐわかることをいちいち聞くな。
955 名前:デフォルトの名無しさん sage 投稿日:04/03/26 06:00
>>950
こんな感じでいいか?
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "http://homepage2.nifty.com/winfaq/"
Do While ie.Busy
Loop
With ie.Document.frames.Item(0).Document.Forms.Item(0)
.Item("query").Value = "文字化け"
.submit
End With
956 名前:デフォルトの名無しさん sage 投稿日:04/03/26 06:46
>>955
ひでえな。実在するURLでテストコード出すなよ!何考えてるんだ!
0948デフォルトの名無しさん
NGNG開発者向けのツールをInputManを使って作ったとします。
InputManが入っているか、いないか解らない環境へセットアップする場合
入っていた場合の開発環境へ影響を与えないようにインストーラーを作成する事ってできます?
958 名前:デフォルトの名無しさん sage 投稿日:04/03/26 11:26
>>957
インストーラを作るのに何を使うかによるけど。
InstallStudioとかだと、ファイルの上書き挙動を指定できる。
(日付比較、バージョン比較で上書きとか、無条件で上書きとか、絶対上書きしないとか)
VB付属のウィザードの場合、ソース添付だからそれを見れば?(VBでやってるよね)
959 名前:デフォルトの名無しさん 投稿日:04/03/26 11:35
>>957
フォルダ作ってそこにInputManのOCXとDLL入れてパス通せば問題ないのでは?
960 名前:デフォルトの名無しさん sage 投稿日:04/03/26 11:36
>>959
OCXはREGSVRなどでのレジストが必要でしょ。
0949デフォルトの名無しさん
NGNGdim adoCon as Object
Set adoCon = CreateObject("ADODB.Connection")
とセットしたときのadoCon.CommandTimeoutの値に
デフォルトで'30'が設定されていますが、これを'60'に変えたいのですが、
adoCon.CommandTimeout=60
と書かなくても設定できる方法はありますか?
宣言された地点で60が入ってる状態希望なんですが・・。
数百個のSQLでタイムアウトになってしまい困っています。
962 名前:デフォルトの名無しさん 投稿日:04/03/26 11:43
>>960
インストールシールドなら設定でやってくれるのだが・・。
インストーラによるかな。
963 名前:デフォルトの名無しさん sage 投稿日:04/03/26 11:46
>>961
毎回セッションのCreateObjectをしてるんでしょうか?
でもそんなの何百程度だったら、検索して下に入れてけば?
コネクションって別に毎回開かないよな。
Webアプリでもプーリングするだろうし。
964 名前:デフォルトの名無しさん 投稿日:04/03/26 11:56
>>963
CreateObjectしているものもあれば
ado宣言してるものもあり、Openで使うコネクションがDLL化されていて
Setされているため値が変更できなくなってるなど。
おまけにこんなPGが200ほどあって・・。
すべて変更しなければならず、おまけに今日中。
やっぱ地道にやるしかないのかなー。
0950デフォルトの名無しさん
NGNG>>964
レジストリ書き換えれば?
ここに詳細がのってる。
http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado.asp
966 名前:デフォルトの名無しさん sage 投稿日:04/03/26 12:01
>>964
まあ、今日の仕事であれば、機械の体になってやるしかないんじゃないか?
最終的に、破綻すると思うよ。
そんなに時間がかかるSQLだらけってのはしょーもない。
根本的な見直しが必要だと・・・まあ誰もが思っていてもいえないんだろうね。
がんばってください。
967 名前:デフォルトの名無しさん 投稿日:04/03/26 12:37
>>958
InputManインストールすると以下のフォルダに各ファイルが配置されます。
C:\Program Files\InputMan65\Controls
仮に別のアプリのインストールでOCXを
バージョン比較で上書きと指定した場合は
上記フォルダのものを上書きするのでしょうか??
合わせて質問ですが
InstallShieldでインストーラ作成する時に
このOCXは指定したアプリだけでしか使わないという設定はできるでしょうか?
とにかく開発環境に影響を与えずにインストールできる方法が知りたいです。
よろしくお願いします
0951デフォルトの名無しさん
NGNG>>967
1つ目の方。
開発用インストールと実行用インストールでは確か違うので注意を。
後のインストーラーが何処に入れるかだと思うけど、上書きはしないはず。
2つ目。
WindowsXPはできるんだっけ?DLLHellとかで調べてみれば情報は腐るほどあるよ。
環境に影響を与えずというのはVBでは不可能です。
それが必須要件ならば、スタティックリンクできるツールを使いましょう。(VCとかDelとか)
どっちにしても、OCXはスタティックリンクできないから。
969 名前:953 sage 投稿日:04/03/26 12:48
>>954
レスありがとうございます。
if for 1 to 20 ・・・ thenのことですが、やってみてできなかったから聴いてるんです。
どうしても赤くなってしまいます。初心者ですいませんがもっと詳しく教えてください
970 名前:デフォルトの名無しさん sage 投稿日:04/03/26 12:50
>>969
まず、本屋にいってVB入門初級編を買って来い。
いろはの書き方を聞いてるレベルだぞ。
971 名前:953 sage 投稿日:04/03/26 12:58
>>970
2冊もってます。けど、それには書いてないんです。
0952デフォルトの名無しさん
NGNGVB入門書は糞ばっかだからなぁ。
ヘタに「1週間でマスター」みたいな本は止めて、しっかりと言語仕様解説してる本を選ぶべし。
で、仮にIf For 1 To 20って書き方ができるとして>953はどんな動作を期待してるんだ?
それは、Do〜Loop等の制御構造で代用できる物じゃないのか?
973 名前:デフォルトの名無しさん sage 投稿日:04/03/26 13:10
>>972
配列の各要素に対してIf文を適用したいんじゃないかな(予想)
974 名前:953 sage 投稿日:04/03/26 13:21
配列を削除したところから、あとの方のデータを1つづつくりあげると言う動作をしたいです。
0953デフォルトの名無しさん
NGNG>>974
構造体の配列にして、実削除をせずに削除フラグを立てれば?
type hoge
data as string
flag as boolean
end type
aaa[] as hoge
for i = 0 to xx
if aaa[i].flag = true '削除済みデータ
endif
next
あとは、単純に配列にせずに単方向リストで作るとか。
言葉がわからなければ、ネットで調べるか、プログラムの基礎を勉強。
0954デフォルトの名無しさん
NGNG>>955
解答ありがとうございます。
この方法で試してみたんですが、アクセスが拒否された。とエラーが出ます。
ネットで調べてみたんですが、この場合無理みたいですね…。
あきらめるしかないんでしょうか。
977 名前:デフォルトの名無しさん sage 投稿日:04/03/26 18:18
次スレまだーチンチン
978 名前:デフォルトの名無しさん sage 投稿日:04/03/26 18:29
>>977
とっくに
VBプログラマ質問スレ(6.0以前) Part33
http://pc5.2ch.net/test/read.cgi/tech/1080223005/
===
ここまで
※ログぶっ飛んでるので新スレは存在しません
0955デフォルトの名無しさん
NGNGコマンドボタンで上下させたいのですが
どうすればよいのでしょうか
(難民板から移動)
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGSendKeys "{DOWN}", True
またはSelected回す
0958デフォルトの名無しさん
NGNG質問なんですけど、Accessで.mbdファイルを開いたままVBからDAOでアクセスすると
共有違反でエラーが出ます。
第二引数、第三引数をTrue,Falseなど、色々やってみましたがダメです。
たしか前はできたと思うんですけど・・・
詳しい方おりましたら、よろしくお願いします。
0959デフォルトの名無しさん
NGNG0961955
NGNG項目の位置を移動させたいのです
0962デフォルトの名無しさん
NGNGボタンがクリックされたらリストの中の選択状態をチェックして選択されたリストインデックスのテキストや付随するデータを上の行や下の行のものと入れ替える。
0963デフォルトの名無しさん
NGNGまだ安定してないのかな。
0964デフォルトの名無しさん
NGNG【板名】プログラム
【板のURL】http://pc5.2ch.net/tech/
【スレタイトル】VBプログラマ質問スレ(6.0以前) Part32
【スレのURL】http://pc5.2ch.net/test/read.cgi/tech/1077216109/
【名前】955
【本文】
>>962
ありがとうございます
「移動」ではなく「データの入れ替え」という発想ですか
-------------------------------------------------
オラさん 毎度ありがとうございます
0965955
NGNGありがとうございます
「移動」ではなく「データの入れ替え」という発想ですか
0966デフォルトの名無しさん
NGNG30万件のデータがあり、その中のDATE型カラムの値を
2004/03/01〜2004/03/25までを抽出したい
といった場合、どのようにやるのが高速に処理できるでしょうか?
今はto_char()してやっていますがとても遅いです。
試しにインデックスを張ってみましたが変化なしでした。
0967デフォルトの名無しさん
NGNGINDEXは計算・変換された項目に対しては適用されません。(バージョンに夜かな?)
なので、(要点だけ書きますが)
TO_CHAR(元カラム) BETWEEN '比較始点' AND '比較終点'
では、インデックスが使われない
元カラム BETWEEN TO_DATE('比較始点') AND TO_DATE( '比較終点')
なら使うはず。
あと、インデックスが期待通り使われているかはPLANを見るようにしてみて。
0968デフォルトの名無しさん
NGNGなるほどー
TO_DATEでやってみます。結果は後ほど
0969デフォルトの名無しさん
NGNG激速になりました。多謝
0970デフォルトの名無しさん
NGNGどうすればActiveXプロジェクトを作れますか
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG(1)PowerGresへVBからODBCを使用してADO経由で接続する。
(2)必要処理(PowerGresのプロシージャを実行)を行う。
(3)切断する。
上記(1)〜(3)を繰返し行うと、
ある所(決まった回数では無い)で、
プロシージャ実行時に
「Parse ERROR at near;」
というエラーが発生して、異常終了してしまいます。
何か情報をお持ちの方は、教えて下さい。
0974デフォルトの名無しさん
NGNGエラーに対する情報が欲しい場合は、きちんとエラーの内容を書く。
(誰が吐いたエラーかとか)
あと、PowerGresってODBCも製品に込みだっけ?
サポートに聞いてみるのが早いんじゃないの?
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG一つの画面で複数のフォームを呼び出すことは可能ですか?
教えてください
0979デフォルトの名無しさん
NGNG貴方の言う一つの画面とやらが何を意味するかわからないのですが、
Alt+P,Alt+Fで出てくるアレか、
↓こんなコードでできるソレの事ですか?
Dim AForm As New Form1
Dim BForm As New Form1
AForm.Show
BForm.Show
0980デフォルトの名無しさん
NGNG何か簡単な方法はないですか?
例、004914E2 02 ボタンクリック→004914E2 07
0981デフォルトの名無しさん
NGNGGame Cheaterなら専用のを使った方が安全だよ。
0982デフォルトの名無しさん
NGNGそれがですね、プロセスエディタでアプリ起動ごとに値を変更せんといかんのです・・・
それが面倒なので、一度そういうの作れば楽かと・・・
0983デフォルトの名無しさん
NGNGOCXモジュールの作成ができるのは、
VB4からだったでしょうか、VB5からでしょうか?
0985デフォルトの名無しさん
NGNGたとえばどんなソフトのようにしたいんだ?お前は人に説明しようという気持ちはあるのか?
0986デフォルトの名無しさん
NGNG説明がわからないんでなんとも言えないが。
0987デフォルトの名無しさん
NGNGページを切り替えても新しいウィンドウを開きたくないんじゃないかな?
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG特定のWebページを保存するプログラムって簡単に書けますか?
VBSで書けると助かります。
やりたい事は、
ある特定のWebページを
[日付].html
例えば
2004.04.03.html
というファイル名で保存するプログラムが欲しいのです。
これをジョブに入れて、
毎日更新されるWebページを
毎日決まった時間に保存し、
後からさかのぼってみれるようにしたいのです。
何卒宜しくお願い致します。
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG継承できないなんて発言して厨の振りするのは今時流行りませんよ。
0993デフォルトの名無しさん
NGNG継承できるの?
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNGレコードセットとか、普通にクラス使っているけどな。
0996デフォルトの名無しさん
NGNGインターフェース継承もできる。
こんなに便利なのに、実装継承できないだけで使わない
(自分で作成しない)のはもったいないって言ってるんでしょ?
使うだけなら誰でも使っているし、
クラスは当たり前だけど便利だよ。
俺もよく作っているよ。
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1080606445/l50
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。