(*´д`*)アハァ… VB初心者質問スレ Part23
最悪のVBコードというスレはなぜ存在しないの?
すべてのVBコードは最悪だから。 といったら一番面白いかな?
心得 七.ぬるぽ
ちょー基本かもしれないけど教えてくらはい。 VBでADOとDataComboboxとMSHFlexGridコンポーネントを使った プログラムを書いたのですが、 コンパイルしたExeを他のPC(VB入ってない)で実行しようとすると なにやらocxが正しく認証されてないとか何とかメッセージが出て動かないのです。 VB6のDLLなどはモジュールと同じディレクトリに入れればいいと思うのですが コンポーネントのocxはどうするれば実行できるのでしょう? MSDNみてもいまい分からんのです… ちなみにインストーラーは使えません
8 :
デフォルトの名無しさん :03/03/16 02:35
あ、ちなみにWin2000+VB6SP5でつ。
(*´д`*)アハァ…
>>7 regsvr32.exe hoge.ocx
だったっけかな? 手動でocxを登録しる。
regsvr32.exeはwindowsのsystemフォルダにあるはず。
>>9 契約上インストーラーの類は使えないんですよ…
リリースの時は手順書でいちいち支持しなきゃらない
>>11 おおサンクス!
これでテストできるッス
ついでに、このときのocxって開発環境で参照設定するときに
「場所」で表示されるファイルでいいんですよね…?
便乗質問。 DLLヘルとかおこさないように既存の環境を壊さずにどこまでやれる? side-by-sideを使ってVB関連のDLLをアプリと同じフォルダに入れて・・・。 誰か手順を教えてちょ。
15 :
デフォルトの名無しさん :03/03/16 07:02
おしえてください! VB4を使ってるんですが、TEXTを2個と コマンド1個を使ってTEXTの内容をコマンドでメール 送信のプログラムの書き方おしえてください! 宜しくおねがいします!
17 :
デフォルトの名無しさん :03/03/16 10:09
6.0持ってるんですが訳わかんねーよ。 どうしたら良いですか?
>>12 そんなとこ相手にVB使うな。それが間違ってる。
今更だが、
>>1 が今回のように建てたいだけのヤシだと萎える。
HTML化チェックくらいしる、ボケが。
22 :
デフォルトの名無しさん :03/03/17 01:38
>>14 それでいいよ。ほんで、DLLやらOCXやらが依存してるDLLやらOCXも、すべて
同じところに入れるようにする。
>>18 何がわかんねーの? とりあえず、手当たり次第にサンプルを作っていじって
していけば、だんだん理解できると思うよ。
23 :
デフォルトの名無しさん :03/03/17 01:46
>>14 side-by-side ってXPしか使えんのでは? そう言う前提?
25 :
デフォルトの名無しさん :03/03/17 10:25
常駐プログラムを終了させるAPIか何かありませんか? たとえば、常駐秀丸を終わらせたり、ウィルススキャンツール などを終わらせたりはできませんか
26 :
デフォルトの名無しさん :03/03/17 10:34
>25 できる API使う
27 :
デフォルトの名無しさん :03/03/17 10:45
>>24 Side-By-Side は、98SE/2000以降で使えるよ
>>25 確実な方法はないね。WM_SYSCOMMAND、SC_CLOSEを送るってのが
一番きれいな作法。
28 :
◆VyZKkSDatc :03/03/17 12:32
質問です。VB6SP5、WinXP 文字列が100涸ほどあります。 それぞれのサイズは1kBぐらいです。 で、変換ルールが255涸あります。 文字列100涸全てに対して、変換ルール255涸を全て適用したい。 とりあえず何も考えずにForで回してReplaceしてみたんですが 予想通り恐ろしい遅さです。 さすがにこのコードは非効率的過ぎると思うので もうちょっとましなやり方ありませんでしょうか。
なんだろう「涸」って。 脳内で「個」にReplaceして下さい。 宜しくお願いします。
30 :
デフォルトの名無しさん :03/03/17 12:44
>28 コードみせやがれこのやろう!
せめて変換ルールぐらい書かないとなんとも言えません。
>28 いくつかの部分にわけて、時間はかってみたら? 遅いのはReplace以外のところかもしらんぞ。
33 :
デフォルトの名無しさん :03/03/17 13:59
>>28 メモリ上の再配置が毎回起きないように工夫すれば、
そのための時間は短縮できる。
34 :
デフォルトの名無しさん :03/03/17 15:56
VC++6.0でDOSのプログラムを作る場合は プロジェクトの種類は何を選べばいいのでしょうか?
36 :
デフォルトの名無しさん :03/03/17 16:21
Set recRS = dbDB.OpenRecordset(" SELECT * FROM ifile_Converter " & _ " WHERE Hoge1 = " & strString1 & _ " AND Hoge2 = " & strString2 & _ " AND Hoge3 = 完了;", dbOpenSnapshot) 直接VBとは関係のない話になってしまうのですが、上記のCSVファイルが 構文エラーになってしまいます。なぜなのでしょうか?
>>36 関係ないって分かってるならSQLスレ逝けよ
"CSVファイル" は、単にCSVだと思ってください。書き違えました。
SQLスレがあるとは知りませんでした。そっちへ移動します。
40 :
デフォルトの名無しさん :03/03/17 16:36
>>36 Set recRS = dbDB.OpenRecordset(" SELECT * FROM ifile_Converter " & _
" WHERE Hoge1 = '" & strString1 & "'" & _
" AND Hoge2 = '" & strString2 & "'" & _
" AND Hoge3 = '完了';", dbOpenSnapshot)
ありがとうございます。できました!!
(*´д`*)アハァ…
VBやっている女の子って可愛いよね
46 :
デフォルトの名無しさん :03/03/17 21:24
VB6の質問です。 >実行時エラー '459': >オブジェクトまたはクラスがこのイベント セットをサポートしていません。 っていうエラーが出て困ってます。ヘルプによると、 >Implements ステートメントは、メソッドやプロパティをインプリメントしますが、 >イベントのインプリメントは自動的には行われません。 って書いてあるんですけど、解決方法ってあるんでしょうか…? 完璧はまってます〜ヽ( ´ー`)ノ
補足。 クラスAを作成→ActiveX DLL化 クラスAをImplementsしたクラスBを作成→ActiveX DLL化 クラスBではあるタイミングでイベントを発生させる(RaiseEvent) クラスBのDLLと同じようなDLLは複数ある (要はクラスAをインターフェースとするプラグインDLLみたいなものを複数作る) で、そのプラグインを使うプログラムでイベントを捕捉したいんだけど、 件のエラーが出てできないってなわけですヽ( ´ー`)ノ
48 :
デフォルトの名無しさん :03/03/17 21:58
>>46 情報足りないと思うんで勝手に推測、補完するけど
インタフェースIをImplementsしたClass1、Class2があって、両方から
同じイベント(インタフェースIで定義)を発生させようとした場合、
Class1、Class2でインタフェースIのイベントの定義が出来ず(やり方あるの?)
また、Class1、Class2でインタフェースIのイベントを再定義したとしても、
WithEvents付きの変数に代入しようとすると「オブジェクトまたはクラスが
このイベント セットをサポートしていません」とでる問題?
俺も素直な解決法があるなら知りたい。「自動的」って書いてるから手動で
出来そうな感じなんだけど。
ちなみに俺は諦めて、イベントを使用する方法をやめて、
WithEvents付きの変数があるところ(フォーム)にインタフェースIEventを
Implementsさせ、インタフェースIでSetEventというメソッドを定義し、
WithEvents付きの変数に代入したあとで、SetEventを呼び出しフォーム自身を
Class1、Class2に渡しイベントを発生したいタイミングでClass1、Class2から
フォームのIEventメソッドを呼び出す方法(とその応用)で対応しました。
50 :
デフォルトの名無しさん :03/03/17 22:10
起動中のアプリを列挙したいと思い、EnumWindowsをつかいました。 上手く全部のアプリのハンドルを取得できました。 ここから、タスクバーに表示されているアプリだけを抽出したいんですが、 どうすればいいですか。
51 :
デフォルトの名無しさん :03/03/17 22:22
>>50 ツールウィンドウではないとか、オーナーがデスクトップだとか、非表示ではない
とか、いくつか条件があったはず。MSDNマガジンにサンプルなかったかな?
なるほど…そうやってコツコツ調べるしかないんですね。 やってみます。 ありがとうございましました。
>>48 そそ、手動でできそうに書いてあるのがひっかかってるんですよ〜
誰かおせーて!!
だめだったら48さんの方法を考えてみるしかないかな〜ヽ( ´ー`)ノ
ありがとう〜
>>48
あの・・・ もしよろしければ・・・ ダブルクオーテーション内でダブルクオーテーションを 使う方法を教えていただけませんか? ("""こうしてもうまくいかない・゚・(ノД`)・゚・
"\""
>>57 できましたぁ!!!
ほんとうにありがとうございます!!!
59 :
デフォルトの名無しさん :03/03/18 02:11
VBからshell変数でEXCELを起動し、 xlsファイル内のマクロAuto_Openで各種変換処理をさせているのですが どうしても一瞬、EXCELの画面が開いていしまいます。 画面に一切表示させずにxlsファイルのマクロを実行する方法ってないでしょうか? (それはそれでウィルスっぽい挙動だけど)
>>59 vbHide だの vbMinimizedFocus だのはきかないのかな<試してない
>>59 Shellは絶対必要なの?
参照設定や、CreateObjectではダメなのかい?
それぞれの意味はGoogleやヘルプで。
Excelオブジェクトを操作するのって結構面倒だぞ(一応) Excel開きぱなしでバッチ起動。終わると作業中だったシートもアボ〜ン。 なんてやったことあるなぁ(藁
63 :
デフォルトの名無しさん :03/03/18 10:11
>>59 参照設定して
Dim xlApp As Excel.Application, xlBook As Workbook
Set xlApp = Excel.Application
Set xlBook = xlApp.Workbooks.Open(...)
表示するときは xlApp.Visible = True xlApp.ScreenUpdating = True ってしないと固まったようになる
65 :
デフォルトの名無しさん :03/03/18 11:06
多分、すごく単純で基本的なことだと思うんですが、Accessのデータを VBで利用し、data gridで表示しています。 使っているAccessデータの中にはYes/No型のデータがあるんですが、 これをVB上でチェックボックスとして表示することは出来ないのでしょう か? 作りたいのはデータの中でチェックを付けたものだけcsvとして書き出す プログラムが作りたいのですが、使うのがエクセルすらよく理解してい ない上司が使うので、Accessでは無理だと(使えないと)思うんです。 過去ログなどを検索してみたんですが、分からなかったので知っている 方がいたら教えてください。
>>65 Booleanに1:1に投射してやれば良いだけでは?
>>66 それはデータを1件ずつ表示するときですか?
一覧表(アクセスで言えば、データビューの様な感じ)で、例えば右端の
データをチェックボックスとして表示したい、という時にも利用できるんで
しょうか?
68 :
デフォルトの名無しさん :03/03/18 11:46
VB6でSQL Server2000のデータを扱うにはどうすればいいのでしょうか? 今まではAccessを利用していて、それのやり方ならわかるのですが、 SQL Serverだと、そもそもどうやってDBに接続すればいいかすらわかりません。 ですから、DBを参照・追加・削除などのやり方もわかず困っています。。。
>>68 ピンポイントの質問ならともかく、そんな漠然とした質問を
一から教えるほどみんなヒマじゃないんだよ。
参考書嫁。
あの・・・ ぐぐってもでなかったんでここで聞かせていただきます・・・・ コントロール配列にしたOption1を Form_Lord時にCase 0にを選ぶようにするにはどうすればいいんですか? (Option1(0)が選択された状態で起動させたいんです・・・
>>70 設計時にValueプロパティを設定しておいてはいけないの?
>>71 ぁ・・・
できました・・・・
ありがとうございました!
(なんか恥ずかしい
73 :
デフォルトの名無しさん :03/03/18 12:06
>>68 ADOを使っていたなら、基本的には一緒。OLEDBデータプロバイダを変更して、
あとはウィザードでやってみれ。
>>70 Form_Load イベントで、Option1(0).Value = True でいいんでない?
>>73 w( ̄o ̄)w オオー!
そっちならば一時的にもOKですね
ありがとうございます〜!
75 :
デフォルトの名無しさん :03/03/18 12:55
春がきたなぁ
>>75 最近、それしか言えない奴って結局論じる力が無いんだと思うようになった。
反論して相手を黙らせるだけの能力がないと。その負け惜しみ。
77 :
デフォルトの名無しさん :03/03/18 13:38
>76 最近、それしか言えない奴って結局論じる力が無いんだと思うようになった。 反論して相手を黙らせるだけの能力がないと。その負け惜しみ。
春が来たなぁ。
79 :
デフォルトの名無しさん :03/03/18 14:55
SHBrowseForFolderでフォルダ選択ダイアログを出しています。 よく、ドライバのインストール時なんかに同じように ツリービューでフォルダを選択しますが、 この時、該当するドライバのinfファイルが無いフォルダを 指定してもOKボタンが使用不可の状態になっているものが ありますよね。 これと同じように特定のファイルの入っていないフォルダを指定しても OKを押させないようにしたいのですが、何というAPIを使えば良いのでしょうか。 よろしくお願いします。
81 :
デフォルトの名無しさん :03/03/18 15:12
春が来たなぁ。
/ヽァ/ヽァ(*´Д`*)/ヽァ/ヽァ…
分からないが、この時間は根気強く待て。 レスするな。
>>83 了解。色々ソース見つけたけどレスしないことにするよ。
85 :
デフォルトの名無しさん :03/03/18 16:27
中学の数学のまとめの問題をランダムで作成するプログラムを作っていて、 今分数同士の計算の問題を作っています。まず、ランダムで数値を決め、 それを分数に変換します。分数一つ表示させるために整数部分(帯分数用)、 分母、真ん中の線、分子用の4つのラベルを使用するのですが、他に良い方法は ないでしょうか。答えは8択タイプなのでラベルだらけになってしまいます。
>>85 それをコンポーネント化すればどうでしょう?
コントロールグループとか無かったでしたっけ?
>>85 ActiveXコンポーネントに汁。ヘルプで勉強してね。
お答えありがとうございました。やってみます。
中学の数学のまとめの問題をガンダムで作成するプログラムを作っていて、 今分数同士の計算の問題を作っています。まず、ガンダムで数値を決め、 それを分数に変換します。分数一つ表示させるために整数部分(シャア専用)、 分母、真ん中の線、分子用の4つのララアを使用するのですが、他に良い方法は ないでしょうか。答えはNewタイプなのでララアだらけになってしまいます。
つれません
すいません。 全部平均するとこちらが設定したような数Nになるような乱数(乱数の個数も こちらが設定)を発生するような方法というのはあるのでしょうか?
やはり整数部分は3倍でしょうか。
答えが合って赤丸が貰えると3倍
97 :
デフォルトの名無しさん :03/03/18 20:42
pictureの上にマウスのカーソルが来た時だけ絵を表示って感じにするにはどうしたらよろしいでしょうか?
真ん中の線なんて飾りです。
>>97 1) 簡単
MouseMoveイベントでPictureを切り替える。
Picture_MouseMoveで絵を表示させ
その他の所_MouseMoveで絵を消す
2) 面倒
Pictureの位置を画面上の絶対座標で取得しておいて
GetCursorPos使うかグローバルフックするかしてマウス位置に応じてPictureを切り変える。
102 :
デフォルトの名無しさん :03/03/18 21:09
>>97 キャプチャーかけたほうがいいかも。
Mouse_Move って結構取りこぼしがあるからね。
ユーザのインターネットエクスプローラのキャッシュフォルダのパスを取得したいですのでおねがいします。
VBと全く関係ないんだが、 ツールバーに使うのにちょうどいいアイコン(「開く」とか「上書き保存」とかに使うやつ) を公開しているページはないですかね?
106 :
デフォルトの名無しさん :03/03/18 21:24
等しくないならってVBだとなんでしたっけ? マジで忘れてしまって、見つけられません。 助けてください。
絶対、!は入ってたなと勘違いしてたので見つけられなかったみたいです。 すいません、ありがとうございました。
117 :
デフォルトの名無しさん :03/03/18 21:41
パズルゲームを作ろうと思うのですが、たとえばフリーセルでは問題の 数は、1-32000となってます。その32000という数の意味は何でしょうか? 乱数のシード値は、約3萬しかないんでしょうか? それと、formに長方形でない画像(星型など)を置いて動かしたいのですが 可能でしょうか? おねがいします。
0x7FFFに近い数
フリーセルって-1や-2も指定できるよね。絶対に勝てないけど。
120 :
デフォルトの名無しさん :03/03/18 21:47
>>117 符合付き16ビット整数の最大値は?
星形の画像は可能。
それどころか星形のフォームも可能。
ようは背景を星形に透過させるだけ。
>>120 どうもすみません。その透過について知りたいのですが、誰か簡単な方法を
教えていただけませんか?
>>120 >ようは背景を星形に透過させるだけ。
ここが一番聞きたいところだと思うのは気のせいか?
リージョンとかヒントを書いてるならまだしも・・・。
124 :
デフォルトの名無しさん :03/03/18 22:03
>>105 VBのフォルダを探してみそ
>>117 フォーム上でいいなら、Imageを使うとか背景をフォームの色と同色で塗りつぶせば
いいんじゃない?
>>124 できれば透過させたいんですけど・・・。まあ、いろいろやってみます、どうも。
グリッドコンピューティソグにOSXで参加できるものって何か有りますか?
OSXって何?VBに関係あるの?
128 :
デフォルト :03/03/18 23:05
初心者の質問です。よろしくおねがいします。 MicrosoftのVisual Studio.netでVBのプログラムをしようとおもっています。 VB6.0とVB.netとでは全く違うといわれたのですがどういったところが違うんでしょうか?
>>128 お前さぁ、
インドとインドネシアとでは全く違うと言われたのですがどういったところが違うんでしょうか?
って質問に答えるのってだるいと思わない?
たとえが悪いか。
全然違うファイルのdiff取るのってバカらしいと思わない?
差分のつもりが本体よりファイルサイズ増えるぞと。
まず次の質問に答えてください。 VB6は知っているの? BASICは知ってるの? プログラミングはしたことはあるの?
>>130 >BASICは知ってるの?
これはどうでも良いと思われ。
132 :
デフォルトの名無しさん :03/03/18 23:22
一定時間毎にバイナリー形式でファイルにデータを追加しつつ 落としたいのですが、どうすればよいのでしょうか? どうしても上書きされてしまい、うまくいきません。 どなたかお助けください。
バイナリファイルをネットから取得し、 ファイルへ逐次保存してダウンロードしたいのですが 内容が追加書き込みにならず上書きされてしまい、手詰まりです。 おせーてエロい人
136 :
デフォルトの名無しさん :03/03/18 23:34
コードを張ってみたらどうだい
>>133 何をというとコンピュータ間でのシリアル通信のデータです。
バイト型の配列から取りだして一定間隔でバイナリー形式の
ファイルに保存、追加したいのですがうまくいかないのです。
system.io.bineryreaderクラスのwrite()プロパティで行け
氏ね
142 :
デフォルトの名無しさん :03/03/18 23:45
>>140 >bineryreaderクラスのwrite()
お前なぁ・・・
では、SaveNetworkBinaryFilePreserveAsLocalFile() API で
氏ね
コードといってもこれぐらいしかわからないのですが・・・ Binaryの部分をAppendにすると改行の入ったテキスト形式に なってしまってどうにもならなくなってしまいました。 Open "test.bin" for Binary As #FileNum For i=0 to 254 Put #FileNum , , bytArray(i) Next i Close #FileNum やはりAPIを使わないと駄目なんでしょうか?
148 :
Name_Not_Found A :03/03/19 00:14
>>130 VB6は知っているの?
BASICは知ってるの?
プログラミングはしたことはあるの?
全く知りません、プログラムしたことありません。
>>63 サンクス!
でも
参照設定自体ができないみたいで。・゚・(ノД`)・゚・。
メニューの参照設定から.xlsファイル選ぶのって間違ってるのかなぁ…
151 :
デフォルトの名無しさん :03/03/19 00:49
>>149 参照設定するのは、Microsoft Excel x.x ってやつね。
152 :
デフォルトの名無しさん :03/03/19 00:53
>>147 Open "test.bin" for Binary As #FileNum
Dim bytArray(254)
For i = 0 to 254
bytArray(i) = i
Next i
Put #FileNum , , bytArray()
Close #FileNum
型を書き忘れた。 Dim bytArray(254) As Byte
>>147 Dim FileNum As Integer
Dim testbin As Byte
Dim i As Long
FileNum = FreeFile
Open "test.bin" For Binary Access Read Write As #FileNum
Seek FileNum, LOF(FileNum) + 1
For i = 0 To 255
testbin = i
Put #FileNum, , testbin
Next i
Close #FileNum
'無駄なのもあるが。
>150>152>154 皆さんのおかげでできました!!こうやって保存できるのですね。 大変勉強となりました。本当にありがとうございました。
156 :
デフォルトの名無しさん :03/03/19 16:34
msFlexGridを使用しています。 コードで、特定の行を表示領域の一番上に持ってきたいのですが、 どうしたら良いのでしょうか。 例えば、100行目を領域の一番上に表示したい場合などです。 100行目を選択する方法は分かったのですが、 その部分までスクロールする方法が分かりません。 よろしくおながいします。
TopRow プロパティ (階層フレキシブル グリッド) 階層フレキシブル グリッド (MSHFlexGrid) コントロールの先頭に表示される行 (固定型の行を除く) を設定します。値の取得も可能です。このプロパティは、デザイン時には使用できません。 構文 object.TopRow [=number] TopRow プロパティの構文の指定項目は次のとおりです。 指定項目 内容 object 「対象」一覧内のいずれかのオブジェクトを指すオブジェクト式です。 number 階層フレキシブル グリッド コントロールの先頭に表示される行を指定する長整数型 (Long) の値を指定します。
vbで作られたアプリからプログラムを読みたいんですが、ここにいるかたで読み方知ってる方いますか?
>>158 Open / Get / Close あたりかな?
サンクスです>157
161 :
デフォルトの名無しさん :03/03/19 17:43
フォルダの中にあるファイル名だけを、 すべて配列変数に取り込みたいのですがどうしたらいでしょうか
162 :
デフォルトの名無しさん :03/03/19 17:55
>161 まずはMSDNを見る
164 :
デフォルトの名無しさん :03/03/19 17:59
inetコントロールでexecuteメソッドを使いURLを開いた場合。環境変数が HTTP_USER_AGENT=Microsoft URL Control - 6.00.8862 HTTP_REFERER="" になっていました。ここに値を入れる方法をご存知ありませんでしょうか。MSDNとgoogleで調べましたが、わかりませんでした。 USER_AGENTはたしかIEだとレジストリにかかれていたはずですが、VBの場合もレジストリにかかれているのでしょうか?
requestHeadersがそれっぽいのですね・・・。
167 :
デフォルトの名無しさん :03/03/19 19:30
>>166 Inet1.Execute Url, Operation, Header, RequestHeaders
簡単なパケットフィルタを作りたいんですがどうすればいいんですか?
vbでCD-Rを焼くソフトって作れるかい?
簡単なOSを作りたいんですがどうすればいいんですか?
172 :
デフォルトの名無しさん :03/03/19 23:21
>>170 ちょっと厳しそう。XPだとAPIがあるらしいんだけど・・・
>>171 少なくともVBでは無理。タネンバウム先生の本でも読みましょう。
簡単なVBを作りたいんですがどうすればいいんですか?
難しいVBがあるということですか?
簡単なVC++を作りたいんですがどうすればいいんですか?
>>175 近くの20階建て以上のビルの屋上に行き、何も考えずに飛び降りてください。
簡単な20階建て以上のビルを作りたいんですがどうすればいいんですか?
>167 MSDNには object.Execute [url[, operation[, data[, requestHeaders]]]] と書いてありますが。
181 :
デフォルトの名無しさん :03/03/20 09:29
そういえばLEGOにはOCXが付いてたような・・・(*´д`*)アハァ…
182 :
bloom :03/03/20 09:45
(゚ε゚ )とるるううるうるうるる
184 :
デフォルトの名無しさん :03/03/20 11:40
strGetFolder = Dir(strFolder, vbDirectory) Do If Not (Or strGetFolder = strImageFolder & "." _ Or strGetFolder = "." _ Or strGetFolder = "..") Then MsgBox strGetFolder End If strGetFolder = Dir() If strGetFolder = "" Then Exit Do End If Loop 上記のようにして、すべてのフォルダをメッセージボックスに表示したいのですが 「strGetFolder = Dir()」のところで「プロシージャの呼び出し、または引数が不正です。」 というエラーが出てしまってなにも表示されません。 ちなみにフォルダ名には「.」が含まれています。 どうしたらよいでしょうか?
すいません。3行目は If Not (strGetFolder = strImageFolder & "." _ の誤りです。
186 :
デフォルトの名無しさん :03/03/20 11:42
184が早く死にますように。 184が早く死にますように。 184が早く死にますように。 184が早く死にますように。
何度もすいません。 strGetFolder = Dir(strFolder, vbDirectory) Do If Not (strGetFolder = "." _ Or strGetFolder = "..") Then MsgBox strGetFolder End If strGetFolder = Dir() If strGetFolder = "" Then Exit Do End If Loop これでお願いします。失礼しました。。。
>>187 strGetFolder = Dir(strFolder, vbDirectory)
Do While strGetFolder <> ""
If Not (strGetFolder = "." Or strGetFolder = "..") Then
MsgBox strGetFolder
End If
strGetFolder = Dir()
Loop
普通に書くとこうだな。
Dir の返り値が "" の時に Dir() を呼ぶとエラーになったっけかなぁ?
とりあえず、Doループに入る時点でDirの返り値が空かどうか確認しる。
>>189 > Do While strGetFolder <> ""
↓
Do While Len(strGetFolder) <> 0
の方が少しだけ速いよ。(大した差じゃないけど、反復処理なので・・・)
191 :
デフォルトの名無しさん :03/03/20 13:24
>190 10万分の1秒くらい速くなる? <> 0 も省略したほうが速い? でも、こういうのは最適化されないのかな?
do 10 I = 1, 100 II[I] = 0 10 CONTINUE が II dw 100 dup(0) かな?
194 :
デフォルトの名無しさん :03/03/20 13:37
Excel ファイルの標準モジュールの関数内で以下の文 i = Int(Application.WorksheetFunction.Find(" ", adr_1, 1)) 1004 実行時エラー、.WorksheetFunction の Find プロパティが取得できません が出るんですが何ででしょう?
195 :
デフォルトの名無しさん :03/03/20 13:51
ウィンドウに合わせて、その中に入っているラベルや、Boxが大きくなったり小さくなったりしないのですが、 どうすれば良いのですか?
196 :
デフォルトの名無しさん :03/03/20 13:54
フォームのイベント
197 :
デフォルトの名無しさん :03/03/20 13:55
>>195 Form_Resize時に大きく(小さく)する処理を自分で書く
198 :
デフォルトの名無しさん :03/03/20 14:02
191は純粋に聞いてるのか、無知に基づく煽りなのか、どっちなんだ。
>195 ドトネトを使う
200 :
デフォルトの名無しさん :03/03/20 14:11
>192 ROM-BASICでは、<>0は省略したほうが速かったし、 ソースのサイズも節約できた。 >198 両方。 心はファジー。
VB6.0です。 まず何の事も分からない初心者です。 なんかお勧めの入門書なんてありますか?
>>201 「VB 入門 初心者」あたりをキーワードにぐぐってこい。
今後の展開 >201 MSDNって何ですか ↓ 名無 VBのCDと一緒に無いか? ↓ >201のVBが割れと判明 ↓ 通報スマスタ
>>205 > このコンマがたりなかった・・・(^▽^;)
「コンマ」を後ろから読んでごらん。
自己解決しました On Error 書けばいいんですねぇ・・・・・ナンデヤネン
>206 マンコ
マンコがたりなかった・・・
そうだ!俺にはマンコがたりないっ!
Q 項目と項目の間をマソコで区切った可変長形式のファイルを何と呼ぶか。
212 :
デフォルトの名無しさん :03/03/20 19:48
シーエスベー
可変長=チンコ
このスレには性格の悪いヤツが何人もいるようだが
>214 自慰イクナイ(・A・)
戦争は良くない。
Q. イラクとアメリカの間をマソコで区切った可変長チンコのファイルを何と呼ぶか。
A.チンコ
222 :
デフォルトの名無しさん :03/03/21 22:49
最近プログラミングに興味を持ち始めたんですが、何から始めたらいいのかわかりません… 主にWeb上でのアプリケーションを作成してみたいので、WebProg板にいったんですが、 初心者質問板が無かったので、ここで質問させていただきます。 まず、開発ソフトを買うに当たっていろいろ意見をみていましたが、 総合的に見てどれがよいのかが分かりません…よろしければアドバイスいただけませんか?
×初心者質問板→初心者質問スレ
>>222 VB以外の話しはスレ違いなのでVB6を買って下さい。
うーん、というか我慢できん!消えろ!氏ね!
Excel97_VBAで質問です。
Excel_vbaからhttp経由でhtmlファイルと画像ファイルをhttpサーバに
アップしたいのですが、エクセルの環境がWin_Macどちらもありえるので
winsockコントロールが使えません(と思ってます)
で、僕の結論としてはファイルアップロード用CGIに直接ハイパーリンク
でデータをPostしちゃえばいいんじゃないかと。
実際にテキストなんかは簡単にPostできるのですが
画像なんかのバイナリファイルのデータをどうcgiに投げればいいのか
ちょっと見当がつきません。元のコードはこんな感じです
Dim strAddress As String
Dim strExtraInfo As String
Dim lngMethod As Long
Dim strHeaderInfo As String
strAddress = "
http://www.xx.xxx.net/upload.cgi? "
strExtraInfo = "&fileName=xxx" & "&filedata=3673"
lngMethod = msoMethodPost
strHeaderInfo = "Content-Type: application/x-www-form-urlencoded" & vbCrLf & "Accept-Language: ja"
ActiveWorkbook.FollowHyperlink _
strAddress, , True, , strExtraInfo, lngMethod, strHeaderInfo
どなたか似たようなことをやった方がいらっしゃいましたらお知恵を貸してください
>>226 そもそもMAC ExcelってVBA動くんですか?
>>227 遅いですがそれなりに動きますよ
でもやっぱり使う人は少ないです。
>>226 クライアントのファイルをうpするんだったらCGIにパラメータで渡すなんて無理なんでないの?
>>229 自分の頭の中では
Openステートメントでバイナリとしてファイルを開く
getで内容を変数に入れる
getで得た変数をデータとしてファイル名と一緒にCGIにPostする
でいけるかなと思ったんです。
ただPostの段階でどのように記述すれば良いのかちょっと見当が
つかんといった状態です。
もしかして自分、変なこと言ってますか…。
232 :
デフォルトの名無しさん :03/03/22 08:24
IEのメニューバーのお気に入りみたいにみたいに、 メニューの内容をドラッグ&ドロップできるようにするにはどうしたら良いのですか?
>>231 BASP21をインスコして、それのファイル転送メソッドを使ったら?
BASP21の公式ページに説明がかなり載ってるし。
>>233 ほほぅ、WINとMACの両方の環境にBASP21ねえ。流石ですな。
>>231 エクセルから頭を離して、マック用OutlookExpressオブジェクトのインスタンスを作ることを考えろ。
メール送信プログラムをつくってるのではなかったな。ききながしてくれ。
結局のところ、Windows用のインターネット用アプリはWindowsSocket使ってるっしょ。
>>238 オレも彼にはWindows用とMac用の2つのソフトを作った方がいいといいたいのだが。
>>231 バイナリをテキスト文字列にデコードしたり、それをエンコードする技もあるな。
それならフォーム送信でもクエリーストリングでもおくれる。
が、たしかPostには〜文字以内でないと送信できないという決まりがあったようなきがする。
>>239 >たしかPostには〜文字以内でないと送信できないという決まりがあったようなきがする。
GETじゃない?
じゃないとあぷろだ系が成立しない予感・・・ってあれは分割して送ってるんだっけか?
>>240 分割送信かどうかはまだ知らないけど、
GETは環境依存の制限(アパッチェやIISによって異なる)があり、
POSTは無制限とのこと。
242 :
デフォルトの名無しさん :03/03/22 11:42
>>227 おれがマクでもらった唯一のウィルスは、Officeのマクロウィルスだったっぽい。
243 :
デフォルトの名無しさん :03/03/22 11:44
>>222 WebアプリならVB系よりPHPとかPerl, Ruby, Python っちゅーフリーな方からい
けや
244 :
デフォルトの名無しさん :03/03/22 15:29
配列を宣言、初期化するとき、簡単に書く方法があったら教えてください。 C言語ぐらい簡単に書ければよいのですが。
>>244 dim a(5) as integer;
(*´д`*)アハァ…
247 :
デフォルトの名無しさん :03/03/22 15:51
248 :
デフォルトの名無しさん :03/03/22 15:52
コントロール配列を2次元配列にする方法を教えてください。
249 :
デフォルトの名無しさん :03/03/22 16:31
>>244 ないです。VB.NET を使いましょう。
>>248 できません。一次元→二次元変換処理をかましましょう。
>>245 ,>247,
>>249 お答えありがとうございました。無いですが。
通常配列は名前を短くする、コントロールの方は/とModを使うしかないですね。
>通常配列は名前を短くする ?
252 :
デフォルトの名無しさん :03/03/22 17:10
VBScript で質問です IE で、認証ダイアログがポップアップするページにログインするには どんな感じでやればよいのでしょうか? ポップアップが、読み込み完了以前のイベントなのでどうしたものかと 思ってます。
253 :
デフォルトの名無しさん :03/03/22 17:51
WinInetやWinsockでHTTPを使ってバイナリぢゃないデータを GETしようと考えてるんですが、Execute->GetChunkの流れで 非同期にダウンロードしながらGetChunkされたデータをいぢりたいのです。 でも、Shift-jisに代表されるようなマルチバイトな文字セットの場合、 必ず文字の途中でブッタ切られる場合が存在しますよね。 そのまま無視して文字列型に突っ込むと、そのままUnicodeに変換されて データの最後がヌルになってしまいます。(ヌルとは限らないかもしれないが) すべての元凶は文字列をUnicodeで扱うString型にある訳ですが、スマートな対策方法はありませんか? つまり、文字列が完成した状態でデータを受け取りたいのです。 一度バイナリファイルに書き込んでしまえばとりあえずは回避できますが、 その方法を取った場合、ダウンロードが完了するまで触れません。 バイト配列を利用すると、小回りが効かなくなってしまいますし。 ぁぁもうぬるぽ
バイト配列でいいじゃん。必要なときだけStringに入れろよ。
255 :
デフォルトの名無しさん :03/03/22 19:25
>>247 MSって突然仕様変更したりするから、「現在の言語仕様を前提とする実装」は
避けた方が無難では?
>>250 Property Get をつかって二次元配列っぽく見せるとみためがきれいかも
>>251 40個の要素の配列だと、Hairetu(0)="Isikawa" Hairetu(1)="Inoue"...と40個
書かないといけないでしょ。H(0)="Isikawa" H(1)="Inoue"...だと楽かなと
単純に思いました。CだとHairetu[][40]={"Isikawa","Inoue"...};と書けるので。
>>257 Googleでちょっと調べてみたのですが、それ以外も初めて見る単語がたくさんあり
分かりませんでした。ブランク後のVB暦数日なので。修行します。情報ありがとう
ございました。
>>258 このレベルでいいの?配列の初期値
'A1:配列の型がVariantで構わない場合
Sub a()
Dim a, i As Long
a = Array("0", "...", "39") '初期値の設定
For i = 0 To UBound(a)
Debug.Print i, a(i)
Next
End Sub
'A2:配列の型をStringにしたい場合
Sub a2()
Dim str(39) As String
DimArrStr str, Array( _
"0", "...", "39" )
Dim a
For Each a In str
Debug.Print a
Next
End Sub
Sub DimArrStr(str() As String, var As Variant)
Dim i As Long
For i = 0 To UBound(var)
str(i) = var(i)
Next
End Sub
>>259 訂正
Sub a2()
Dim str() As String
DimArrStr str, Array("0", "...", "39") '配列へ初期値を設定
Dim a
For Each a In str
Debug.Print a
Next
End Sub
Sub DimArrStr(str() As String, var As Variant)
Dim i As Long
ReDim str(UBound(var))
For i = 0 To UBound(var)
str(i) = var(i)
Next
End Sub
スレ違いかもしれませんが、VBからVCに移行したいと思っています。 理由はVBだと馬鹿にされるし限界を感じてきたからです。 以前VC++の本を4、5冊買って勉強したけどさっぱり解りませんでした。 でも今なら出来そうな気がします! 無理ですか?
VBに慣れすぎていれば慣れすぎているほど、 他の言語をやってなければやってないほど無理ってことで。 最終的には根性。
>>261 >スレ違いかもしれませんが、
違っているわけではないと思う。
>VBからVCに移行したいと思っています。
がんばってください。
>理由はVBだと馬鹿にされるし
こんなんを理由にするような奴は使いもんにならん。
>限界を感じてきたからです。
あなたがVBの限界まで使いこなしているとは到底思えません。
あなた自身の限界です。
>以前VC++の本を4、5冊買って勉強したけどさっぱり解りませんでした。
アホすぎ。
>でも今なら出来そうな気がします!
そうですか、がんばってください。
>無理ですか?
大丈夫です。がんばってください。
ごもっとも
266 :
デフォルトの名無しさん :03/03/23 12:49
>>261 >理由はVBだと馬鹿にされるし限界を感じてきたからです。
ひとそれぞれなんだろうけど、漏れはVB使いだからといって、人に馬鹿にされた
ことはないよ。むしろ、一目おかれていると思う。
まぁ、陰で何を言われてるかはわからないけどね。
あくまで言語なんてのは道具なんだから、重要なのは使い方でしょ。馬鹿なC/C++/Java
使いより、しっかりしたVB使いのほうがよっぽど使える場面もあるさ。
>>259-260 ありがとうございました。Debug、Print、UBoundが分からなかったのですが、Arrayは分かりました。
Privata Sub Form_Road()
classChara=Array("Isikawa","Inoue","Ueda","Enomoto")
Label1.Caption=classChara(1)
End Sub
ついでにお教えいただきたいのですが、2次元配列はどうすればよいのですか?
classChara(0)=Array("Isikawa","Inoue","Ueda","Enomoto")
classChara(1)=Array("Tarou","Zirou","Saburou","Sirou")
Label1.Caption=classChara(3)(2)
見たいにやったのですができませんでした。
>>267 これでいいのかな?
Private Sub a3()
Dim classChara(3, 1)
DimStrArr2 classChara, Array( _
"Isikawa", "Tarou", _
"Inoue", "Zirou", _
"Ueda", "Saburou", _
"Enomoto", "Sirou")
'確認
Dim i, j
For i = 0 To UBound(classChara, 1)
For j = 0 To UBound(classChara, 2)
Debug.Print "classChara("; i; ","; j; ")="; _
classChara(i, j)
Next
Next
End Sub
Sub DimStrArr2(str, var As Variant)
Dim iCol As Long, iRow As Long, i As Long
i = 0
For iRow = 0 To UBound(str, 1)
For iCol = 0 To UBound(str, 2)
str(iRow, iCol) = var(i)
i = i + 1
Next
Next
End Sub
>>267 あと、イミディエイトウィンドウを表示させて。
Ctrl+G か メニューから表示→イミディエイトウィンドウを選択。
それでdebug.printが出力されるから。
釣られまくりだな。
手始めにウィンドウを作るだけのPGを作りましたが、全然解りません! 以前会社の面接で 『VBは誰でも使えるから…』 っていわれました。 やっぱり馬鹿はVBを使っていろって事ですね!
272 :
デフォルトの名無しさん :03/03/23 15:24
VBでも何でも、馬鹿には使えません。
273 :
デフォルトの名無しさん :03/03/23 15:31
VBは馬鹿でも使えます
274 :
デフォルトの名無しさん :03/03/23 15:42
使うだけなら、VBでもVCでもJavaでもPerlでも、馬鹿でも使えます。
まぁ、アルゴリズムやオブジェクト指向等の考え方の類は 言語に関係ないんだから、VBだから簡単ってことにはならないね。 簡単って言ってる奴が馬鹿なだけでしょ。面接官レベル。
マジな話、VCに挫折した奴がVB使ってる事はよくあるね。
>オブジェクト指向等の考え方の類は言語に関係ない お前VBしか使えないだろ?
>>277 何が言いたいのかよくわからんが。
オブジェクト指向がオブジェクト指向言語以外では役に立たないとか言ってる奴は低脳。と言いたいのなら同意。
>> オブジェクト指向がオブジェクト指向言語以外では役に立たないとか言ってる奴は低脳。
低脳は
>>277 ですね?
>>282 書いてあることに間違いは無いし、反論ももう無いんだけど。
まさか、本気でネタだと思っているの?
だとしたらあんたの技術力はものすごく低いことになるんだけど。
>>283 と、言うか君はもうちょっとユーモアを解しなさい。
VC使いだから、当然APIにも詳しくて、VBなんて余裕で使いこなせると と思ってた。でも、中にはMFCがないと何もできないやつもいるんだね。
>>285 VCL使いはそれに依存したりはあんまりしないけどな。
VBでオブジェクト指向使おうとする奴の方が頭悪そうだが(藁
288 :
デフォルトの名無しさん :03/03/23 16:25
突然失礼します。 動画くん使いたいのですが、 VBあんまり理解できません。 認証(?)が必要になるそうでコマンドプロントから 打ち込んでみたりなんですけど 一気にインストールできたりしないんでしょうか?? 当方XPホームエディションです★
>>288 みたいなのがいい例だな。
VBユーザはバカばっかり。
290 :
デフォルトの名無しさん :03/03/23 16:30
VBユーザだけならいいけど、VBしか使えない奴は死んでくれ
291 :
デフォルトの名無しさん :03/03/23 16:30
>>289 VBまったく理解できてないです。
つーか意味がわかりません。
詳しいサイト見つからなくて・・・・
292 :
デフォルトの名無しさん :03/03/23 16:33
VBすら理解できないとは・・・暖かくなったなぁ
つまり、ココまでの話を要約すると・・・・ ∧_∧ ( ´∀`)<ぬるぽ
294 :
デフォルトの名無しさん :03/03/23 16:39
本とか買って勉強すべき?? 動画くん使いたいくらいで手を出すべきできではない?
>>294 中途半端な気持ちでこの世界に入ると、VBしかできないアフォになる事が多々あるので、
手を出すべきではないかと思われます
297 :
デフォルトの名無しさん :03/03/23 16:47
>>295 なるほど。
アホにアホに重ねて申し訳ないんですが
VB→アフォ
ほかにも賢いのがあるっツーことですね。
298 :
デフォルトの名無しさん :03/03/23 16:48
やっぱ、VBしかしない人でもCくらいは理解して欲しいよね。 API使っててAPIが何か解って無い人多いし。
299 :
デフォルトの名無しさん :03/03/23 16:48
>>296 MPGから静止画切り出したいんです。
動画くんはそれです。
300 :
デフォルトの名無しさん :03/03/23 16:49
>>やっぱ、VBしかしない人でもCくらいは理解して欲しいよね。 それが無理だからVB使ってるんだろ
つーか、使うだけならランタイム入れるだけじゃないの?藁
303 :
デフォルトの名無しさん :03/03/23 16:55
認証登録がいるらしくて いちおうプロントからできるってことなんで やってみたりなんですけど あってるか不安で
>>302 そう思う。
>>303 レジストリ云々の話なら、それは認証登録じゃないよ。レジストリにOCXを
登録するだけ。VBとは関係ない話だね。
305 :
デフォルトの名無しさん :03/03/23 16:59
>>304 〜32ってやつを使って登録するんで間違ってないですか??
>>268 分かりませんでした。基本が全然できてないと思うので、理解できるように
勉強してきます。ありがとうございました。
308 :
デフォルトの名無しさん :03/03/23 17:19
すいません。 MCIWNDX.OCX MCI32.OCX MCIJP.dll これ探してます ↑これも板違い??
309 :
デフォルトの名無しさん :03/03/23 17:22
見つかりました お世話様でした
結論としては…
| | ガッ
( ・∀・) | |
と ) | |
Y /ノ
/ ) .人
_/し' < >_Λ∩
(_フ彡 V`Д´)/
/ ←
>>293
VB6.0ってXPで動作しますか?
>>312 しますよ。いくつか制限があるので、その点には注意する必要がありますけど。
>>314 できれば制限について教えてくれませんか?
ググろうと思ってもいいキーワードが思い浮かびません
317 :
デフォルトの名無しさん :03/03/23 21:23
つうか、XPでVB6.0は動かさん方が無難だろ。 どうしてもってんなら、互換モードで動かした方がいいだろ。
319 :
デフォルトの名無しさん :03/03/23 21:54
VBにシグマ(Σ)という関数はありますか?
321 :
デフォルトの名無しさん :03/03/23 22:26
Σあらっ!これは失礼… …で そういう関数、ありますか?
322 :
デフォルトの名無しさん :03/03/23 22:26
シグマプロジェクト でぐぐってみれ
ネタだけじゃまずいんで、
関数はないけど自分で作るのは難しくないと思うよ
>>319 ParamArray とか Array あたりが便利かも。
>>323 ありがとうございますぅ!
シグマプロジェクトは今やってる仕事が片付いたらゆっくり見てみます〜
シグマ関数?オマエ馬鹿だろ。
ですね。はは…
328 :
デフォルトの名無しさん :03/03/24 00:15
PictureBoxにbitmapを表示させようとする時、bitmapが小さく表示される時、 PictureBoxに自動にサイズを合わせることはできますか?できるなら教えてください。
うーむ、わからん ListViewコントロールのlvwReport形式で 列のプロパティを右揃えにすると、 FullRowSelectの描画に異常が出るのはバグ? その列に何も入力されてないアイテムだと、 その列だけ非選択の白いまま残るんだが、しかも描画ゴミ残るし…
誰か試してくれ フォームにListViewだけ貼り付けて これをコピペすればいいから Private Sub Form_Load() Dim i As Long ListView1.FullRowSelect = True ListView1.View = lvwReport ListView1.ColumnHeaders.Add = "Left" ListView1.ColumnHeaders(1).Alignment = lvwColumnLeft ListView1.ColumnHeaders.Add = "Right" ListView1.ColumnHeaders(2).Alignment = lvwColumnRight ListView1.ColumnHeaders.Add = "Center" ListView1.ColumnHeaders(3).Alignment = lvwColumnCenter For i = 1 To 5 ListView1.ListItems.Add = "test" & CStr(i) Next i End Sub
>>328 自動ではできない。
ImageBoxならできる。
>>330 自分の環境でもなった。
#ItemClickイベントでListView1.Refreshしてやればゴミは消える。
>>331 ImageBoxならできますね。ありがとうございました。
>>332 おお、ありがとう
そうか、なってしまったか
ゴミの消し方までわざわざ、ありがとう
…でも、どうしよう(;´Д`)
SP5も当ててるし、こんな初歩的なバグなんて残ってないと思うが、
一体なんなんだ…
335 :
デフォルトの名無しさん :03/03/24 08:23
>>334 MSにとっては仕様なんだよ。
あきらめろ。
336 :
デフォルトの名無しさん :03/03/24 15:42
テキストコントロールの中に、20文字で何行も文章を入力していくと 文字の位置が段々ずれていくのは、なぜですか?
>>336 いまいちなのが言いたいのかよくわからないけどプロポーショナルフォントとかそういうことかな?
>>337 今まで「プロポーショナルフォント」という用語を聞いた事が無かったんで
さっき検索して調べたら、やりたい事が見つかりました。
ありがとうございました。
さすが初心者
340 :
デフォルトの名無しさん :03/03/24 19:04
「SQL Server」を使用して稼動しているPCが、 非常に重たい状態になりCPU使用も非常に大でした。 そこで「SQL Server」のエラーログを確認した所、 下記のような内容が含まれていました。 何か関係あるのでしょうか? また現象が出た時点ではサービスパックはあてていません。 SP1、SP2をあてれば本現象は、解決するのでしょうか? 教えて下さい。 <エラーログ> 2003-03-13 02:16:42.07 ods エラー : 17826、レベル : 18、状態 : 1 2003-03-13 02:16:42.07 ods ListenOn 接続 PC-1' をセットアップできませんでした。。 2003-03-13 02:16:42.07 ods オペレーティング システム エラー : 1899。, エンドポイント マッパー データベースは作成できませんでした。 2003-03-13 02:16:42.07 spid1 Skipping startup of clean database id 4 2003-03-13 02:16:42.09 spid1 Skipping startup of clean database id 5 2003-03-13 02:16:42.17 spid1 復旧が完了しました。
341 :
デフォルトの名無しさん :03/03/24 19:33
342 :
デフォルトの名無しさん :03/03/24 20:31
ちゅうか、SQL鯖にSP当てなくても平気な
>>340 の根性の方が感動もんだわ。
あ〜ホント、凄い凄い(w
違法コピー天国韓国で猛威をふるったウイルスでつね。
344 :
デフォルトの名無しさん :03/03/24 20:38
345 :
デフォルトの名無しさん :03/03/24 22:15
PCからPCへ電話をかけて電話を着信したらポートを開いて データ送信をしたいのですが、 MSCommを使用してVBでプログラムするとき 自動着信してポートを開く制御をかけるにはどのようにすればいいのでしょうか?
347 :
デフォルトの名無しさん :03/03/25 03:24
PictureBoxにcircle関数で円を書くことでピッチャーが投げるボールの起動を シミュレーションしています。ボールがバッターに近づくにつれボールが大きくなり 変化や重力で中心を動かし、timerで0.01秒毎に表示していくのですが、 140kmのストレートが3秒ぐらいかかってしまいます。circle関数が遅いのだと 思うのですが。解決方法があるなら教えてください。
タイマーが0.01秒おきに来てるわけじゃないからねぇ。 試しにタイマじゃなくて、ForNextで円を書いてみて、1秒に何個書けるか やってみては?
>>348 ぁ、n個を何秒で書けるか、か。どうでもいい事だけど修正
>>347 0.01秒ごとに描画させること自体が無理な事をやらせています。
まずは秒間15フレーム(0.66秒に一回描画)くらいに押さえておいて、
それ以上上げられるなら上げれば良いと思われ。
それと、描画はarc()とかのWindowsAPIを使ったほうが早い。
描画時期の制御はゲームのアルゴリズムでも研究するるんですな。
351 :
おこじょん :03/03/25 10:34
質問ですが、witheventsでは配列は宣言できないみたいなので、複数の同じ activex.exeを配列として呼び出してそちらから呼び出し元のイベントを 使いたい場合どうすればよろしいでしょうか?ご教授願います。 dim withevents sever() as class1 set sever(1) as new class1 set sever(2) as new class1 というような感じで呼び出して、みたいにやりたいのですが、無理っぽい ので、他の方法ないでしょうか?
352 :
デフォルトの名無しさん :03/03/25 10:38
winsockコントロールでwinsock1が受けたconnectionrequestイベント でのrequestIDを他のwinsockコントロールのACCEPTメソッドに渡し ても”記述子はソケットではありません”とか出てしまいます。 やはりCONNECTIONREQUESTイベントを受けたコントロールしか接続 することができないのでしょうか?
353 :
デフォルトの名無しさん :03/03/25 10:41
WINSOCKで画像ファイルとか、EXEファイルとかを送るにはどうすれば いい?親切な人おせーて!!(簡単なコードなんて書いてくれると うれしい)
354 :
デフォルトの名無しさん :03/03/25 10:45
前に書き込んだんですけど、時間がたってしまったので探しても見つか りませんでした。なのでもう一度書かせて頂きます。 外部EXEから呼び出しもとの変数を扱うにはどうすればよろしいでしょう か?(イベントの方は分かりました)
355 :
デフォルトの名無しさん :03/03/25 10:48
WINSOCKでWINMXもどきを作ろうとトライした人いませんか?それから そんなサイトを知っている人がいたら教えてください。
>>355 頭使ってMXがどういう仕組みか考えろ。と。
357 :
デフォルトの名無しさん :03/03/25 11:09
VB6.0 SP5、Win2K SP3 で開発中なのですが、複数のフォームをプロジェクトに追 加してある状態 (たとえば Form1 と Form2) で、それらのフォームを表示したと します (ここでは Form1 と 2 を両方 .Show したとします)。 この時、両方のフォームが別のアプリケーションのウィンドウの下に隠れている時 に片方を表に呼び出すと、両方のフォームが連動して表に出てきてしまいます。 これを連動しないようにしたいのですが、どなたか方法をご存知ではないでしょうか ? ちなみに、SetWindowLong API で hWnd にフォームのウィンドウハンドル、nIndex に GWL_HWNDPARENT を指定して親ウィンドウをデスクトップに変更してみたところ 希望する動作をするようにはなったのですが、フォームが挙動不審になってしまい ました。(w MSDN には SetWindowLong ではなく SetParent を使った方が良い、と書いてあり ましたが、SetParent はフォームに対しては効かないようで・・・。 どなたか解決方法をご存知の方、ご回答をよろしくお願いいたします。長文スマソ。
>>348-350 お答えありがとうございました。おっしゃるやり方でfor~nextで50回呼び出し
(140kmのストレートのかかる時間)それをgettickcountで計ると、0.01秒も
かかっていませんでした。円の描画の遅さが問題ではなさそうです。C言語で作った
ときは、半永久ループ繰り返し文の中でたえず時間関数を呼び出し、0.01秒たったら
描画し、18.44m進んだらループから抜けると言うやり方を使っていました。
VBでこのやり方はできますか?やってみたときに落ちてしまったので怖いのですが、
正しいやり方があるなら教えてください。また、他に良い方法があるなら教えてください。
>>351 配列とは別にWithevents宣言してイベントを受け取る。
'サンプルプル
Private Withevents A1 As Hoge
Private Withevents A2 As Hoge
Private Withevents A3 As Hoge
Private A(1 to 3) As Hoge
'-----
Set A(1) = new Hoge
Set A1 = A(1)
必要になったオブジェクトからだけイベントを受け取る
'サンプルツー
Private Withevents Ax As Hoge
Private A(1 to 3) As Hoge
'-----
'A(1)からイベントを受け取る必要がある
Set Ax = A(1)
360 :
デフォルトの名無しさん :03/03/25 11:50
オブジェクトを動的に生成することは出来ないのでしょうか? Dim oText_Box As TextBox Set oText_Box = CreateObject("VB.TextBox") のようなイメージで。
>>360 オブジェクトの動的生成じゃなくてコントロールの動的生成だよな?
VB6ではできる。
ControlsのAddメソッド。
おっと、旧いバージョンでもLoadステートメントという手があるのを忘れてた。
363 :
デフォルトの名無しさん :03/03/25 12:43
>>359 確かめる環境も調べる環境も無いので、間違えてたら本当にスマソ
配列宣言したオブジェクトはWithevents宣言したオブジェクトに入れられないんじゃなかったっけ。
昔、コントロールで失敗した記憶があるような気がする。
調べたい…。
364 :
おこじょん :03/03/25 12:43
<<359 マジサンクスです。
365 :
デフォルトの名無しさん :03/03/25 13:15
ステップ実行し、変数ウォッチすればわかる。。
>>363 今確かめてみた、上の方法でいける。
というか確かめずにレスしてた漏れ。
もしかしてWitheventsと配列宣言を同時に使えないってことと混乱してる?
>>364 オブジェクトの寿命には注意してな。
367 :
デフォルトの名無しさん :03/03/25 13:31
>>363 コントロールは違うみたい。
席立って調べてきた。
Private Withevents ctr as TextBox
Set ctr = txtHoge(0)
で、オブジェクトまたはクラスがこのイベントセットをサポートしていません。
配列になることによって、イベントはプロパティのメンバが変わるからなのか??
配列になることによって、イベントはプロパティのメンバが変わるからなのか?? ↓ 配列になることによって、コントロールはプロパティのメンバが変わるからなのか??
>>367 お、ありがと。
なるほど、コントロールと通常のオブジェクトで動作が違うんだ。
Tipsとして保存しておこう。
370 :
デフォルトの名無しさん :03/03/25 15:02
クラスモジュールでメンバを公開するときはPublicよりFriendの方が良いのでしょうか。
その前に、おまえらFriend使ってますか?
トコロデ
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>253
371 :
デフォルトの名無しさん :03/03/25 15:06
>>360 Controls.AddよりもLoadを使うほうが圧倒的に扱いやすい。
1. TextBox (Text1) をコントロール配列で作る
2. Text1(0) 以外は削除
3.
for i = 0 to 10
Load Me.Text1(Me.Text1.Ubound + 1)
next i
これだとイベント取るのも楽。
372 :
デフォルトの名無しさん :03/03/25 15:09
msgboxで自動改行させない方法はありますか?
>>370 当然使っているよ>Friend
基本的に外部プロジェクトに公開しないものは全部Friendにしてある。
Friend→Publicは簡単だけど逆は問題あるし。
気をつけないとImplementsではまるけど>Friend
375 :
デフォルトの名無しさん :03/03/25 17:38
CPUの使用率とメモリの使用率を得る方法をキボンヌ
377 :
デフォルトの名無しさん :03/03/25 17:41
<<354を教えて下さい。お願いします<(_ _)>
>>377 お前は>>と<<が同じに見えるのか?
何でか知らんがPC初心者板とかでこういう妙なミスする奴が・・・
>>377 前に参考になりそうなコードを書き込んだ覚えがあるんだけど(面倒で)探せない。
380 :
デフォルトの名無しさん :03/03/25 18:18
>>376 ありがとう。だができればAPI関数で知りたい。
>>379 探す手間を省くために技評の「300」シリーズ全3巻(ガリバー著)、全部
買っちまったよ(w
自分にとって本当に必要(知りたい)な内容は全体の10〜15%程度なんだが、
MSDNで探すより簡単で手っ取り早い。
382 :
デフォルトの名無しさん :03/03/25 18:27
ニュース速報板でVBは消滅してしまうと聞いたのですが本当でしょうか?
>>382 20点。
も少しおもしろいネタ考えて投稿しよーね。
384 :
デフォルトの名無しさん :03/03/25 18:31
いや・・・本当ですよ VB消滅ってスレッドがあったんで・・・・
385 :
デフォルトの名無しさん :03/03/25 18:33
>>385 単純に.netになるからじゃないの。
VB6.0あたりは.netとは、互換性がないと聞くけど。。。
どうなんでしょう???
ふーん・・・ ∫ _____ ∧_∧ riii= |┌──┐| ̄|-、 ( ´_ゝ 「 ノ ||>385|| | ] / ⌒\/ /───┐ |└──┘| 」 / / ∧ \ / ̄ ̄ ̄ ̄`・、[ ̄ ̄ ̄ ̄] ̄ ̄| ( 二\ `'| X| | OO 〜〜ー⌒ ̄~〜〜--〜〜-〜"~~ ̄ ̄ ̄  ̄ ̄
>>386 ええ、言語仕様がかなりまともになっています。
一緒にバカなVBユーザも切り捨てソフトウェアの質を上げる作戦のようです。
>388 /■\ ( ´_ゝ`)___ _ ( ̄∪ ∪ ) /■\ _ / /  ̄ ̄ ̄ ̄ ̄ / / (´<_ ` ) \\ /■\ / / /■\ / / ⊂⊂_ ⌒つっ  ̄ ( ´_ゝ`)/ ./ (´<_ ` ) / ( ̄ ̄ ̄ ̄ ̄ ̄) ⊂ ⊃ / / ⊃ /  ̄ ̄ ̄ || ̄ ̄ (_). ) / (__ ⊃ / ( ⌒ ヽ ミ /\(_) / / / ∪ ノ ミ \___/  ̄ ∪∪ /■\
390 :
デフォルトの名無しさん :03/03/25 18:51
ってことはVBはまだまだ大丈夫なんですね ありがとうございました
391 :
デフォルトの名無しさん :03/03/25 19:08
VBって書くのに何かソフト必要なんですか? 何処で手に入りますか?
>>391 VBエディタ。ベクターでダウンロードしてください。
393 :
デフォルトの名無しさん :03/03/25 19:09
string変数に複数の項目を含む行を代入しています sylk形式です。項目間をタブで区切り行末はリターンコードで表します 1行になってるデータを項目別の変数に代入したいんですがどうやればいいのかわかりません
>>393 いろいろやり方はあるだろうけど。
ポイントはタブだ。
>>391 (1) VCL
(2) .NET Framework
(3) J2EE
の3つが必須。
396 :
デフォルトの名無しさん :03/03/25 19:15
コレクションを削除したいのですが、どの様にすればよいか教えてください。
397 :
デフォルトの名無しさん :03/03/25 19:16
まちがえました。 コントロールの削除でした。 すみません。
>>397 サブクラス化して
WM_DELETE_CONTROL
を送ればOK。
>394 レスありがとう タブを認識したことを条件とすればいいんだろうけど そこがよくわからないのです
tipsにありますた。 splitだね
401 :
デフォルトの名無しさん :03/03/25 19:57
>>396 LoadされたもんならUnloadするだけ
VBでOracleにアクセスするアプリケーション(oo4o)で、 OraDatabaseオブジェクトにNothingを代入したり、 参照したりするとたまにアプリがメモリアクセス違反で落ちます。 APIを誤用している箇所もありません。何か解決法はないでしょうか。 ちなみに環境はVB6.0SP5+Win2000で、クライアント、 サーバーはともにOracle8.1.7iです。
404 :
デフォルトの名無しさん :03/03/26 10:38
>402 おまいと同じ環境だが落ちないぞ。 バインド変数あたりの現象だろ?
405 :
デフォルトの名無しさん :03/03/26 16:05
よろしくお願いします。 2000件のデータA(8ケタ)と、30000件のデータB(15ケタ)をマッチングさせる処理を しているのですがCPUがテンパって固まります(セレ500Mhz)。 データ共に数値です。 まずデータBを全て動的変数に格納してから、 データAを一件づつ読み込んでLike演算子で配列の先頭からマッチングさせて、 コレをループさせているのですが やはりこれでは効率が悪いでしょうか? ニ分木検索で行ったほうがよいでしょうか。 アドバイスありましたらよろしくおながいします。
>>405 方法がわかっているなら試してみれば?
漏れなら、そんな処理は C++ の STL でやる。
407 :
デフォルトの名無しさん :03/03/26 16:26
>>406 Σ(´д`;*)
ニ分木のアルゴリズム組む手間より、元のコードのままステップインで
F5を押しっぱなしにして放置したほうが早いもので・・・・・
とりあえずDoevents入れてみますた。
>>404 2箇所ほど
mOradatabase.OraParameters.Add "パラメータ名","",ORAPARM_INPUT,ORATYPE_NUMBER
となっているところがありましたが、それだけとは思えません。
あと考えられるのは初期値指定にVal関数を使っていることぐらいでしょうか。
質問させてください。 メッセージボックス関数などで 引数候補のvbOKOnlyとかが自動で表示されますが あの機能を自作の関数につけることはできますか。
412 :
デフォルトの名無しさん :03/03/26 21:16
>>410 VB6.0以上?なら可能。列挙定数 ( Enum ...... End Enum )
はメンバ表示されるIDEの仕様。
列挙以外では、プロパティ、メソッド、コレクション(これも
プロパティの一種という扱いだが)も同様。
>>410 とりあえず
Dim hoge As VbMsgBoxStyle
hoge =
ってタイプしてみ。
コピペする場合は最後の「=」を打ち直すべし。
414 :
デフォルトの名無しさん :03/03/26 22:47
WSHの正規表現に関しての質問です。
VBScriptで掲示板プログラムを書いてるのですが、2chで使用されている
>>405 のような番号指定をHREFでリンクを貼る方法が良くわかりません。
正規表現を使えば簡単?にできるような気がするので、ちょっと勉強して
みましたが、参考となるサンプルがあまりなく、四苦八苦しております。
自分の限界はここまでです。
+−−−−−−−−−−−−−−−−−−−+
set re = new regexp
strin = "テスト
>>405 です、>406これもOKに"
re.Pattern = "((>|>>)[-\d]+)"
re.Global = True
strout = re.Replace(strin, "<a href=""bbs.asp?id=$1"">$1</a>")
+−−−−−−−−−−−−−−−−−−−+
実際の求めたい出力文字列は
"テスト<A HREF="bbs.asp?id=405">
>>405 "</A>"です、 _
<A HREF="bbs.asp?id=406"
>>406 </A>これもOKに"
です。
最初の$1の">"という文字を""に置換して消し、二つ目の$1の">"を>に置換
してタグのくくりと区別したいのですが、正規表現中にReplace関数を使うと
エラーでおこられるため使用できませんでした。できれば正規表現一発で
処理したいので、どなたかわかる方教えてください。
415 :
デフォルトの名無しさん :03/03/27 00:18
>>410 412のいうとおり、Enumですな。Constよりはるかに使いやすい。
414です。 たびたびすみません。 &gt;がデコードされてしまうようなので以下のように読み替えお願いします。 実際の求めたい出力文字列は "テスト<A HREF="bbs.asp?id=405">&gt;&gt;405"</A>"です、 _ <A HREF="bbs.asp?id=406">&gt;406</A>これもOKに" です。
417 :
デフォルトの名無しさん :03/03/27 03:52
質問です。 アイコンを作成するプログラムを作っているのですが、 SavePicture ImageList1.ListImages(1).ExtractIcon, "hoge.ico" とやって保存するとどうしても汚くなってしまいます。 Form1.MouseIcon = ImageList1.ListImages(1).ExtractIcon は問題無く美しいアイコンになるんですけど、、 どうすれば美しくアイコンを保存できるのでしょうか? VisualBasic6.0です。
>>417 それだと、複数サイズを持つアイコンが作成できないから小さいサイズしか
持っていない時に大きなアイコン表示すると拡大されて表示してしまうのでは
(逆もそうですが。)
また、16色や256色も考慮されてますか?
419 :
デフォルトの名無しさん :03/03/27 08:51
コンテナを使わずフォームに直接配置される多数のコントロールを一気に (高速に) 移動する方法って?
ファイルを削除せずに、いったん ゴミ箱に入れる方法はありませんか?
SQLの抽出方法について教えてください。 VB関連の質問ですのでお願いします。 A,Bにはそれぞれ1,2,3の値が格納できるようになっており Aには3 Bには1,3(1の条件に存在する3のデータ) が入っています。 SQL文で定義したのですが抽出データが予想外のものになってしまいました。 ご指摘お願いします。 SQL = "SELECT * FROM TBL WHERE(((TBL.A)='3' ) OR ((TBL.B)='1' ) AND ((TBL.B)='3'))"
条件の指定が間違っていました。 @のデータを出す作業(B=3) Aのデータを出す作業(A=1,B=3) 上の2つは上手く抽出できたのですが、 @とAの合算データを出す作業 が難航しています。 SQL = "SELECT * FROM TBL WHERE(((TBL.A)='3' ) OR ((TBL.B)='1' ) AND ((TBL.B)='3'))"
thanks
427 :
デフォルトの名無しさん :03/03/27 13:44
>428 |ヽ ∧ /| / |\/ | ./|/ヽ |= \◇ //|= | | (´<_` ) |____ .|\ フーソ ||ヽ .| /ミ/ | .|ヽ' /ニ| ̄ lニl ̄ 彡/|_| |三|__ lニl__彡 _/ /___| | / ニニ/ / ▽\ / /__/ |ニl lニ| <__/ <___>
>>427 ヤパーリそれっきゃないっすかね
大量のコントロールをスクロールさせつつその背景は透過にしたかったんだけどね
いろいろ試したけどスクロール中の描画がどれもイマイチで
まあ透過にすんのは諦めます
>>428 リアルタイムでスクロールならVBだと厳しいんでは
>>430 のまちがいだった
ところで、PictureBoxで画像がロードできないんですが、
1. 他のPC (Win2K) で走らせると問題ない
2. 画像フォーマットはJPG。BMPだとこの問題は起きない
3. ロードはされているみたい & AutoRedraw = True
1のために悩んでいます。どなたかわかる方いらっしゃいます?
>432 jpg読み込むDLLが無いんだろう
あと、見えてたのがリサイズすると見えなくなったり
落ち着いてもう一度ソースを確認してみることをおすすめする
>>432 AutoRedraw = False ではどう?
437 :
VBちょー久しぶり :03/03/27 16:28
これから自分でも調べて見ますが、もしご存知の方がいらっしゃればアドバイスをお願いします。 フォーム=ユーザーインターフェースを持たないActiveX DLLを作成するときに、 (1)そのDLLのメソッドの引数に「ByRef」は指定できるのでしょうか? (2)同じく、配列は指定できるのでしょうか? ……いえ、受け取った仕様書の引数定義に、何気にInput、Outputとか、型タイプにArrayとか書いてあったんで(^^; もちろん、同じExeの中の関数だったら、ByRefすればいくらでも値のやり取りは出来るし、 配列も引数として宣言できるのは知っていますが、ActiveX DLLにするっつーことは、OLE(COM)を通すっつーことですよね? 「あれ? 本当に出来たっけ?」と思い、質問させてもらいました。何かご存知の方がいらっしゃればアドバイスいただければ幸いです。よろしくお願いいたします。
レス遅れてすいません。 ExtractIconメソッドで変換したアイコンを保存するときに汚くなってしまうんです。 多分16色に自動で減色されてると思うんですけど、 Form1.MouseiconをExtractIconメソッドで変換したアイコンにするときは きれいなアイコンなのですが、 それをsavepictureを使って保存すると、Form1.Mouseiconにセットしたアイコンよりも ずいぶんと減色されて、荒くなってる気がします。 何でこんなに違いが出るんでしょうか? アイコンを作るプログラムを作るにはAPIを使ったほうがいいんでしょうか? だれかアドバイスお願いします。
441 :
デフォルトの名無しさん :03/03/27 17:47
Set recRS = mdbDB.OpenRecordset(" SELECT * " & _ " FROM Convert " & _ " WHERE ExecuteFlag = '正常終了';", dbOpenSnapshot) 上記のように指定したら、「オブジェクト変数またはWithブロック変数が設定されていません」 というエラーが出てしまいました。どこが間違っているか教えていただけないでしょうか
>441 あわわ、こんなことできるのか、 まじですげーな
mdbDBを調べろ
RPGを作っています。 画面をちらつかせないように、表画面と裏画面に分けて 裏画面で生成した画像をBitBlt等を使って表画面に転送させ ることを繰り返すようにしようと思っています。 そこでオブジェクトを、 表画面をFormオブジェクト、裏画面をPictureオブジェクトにしようかと 迷っているのですがどのオブジェクトを使えばメモリーを少なく使い、 なおかつ速く転送できるでしょうか? 宜しくおねがいします。
DirectXを使ったら
RPG = Report Program Generator アクションでなければ PaintPicture でも良さそう・・・
>>445 DirectXは今回はいちいちRuntimeを入れたりとややこしいので・・・
皆が遊べるようなゲームにしたい。
今問題となっているのは転送元と転送先のオブジェクトをどのように
すればいいのかわからないのです・・・
>>446 それじゃないYO!・゚・(ノД`)・゚・。
>>447 >いちいちRuntimeを入れたりとややこしいので・・・
DirectX入ってないのってドノーマルのWindows95とNT4位じゃないの?
>>447 次の行を読んでくれなかったのね 。・゚・(ノД`)・゚・。
>>448 う〜ん・・・
やっぱりDirectXで組んだほうがいいのかな・・・
画面構成の大きさは640x480です
32x32のアイコンを埋めて作ります。
ですがRPG製作のボス(部長)曰くかなり長いシナリオらしいので
それによるメモリー不足が心配です。
一昔前のパソコン使っている人結構おおいからな・・・
最終的にはPentium MMX 200MB,メモリ64MBで長時間動けばOK。
私もRPG製作は初めてなのでかなり迷っております。
9月の文化祭にて発表せねばならないのでかなりやヴぁいかもです・゚・(ノД`)・゚・。
2chの皆様どうぞ宜しくおねがいします(m_m)!
>>446 ・゚・(ノД`)・゚・。
>>450 > ですがRPG製作のボス(部長)曰くかなり長いシナリオらしいので
> それによるメモリー不足が心配です。
シナリオが長いのとメモリ不足と何の関係があるの?
>>451 BitBltを使って転送などを繰り返しすると
メモリー不足になると書いてあったのですが・・・
>>452 はつみみです。
単なるコーディング側のバグか、ディスプレイドライバのバグじゃないの?
>>448 NT4 の GDI は DirectX を使っていると聞いたが。
>>454 折れはDirectX 7しかまだ使えないです・・・
NT4等に搭載されているDirectXはバージョンが古いと思われ・・・
すんません、やっぱり一人で考えます。 皆さんありがとう(´∀`)。
457 :
デフォルトの名無しさん :03/03/28 01:41
ここでは.NETはスレ違いなんですよね。
>>455 贅沢を言わなければ、DirectX 3 でかなりのものが作れると聞いたが。
>>439 >多分16色に自動で減色されてると思うんですけど、
そのアイコンが16色だという確認はしましたか?
>ずいぶんと減色されて、荒くなってる気がします。
何を見て荒く見えていると判断しましたか?
APIというか、ICOファイルのフォーマットを調べて自分で書き出すのが一番かと。
460 :
デフォルトの名無しさん :03/03/28 04:16
SRPGでマップを1週した時に、因数あり(参照渡し)、戻り値無しのプロシージャ(関数) で処理しようと思っているのですが、 HandleMapLoop(y,x) と書くとエラーになってしまいます。=を付けろと言うことらしいのですが、よく 分かりません。因数、戻り値が無い場合はエラーにならないのですが。
>>460 sub HandleMapLoop(y,x)
か
HandleMapLoop y,x
>>461 subじゃなくて
Call HandleMapLoop(y,x)
だった。回線切って寝よう。
>>450 まさか全フィールドのイメージを一括でビットマップ展開しようなんて考えてないよね?
って言うかマップチップの概念がないのか・・・最近の子は。
>>452 TransparentBltはメモリリークするけどそれのこと?
>>454 DirectX9入れるとGDI+はDirectX使うようになるらしい。
sqlserverからcsvにする方法を教えてくだはい
>466 SQLの本を買ってください。
wwwwwwwwwwwwwwwwww
470 :
デフォルトの名無しさん :03/03/28 12:36
ファイルを削除せずに、ごみ箱へ入れる方法を教えていただけないでしょうか
>470 移動
SHFileOperationを知らぬ輩がごろごろと。
>472 きえてねーよ(一応・・・) >473 それつかわなければごみ箱つかえねーのかよ
態度でかい
SHFileOperationを使ってごみ箱へ入れる方法がわかりました。 ありがとうございます。 しかしながらまた問題がありまして、ごみ箱に入れようとすると 'File.txt'をごみ箱に移してもよろしいですか といちいち聞かれてしまいます。 これは表示しないようにはできないのでしょうか?
adoを使ってcsvにできません 誰かおしえて
自己解決しました。ありがとうございました。
>475 >476 うっせーよ禿
483 :
デフォルトの名無しさん :03/03/28 14:45
for XML句を使って、 recordset.open "select * from table for XML AUTO",3,2,1 とすると、カーソルでは使えません。というエラーが出ました。 たしかに、ストアドや、直接(意味わからないが、クエリアナライザだとうまくいく)でなければなりません。と書いてました。 あとOPENXMLというのが使えるような気がするのですが・・・。 JAVAでかかれたサンプルを見つけたのですが、それによるとなにか専用のオブジェクトにopenqueryメソッドで代入しているようでした。 VBにもそういう感じのものがありませんでしょうか。
>475 >476 チンカスはママのオッパイでもすっておとなしくしてろや
>475 >476 もうおわりかー?禿が
>472 しかもばか >473 態度でかい
487 :
デフォルトの名無しさん :03/03/28 15:06
イラクの人はここ見てます
http://www.k-514.com ,.-、
/.n l /⌒ヽ
| l l | ,' /7 ,'
, '' ` ー ' '-' /
/ 、_, `ヽ
l , .-. 、`´ l
ヽ ヽ ̄フ /
丶、 ̄____,/
/ ,. - 、 )
(( ( n ([N],ハ_う
ゝ)ノ  ̄ ヽ
/ _ l ))
〈__ノ´ `(_ノ
488 :
デフォルトの名無しさん :03/03/28 15:20
VB.NETで複数のクラスで有効なグローバル変数を定義するにはどうするのでしょうか? DIMって publicとPrivateとかと違うの?
>488 VB.NETへ
>490 ばかですか?
>>491 ああ、さっきちょっとつつかれてぶちギレてた子か。大変だな。
>492 ばかですか?
>492 (='m') ウププ アフォはっけーん
>492 今ごろかよ、おめーおっせーなー! ちんたらしてんじゃねーよのろまが!
| | | | // // __//___ _∧∧∧∧_ /:::::::://:::::::::::::::::::\ ヽ 祝 / / ̄// ̄ ̄ ̄ヽ:::::::| ) ! ( ヽ========//======-----) ). 釣. ( ヽ/^^//^^^ヽ::::::::::::::::::::| ) り ( / // /:::::::::::::::::::::| ) 板 ( ヽ // / ヽ::::::::::::::::::| ) O ( // ⊂。⊃ //ヽ::::::::::::| ) F ( //つ ゞ 5):::::::::::/ < F ( __ //||||||ゞ _ /::::::::::::::| ) 開 ( \ .// )::://ヽ \ヽ::::::::::::/つ ) .催 ( \/ =ヽ ̄ ヽ  ̄ ̄ ̄ ( ) !! ( /《@》\_/ \_____) ヽ/VVVヽ/ ( ̄⊃=\/ /::::::::::::::::::::::::::::\ (  ̄⊃ο/::::ヽ /::::::::::::::::/ ̄ ̄ヽ:ヽ (  ̄⊃/ /:::::::::::y:::::::::::::::::/ ヽ::| (_ ̄ ̄||\:::::::::::::::::::::::::::/ /::| (_ || \::::::::::::::::/ /:::::::| 釣り板第1回オフ会 (___// \:::::/ /:::::::::::::|テーマ: // \ y /::::::::::::::::/「反応の悪い // \ /::::::::::::::::::/ 魚の釣り方」
>496 小物がつれちゃった・・・どうしよう・・・・。
で、 おまえら俺の質問にこたえろや!禿
} ⊂ニ⊃ _ 〈 ⊂⊃ イ ノ /⌒ヽ └ _.-‐ 厂 /⌒ヽ/ \ _ /⌒ヽ r' ,-' / / \/ \/ | ,、_ノ ̄ _,,-' `ヽ | ̄ . . .. . . . ................ | / ⌒ヽ | / `〜^ヽ | 。 / } | -_) ゚ / ノ \.ヽn ' ' / ' ' ( (´・ω・`) , , ' ̄ " '' ' ( ´Дンノ , , ’ ' ' (∩ ∩ ) , , , , ' ' ( へ⌒ _ , , ' ' /、ィ._ ヽ ヽヽヽぃヽヽヽヽぃヽぃヽヽヽヽヽぃヽ {゚/ )ノ ヽヽヽぃヽヽヽヽヽぃヽヽヽヽ -〜ー…‥―〜―---―----〜―-一― ソ -------―ー‥…〜‐--―-- 〜 〜 〜〜 〜〜 〜 〜 〜〜 〜 〜〜 〜 〜〜 〜 〜 〜 〜 〜〜 〜 〜〜 〜
502 :
デフォルトの名無しさん :03/03/28 19:27
Text1.Text = CreateObject("Scripting.FileSystemObject").OpenTextFile("test.txt").ReadAll これがテキストファイルを読み込む最小限のコード?
privateとpublicの違いも分からないひとはbakaです。
504 :
デフォルトの名無しさん :03/03/28 19:56
SRPGでbmpのフィールドとキャラを重ねることはできますか(キャラの無い部分に 後ろのフィールドが見える)。思いついた方法で、そのままフィールドと同じ所に 代入する方法、Imageを2枚重ねてやる方法をやってみましたが、両方ダメでした。 方法があるなら、教えてください。
505 :
デフォルトの名無しさん :03/03/28 20:01
VBでAcrobat PDFWriterを使ってPDFを生成するとき、 PDFファイルの保存ってダイアログを表示しないで 上書きでも有無を言わずに自動的にパッパと生成したいんですが どうすればいいでしょうか?
>>504 ちっとは自分で調べろ
"透過" "VB" "画像"
悪いこと言わないからゲーム作る気があるならVC++覚えろと言ってみる。
>>505 板違い。PDFWriterの仕様です。
Acrobat Distillerという方法もある。
質問です。 CADや帳票設計などのソフトに不可欠な、 描画したラインをクリックして掴み移動させるという機能は どのように実現すればいいのでしょうか? アドバイスお願いいたします。
質問です。 現在、ログ管理ソフトを作っています。 一週間以上放置(変更が無いファイル)を消す仕掛けを作りたいのですが タイムスタンプの簡単で確実な比較方法は無いでしょうか?
DateDiff
VB6.0(SP5)を使って印刷のプログラムを作成してるんですが WORDのように、文字に網掛けや影抜きみたいな装飾文字を 印字したいと思い、色々としらべたのですが OLEで使えるような機能を使う方法ってないんでしょうか? 良い方法があれば教えてください。
>>509 線などの図形を描画した座標を記憶しておく。
マウスボタンが押下されたときにその図形かどうかを判断して・・・
>>510 普通にタイムスタンプを調べては?
>>459 アドバイスありがとうございます。
>そのアイコンが16色だという確認はしましたか?
確認してみたら、16色になってました。
>何を見て荒く見えていると判断しましたか?
すいません。荒くはなってませんでした。32,32のままです。
勘違いでした、すいません。
>ICOファイルのフォーマットを調べて自分で書き出すのが一番かと。
そうですか。SavePictureを使って保存すると16色に減色してしまうのは仕方ないことなんですかね。
がんばってICOファイルのフォーマットを勉強します。
アドバイスありがとうございました。
>>505 ついこの前、似たようなことやった。
俺が使った方法はTimerコントロールで一定時間ごとにEnumWindowsでウインドウを
列挙し対象のウインドウならSendMessageでそれっぽいメッセージを発生させる方法。
ただし一瞬画面に表示される。CBTフックを使えばもう少し綺麗にできるのかもしれないけど、
門外不出のツールなので、そこまで突っ込んでやっていない。
PDFWriterにそういう機能があるのならそっちを使ったほうがいい。
またまた質問ですみません・・・ あの・・・ Webbrowser内のTEXTとかを編集する方法ってどうやるのですか? ぐぐったんですがよくわからなくて・・・ (Command1をクリックするとWebbrowser内のText内を”ほげ”とする) (見たいな感じのをお願いします・・・・)
519 :
デフォルトの名無しさん :03/03/29 14:15
>>516 Webbrowser内のTEXT って何を指してるのかな?
htmlソースのこと? Textエリアタグのこと?
>>516 コンポーネントの追加か参照設定で
Microsoft HTML Object Libraryにもチェックを入れる。
(入れなくてもできると思うけど)
WebBrowser1.DocumentでIHTMLDocumentとかIHTMLDocument2とか
そんな感じの型(色々使える)の変数に代入する。
たとえばIHTMLDocument2型の変数に代入した場合、body.innerHTMLメソッドで
(たぶん)body内のHTMLが取得できる。
たとえばIHTMLDocument3型の変数に代入した場合、getElementByIdメソッドで
指定したIDのエレメント(リンクとか。IHTMLElement型)を取得できる。
IHTMLElement型のClickメソッドで指定したエレメントをクリックできる。
あとはこの応用でできるはず。英語のヘルプもちゃんと見れよ。
ついでに質問。WebBrowser使った場合ProxyってIEの設定しか使えんの? WebBrowserコントロールからはあるプロキシ使って、 IEからは他のプロキシ使ったり、プロキシなしにしたいんだけど。 WebBrowserコントロールとIEは同時に使います。 プログラミングするんじゃなくツールとかでの解決策でもいいけど。
522 :
デフォルトの名無しさん :03/03/29 21:19
旧スレより下がっている
523 :
デフォルトの名無しさん :03/03/29 23:15
緊急! 2人で別々にプロジェクト作ったんだけど、どうやって結合するんですか? AのプロジェクトからBのプロジェクトで作った画面を使いたいだけなんですが 動きません。お願いします。
>>523 クラスモジュールの仕組みを正しく理解していれば、
そんなことで悩む事などないよ。
>>524 と、いうことは・・・なんとなく解りました。やってみます。
526 :
デフォルトの名無しさん :03/03/30 00:21
駄目でした。誰か助けて〜
527 :
デフォルトの名無しさん :03/03/30 00:26
>>505 レジストリを触るんだよ。Acrobat SDKに載ってるよ。
PDF Writerは印刷ダイアログを出すかどうかレジストリのフラグを見て
判断するんだよ。印刷前にレジストリをクリアするんだよ。
以前VB-MLで回答したから覚えてる。
>>523 c:\>copy a.vbp + b.vbp c.vbp
529 :
デフォルトの名無しさん :03/03/30 03:09
???
>>528 おぢさんは、copy /b (略)
の方がええと思うで。
532 :
デフォルトの名無しさん :03/03/30 17:43
氏ね
WinXP(Home)SP1にVB6をインストールしようとしたら Error while configing ODBC drivers! (×) The configuration of the ODBC Microsoft Visual FoxPro Driver driver failed. というダイアログが出てきて、セットアップに失敗します。 ぐぐっても関係ありそうな文書は見つからないし、さっぱりです。 カスタムセットアップでODBC関係のドライバ全てチェック入れてインストールしてもだめでした。 助けてください…。
534 :
デフォルトの名無しさん :03/03/30 18:15
氏ね
535 :
デフォルトの名無しさん :03/03/30 22:54
すみません、質問です。 VB6のリストビューを、プログラムでスクロールさせる方法を教えてください。
>>536 アイテムを追加したとき、
ユーザが動かさなくても最新のアイテムを見られるようにするためです
>>537 ListitemオブジェクトのEnsureVisibleメソッドを使え。
で、おれの質問。
IEでLinkにカーソルを合わせたときの手のカーソルってあるじゃないですか。
あれってシステムから貰ってこれないのでしょうか?
それとも、どこからか見つけてきてカスタムアイコンにして表示させるのでしょうか?
後者で行こうとしたんですが、見つからないので困ってます。
>>538 LoadCursorでIDC_HANDとかどうでしょう
質問させてください。 現在、Drive&Dir&FileのListBoxでファイルを指定して ファイル名を変えるツールを作成しています。 それだけではファイル選択が面倒なのでドラッグ&ドロップにも対応させたいのですが FileListBoxに複数のファイルをドラッグ&ドロップする場合で行き詰まっています。 ListBoxなんかでは「List1.AddItem Data.Files(i)」でうまくいくのですが… なにか解決方法はないでしょうか?
現状では複数のファイルをドラッグ&ドロップしても 「File1.FileName = Data.Files(i)」のような処理しか思いつかないため 1つのファイルしか表示されません… 一応MSDNを見たのですがFileListBoxの項目でもピンとくるプロパティがなかったもので。
初心者質問します。 俳句を使って作成したいんですが 縦書きってできます?
hogehoge.udl(たとえば↓のような感じ)を使ってmdbにアクセスしてるんだが、 このudlファイルからmdbのフルパス(D:\がはは\foo.mdb)を取得したいんだがどうすればできるのよ? [oledb] ; Everything after this line is an OLE DB initstring Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\がはは\foo.mdb;Persist Security Info=False
>>541 Dim objFile As Variant
For Each objFile In Data.Files
[statements](ex. List1.AddItem objFile)
Next
546 :
デフォルトの名無しさん :03/03/31 12:19
何度も書き込んで申し訳ないんだけど、呼び出されたactive.exeサーバ側 から呼び出し元の変数を扱う方法を教えてくれ!!マジでおねがい(泣)
547 :
デフォルトの名無しさん :03/03/31 12:24
正直どうでもいい思うような毎日
549 :
デフォルトの名無しさん :03/03/31 12:50
ごめんなさいマジで、な毎日
┌─────────────────── │あ、どうもスイマセン、お騒がせしますた・・・ └───v─────────────── /⌒\ っ /\ /'⌒'ヽ \ っ/\ | (●.●) )/ |: | すぐ連れて逝きますんで・・・ >冊/ ./ |: / /⌒ ミミ \ 〆 / / |::|λ| | |√7ミ |::| ト、 | |:/ V_ハ | /| i | ∧|∧ и .i N /⌒ ヽ) ←>547 λヘ、| i .NV | | | V\W ( 、 ∪ || | ∪∪
>>546 詳しい話はどこよ。探せというのか。
>>547 httpやftpがどうやって送ってるか、調べてては?
552 :
デフォルトの名無しさん :03/03/31 15:14
553 :
デフォルトの名無しさん :03/03/31 15:17
本当はここに書くべき事じゃないと思うんだけど、書くべき所が思いつかな いので、書いちゃいます。みなさん2chを何を使って見てます?(ビューア) ちなみに、私はかちゅーしゃです。
554 :
デフォルトの名無しさん :03/03/31 15:32
>552 まずはMSDNみろよ
556 :
デフォルトの名無しさん :03/03/31 15:36
常駐プログラムの変わりに、スクリーンセーバーとしてクライアントの ソフトを作って、一定時間いじらないとサーバに接続して処理を行うみた いな事をやろうと思うのですが(setiもどき)、可能でしょうか?
>553 まずはMSDNみろよ
結局フォーマット→WinXP→VB6→VSSP5→WinXPSP1となりました。 お騒がせしますた
↑553じゃなくて>533です。
561 :
デフォルトの名無しさん :03/03/31 17:21
VB6(SP5)でAPI等Microsoftが提供している機能だけで JPGファイルをサイズ変換して保存ってできますか?
>561 できない
563 :
デフォルトの名無しさん :03/03/31 17:32
>562 製品にその機能を組み込むなら 最適な方法ってなんだろう? できればフリーで
>563 フリーであるよDLL。 最適かどうかは自分で判断
Dim vret As Variant vret = FileDateTime(Target) if (???) then kill Target end if タイムスタンプと現在の時刻を比較して、ファイルの削除を行いたいのですが ???の部分が分かりません。どなたかお願いします。
>565 vret = now とか?
>>566 説明不足でした。
タイムスタンプと現在の時刻を比較して、一週間以上すぎていた場合は、削除です。
再度、宜しくお願いします。
>>561 SavePictureだとBMPでしか保存できない・・・か
>>565 DateDiff でしらべれ
>>568 出来ました!
ありがとうございました。
>567 7日をあらわす値があったとおもう。 それをnowから引いた値と比較すればいいのだが・・・
571 :
デフォルトの名無しさん :03/03/31 18:24
TabletPC で Jurnalファイルの編集・保存をVB6から行いたいのですが サンプル等紹介しているサイトはあるでしょうか?
ウイルスくれ
やっぱり一人ではなかなかすすみそうにありません・・・ PictureオブジェクトをBitBltを使ってPictureコントロールに 転送する方法がわかりません。とりあえず検索してみたのですが やはりでてこないです。どうか皆様この愚民の私をお助けいただけたら 幸いです。 とりあえずコード晒しときます・・・ Dim FileN As String Dim PicFile As Picture FileN = App.Path & "\image" & "\clouds\" & "clo1.bmp" Set PicFile = LoadPicture(FileN) BitBlt frmMain.PicBack.hDC, 0, 0, 640, 320, PicFile.Handle, 0, 0, vbSrcCopy
>574 AutoRedrawは?
>>574 PictureオブジェクトはhDCないからBitBltできなかったような気がする。
PaintPicture使え。
577 :
デフォルトの名無しさん :03/03/31 21:13
>571 見たことない。 ENDNOTE(エンドノート)買ったほうが早い。 Jurnalのフォーマットは数百種類あるからVBで作るのはむずかしいかも
>>576 BitBltでは駄目ですか・・
別の選択肢を探してきます。
皆さん本当に有難うございました。
>>578 なぜにBitbltとじゃないとダメなの?
PictureオブジェクトのHandleプロパティはHBITMAPで
Bitbltで必要なhDCは直接とれんから使い方(考え方)が間違ってる。
タイヤにガソリン入れて走らねぇっていってるようなもん。
>BitBlt frmMain.PicBack.hDC, 0, 0, 640, 320, PicFile.Handle, 0, 0, vbSrcCopy
frmMain.PicBack.PaintPicture PicFile,0,0,640,320,0,0,640,320,vbSrcCopy
これで表示されない?(ScaleModeは合わせてな)
どうしてもBitBltじゃないとダメという訳の分からない理由があるなら
HBITMAPからhDCを作ってそれを使えば?(HBITMAPからhDCってのも変な感じだがw)
でなくてはPictureオブジェクトが好きってことなら
Renderメソッドで描画したら?
速度がいるならDirectX使え。今じゃBitBlt使った所で劇的に速くはならん。
ADOでリモートRDBを更新する時って RSオブジェクトにUPDATEするより SQLをEXECUTEする方が早いんですか? 業務アプリの常識として(・∀・)どうなんでしょ?
>>579 >frmMain.PicBack.PaintPicture PicFile,0,0,640,320,0,0,640,320,vbSrcCopy
>これで表示されない?(ScaleModeは合わせてな)
ちゃんと表示されました〜(´∀`)
BitBltを使えば早くなるかと思いましたけど
そんなに早くなりませんか・・・
やはりPaintPictureメソッドでがんばっていきます。
みなさん本当にありがとう・・・・゚・(ノД`)・゚・。 感謝。
絶対にいいものを作って見せますよ!
この前、会社の上司に残業時間中ゲームをやっていたら 叱られまして、、、。上司は就業時間にエロ画像ばっか 見ていてるくせに!!! VB 6 でインターネットのログを監視したいのですが 簡単に出来ますか?教えて下さい!
>>583 で、上司に「あなたのPCに監視ソフトを仕込んでエロ画像を見ていたという
証拠を掴んだんです」と言うつもりですか?
はい
そのPCに触れるんなら、ブックマークなり履歴なりキャッシュなり、 証拠がいくらでも残ってるんだから、そこを見れば?
そんな事しなくてもキャッシュ調べれば明らかだろうに。
ケコーン
妻と別れてからにしてくれ。
上司がエロ画像を見てるところを後ろからデジカメで取る。これ最強。
エロ画像を見なくても合成でなんとでもなる罠
592 :
デフォルトの名無しさん :03/04/01 10:22
テキストボックスに CreateUpDownControl でアップダウンを付けると ユーザーコントロールでのみ UDS_ARROWKEYS が効かなくなるようだ 有効にする方法を教えてくれ
>>580 Recordsetを adUseClient (←これ、重要)で開き、1件ずつ更新するのが最速。
.MoveNextする際に、DoEventsするのを忘れずに!
つーか、MSDN入れねーとloop文とか つかえねーのか…
597 :
デフォルトの名無しさん :03/04/01 23:43
すいません。教えてください。 現在VBでプログラムをつくっているのですが、 処理が終わったあと、Outlook Expressで VBで処理が終了したというメールをとばすことになりました。 MAPIControlsを使えばいいらしいのですが、使い方がどうしてもわかりません。 VBであれば他の方法でも問題ないので、知っていたらぜひお願いします。
598 :
デフォルトの名無しさん :03/04/01 23:50
VBでDOSを操作するわけですか。なるほど・・・ 調べてみますです。
>>597 CDOのMessageオブジェクトでどう?割と簡単
602 :
デフォルトの名無しさん :03/04/02 00:39
>>599 違うよ。メールの仕組みを理解しろってこと。
>>506 透過できました。初心者なので、コードの方は分かりませんでしたが、
ペイント+Officeの方でやりました。ありがとうございました。
>>597 つまりメール送れればいいんでしょ。
ベクターにメール送信DLLあったぞ。漏れはそれを使った。
>593 まじ!? ストアド作って呼び出して方が速いんじゃ・・・
┐(´-`)┌ # まぁここの住人がどうなろうとしったこっちゃないんで放置だな・・・。
>>607 ># 最近、漁獲量が少ないな・・・。
おまえがアフォだという何よりの証拠だわな (W
ADODBを使ってデータベース一覧をコンボボックスに追加するにはどうすればよいのですか? プロバイダはSQLSERVERなのですが無理でしょうか?
VBでVCで作ったDLLってどう使う?
612 :
デフォルトの名無しさん :03/04/02 14:26
>>610 ADO Ext を使えばできたような・・・うろ覚えスマソ。
>611 vbでおながいします
>610 「データベース一覧を取得する方法」をヘルプなりサンプルなりから探しましょう。
FileListBoxにドラッグ&ドロップで複数のファイルを取得して表示するには どんなプロパティ使うのがいいんでしょうか?
617 :
デフォルトの名無しさん :03/04/02 15:28
>616 dataオブジェクト
>>618 即レスありがとうございます。
今のところループさせてData.Files(i)に詰め込んでるのですが
これをFileListBoxに表示させようとするところで詰まっています。
For i = 1 To Data.Files.Count
File1.FileName = Data.Files(i)
Next i
これだとリストには1つしか表示されないので…
ListBoxのAddItemのような感じの機能ってないでしょうか?
合法で一番安く買えるBASIC・VB開発ソフトはどれですか? 兄貴のXPマシン借りるしかないんですが Ver3.0〜、95、98マシン時代のソフトでも動きますか。
623 :
デフォルトの名無しさん :03/04/02 16:47
すみません。下記のプログラムのように FOR分の途中でCで言うcontinueをしたいのですが VBで出来ません。どのようにしたらよいのでしょうか? 下の文を実行しようとすると「対応するForがありません。」 と出てコンパイルできません。 for i = 0 to 10 if i = 5 then Next i end if string = string & "aaa" Next i
>>621 「Basic」でよければベクターにでもあるんじゃない?
>>620 それもそうなのですが、
Drive&Dir&Fileの3つを使っているので…
>>623 for i = 0 to 10
if i = 5 then
Goto hoge
end if
string = string & "aaa"
hoge:
Next i
'正しいやり方あるのかなぁ
629 :
デフォルトの名無しさん :03/04/02 17:13
>>623 for i = 0 to 10
if i<>5 then
string = string & "aaa"
end if
Next i
631 :
デフォルトの名無しさん :03/04/02 17:46
>>610 「Database」ですか?テーブルやフィールド名、データ型等なら
わかりますが
>>610 master.sysdatabases.name
ぬるぽってなんですか?
634 :
デフォルトの名無しさん :03/04/02 19:17
Recordsetオブジェクトにレコードがセットされているかどうか 調べる方法はありますか? エラーを拾うしかないのでしょうか?
RecordCountは? 正確な件数は拾えないけど…
636 :
デフォルトの名無しさん :03/04/02 19:31
VB5とVB6の違いを教えて下さい。 例えばVB6にできてVB5にできないこととか?
638 :
デフォルトの名無しさん :03/04/02 19:36
>>635 お返事ありがとうございます。
Dim RS as RecordSet
で宣言しただけなのでRecordCountも拾えないです。
参照するとエラーを起こします。
SETはまったくしてない状態です。
>636 VB6のヘルプに書いてある。
640 :
デフォルトの名無しさん :03/04/02 19:48
636です 金融機関に勤めています。システムはVB5です 先日、PCにVB6を入れたら、怒られました。 ちなみに、一部上場の企業です。
>>638 Newしてるかしていないかの判断?
If RS Is Nothing Then
とか?
>>640 こらこら。怒られるのは当たり前だろう。
VB6で編集してVB5にソースを持っていくつもりですか?
643 :
デフォルトの名無しさん :03/04/02 20:00
>>638 If Not (RS Is Nothing) Then
' オブジェクトあります
If (RS.State And adStateOpen) = adStateOpen Then
' 開いています
If RS.EOF = False Or RS.BOF = False Then
' データあります
End If
End If
End If
>>641 >>643 ありがとうございます。
If RS.state = adStateOpen Then
が知りたかったです。
646 :
デフォルトの名無しさん :03/04/02 23:18
厨な質問なのですが。 VBで時間計測のプログラムを作っています。 DATE型変数では1秒以下の表示が出来ないので 自分なりに必死に表示させようとしているわけですが。 これが上手く動きません。 一分になるかならないかのとこで表示が変に・・・ なんかいい方法ないもんでしょうか。
647 :
デフォルトの名無しさん :03/04/02 23:28
>>645 厳密に言えば
If (RS.State And adStateOpen) = adStateOpen Then
の方がいいようです。(ビット演算知ってる?)
648 :
デフォルトの名無しさん :03/04/02 23:37
>>646 timeGetSystemTime API
649 :
デフォルトの名無しさん :03/04/02 23:48
>>646 逝ってよし
Private Enum BeforeOrAfter
Before
After
End Enum
Public Function ConvertMillisecondsToTime(Milliseconds As Long, Optional IncludeHours As Boolean) As String
Dim CurrentHSecs As Double, HSecs As Long, Mins As Long, Secs As Long, Hours As Double
CurrentHSecs = Int((Milliseconds / 10) + 0.5)
If IncludeHours Then
Hours = Int(CurrentHSecs / 360000)
CurrentHSecs = CurrentHSecs - (Hours * 360000)
End If
650 :
デフォルトの名無しさん :03/04/02 23:49
>>646 逝ってよし
Mins = Int(CurrentHSecs / 6000)
CurrentHSecs = CurrentHSecs - (Mins * 6000)
Secs = Int((CurrentHSecs) / 100)
CurrentHSecs = CurrentHSecs - (Secs * 100)
HSecs = CurrentHSecs
ConvertMillisecondsToTime = FixLength(Mins, 2) & ":" & FixLength(Secs, 2) & ":" & FixLength(HSecs, 2)
If IncludeHours Then
ConvertMillisecondsToTime = FixLength(Hours, 2) & ":" & ConvertMillisecondsToTime
End If
End Function
Private Function FixLength(Number As Variant, Length As Integer, Optional CharacterPosition As BeforeOrAfter = Before, Optional Character As String = "0") As String
Dim i As Integer, StrNum As String
StrNum = CStr(Number)
FixLength = StrNum
For i = Len(StrNum) To Length - 1
If CharacterPosition = Before Then
FixLength = Character & FixLength
Else
FixLength = FixLength & Character
End If
Next i
End Function
651 :
デフォルトの名無しさん :03/04/03 00:02
質問です。 VBでJavaのHashmapのような使い方が出来る関数は無いでしょうか? 膨大なhttpdのログから、どのアドレスに何件アクセスがあったのか 統計を取りたいのですが、毎回同じキーを捜してたら時間がかかると思いまして。
>>651 JavaのHashmapってどんなの?
653 :
デフォルトの名無しさん :03/04/03 00:19
うーん、VBで表すなら・・・ Type Record Key(10) as String Value(10) as String End Type Dim test as Record ってのがあったとして、データの1件目が"Sample1"って値なら、test.Key配列10件中の どれかに"Sample1"ってのがあったらそれと同じ配列のValueに"1"を入れて どのKeyにも"Sample1"ってのが無かったら、新規に"Sample1"ってキーを追加してそのValueに"1"を入れる。 これをJavaで書くとしたら、test.put("Sample1","1")ってな感じで1行。 って伝わるかな?ループ使えば可能なんだが、データ件数が膨大になったらかなり遅くなる。 JavaのHashMapだと、この処理が早い。
>>653 Dictionary オブジェクト なんていかが?
>>654 うぉ、こんなのがあるんですね。
今MSDNで確認してみましたが、まさに希望通りのものっぽいです。
これ使ってみます。ありがとうございました。
質問です。 VBS,JavaScriptには関数ポインタなるものがありますが VBSの例 <A ID=A1 href="about:blank">リンク</A> <SCRIPT language=vbscript> Sub window_onload Set A1.onclick=GetRef("A1_onclick2") End Sub Sub A1_onclick2 '独自イベントハンドラ window.event.returnvalue=false 'クリック操作の無効化 End Sub Sub A1_onclick '本来のイベントハンドラ End Sub </script> VB6にて、このGetRefに相当するテクはあるでしょうか? この例のようにオブジェクト名が定義されていないで、動的に作成されたオブジェクトのイベント処理をしたい場合です VBS、JavaScriptではできますが・・・ VBSの例:ドキュメント中の全てのAタグクリックを無効にする Dim ObjTag,ObjCollection Set ObjCollection=window.document.all.tags("a") 'Aタグコレクション For Each ObjTag in ObjCollection Set ObjTag.onclick=GetRef("CancelA") Next Function CancelA CancelA=false End Function これと同等の事をVB6にて。。。
WithEventだったかな
658 :
デフォルトの名無しさん :03/04/03 09:40
>>654 VBにHashがねーとおもってクラス作ったおれはバカだった,,
>>619 ありがとうございます。
・・ということは、日本のサイトではないんですね・・。
660 :
デフォルトの名無しさん :03/04/03 10:37
CollectionDefやTableDefについてるDefって何の略ですか?
デブと読め
662 :
デフォルトの名無しさん :03/04/03 10:52
質問です。 object.DataSource = RS という事でData report や Datagrid を利用していますが、 ここでRecordSetではなく変数(構造体の配列)などは利用できないのでしょうか? テーブルから取得した内容を変数に保存して、その変数にレコードを随時追加し、 追加終了後、その変数をData reportなどのDataSourceとして利用したいのですが。 (編集用のテーブルを作ると遅くなるので) みなさんどのようにしているのか知りたいです。
やった事ないが、MSDNには DataSourceプロパティ ADO Recordset オブジェクトなどのデータ ソースを指定するオブジェクト参照、 およびデータ ソースとして定義されたクラスまたはユーザー コントロールを 指定します とあるから、自作クラスうまく使えば出来そう。 でも余分な複雑さを生みそうな気がするからやめたほうが・・・ 編集用テーブルのDBをローカルに持つ等して対処する方がスマートっぽい。
質問します。 チェックボックスの枠を大きくしたいんです。 サイズ変更しても枠の大きさだけは変わりません。 ???
>>665 システム既定のサイズだからです。
(どっかをいじればWindows全体に影響があるけど変更できたキがする)
どうしてもそこだけ変更したいなら自分で描画しちゃいましょう。
667 :
デフォルトの名無しさん :03/04/03 16:42
>>663 逆に、Recordsetをうまく使えば662の行ってることはできるよ。RSはデータベース
接続専用のクラスじゃないし。
668 :
デフォルトの名無しさん :03/04/03 18:20
ある文字列の体裁を整えるために、足りない桁数はスペースで埋めたいと思っています。 しかし、どうもうまくいかないので、お知恵を拝借させてください。 例 abc - 41 - hoge abcd - 55555 - wow a - 100 - none 上記のデータそれぞれの桁を5桁ずつにして、それぞれのデータが縦に揃えたいのです。
Format$
Format$("abc", Space(5)) & "-" & _ Format$("41", Space(5)) & "-" & _ Format$("hoge", Space(5)) ありがとうございます。 このようにしてみたのですが、やはりうまくいきません。 Space()を使ってスペースで埋められるかと思いましたがだめでした。 どうしたらよいでしょうか?
671 :
デフォルトの名無しさん :03/04/03 18:59
>>670 Right$(space(5) & "abc", 5) & "-" & _
Right$(space(5) & "41", 5) & "-" & _
Right$(space(5) & "hoge", 5)
でいけるけど、桁あふれで情報が焼失する。
まあ、ヒントにでもしてけれ。
どのモジュールからでも使えるパブリック変数は標準モジュールに Public i as integerと書きますが、 どのモジュールからでも使えるオブジェクトは標準モジュールに Public Set fs = CreateObject("Scripting.FileSystemObject") と書けばいいのでしょうか?
674 :
デフォルトの名無しさん :03/04/03 21:23
やる気が無く、結果さえ分かればいいっていう卑怯者なんだろ。
>>674-677 Public Set fs = CreateObject("Scripting.FileSystemObject")
これはエラーがでました。
パブリックのオブジェクトの作成方法はあると思うのですが・・・
>>678 エラーが出てエラーメッセージを書かない。素人丸出しだな。
>>679 エラーメッセージに関係なく答えを教えてくれるとうれしいです。
682 :
デフォルトの名無しさん :03/04/03 21:54
>>673 ,
>>678 それぐらいせめて一回で書けよ。自分じゃ分かってるつもりでも、内容聞くほうには
何が言いたいのか伝わらない。ちゃんと詳細をまとめて書け。
>>679 のように指摘されてあたりまえ。
>>682 だって、これはエラーメッセージの問題じゃないと思うんです。
Private Sub Command1_Click()
Set fs=〜
End Sub
通常はこのようにプライベートなサブプロシージャでオブジェクトを作成するけど、
これだとEnd Subのところでオブジェクトが自動的にSet fs=Nothingにされちゃうので、
だからパブリックなfsオブジェクトを作れたら
いろいろなプロシージャを実行するたびにいちいちfsを作る必要がなくなって楽だなあと。
>>683 えーい、うっとーしー。わたしゃみんなのように優しくないので答えのみ。
Public fs As Object
でいいだろうが。
SetはLoad時でもやっとれぃ
>>684 ここからは自力でAs Objectというのを調べてみます。
ありがとうございます。
ここは上級者スレです。初心者おことわり。 1はスレタイトルをつけ間違えました。
>>683 別に「エラーコード」に限った話じゃなくて、聞き方の問題だと思う。
少なくともレスしたみんなが感じてること。
688 :
デフォルトの名無しさん :03/04/03 22:05
>>673 ヒント:VB.NETだとそれで動くはず(w,マジレス
俺って優しいな。
>>685 いや、
xo.ASshole = True
の後にSetすればOKだと思うぞ。
VBの初心者は歓迎だし、質問や日本語の初心者に質問方法を 教えてくれるという親切なスレですが、何か?
>だって、これはエラーメッセージの問題じゃないと思うんです。 そりゃそうだ。あんたが問題なんだよ。他のPGと取り替えてみ。
694 :
デフォルトの名無しさん :03/04/03 22:11
>>690 初心者とそれ未満のバカは明確に区別、差別される。そういうことだ。
>>673 質問以前。基本書を読み直せ。
そんな宣言がVBで通る訳ないだろ。
>>693-694 なんにんかの人はわたしのつたない文だけで何がやりたいか理解してくれたようでやはりすごいです。
>>696 まだプログラムの習慣みたいなのがわかってないのでもっと本とか読みます。
もういいです。荒らします。
すいません偽者があらわれました。
いいから、VB入門書の「宣言文」の項を読み直せ!
印刷時 mmの値をピクセルに変換する方法を教えてください。。
つまりは プリンタによって変わるので プログラムで変換することは不可能ということでしょうか…?
>>705 何ピクセル動かすと何ミリ書かれるか、ということ?
ScaleModeでVbMillimetersつかっちゃまずいのかな?
>>684 > SetはLoad時でもやっとれぃ
Property Getを使えば初めて使うとき作成ってのもできるけどね。
参照設定をすればNewが使えるけど。
>>706 さん
会社内で使ってる関数なんですが、ピクセルで渡してやらないといけない引数があるんです。
とりあえず呼び出し元のほうはミリメートルで統一しておきたいので。
TwipPerPixelsXとかいうあたりがカギらしいんですがよくわからなくて…
>>708 Dim pX, pY, mX, mY
Printer.ScaleMode = vbPixels
pX = Printer.ScaleWidth
pY = Printer.ScaleHeight
Printer.ScaleMode = vbMillimeters
mX = Printer.ScaleWidth
mY = Printer.ScaleHeight
'あとは計算で出るのでは?正しく出るかは検証しないとだめだけど。
フォームを2個使って、Form1からForm2を呼び出して処理が終わったらForm1に返して処理を続けるというのを作りたいんですが、Form1に Load Form2 Form2.Show Form1.Visible = False MsgBox "終わりました" Exit Sub 'エラー処理 Error: MsgBox "エラーです" と書いたんですが、実行するとForm2で"Form1.Visible = True”としてから返ってくると”終わりました”と表示されずに、”エラーです”とエラー処理が表示されます。 この場合、Form1から2に移った後、Form1の処理を停めておいてForm2から返ってきた後に"終わりました"と表示するにはどうしたらいいのでしょうか? それとも、そもそもそういう事はやってはいけない事なんでしょうか? ぜひぜひよろしくお願いしますm(__)m
Form2.Show vbModal
>>703 Printer.ScaleX , Printer.ScaleY
713 :
デフォルトの名無しさん :03/04/04 09:09
>>673 そもそも変数やオブジェクトをPublicでやるのが大きな間違い
>>713 状況によってはそうとも言えない・・・
673のレベルでは必要ないと思うけど。
715 :
デフォルトの名無しさん :03/04/04 09:15
>>684 おれはモジュール(フォーム)レベルのオブジェクトを作るのはForm_Loadより
Form_Initializeつかうんだけど、変かな。_Initializeの方がForm自体をオブ
ジェクトとして捉えるとしっくりくるんで。
717 :
bloom :03/04/04 09:46
>>715 あなたの言っていることは正しいと思うけれど、VB使いはバ(略)が多いから、
理解できないと思うよ。
719 :
デフォルトの名無しさん :03/04/04 10:09
質問です。 DataReportのコードの部分でDataSoruceの内容(値)を取得するには どうしたらよいのでしょう?
VBで四捨五入のロジックで、これが最適、ってのある? 俺は……。Format使ってる。
722 :
デフォルトの名無しさん :03/04/04 11:03
>715 賛同者なのだが、.netではデフォルトではInitializeが無いと聞く。 ホントなのか? >713-714 673が言っているオブジェクトの用途が見えないなぁ。 インスタンスはフォーム内だけでしか存在しないオブジェクトなのか、 どこからでも1つのインスタンスを参照できるオブジェクトなのか。 前者ならPublic宣言でNewしても良いだろうけど(Sub Main()でのクリエイトも)、 後者なら、フォーム内でPrivate宣言すべきだし。
723 :
デフォルトの名無しさん :03/04/04 11:04
>721 WinXPで問題が生じます<Format
>>723-725 それはバグではなく(MSの言うところの)「仕様変更」だ。
しかし、あまりに不評だったため?SP-1で元の仕様に戻った。
Format関数のより大きな問題は、数値演算より実行速度がはるかに遅いことだ。
大量のデータの処理や回数の多い反復処理(ループなど)には使わない方がよい。
そもそもFormatは表示形式を指定する関数なので、数値の丸め処理に使用するのは、 本来の趣旨から外れる。
>>728 そもそも浮動小数点数丸めるのって勇気いるしな。
IsNumericでTrueが返って来る全ての数値(符号有り、小数点有り、.5とか、5.とかも有り)を、 任意の桁で四捨五入したい、ってなると、普通に大変なんだけど。 ちょろり作るつもりで始めたら、なんかどっぷりはまったよ。
732 :
デフォルトの名無しさん :03/04/04 12:13
>727 釣られようぞ。
って、えさがついてないんだが……。
734 :
デフォルトの名無しさん :03/04/04 13:29
>>731 IsNumeric() は d や e を含む表現を許容してしまう。
>>731 >>734 IsNumeric関数は引数が「数値に変換可能なとき」Trueを返すとドキュメントに
書いてある。
だから、指数表現や16進文字列もTrueになる。
>>730 って、選択の余地なしですか、そうですか。
今、VBないからVBSなんだけど、IsNumeric("2F")はFalseだけど……?
ごめ、Call MsgBox(IsNumeric("&H2A")) はTrueだった。
739 :
デフォルトの名無しさん :03/04/04 14:03
すみません。DataReportでRptImageを使ってコードの方で画像の差し替え を行いたいのですが以下のコードを書くとエラーが起きます。 report1.Sections("section1").Controls("Image1").Picture = LoadPicture(imgPath) 画像の差し替えは可能なのでしょうか?
つくった。おけ? Option Explicit Dim strInput strInput = InputBox("数値を入れてほしい") If MyIsNumeric(strInput) Then MsgBox "OK" Else MsgBox "NO" End If Function MyIsNumeric(ByVal strVal) Dim strChars Dim intIndex MyIsNumeric = False If Not IsNumeric(strVal) Then MsgBox "IsNumeric(""" & strVal & """) = " & IsNumeric(strVal) Exit Function End If strChars = "1,2,3,4,5,6,7,8,9,0,-,+,." For intIndex = 1 To Len(strVal) If InStr(strChars, Mid(strVal, intIndex, 1)) <= 0 Then MsgBox "数値に使用できない文字:" & Mid(strVal, intIndex, 1) Exit Function End If Next MyIsNumeric = True End Function
741 :
デフォルトの名無しさん :03/04/04 14:23
CSVファイルを一気にmdbファイルへ登録する方法はないですよね? 一行ずつ読んで、書き込むしかないのでしょうか。 なにか便利な方法があったらでいいのでお願いします。
>741 そのCSVへのリンクテーブルを作れば、あとは通常のテーブル として扱えるのでSQL一発でおけ。 エラー処理とかやりにくくなるのがタマの傷。
>>741 【追加課題】
Oracel、SQL Server の場合の処理方法も調べて結果報告すること。
744 :
デフォルトの名無しさん :03/04/04 15:00
app.path が「Program Files」などのロングファイルネームではなく、 「Progra~1」といった短いファイル名で返されてしまいます。 ロングファイル名で返してほしいのですが、そういうことはできませんか。
>>744 GetLongPathName(98以降)
FindFirstFileでごにょごにょ
>>744 APIを使わない方法としてはDir関数を使って1階層ずつ展開する方法あり。
ただし、\\ComputerName\.... で始まるUNCパスでエラーになった記憶がある。
気の済むまで入念に動作テストしてくれ。
>>746 FSOを使う方法もありそうだが・・・?
(生暖かいフォローきぼんぬ)
>>745-746 さんありがとうございます。
ちょっと私の言葉が足りなくて勘違いさせてしまったかもしれません。
App.Pathで取得したデータは、他のPCだとロングファイル名で帰ってきています。
おそらく設定か何かがあるのではないかと思ってカキコしました。
何とか解決できないでしょうか
さらに調べてみたところ、特定のプログラムだけがショートファイル名を 吐き出すことがわかりました。 設定があるのでしょうか
750 :
デフォルトの名無しさん :03/04/04 16:02
751 :
デフォルトの名無しさん :03/04/04 19:16
VBとオブジェクト指向系言語の違いが分かりません。 というかVBはもしかしてオブジェクト指向なのですか?
>>751 一応中途半端なオブジェクト指向プログラミングはできます。
VBでも出来る程度のオブジェクト指向すら出来ないのが
>>752 らしいですよ。
>>715 この場合はInitializeでもいいと思うけど、
なんでもInitializeっての良くないこともあるよ。
Formは言うまでもなくユーザインタフェース。
ユーザインタフェースにかかわる処理はLoadに置くべき。
たとえば、フォームのCaptionなんかを変更する処理はLoadに書く。
もしInitializeに書いてしまうとInitialize時にフォームがロードされてしまう。
フォームおよびフォーム上のコントロールをさわった時点でフォームはロードされるからね。
こうなると、ロードはしないけどインスタンスだけを作成するという状態が作れなくなるし、
タイマーなんかも発動してしまう。意図的にこういう仕様にしたいなら別だけど。
基本はこうだけど実際は使い方にあわせて柔軟に変えるべき。
たとえばインスタンスは生成したままでロード→アンロード→ロードを
したときにどういう動きをしてほしいかを考えてみる。
(FileSystemObjectに関してはプロジェクト内で一つで十分だと思うから、
生存期間がプロジェクトが有効な限りなら標準モジュールでNew FileSystemObject、
もしくはProperty Getでやってる。)
>>718 もう少し突っ込んだこと書けないとVB使いよりバ(略)だと思われちゃうよ。
まぁ正しいと思うと言っている時点で(略)カ
遅レスですいません。
>>711 さん
お答え、ありがとうございますm(__)m
で、お恥ずかしい結果なんですが、
vbModal書いても"エラーです"が表示され、ひょっとしてとエラー処理の行を削って実行してみると、
Load Form2の行でデバッガが動きました。
Form2の処理書く前に試そうと、Form2のLoadの中でいきなりUnload Meしている為でした(^^ゞ
てっきりForm1の処理が勝手に進んでいるせいだと勘違いして悩んでました。
で、Form1にUnload Form2と書き解決しました。
vbModal教えて頂いたおかげでやっとアホやってた事に気付きました。
本当にありがとうございましたm(__)m
>>751 指向ってのは考え方。言語で指向が決まるわけじゃないので
やろうと思えばアセンブラやC言語でもオブジェクト指向はできる。
ただJava等オブジェクト指向という考え方を取り入れて作られた言語というのはある。
こういう言語はオブジェクト指向がしやすいような言語仕様になっている。
VBはオブジェクト指向に全面に取り入れたというわけではない。
どちらかといえばコンポーネント指向というべき。
しかし、オブジェクト指向がしやすい言語仕様がないわけじゃない。
アセンブラやC言語に比べればかなりオブジェクト指向がしやすい。
要するに対応度の問題。オブジェクト指向プログラミングはVBも含めて
どんな言語でもできるが、対応度が低いのでオブジェクト指向言語ではない。
ただ、勘違いしてもらっちゃ困るが、VBでオブジェクト指向プログラミングは
十分実用的なレベルでできる。研究レベルだと不足しているが。
>>756 >どちらかといえばコンポーネント指向というべき。
じゃあコンポーネント指向を謳ってるC#には継承とか多態とかないってことですか?
どこが実用的だ。
多態はVB6でもできるんだが・・・。 別にある言語がオブジェクト指向、コンポーネント指向両方できても問題ないだろ。 プログラマなら、マーケッティング上の言葉に惑わされず、 なにができるのかで考えてほしいよね。
760 :
デフォルトの名無しさん :03/04/04 21:33
あの〜スミマセン!! MassageBoxの出し方教えて下さい。 ガッコウの兄貴に指示されました。 コニチワ、マッサージボックスで出せなさいと。 どうすればいい?
762 :
デフォルトの名無しさん :03/04/04 21:35
MsgBox "コニチワ"
763 :
デフォルトの名無しさん :03/04/04 21:38
初心者です。 VBで、一定時間ごとに、画面をキャプチャするなんていうアプリを作れるのでしょうか?
>764 作れる。ではどうやって? なんて聞かないでくれよ? 2日くらいは検索して探してね。
766 :
デフォルトの名無しさん :03/04/04 21:58
VB.netでつくったプログラムは.netフレームワークの入ったパソコンでしか動かないというのは本当ですか? VB.netで、ランタイムやフレームワークなしでもふつうにどのウインドウズでも動くソフトを開発することはできますか?
>>766 VBに限らず、.net上で動くC++、Delphi、COBOL、J#は
.netがなければ動きません。
反対に言えば.netがあればどのOSでも動きます。
>>765 なるべく自分の力で作ってみたいと思ったので限界まで努力します。
だから、Giveupまで基本的にはどうやって?と聞かないつもりです。
VB.netでやろうと思ってるのですが、基礎を固めるためのお勧めHPとかを教えていただけないでしょうか。
>>768 ならば、VB.netのスレで聞く事だ。
770 :
デフォルトの名無しさん :03/04/04 22:38
.netは軽いですか? 低スペックなパソコンでもインストールできますか? ていうか、職場のみんなに仕事で使えるアプリを作って配布したいだけなんです。 .net自体があまりに重かったらだれも使ってくれないですよね。
>>770 > .netは軽いですか?
軽いです。
>>770 > .net自体があまりに重かったらだれも使ってくれないですよね。
使われるかどうかはアプリ次第です。
773 :
デフォルトの名無しさん :03/04/05 05:31
かなり初歩的なのですが LISTVIEWにて水平スクロールするように設定する方法ってありますか? ありそうなんだけど見つからない・・・
>>771-772 いくら何でも惨い嘘だ。目的が、
> 職場のみんなに仕事で使えるアプリを作って配布したいだけなんです。
なんだから、.NET はダメだろ。
フォームの拡大縮小に合わせてListViewの大きさを変えたいと思い フォームリサイズイベントに ListView1.Height = Form1.ScaleHeight ListView1.Width = Form1.ScaleWidth と、入力するとスクロールバーが表示されません。 これをしなければ大丈夫なのですが・・・ これって仕様ですか?
あ・・・今気づいたのですが、ただ単に隠れていただけでした ListView1.Height = Form1.ScaleHeight -100 ListView1.Width = Form1.ScaleWidth -100 とすれば見れました・・・・・・TT
>>774 頭おかしいんじゃない? 開発言語で使うかどうか決める奴なんていないよ。
>>777 これがVB厨って生き物ですか.....
>>778 頭がおかしい人には何も言っても話になりませんな。
どうせまともにレスする気無いでしょ。
>>780 なに? まともにレスする気あるの? じゃあ、まともにレスしてよ。
>>781 正直、VB厨に説明するのはめんどくさい。
普通の人相手なら、配布しづらいの一言で済む話。
自己レスです。 report1.Sections("section1").Controls("Image1").Picture = LoadPicture(imgPath) は出来ない見たいです。 DataReportって中途半端に出来てて、Microsoftなんでこんなの作ったんだろう って改めて思いました。
784 :
デフォルトの名無しさん :03/04/05 11:10
Win98のAPIだけで動くプログラムは、VB.NETでは作れないとなると、どの開発ツールで作るのがおすすめ? 厨なのでできるだけ初心者向きなのが良いです。
788 :
デフォルトの名無しさん :03/04/05 16:04
VB.NETの勉強の仕方について質問させてください。 VB.NETの本を2冊程買ってどんなコントロールがあるか知り、文法をいちおう押さえた段階です。 ですがここでつまってしまい、特にソフトを作れるわけでもありません。 ここからどう勉強すればいいでしょうか? 教えて下さい。
789 :
デフォルトの名無しさん :03/04/05 16:33
790 :
デフォルトの名無しさん :03/04/05 17:28
ListViewをlvwReportで表みたいに使っています。 これの強調したい行の背景色を変えたいのですが、どこのプロパティを弄ったらいいですか。 文字の色なら Listview.ListItems(index).ForeColor = ほにゃらら で出来たんですが。
>>782 ふっ。たかだか数十Mのライブラリ。ソフトウェア系の会社ならCDの一つぐらいあるだろうし、
中級クラスの回線があればダウンロードもあっという間だろうし、すでにはいっているかもしれんだろ。
社内配布用ならライブラリごとアプリにつけてCDで渡せばいいしLANでも十分問題ない。
自分の作ったソフトが使われない原因をライブラリのせいにするなんて笑止千万。
なにかを動かすのに他のライブラリをインストールするのが嫌ならLinuxなんて使ってられないな。
物事にはすべて利点と欠点がある。そのバランスで決めるもんだ。
欠点だけを見てやめるなんて素人もいいとこ。
事故が怖いから原子力発電所を無くしましょうといっているのと同じようなもの。
欠点があるのは当然なんだから、最終的に使うかどうかはどれだけの利点が
あるかで決まるってのが分からない?
まともに話す気があるのならVB厨と言った。他人をけなしているような言葉を
使わないでめんどくさいなどといわずにちゃんと自分の考えを説明することだ。
所詮、お前はVBとMSが嫌いなだけなんだよ。技術力など無い。ただのガキ。
>>792 ありがd。
とりあえずそのスレのリンクを読みあさってみます。
VBやるならPerlやったほうがまし
795 :
766=770=784 :03/04/05 19:46
>>785-787 タダだと難しいイメージがありますね。
初心者にサービス満点なツールなら有料でもいいです。
でも予算は一ヶ月分の小遣い3万円までで抑えたいとこですね。
VBなら初心者御用達って感じだったので最新の.netを検討してみた次第。
VBでも旧バージョンならWin98のAPIのみで動くソフト作れます?
でもせっかく教えていただいたのでHSPやBorlandC++コンパイラやPerlも試してみます。
レスありがとうございました。
>>795 > VBでも旧バージョンならWin98のAPIのみで動くソフト作れます?
少なくともVBのランタイムライブラリが必用になるけど。そういう意味じゃない?
797 :
デフォルトの名無しさん :03/04/05 22:24
例えばラベルがオブジェクト配列になっていて indexが 0〜nまであったとします。 ここでindexが1〜nまでのラベルをunloadしたいのですが どんな方法がありますか? VB6(SP5)です。
コマンドボタンクリックで、外付けのUSB CDドライブを 「取り外しても安全な状態にする」ことは出来ますか? 出来そうなら手法を教えて下さい。 VBでは無理っすか?
このスレにたびたび出てくるデータレポートはVB6.0の機能の一部なのでしょうか? 一回も使ったことないのですが、話題に出るので興味があります。
>>800 > VB6.0の機能の一部なのでしょうか?
その通り。
ただし、製品添付の「おまけ」程度の位置付けなので、機能は貧弱。
学校の課題ならともかく、売りモノを作るにはどうかと思う。
802 :
デフォルトの名無しさん :03/04/06 11:45
>>797 (註)デザイン時に作ったControlはUnloadできないはず
動的にLoadしたControlだけUnloadできる
>>801 ありがとうございます。
身近にあったとはうれしいです。
805 :
デフォルトの名無しさん :03/04/07 11:33
リストボックスに登録されているデータの 入れ替えをしたいのですがどうしたらいでしょうか。 例えば上から10番目と11番目のデータを入れ替えたりしたいです。
>>805 Dim str As String
str = List1.List(9)
List1.List(9) = List1.List(10)
List1.List(10) = str
807 :
デフォルトの名無しさん :03/04/07 11:39
FileListBoxに表示するときに、拡張子って非表示にできますか? いい方法があったら教えてください。 お願いします。 m(__)m
>>807 拡張子が表示されなかったら同じ名前がでてくるぞ。
たぶん釣り
>>810 マジ!?
あああ!父さんにも釣られたことないのに!
812 :
デフォルトの名無しさん :03/04/07 11:53
>>807 >>809 フォルダの中のテキストの拡張子だけを表示させたいだけなんです。
file1.pattern = "*.txt"
で、".txt"だけ取りたいんです。。。
>>807 では
>拡張子って非表示にできますか
>>812 では
>拡張子だけを表示させたいだけ
どっちやねん。
>>813 txtだけに絞り込んで拡張子非表示で表示させたいんでしょ?
>>812 ListBoxで作るしかないんじゃない? もしかしたらサブクラス化でも
できるかもしれないけど。
>>813 は言語理解力に異常が見られますので気をつけてください。
816 :
デフォルトの名無しさん :03/04/07 12:06
>>813 間違えました。
テキストのファイルだけを表示させたいので、
そのテキストのファイル名だけ表示させたくて、
拡張子をなくしたいんです。
言ってる事がわかんなかったらごめんなさい。
>815 /(・。・) 了解!
>>806 strは予約語(関数名)だから、識別子には使えないはずだが?
# 動作確認せずに書いたのが見え見え(w
>>819 はぁ。釣りもここまで来ると情けない。
予約語と関数名は別物。動かしてみれば分かるのだが、
>>805 が礼の一つも返さないことから自分でネタふって自己レスしてるのだろう。
やはり釣りか…。
お釣りは要りません、取っとい?% (qm2ュださい。
文字化けは要りません、死んでください。
824 :
デフォルトの名無しさん :03/04/07 13:05
以前に Left(strHoge & Space(40), 40) というやり方で桁数を そろえる方法を教わったのですが、strHoge に全角文字があると 桁がずれてしまいます。これはなんとかならないでしょうか?
こんな顔かい? Hoge = StrConv(LeftB(StrConv(AString & Space(Width), vbFromUnicode), Width), vbUnicode)
多分こう Hoge = "ぬるぽ"
828 :
デフォルトの名無しさん :03/04/07 13:39
リストボックスからデータを削除する方法を教えてください。 現在は以下のようにしていますが、これだと空の行が残ってしまうのです。 よろしくお願いいたします。 For i = .ListIndex To .ListCount - 1 .List(i) = .List(i + 1) Next i
こんなことしなくてもRemoveItemで消せるんですね。失礼しました。
830 :
デフォルトの名無しさん :03/04/07 14:33
>>818 >>814 ありがとう♪
FileListBoxからListBoxに拡張子無しで移す事にしました。
参考になりました、ありがとうございます^^
Dim i As Integer
Dim strlen as Integer
File1.pattern = "*.txt"
For i = 0 To File1.ListCount - 1
strlen = Len(File1.List(i)) - 4
List1.AddItem Left(File1.List(i),strlen)
Next
っていう感じにちなみになりました。
本当にありがとうございました♪
832 :
デフォルトの名無しさん :03/04/08 13:36
null
間違ったと思ったら すぐにクリーンクリーンインストーる。 だな!
仕事で初めてVB6やらされてる、へたれPGです。 フォームに Controls.add で動的にコントロールを追加したあと、 それを削除することは出来るのでしょうか? フォームを閉じるまで削除できないのでしょうか。
unload
>>835 ありがとうございます。ああ、確かに、Unloadでコントロールが削除できるようなこと書いてありました。
フォーム専用かと思い込んでいました。
でも、以下のように書いたら
"このオブジェクトは、ロードまたはアンロードすることはできません。"361
です。なにか、大きく間違っていますでしょうか。
Private Sub Command1_Click()
Dim tmpLabel As Label
Set tmpLabel = Me.Controls.Add("VB.Label", "tmpLabelName")
tmpLabel.Visible = True
tmpLabel.Caption = "HOGE"
Err
Unload tmpLabel
End Sub
837 :
デフォルトの名無しさん :03/04/08 16:17
FormにFileListBoxがあります。このFormにファイルをD&Dして、FileListBoxにD&Dしたファイルを選択した状態にしたいのですが、どうすればできるのでしょうか? D&Dしたファイル名、パスまでは何とか取得できたのですが・・・。
↑あ、WinXP+VB6SP5の環境でやってます。
nullポ
>>836 コントロール配列の先頭以外の要素しかUnloadできないっぽいので
あきらめました
>>836 >>840 Me.Controls.Remove tmpLabel
Add⇔Removeでやってみたら成功
>>842 わー感謝
Removeかぁ・・・
あー、検索したらAddのドキュメントの最後に書いてあっる・・・。
844 :
デフォルトの名無しさん :03/04/08 18:08
>>842 でも、ごちゃごちゃ、描画中だと、なぜか
"現在アンロードできません。"365
あー、VBって難しいなぁ・・・。
847 :
デフォルトの名無しさん :03/04/08 23:38
listview同士でデータをやりとりする場合 サブアイテムも含めて送る簡単な方法ないですか? 選択されている項目をコピーする j = 1 For i = 1 To ListViewDL.ListItems.Count If ListViewDL.ListItems(i).Selected Then Form3.ListViewBuff.ListItems.Add() = ListViewDL.ListItems(i) Form3.ListViewBuff.ListItems(j).SubItems(1) = ListViewDL.ListItems(i).SubItems(1) Form3.ListViewBuff.ListItems(j).SubItems(2) = ListViewDL.ListItems(i).SubItems(2) ・ ・ ・ ・ End If Next
教えて君スマソ。 VB6.0でCRYSTL32.OCXの登録が出来ません (HRESULT - 2147023739)と出る場合を教えてください。 ちなみに、VB4.0で作ったモジュールを今まで動かして いたPCでVB6.0で作ったモジュールを動かそうとしています…。
>>848 あなたは どのような事をして 登録できないと 判断したのでしょうか
>>847 いや別にそれらを関数化しとけば無問題だろ。
処理速度が気になるっていう話なら別だけど。
851 :
デフォルトの名無しさん :03/04/09 10:12
>>845 とっつきやすいけど、はまると何も出来なくなるね。
852 :
デフォルトの名無しさん :03/04/09 10:29
よろしくです。 VBA(Excel2000)で、ひとつのブックの特定の列のセルのデータを連続して読み、 同一のデータごとに別のブックへと分割し、同じ場所へ保存する処理を行っています。 別のルーチンでいくつかのブックに分割が終わったあと、Workbooks.Countで生成されたブック数を調べ、 For 〜 Next文でループさせて保存させています。 保存するファイル名は、分割の基準となるセルの値をそのままつけています。 ですが、保存先に同一のファイル名があると、保存時にエラーになります(あたりまえですが)。 で、その場合は "セルの値(2)"とつけたいのですが、 例えば"セルの値(2)"がある場合は"セルの値(3)"、"セルの値(3)"がある場合は"セルの値(4)"、 というふうにファイル名をつけて保存するにはどうしたらいいのでしょうか。 エラートラップを使うのかな?(エラーナンバーで1024を吐いていたと思う) とも思ったのですが、エラーオブジェクトの使い方もよく分かっていないので分かりません。 御教授お願いします。 コード(簡単にしてあります) bookname as String bookindex As Integer boookindex=Workbooks.Count For i =2 to bookindex 'ブックの特定のセルを読み、保存するファイル名を取得する bookname=get_bookname(i) Workbooks(i).SaveAs Filename:="C:\test\" & bookname, FileFormat:=xlExcel9795 Debug.Print "C:\test\" & bookname & "に保存" Next i
変数の綴り間違ってる上に、インデントも効いてない・・・・ スマソ。
dirでヘルプ見れ。
855 :
デフォルトの名無しさん :03/04/09 11:26
>>850 レスサンクス、そうですか。見た目がブサイクに思えたので
もっと簡略化できると思ってました
>>851 C#も少しやってるのですが、簡単なことするなら
VBの方が圧倒的にわかりやすくて、作業も早いですね
でも、より複雑なことをしようとしたり、ファイル操作などやろうと
するもんならいきなり壁にぶち当たります
先々考えるとやっぱC言語の方がよさげなきがします
Win98SE + Office2000 の環境にて、Excelを使用して帳票出力を 行いたいのですが、 1.Rangeプロパティを参照しようとするところで、オートメーションエラーとなる。 2.そもそも、Excel.Applicationオブジェクトが生成できているか調べようとして、ブレーク入れて、ウォッチリストで見ようとしても、マウスカーソルをExcel.ApplicationオブジェクトにあわせただけでVBが落ちる。 という現象にあい、どう対処してよいかわかりません。試したことは、 以下の組み合わせで同様のプログラムを試しました。 Win98SE + Office97 × Win98SE + Ofiice2000 SR-1 × Win98SE + Ofiice2000 SP2 × Win98SE + Ofiice2000 SP3 × Win98SE + OfficeXP ○ 上手くいったのは、OfficeXPとの組み合わせだけでした。 また、Excel.Applicationオブジェクトの作成方法として、 1.参照設定した上でNew Excel.Application 2.参照設定した上で、CreateObject 3.参照設定せずにCreateObject と試してみましたが、いずれも同じ現象となり、オートメーションエラー となってしまいます。 また、Win98SE にDCOM98をいれても現象は変わりませんでした。 どなたか、アドバイスをいただけないでしょうか、よろしくお願いします。 以下が、いろんな環境で試すときに使用したコードです。 Dim obj_Excel As Excel.Application Dim obj_Book As Excel.Workbook Set obj_Excel = New Excel.Application Set obj_Book = obj_Excel.Workbooks.Open( "C:\hoge\Sample.xls") obj_Book.ActiveSheet.Range("A1").Select
>>855 まぁ、問題になるほどひどい状況なんてそうそうあるわけじゃないし、
部分的にC言語を使うってこともできるから別に良いんじゃないかい?
あとリストビューはSubItemsを羅列するのがブサイクって言ってるのかい?
ループ使えば良いよ。こういうアルゴリズム的なことは言語が変わっても同じだから。
それは
859 :
デフォルトの名無しさん :03/04/09 11:59
ユーザーコントロールの位置とサイズを 16383 ピクセルより大きくするには?
860 :
デフォルトの名無しさん :03/04/09 12:00
何が出来るとVB上級者とみなされますか? 出来る人か出来ない人かの判断はどうしていますか?
VBでオブジェクト指向「指向」プログラミング。
しこーしこーワラタ。 オブジェクト指向ではない。(w
>>860 VB以外のツールでも開発ができる人。
そういう人ならVBでもスマートなプロミングができる。
>>844 すんません、sendmessageでやってみたのですが、listindexが必ず0になってしまうのですが・・・。
これって、sendmmessageでD&Dしたファイルのindexをとって、filelistbox内にそのindexを選択させるという方法ですよね?
もしかしてまったく的外れですか?
>>862 オブジェクト指向ではないのは言語のほうだね。
プログラミング自体はどんな言語でも出来る。
ちょっと修正 ×プログラミング自体はどんな言語でも出来る。 ○オブジェクト指向プログラミング自体はどんな言語でも出来る。
868 :
デフォルトの名無しさん :03/04/09 13:21
>>860 与えられた要件に対して、「自分の実力で可能な実装」ではなく、
「要件に対する最適な実装」ができる人。
(結果として、VBでは不向きだから、VBを選択しない、という選択肢もアリ)
>>868 テンプレートを元にプロトタイプを起こすときのコピペはありでは?
(継承の手段としてのコピペが常態化しているようだと問題だが・・・)
871 :
デフォルトの名無しさん :03/04/09 13:46
API使ったテキストボックスから行指定して文字列を取得する関数。 これであってる? Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Const EM_GETLINE = &HC4 Private Const EM_LINEINDEX = &HBB Private Const EM_LINELENGTH = &HC1 'VBでAPIを使ってEM_GETLINEで指定した行の文字列を取得するサンプル Public Function GetLine(ByVal handle As Long, ByVal Index As Long) As String Dim LineText() As Byte Dim size As Long Dim pos As Long pos = SendMessage(handle, EM_LINEINDEX, Index, 0) size = SendMessage(handle, EM_LINELENGTH, pos, 0) If size = 0 Then GetLine = "" Else ReDim LineText((size - 1) + 1) '終端文字用に+1バイト CopyMemory LineText(0), size, 2 size = SendMessage(handle, EM_GETLINE, Index, LineText(0)) GetLine = StrConv(LeftB(LineText, size), vbUnicode) End If End Function
872 :
デフォルトの名無しさん :03/04/09 13:46
いやね、なんかときどき落ちてたのよ。メモリアクセスエラーで。 それも必ずじゃなくたまーに。数時間に一回くらい。 でもそれはバグがあったからだろうし、これ以外のとこかもしれない。 で、現在テスト中なんだが、時間かかるし、サンプル+あってるかな〜と思って。 バグありコード(CopyMemoryの指定サイズ間違い。文字数0の時不正なアドレスに書き込み。) pos = SendMessage(hwnd, EM_LINEINDEX, Index, 0) size = SendMessage(hwnd, EM_LINELENGTH, pos, 0) ReDim LineText(size + 1) CopyMemory LineText(0), size, 4 size = SendMessage(hwnd, EM_GETLINE, Index, LineText(0)) GetLine = StrConv(LeftB(LineText, size), vbUnicode) やっぱsize=0→CopyMemoryが原因でいいんかなぁ。 しかしEM_GETLINEって最大サイズを出力バッファで指定するなんて変わってるね。 おかげで、VBに限らずそこまでちゃんとやってるサンプルが少なくて困った。
>>870 いやー、単純にDBにアクセスするだけのアプリで、「あとはコピペするだけです」
って平気で報告してくる年上の部下が目の前にいるもんで。
tabstripの各箇所の色を変更したいのですが やり方を教えてください
VBで変数のアドレスを取得する方法ありますでしょうか。 addressofは関数のアドレスを取得するもののようで・・・。
876 :
デフォルトの名無しさん :03/04/09 15:59
>>874 普通はできませんよね。 API で強制的に描画するしかないかもしれません。
>>875 それは BASIC ではできません。 メモリを破壊しないためにアドレス取得はできません。
>876 そうですか・・・。実は他アプリのリストビューの文字列を取得しようとsendmessageでLVM_GETITEMしているのですが、 LVITEM構造体に帰ってくる文字列を入れるための変数のアドレスを指定しないといけないようです。 VBではこのAPIは使用できないというとこになってしまうのでしょうか。
VarPtr ObjPtr StrPtr だっけか
879 :
デフォルトの名無しさん :03/04/09 16:05
>>877 文字列なら、変数名を渡してあげるだけで、アドレスが渡りますよ。
>878 調べてみます >879 ためしてみます ありがとうございます
>>881 LPTSTR pszText;
↑たぶんこれにアドレスを渡したいと思っているのではないかと思いますが、
String 型で定義された strBuffer のアドレスを渡したいなら
pszText = strBuffer
とします。 直接変数名を直接代入します。
もちろん、 pszText は LPTSTR 型ですが、 VB では String 型に定義します。
これでできない場合は、わかりません。 ごめんなさい... (--;
文字列型をDeclareしたプロシージャに渡すとByVal渡しの時に文字列の先頭アドレスを渡す っと。 MSDNとかDLLの作り方とかで検索したら情報がひっかかると思うよ。 今回のケースでは使えないと思うけどね。
>>881 その URL で結構です。 それで実現できそうです。
その際、 pszText は Long 型ですね。
WM_WINDOWPOSCHANGING を拾って値を変えるだけじゃだめなようだ
WM_WINDOWPOSCHANGED とかいろいろからむようだがよくわからん
頼むよ!
>>859
ものすごく初歩の質問ですが、 Format("3D00072")ってのをLabelに書き出すと 「3E+72」ってなってしまうのは何でですか? 指数を表すのは「E」でわからなくはないのですが「D」は??
>>889 MSDN
データ型から
| メモ 浮動小数点数の値は、mmmEeee または mmmDeee と表すことができます。
| mmm は仮数を表し、eee は指数 (10 の乗数) を表します。
以下略
みなさまありがとうございます。しかし苦戦中でうまくうごきません・・・。以下ソース一部
Dim str As String * 128
hWnd = 他アプリのリストビューハンドル
Pitem.iItem = 0
Pitem.iSubItem = 1
Pitem.mask = LVIF_TEXT
Pitem.pszText = StrPtr(str)
Pitem.cchTextMax = Len(str)
Form1.Cls
Form1.Print SendMessage(hWnd, LVM_GETITEM, 0, Pitem)
DoEvents
Form1.Print str
pszText はlong型です。sendmessageは0を返してきて、失敗しているようです。
strの中は・・・・・・・・・・・・・・・・・・・・・・・で埋まっていました。
ちなみにLVIF_TEXTをLVIF_STATEにすると1を返してくるので、ウィンドウハンドルが間違ってることはないようです。
virtualallocex()を調べると、やりたいことに近いURLが見つかったのですが・・VCで書かれてるのが・・・
http://techtips.belution.com/ja/vc/0001/ virtualallocex()を使ってないから失敗でしょうか?
>892 むぅそうですか。調べてみます。ありがとうございました
もうこのスレで最後かなw 次スレやるのかい?w
>890 MSDNは調べたのですが、調べたりなかったようです。 ありがとうございました。
>894 どうしてあなたは必死なのですか
(Abs(1234567.45) / (10 ^ -1)) + 0.5 = 12345675 Int((Abs(1234567.45) / (10 ^ -1)) + 0.5) = 12345674 これ何、これ。 浮動小数点値で、一行目の12345675は、 限りなく12345675に近い、12345674.99999……ってことか? これ、別にプログラム言語的にはOKの現象なのか? そりゃあ、そうだろうって感じなのか? えー。
>897 頭ダイジョウブ?
しんぐぉー&だぶぉー
クラスモジュールのプロパティを clsHoge.Item.Name のような階層構造で 持たせることは出来ますか? コレクションを使ったりしてみたが挫折しました。 クラス自体を階層化しないと駄目なのかな?
>>900 クラスの階層化というかわからないけどオブジェクトをプロパティに持つクラスを作る。
ユーザ定義型だとPublicにできないし。
例えば Property Get RecordSource() As ADO.RecordSet みたいな感じか?
903 :
デフォルトの名無しさん :03/04/10 12:54
文字列変数の四則符号と数字を組み合わせて、 通常の計算をするのになにかうまい方法はないですか plus="+" a="2",b="3" kai(数変数(この場合は5))= a plus b …??
アフォやなぁ。。
>>905 ScriptControlでできます。
SingletonパターンをVBでやる方法教えてくらはい
>907 そうだよ アッフォだよ〜
トレースするとこのプロシジャーのend subでDLLが正しく呼び出せませんといわれた。DLLに渡す値の型がまちがっているということらしいが、苦悩(一部略) Sub Main() Dim hwnd As Long '子ウィンドウ Dim Pitem As LVITEM Dim lpMem As Long Dim lngProcId As Long Dim lngApiRet As Long Dim hProcess As Long Dim pSysShared As Long Dim dwSize As Long Dim dwNumberOfBytes As Long '書き込まれたバイト数 Dim pLocalShared As Long pLocalShared = VarPtr(Pitem) dwSize = 128 lpMem = VirtualAlloc(ByVal 0, dwSize, &H1000, &H4 Or &H200) hwnd = FindWindowEx(hwndM, 0, vbNullString, "List1") lngApiRet = GetWindowThreadProcessId(hwnd, lngProcId) hProcess = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, lngProcId) pSysShared = VirtualAllocEx(hProcess, vbNull, dwSize, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE) Pitem.iItem = 0 Pitem.iSubItem = 0 Pitem.mask = LVIF_TEXT Pitem.pszText = pSysShared + 1 Pitem.cchTextMax = dwSize WriteProcessMemory hProcess, pSysShared, pLocalShared, dwSize, dwNumberOfBytes ReadProcessMemory hProcess, pSysShared, pLocalShared, dwSize, dwNumberOfBytes Form1.Print pLocalShared + 1 <−−−−−−−−−−−−−−−−−−−−−−−−−−−−これは多分間違ってる・・・ VirtualFree pLocalShared, 0, MEM_RELEASE VirtualFreeEx hProcess, pSysShared, 0, MEM_RELEASE CloseHandle hProcess End Sub
>>912 宣言がなきゃ調べる気すらおきん。とりあえず、デバッグ実行で、どこのAPIがエラーに
なってるのか確認しなはれ。あと、戻り値もきちんと検査したほうがいいよ。
>914 F8押して実行した結果がend subでエラーが起きたということです。デバッグを選ぶと、 mainを呼び出した行が選択されます。キャンセルを押すとVCが立ち上がって、 VB6.EXEのOLEAUT32.dllのとある行?を示します。 したがってどのAPIがエラーになってるのかわからず・・・。
918 :
デフォルトの名無しさん :03/04/10 16:47
くだらない(と思われる)質問で申し訳ないのですが… Excel.Applicationを利用してExcelシートよりデータを抜き出して表示させているのですが、 Excelのセル内で改行されているセルのデータを抜き出すと、テキストボックス等に表示 させた際に改行されて表示されます。 この改行をコード内で削除したいのですが、何か方法はありますでしょうか? セルのデータは、一度変数に読み込んでからテキストボックスに表示させています。 どなたかお知恵をお貸しください。お願いします!
>>918 こんなもんしか思いつかんかったが、
OutTxt = Join(Split(InTxt, vbCrLf), "")
>>919 ちなみにセル内の改行コードはLFだよ。
>>919 さん、
>>920 さん、Uさん
レス有難うございます。
>>919 さんの方法と
>>920 さんの『replace』を試しましたが、上手く行きません。
あと、私の説明が一部間違っており、実際は
『テキストボックスには1行で表示されるのに、コピペもしくはファイル保存すると
複数行になってしまう』が現状です。
説明不足がありまして申し訳ございません。
なにか良い方法があれば再度お知恵をお貸しください。
よろしくお願いします。
>『replace』を試しましたが、上手く行きません。 多分、嘘。 誰かが答え書いてくれるの待ってると思われ。
>>923 ちょっと試してみた。特に問題なく動いている。
>>916 面倒だから、検証 & 説明はしない。ちょっと説明してわかるレベルでもなさそうだし。
VB-MLの過去ログ探せ、って言っただろ?
[VB-ML:30999] Re: ご報告: VirtualAllocを利用したListViewの操作
がそのものズバリだってばよ。
>>924 さん
すいません、方法を教えていただけないでしょうか?
Set AppExcel = New Excel.Application
hoge = AppExcel.Cells(1,1)
Debug.Print Replace(hoge, vbCrLf, "", , , vbTextCompare)
と言う感じでやったのですが上手く行きません。
また、VbCrLfをLFに変更してもダメでした…
>925 そのとおりでした・・・。 ちなみに最初に教えていただいたあと調べたときに、この過去ログ開いて見ていたようです。 ところが同時にブラウザ広げてあちこち調べてたので、他サイトの記述とごっちゃになって、 VB-MLに書いてることはそのものずばりじゃないと勘違いしていたようです。 タイトルまで教えていただいてすごくたすかりました。
>>928 さん
いや、
>>926 にも書いてあるようにLFに変えてもダメだったんです…
それともやり方が間違っているのでしょうか?
まさかとは思うが…vbLf。
>>930 さん
出来ました!その『まさか』でした!
vbLfではなく、LFで指定していました…すいません…
おかげで先に進めそうです。
本当に有難うございました!!
>>931 Option Explicit しとけ。
>>932 さん
はい、そうします…(早速記述を追加しておきました。)
ご助言有難うございます!
このすれもたまにはまともに機能することがあるんだな。
バカな荒らしや煽り厨がこなければな。
休みの日は回答したいだけの知識ないヤシがタムロするからダメポ。
938 :
デフォルトの名無しさん :03/04/11 00:45
質問があります。 VB6で、MSHFlexGridやADOオブジェクトなどを使って とあるツールを作りました。 で、これを他のマシンにインストールしたいのですが、 VB6のディストリビューションウィザードを使うと ツール本体数百kbyteに対して、13MB以上のcabファイルができてしまいます。 事情によりCDが使えないため、FDDでのインストールは現実的ではありません。 そこで、動作に必要なDLL,OCXのみを手動で組み込むように したいのですが、プロジェクトの参照設定やコンポーネントでチェックされているものを 全てそろえると、余計なものまで入れてしまう気がしてなりません。 あるモジュールについて動作に必要十分なDLL,OCXを知るには どうしたらよいでしょうか?
>>938 Visual Studio Installerを使う。
Pro版以上の正規ユーザーならMSから配布されてるはずだが。。。
単体製品ユーザーは知らんw
今でもMSDNでDLできるのかも知れないw
っていうか VBのランタイム含めてんじゃないの?
今時CDが使えない環境なんてあるのかぁ。 ネットワーク経由じゃダメか?・・・ってCDが無いくらいだからそれも無理ポ?
942 :
デフォルトの名無しさん :03/04/11 09:25
>>941 >今時CDが使えない環境なんてあるのかぁ。
逆にセキュリティーにうるさいところ(役所とかも)では、ポリシーでそういう
ふうに決まってるところもあるね。利用できないんじゃなく、利用させないって
いうことでしょう。
DOSの終わりの頃のゲームでは インストールディスク17枚とかあったなぁ。
>>941 シリアルポートをクロスケーブルでつないで一晩かけるとか。
デフォ設定から変に弄って「動かない!」とか悩むより FD10枚でインストーラ作った方が安全だと思うが。
パラレル接続だと4Mbpsくらい出なかったっけ?
セキュリティにうるさいならフロッピーだけ使わすんじゃなくて、フロッピーも 取り外して、必要なときだけ監視の元で使用させるべきじゃないんだろうか。 つーか、データ盗難ならCDよりフロッピーの方が危険性高いのだが。 ウイルスはフロッピーからでも感染するし。
セキュリティの問題以外にも 工場用のPC(FC?)だとCD-ROMが付いてない事もあるね。
USBポートつかえ。
バイナリダンプして手で入力
本体だけ配布してユーザーからの罵声を解析。これ最強。
FlexGridのセル内文字の 特定の箇所の文字だけ色をつけることは出来ますでしょうか?
>>954 そうですか、わかりました。ありがとうございます
qsortを使いたいのですが、VB6ではどうやるのでしょうか?
3重のfor文に配列の変数をそれぞれ割りあてましたが、 「for で指定された変数は既に使用されています」とでて、 計算できませんでした。同じ構文に変数が直接関係したら、 配列の変数は使えないのですか
クリスタルレポートを使った帳票印刷をしたいのですが Win98で出力したものとWin2000で出力したものとでは 微妙に印刷位置に違いが出ます。 簡単に手直しとかできる原因なのでしょうか。
>>958 んなこたない。どっかで本当に使ってんだろ。
>>959 プリンタドライバが違うからじゃないのか。
普通に同じテキストファイルでも双方で打ち出してみて確認しる。
>>961 ありがとうございます。
今から試してみるです。
964 :
デフォルトの名無しさん :03/04/11 15:15
DCount(expr, domain[, criteria])関数の criteriaは複数の条件を指定できるのでしょうか?
>>965 ヘルプ嫁。
あと、なんでやってみない?
どうしてエラーの内容を言わない人が多いんだろう
うーん、同じプリンタで同じ文書印刷しても 違うプリンタで同じ文書印刷しても ズレっぷりは全く一緒ですね・・・
スマソどうもできるようだ Left プロパティ他が Move メソッド使わんと更新されんよう お騒がせしますた
>>969 エラーの検証を聞いている訳ではないので、
この場合は問題ないのでは…
>>971 意味不明。
結局、OS間のドライバの差ということでよろしいか。
>>974 あ、それぞれ98と2000で印刷してみてってことですよ。
それで違うんだから、ドライバの差ということみたいです。
お騒がせしました。
976 :
デフォルトの名無しさん :03/04/11 18:24
VB6です。 IEみたいに、MenuもCoolBarに乗せたいのですが、APIなどでポンと乗らないでしょうか。 メニューをCoolBarの上に自作しないと無理なのでしょうか。
M$のテクニカルサポートってすげー親切だな 数年前とは大違いだよ つーか担当によって差があるんか?
978 :
デフォルトの名無しさん :03/04/11 19:28
VB6です。 雛形になるHTMLなどのファイルを用意して、その中にプログラムで使われている 変数を入れた場合、どうすればその変数を有効にできるでしょうか? 読み込んだファイルを配列に1行ずつ入れるまではいいのですが、配列に読み込んだ 時点でただの文字列になってしまい、変数が変数名のまま出力されちゃうんです。 関数などの名前さえ教えて頂ければ、自分で調べるので教えてください。
979 :
デフォルトの名無しさん :03/04/11 19:33
>>978 以下の意味がわからん
>その中にプログラムで使われている変数を入れた
単純にReplaceすればいいとちゃうんけ
どもです 例えばVBのソースで「Hensuu="教えて"」としたとき HTMLファイルで<TITLE>Hensuu</TITLE>と記述した物を読み込むと <TITLE>教えて</TITLE>に変換するような方法をお聞きしたいのです。 うまく説明できなくてスマソ
昨日も同じような質問あったなぁ。
>>978 最低限だったら、Replace(読み込んだデータ,"Hensuu", Hensuu)とすれば
いいんだが、これだと置換前文字列をReplaceで指定しているわけで、
プログラムの変数名が置き換わることじゃなくなる。
だから置換前文字列と置換後文字列を組にした構造体(ユーザ定義型)を
配列にして繰り返した方がいいんじゃないかい?
あと、Replaceだと単純に文字列を変更するだけだから、
たとえばTITLE="タイトル"で<TITLE>TITLE</TITLE>だと
<タイトル>タイトル</タイトル>となってしまうわけで、
これを防ぎたいのなら一工夫することになる。
正規表現(Microsoft VBScript Regular Expressions)や
HTML解析(Microsoft HTML Object Library)なんか利用すれば楽にできるよ。
>>984 ..._〆(゚▽゚*)詳しく教えてくれてどうもです。方法さえ提示してもらえれば
何とか自力でいけると思います。
>>894 以外の皆さんもありがd
986 :
デフォルトの名無しさん :03/04/12 19:32
次スレどこ?
Excel97 のある原本ファイルがありまして、これを読みこんでデータを打ち込 んだ後保存します。で、この際に原本は上書きするとマズイので毎回「名前を 付けて保存」していますが、読み込んだ際に別のファイル名(例えば日付とか) を割り当てるようなことは出来るでしょうか?
>>988 じゃ、ヒントだけ。
別途作ったブックAに、
原本をコピーしつつ名前を日付に変える→開く→ブックAを閉じるVBAを組んで
開くときに実行するように仕込む。
答え書くのはたやすいが、勉強にならないから、分からなければ勉強しる。
>>990 馬鹿野郎!
うちからも建てられなかったんだよ、ちくしょう!
992 :
デフォルトの名無しさん :03/04/12 21:18
テンプレート作ってもらえれば立てますよー。 たまにしか来ないんですが、聞きたいことがあるのでなくなってしまうと困るのです(vv;;。
994 :
デフォルトの名無しさん :03/04/12 21:39
>>994 ありがとう&乙。
よーし埋めるか。
誰かセントリノAA貼ってくれい。
それでは最後に、 「あなたにとって、VBとは」
997 :
デフォルトの名無しさん :03/04/12 21:46
まもなくここは 乂1000取り合戦場乂 となります。 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
g
1000
1000v(*´д`*)b
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。