トップページ⇒tech
1001コメント301KB

VBプログラマ質問スレ(6.0以前) Part46

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/02/03(金) 22:58:33
VisuarlStudio
0367デフォルトの名無しさん2006/02/08(水) 22:48:04
>>366
手動でDrag()を呼び出す・・・じゃないかぁ
0368デフォルトの名無しさん2006/02/09(木) 00:24:06
>>346
>>278

>>366
>テキストボックスに OLE Drag,Drop Mode を設定すると
原因をはっきり特定しろよ、OLEDragModeを自動にしたときだけだろ
選択文字列の上で I ビームにならないのは、Dragするんだからあたりまえだ
コンテキストメニューがまったく出ないのは、文字をすべて選択したときだけだ(こっちの仕様は意味不明だけどなw)
挙動が気に入らなければ、OLEDragModeを手動にして自分でやれ
0369デフォルトの名無しさん2006/02/09(木) 00:37:04
>>368
素晴らしい!正解です!
そうなんです、自動です、しかし選択文字列の上で I ビームにならないんじゃくて、選択しなくてもならないんです
挙動が気に入らないですけど、現状のままで行きます、癖をつければなんてこと無いでしょう。
だって僕しか使わないソフトですからね!しかし未だにソフトを公開したことナインですけど公開すると後悔しますか?
0370デフォルトの名無しさん2006/02/09(木) 00:53:37
>>369
>しかし選択文字列の上で I ビームにならないんじゃくて、選択しなくてもならないんです
それはテキストを全選択したときだけだ、3文字入力して1文字だけ選択して確かめてみろ
まあOLEDragの自動は、コンテキストメニューも含めておかしいと思うがね
ついでに言うと、テキストの後ろから数文字を選択してドラッグを開始、
Escを押してキャンセルすると、なぜかキャレットが先頭に移動する
ぶっちゃけ自動は使えないと思ったほうがいいだろうな

>しかし未だにソフトを公開したことナインですけど公開すると後悔しますか?
ここで公開するとボコボコに叩かれて、たぶん後悔する
Vectorで公開すれば、とりあえずDL数見て自己満足に浸れる
好きにしなさいw
0371デフォルトの名無しさん2006/02/09(木) 01:10:41
>だって僕しか使わないソフトですからね!
だったら公開する必要無くね?
0372デフォルトの名無しさん2006/02/09(木) 01:12:49
>>371
ったく、この朴念仁が!
0373デフォルトの名無しさん2006/02/09(木) 01:15:07
そうですそうです、一桁分のテキストボックスなんですけど、それが横一杯パンパンになるとどこに置いても通常のマウスカーソルのままでして、
そしてあろう事かその状態なら選択しなくてもそのままドラッグできるんです、そして別のテキストボックスにドロップすると全文移動するんです、不思議ですよね!

手動にしてみようと思ってコードを書いていたんですが、途中で挫折してしましてね、もう自動でいいです。

ここで公開するとボコボコにされるんですか、恐いですね。
たぶんにボコボコにされる対象はソースコードでしょうね、だけど実行ファイルのみで公開しても誰も触ってくれないでしょうし、ハハハ。
0374デフォルトの名無しさん2006/02/09(木) 01:21:13
ソーっすね
0375デフォルトの名無しさん2006/02/09(木) 01:22:52
>>374
全米が泣いた
0376デフォルトの名無しさん2006/02/09(木) 10:21:03
xmlDoc.async="false"
ってどういう意味ですか?
0377デフォルトの名無しさん2006/02/09(木) 10:43:36
>>376
class hoge{
public string async;
}
で
hoge xmlDoc=new hoge();
xmlDoc.async="false";
でもしたのかしら?
0378デフォルトの名無しさん2006/02/09(木) 10:49:20
>>369
公開と後悔を掛けたなっ!

>>376
async に "false" を設定した。
って、xmlDoc.async = False の様な気もするが。
0379デフォルトの名無しさん2006/02/09(木) 10:50:48
しまった
最近javaとC++とVB6といろいろ渡り歩いてるもんだから混ざっちまったぜ・・
0380デフォルトの名無しさん2006/02/09(木) 11:00:23
xmlDoc.async = False
でした。ごめんなさい。
これってどういう意味ですか?
0381デフォルトの名無しさん2006/02/09(木) 11:06:52
>>380
378に答えも書いてあるじゃん。
asyncをFalseにするとどうなるかは、
これだけの情報では何とも言えないけど。
0382デフォルトの名無しさん2006/02/09(木) 11:07:03
>>380
xmlDocのメンバasyncにFalse値を設定したっていう意味
0383デフォルトの名無しさん2006/02/09(木) 11:15:12
xmlDoc.Loadの前にあるんですけど
無いとだめなんでしょうか?
0384デフォルトの名無しさん2006/02/09(木) 11:19:56
ネタくさいので放置決定
ネタじゃないとしたら勉強不足
0385デフォルトの名無しさん2006/02/09(木) 11:21:58
>>383
名前に惑わされすぎるのはよくないから、
>>377とか>>378は xmlDoc というモノを不明なものとして扱って書いてるわけ。

特に、>>377は xmlDoc が hoge というクラスのインスタンスで async というメンバを持つという具体例を挙げているだろ?
こんな風にもとのクラスが何なのか、具体的に書いてくれないとさっぱりなわけ。
ちょっと説明下手すぎるんじゃない?
0386デフォルトの名無しさん2006/02/09(木) 11:24:10
見つかりました。
http://www.utj.co.jp/xml/dev/dom/dxdom4_1.html
0387デフォルトの名無しさん2006/02/09(木) 11:58:32
>>383
ヘルプを熟読すれば分かる。
0388デフォルトの名無しさん2006/02/09(木) 12:31:00
今さらそんらレスされてもw
0389デフォルトの名無しさん2006/02/09(木) 12:33:09
Windows Picture and FAX Viewer をコントロールしたいのですが、
Preview 1.0 Type Library(shimgvw.dll)を使ってできませんか。

メソッドの使い方はある程度予測つきますが、Previewクラスへ
オブジェクトを得る方法が分かりません。

破損したファイルを読み込むと次の画像に進むボタンの位置が動いて
うまく制御できないので困ってます。

0390デフォルトの名無しさん2006/02/09(木) 13:53:49
msflexgridでお聞きしたいのですが、
今までDAoで構築していて発行したSQlを以下のようにgridに挿入していたのですが
msflexgrid1.AddItem レコードセット(取り出した列1).Value
msflexgrid1.TextMatrix(msflexgrid1.Rows - 1, 1) = レコードセット(取り出した列2).Value

ADOで構築すると列の値が取り出せなくなってしまします。
ADOでこういった風に書くにはどうすればよいでしょうか?
0391デフォルトの名無しさん2006/02/09(木) 13:59:57
msflexgrid1.TextMatrix(msflexgrid1.Rows - 1, 1) = rs.fields("col2").value
0392デフォルトの名無しさん2006/02/09(木) 14:38:25
>>391
ありがとうございます。実行してみましたが
「要求された名前、又は序数に対応するコレクションが見つかりません」とでてしまいました。
0393デフォルトの名無しさん2006/02/09(木) 14:42:47
msflexgrid1.TextMatrix(msflexgrid1.Rows - 1, 1) = rs.item("col2")
0394デフォルトの名無しさん2006/02/09(木) 14:43:32
ありがとうございます!できました!
本当にありがとうございます。
0395デフォルトの名無しさん2006/02/09(木) 14:47:23
>>392
まさか col2 って書いてないよね。
0396デフォルトの名無しさん2006/02/09(木) 15:11:04
>>395
ヒント:>>393-394
0397デフォルトの名無しさん2006/02/09(木) 17:54:28
1元の配列に対しn番目を処理する
関数を作り使っています。(平均、標準偏差等)
Function Ave(a(),n,Kikan)

2元配列A(i,j)に使おうとしたら
Ave(A( ,1),n,Kikan)
動きませんでした。2元配列を行列とすると1行(1列)だけもってくるような
表現の仕方はあるのでしょうか?
0398デフォルトの名無しさん2006/02/09(木) 18:02:43
>>397
無い
そういう場合は自力で(自分の欲しい機能を提供する)行列を扱えるMatrixクラスを作るしかねーと思う
0399デフォルトの名無しさん2006/02/09(木) 18:05:30
ひきつづきタブブラウザ、ますます機能充実(*´∀`)
今回は、ページの内容を正規表現で置換する機能を追加した
それと、ユーザーが作成したJavaScriptをページ表示時に自動実行できるようになった
これによって、ページ内容を事前に書き変えたり、入力ボックスに文字を入れたり
工夫次第では、バナー広告の排除や、リンクされていないURLの自動リンクなどが可能だ
これらの機能は、実行するサイトを限定することも可能!
ますます進化をつづけるタブブラウザにご期待ください
さて、そろそろ実装したい機能がなくなってきたんでバグ叩きに入るかなっと♪

ところで、エンコードの種類を変える方法がよくわかんないんだけど、どうやんの?
難し過ぎて分かる人いないっぽ?
0400デフォルトの名無しさん2006/02/09(木) 18:06:32
>>399
そこまで実装していてそれはないだろうという程度の質問

adodb.stream?
0401デフォルトの名無しさん2006/02/09(木) 19:06:33
>>399
バグ叩きて。
途中はバグなんか全然気にせずどんどん開発してるのか?
0402デフォルトの名無しさん2006/02/09(木) 20:20:07
この”プログラムの最適化”ってあてになる?
http://www.bcap.co.jp/hanafusa/VBHLP/sonota_no1.htm
0403デフォルトの名無しさん2006/02/09(木) 20:22:41
なる。
0404デフォルトの名無しさん2006/02/09(木) 20:41:25
>>402
最適化はバグを全部潰してから。
0405デフォルトの名無しさん2006/02/09(木) 20:56:29
CreateObject("Excel.Application")
みたいに、ExcelとApplicationというのはレジストリに記録されていると思いますが、
どこを見ればいいですか。
0406デフォルトの名無しさん2006/02/09(木) 20:56:57
DDE接続はどのようにしますか?
0407デフォルトの名無しさん2006/02/09(木) 21:15:08
DDEは終わった仕様なのでできるだけ他の技術を使う事
0408デフォルトの名無しさん2006/02/09(木) 21:38:45
>>405
レジストリ
0409デフォルトの名無しさん2006/02/09(木) 22:15:30
文字列を格納した変数を大量に置換する場合
やはり一つずつ、一行ずつコードを書いていくしか無いのでしょうか?

今現在やっている方法です↓
strMISO = Replace(strMISO, "ほげほげ", "ホゲホゲ")
strMISO = Replace(strMISO, "もぎもぎ", "mogimogi")
strMISO = Replace(strMISO, "まんまん", "満々")
0410デフォルトの名無しさん2006/02/09(木) 22:23:23
>>409
他にもやり方はあるだろうけど、面倒ならそれでいいんでね
0411デフォルトの名無しさん2006/02/09(木) 22:49:32
>>410
・・・泣
0412デフォルトの名無しさん2006/02/09(木) 23:09:57
>>411
テキストに書き出して、単機能の外部フィルタアプリとかにやらせては。
0413デフォルトの名無しさん2006/02/09(木) 23:23:14
>>412
・・・グスン(誰もわかってくれない
0414デフォルトの名無しさん2006/02/09(木) 23:29:20
まぁ、正規表現クラスでも使えば一発でできないこともないかもしれないが…(できるか・・??)
ごり押しするなら、単語をinstr()で地道に検索&自力で置換、だな。
文字列連結は文字列大きくなるほど遅いから、そのへんの高速化も自力でせにゃならん。

1行1行replace()書くのがいやなら、foreachなりで反復操作にすればいいじゃまいか ( ´Д`)
0415デフォルトの名無しさん2006/02/09(木) 23:56:09
>>413
ほんとーのわたしを♪
0416デフォルトの名無しさん2006/02/10(金) 00:32:23
VBで文字列置換を自力実装すると使えないくらい遅いからな
結局Replaceの重ねがけが一番速かったりナ。。。
0417デフォルトの名無しさん2006/02/10(金) 00:38:40
>>416
(VB6)ちなみに家でStringBuilderなるクラスを作って試してみました
Private Sub Form_Load()
Dim sb As New StringBuilder
Dim i As Long
Dim s As Single
Dim t As String
s = Timer
For i = 1 To 20000: sb.AddString "hello!": Next
Debug.Print Timer - s
s = Timer
t = ""
For i = 1 To 20000: t = t & "hello!": Next
Debug.Print Timer - s
End Sub

結果
4.711914E-02
1.437012

ただの文字列連結は非線形的に所要時間が増加するっぽい
sb.AddStringは内部でMidステートメントによる置換をしています
0418デフォルトの名無しさん2006/02/10(金) 01:02:11
>>Midステートメント
Midはメモリ上書きだから速いんだけど 異なる文字数で置き換えられないよね

例えば "まんまん" を "満々" に置き換えるとか

結局Replace見たいな機能を要求すると &結合か Byte配列のRedim・メモリ移動 でゴリゴリ
Byte配列でやると &結合に比べて 10〜50倍の差が出るんだっけ?
0419デフォルトの名無しさん2006/02/10(金) 01:07:22
>>418
いや
1 "まんまん"をInstrで検索
2 直前までMidステートメントで置換代入
3 "満々"を置換代入
4 1へ

置換代入先の文字列を、あらかじめ10KBとか多めにとっておけばメモリ移動がそれほど起こらないので速いかも
(少なくとも&で連結していくよりは)

> Byte配列でやると &結合に比べて 10〜50倍の差が出るんだっけ?
時間差は先ほど書いたとおり非線形
Midステートメントで最終的に必要なサイズを全て最初に確保しているとすれば、置換代入の時間は線形に済むはず
というわけで比率はかなり変動するかと
0420デフォルトの名無しさん2006/02/10(金) 01:21:05
満々w
0421デフォルトの名無しさん2006/02/10(金) 01:34:23
ごみん Redim = ReDim Preserve ・ メモリ移動 = Kernel32.CopyMemory の事だよ 伝わらなかったカナ?
文字列(Unicode)をバイナリデータとして配列上をポインタ操作する っ言いたかったんだ
0422デフォルトの名無しさん2006/02/10(金) 01:44:07
>>421
あー、まぁそういう方法もあるが…
VB6側でString→Byte()してからいろいろゴリゴリすることになるんじゃないか?
文字列連結よりは高速だろうけど、それだとオーバーヘッドかかっちまうよな。

で、Stringの内部処理だったらMidB()とか*B()系が最速だったよーな気がする
0423デフォルトの名無しさん2006/02/10(金) 01:48:12
>>399
しかし、開発はえーなぁ
タブの部分って何のコントロールで作ってるの?
0424デフォルトの名無しさん2006/02/10(金) 02:27:26
>>398
お礼遅れましたが、サンクスです。
0425デフォルトの名無しさん2006/02/10(金) 02:51:48
>>399
いい加減 バイナリでもソースでも晒せ
晒す気が無いんなら消えろ ここはお前の日記帳じゃな(ry
0426デフォルトの名無しさん2006/02/10(金) 03:24:46
いや、話聞いてる限りバイナリは(゚�听)イラネ
0427デフォルトの名無しさん2006/02/10(金) 03:29:52
どーせなら「ソース&実行ファイル」を完全にさらして、
オープンソースにしてみんなで開発するかw
0428デフォルトの名無しさん2006/02/10(金) 05:10:01
メモリ確保処理が1回で済む>>419に1票入れたいんだが>>421の処理が激しく気になる。
配列上のポインタ操作ってリストの連結みたいなの?
C言語ならやりようもあるけど、VBってStringとかByte配列の中身に対してポインタ指せたっけ?
0429デフォルトの名無しさん2006/02/10(金) 05:12:38
> VBってStringとかByte配列の中身に対してポインタ指せたっけ?
VB5からだっったかな
詳しいことは自分で調べな
0430デフォルトの名無しさん2006/02/10(金) 05:22:37
あー勘違いしてたかも。
VarPtrとCopyMemory駆使するってことかな?
これだとMidと変わらんような気がする(ていうか>>422の指摘の通りか)
スレ汚しすまん。
0431デフォルトの名無しさん2006/02/10(金) 08:22:53
まぁ結局後々の色々な事を考えると Replace が一番だな。
0432デフォルトの名無しさん2006/02/10(金) 09:18:30
とりあえず言語はおいといて、処理の内容から考えると、
元の文字列のメモリを走査しながら、
新しく確保したメモリに文字列を置換しながらコピーするのが一番速いか?
0433デフォルトの名無しさん2006/02/10(金) 10:18:45
VB6.0のADOを利用してMySQL4.1にあるデータベースに
接続したんですけど出来ないです。
どうしたらいいんですか?

Dim cn As Variant
Dim sql As String

'** ODBC 接続
Set cn = CreateObject("ADODB.Connection")
cn.Open "dsn=MySQL;uid=ユーザー名;pwd=パスワード"
cn.CursorLocation = 3
これではだめでした。
0434デフォルトの名無しさん2006/02/10(金) 10:47:57
>>433
ttp://nobuson-ruby.at.webry.info/200501/article_9.html
0435デフォルトの名無しさん2006/02/10(金) 10:56:34
ついでに色々
http://www.connectionstrings.com/
0436デフォルトの名無しさん2006/02/10(金) 18:21:12
VB6.0でAPI叩いてシリアル通信してるプログラムがあるんだけど
これがWin2000では動くけどWinXPだと通信できないんです
WriteFileとReadFileが0を返してきます

なんかWinXPで変わった?
0437デフォルトの名無しさん2006/02/10(金) 20:56:53
>>436
VB6は、開発環境も実行環境も、XPには対応してないよ。
色々と、訳の分からん所で不具合が出る。
当然、回避不可能。
04382272006/02/10(金) 21:00:00
>>436
私にまかせてください!
0439デフォルトの名無しさん2006/02/10(金) 21:39:59
> 開発環境も実行環境も、XPには対応してないよ。
片方ハズレ
0440デフォルトの名無しさん2006/02/10(金) 21:41:44
> 訳の分からん
> 回避不可能
> 回避不可能
> 回避不可能
> 回避不可能
> 回避不可能
> 訳の分からん
( ・ω・) 他意はないです
0441デフォルトの名無しさん2006/02/10(金) 21:43:38
ヘッダを取得するただそれだけのソフトなんですが、
いい名前が思いつきません、もしよければ一緒に考えてくれませんか。
0442デフォルトの名無しさん2006/02/10(金) 21:45:07
>>441
getheader/headergetter/huntheader/huntYOURhead
0443デフォルトの名無しさん2006/02/10(金) 21:55:06
>>442
どうもありがとう、ただありきたりなんです
もうちょっとユニークーなのお願いしまする
0444デフォルトの名無しさん2006/02/10(金) 21:58:32
>>443
> もうちょっとユニークー
これでいけ「ユニークー」
0445デフォルトの名無しさん2006/02/10(金) 22:00:55
>>441
HeaderSyutoku.Exe
0446デフォルトの名無しさん2006/02/10(金) 22:01:27
>>438
またおまえか!
0447デフォルトの名無しさん2006/02/10(金) 23:13:12
>>441
ヘッドハンター西脇.exe

てか、VB6ってXPダメなんか!
うひょーどうすっかな
orz
0448デフォルトの名無しさん2006/02/10(金) 23:14:16
>>447
俺XPで開発してWin95で動かしてる
0449デフォルトの名無しさん2006/02/10(金) 23:25:10
近ごろマニフェストを覚えて浮かれている初心者です
0450デフォルトの名無しさん2006/02/10(金) 23:27:52
>>447
>ヘッドハンター西脇
いいですねそれ
ありがとうそれに決めた!
0451デフォルトの名無しさん2006/02/10(金) 23:53:15
XPで普通に開発しているが、なにか不具合あったか?
0452デフォルトの名無しさん2006/02/11(土) 00:41:13
>>448
まさか、XPでセットアップしたやつで95にインストールしてる?
0453デフォルトの名無しさん2006/02/11(土) 00:55:52
VB6で下記のような今の時間が9時5分すぎかどうかの比較を行うにはどうしたらよいですか?

Time >= "09:05:00"
0454デフォルトの名無しさん2006/02/11(土) 00:58:41
>>453
datediff使え

>>452
そんな地獄は見たくないから
システムに依存するものは持っていかないようにしてるぞ
0455デフォルトの名無しさん2006/02/11(土) 03:23:53
C言語でいう #define みたいなのって何でしたっけ?

ちなみBVAです。

0456デフォルトの名無しさん2006/02/11(土) 03:27:31
>>455
つ #Const
04574552006/02/11(土) 03:30:05
>>456

おーこれだこれだ�dクス!
0458デフォルトの名無しさん2006/02/11(土) 05:50:17
> ちなみBVAです。
新しい言語?

俺はVB関係ではVB、VBA、VBSしか知らない
VB関係ではなくBasic関係ならもっと知ってるがな
0459デフォルトの名無しさん2006/02/11(土) 06:11:46
つまんねえレスだな
0460デフォルトの名無しさん2006/02/11(土) 08:51:02
昔々の事じゃった・・・

朝出社すると、係長の先輩と後輩2人の合計3人が、一台のPCの前で悩んでいました。
それとなく見ていると、どうやら、ひたすら同じ作業を繰り返し、エラーが出て、
「分からん。どうしてだ?おかしい・・・。出来る筈なのに!」と言い続けている模様。

その日一日普通に仕事をし、残業する程でもなかったので定時で帰ろうとしたら、その3人は、
まだ同じ事をやっているみたい。

流石に可哀想になって「どうしたんですか?」
「いやこのVBXを読み込もうとしてるんだけど、エラーが出るんだよ・・・」
「(VBX?今頃何故?)へぇ〜」と、見てみると・・・

VB6でVBXを使おうとしていました。(VB5だったかな?)

私は「ホントだ。エラーになりますね。では、お先に失礼します」と帰りました。

きっと、残業して徹夜したかも・・・
0461デフォルトの名無しさん2006/02/11(土) 09:16:16
早朝から速攻で反応してる子の方がつまらない気がする
0462デフォルトの名無しさん2006/02/11(土) 15:41:01
>>439
両方問題ない
0463デフォルトの名無しさん2006/02/11(土) 15:45:04
XPは言葉を濁してるが次のOSから完全にサポート外だったよな
新規は.Netにしてるよ
0464デフォルトの名無しさん2006/02/11(土) 15:47:13
http://www.microsoft.com/japan/msdn/vs_previous/VSTUDIO/techinfo/toolos.htm
0465デフォルトの名無しさん2006/02/11(土) 15:53:10
ご注意:この一覧は全て開発ツール自体の動作に関する情報であり、
以下の開発ツールを使用してお客様が開発されたアプリケーションの
対応に関するものではありません。これらの開発ツールを使用して
開発されたアプリケーションは、全てお客様の責任において
必要な環境下でテストしていただく必要があります。
お客様の開発されたアプリケーションの動作に関して、

弊社では 一 切 の 保 証 は い た し ま せ ん

ので、あらかじめご了承ください。

何度繰り返すんだこの話題は
0466デフォルトの名無しさん2006/02/11(土) 15:57:35
人のつくったものは知らないよ
という極めて当然の話をしているのでしょ。

そもそも延長保守契約していない人にとっては
2000で開発してようが保守は受けられないのだけど。
■ このスレッドは過去ログ倉庫に格納されています