[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/17 16:00 / Filesize : 172 KB / Number-of Response : 794
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2009/07/13(月) 21:12:36 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。


409 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:08:07 ]
>>408
具体的ソースで>>402の悩みを解決してあげて

410 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:31:58 ]
>>409

ClassA.cls
Public Event MyEvent()
----------------------
ClassB.cls
Implements ClassA
Public sub Hoge()
RaiseEvent MyEvent
End Sub
----------------------
ClassC.cls
Public WithEvents classA1 As ClassA
Private Sub classA1_MyEvent()
Debug.Print "Hoge"
End Sub
----------------------
Form1.frm
Private Sub Form_Load()
Dim classB1 As New ClassB
Dim classC1 As New ClassC
Set classC1.classA1 = classB1
Call classB1.Hoge
End Sub

411 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:33:49 ]
ClassCの必要性が全くない

412 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:36:15 ]
>>411

ClassA.cls
Public Event MyEvent()
----------------------
ClassB.cls
Implements ClassA
Public sub Hoge()
RaiseEvent MyEvent
End Sub
----------------------
Form1.frm
Public WithEvents classA1 As ClassA
Private Sub classA1_MyEvent()
Debug.Print "Hoge"
End Sub
Private Sub Form_Load()
Dim classB1 As New ClassB
Set classA1 = classB1
Call classB1.Hoge
End Sub

413 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:37:10 ]
classA1をPublicにするのはどうかと思う

414 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:45:14 ]
>>413

ClassA.cls
Public Event MyEvent()
Public Sub RaiseMyEvent()
RaiseEvent MyEvent
End Sub
--------------------------
ClassB.cls
Public classA1 As New ClassA
Public Sub Hoge()
Call classA1.RaiseMyEvent
End Sub
-------------------------
Form1.frm
Private WithEvents classA1
Private Sub classA1_MyEvent()
Debug.Print "Hoge"
End Sub
Private Sub Form_Load()
Dim classB1 As New ClassB
Set classA1 = classB1.classA1
Call classB1.Hoge
End Sub

415 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:50:23 ]
Implementsはどうした

416 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:01:09 ]
組み込みのイベントを使えよ・・・無意味なコードで荒らすな

417 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:09:57 ]
何がしたいのかサッパリわからんコードだなw
しかし、結局VBって>>412みたいにインターフェイスにイベント定義書けるんだっけ?

だったら>>402は何も悩む必要ないな最初から。



418 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:32:57 ]
>>415-417

ClassA.cls
Public Property Set classC1(c As ClassC1)
End Property
----------------
ClassB.cls
Implements ClassA
Dim classC1 As ClassC
Public Sub Hoge()
Call classC1.RaiseMyEvent
End Sub
Private Property Set ClassA_classC1(c As ClassC1)
Set classC1 = c
End Property
----------------
ClassC.cls
Public Event MyEvent
Public Sub RaiseMyEvent()
RaiseEvent MyEvent
End Sub
----------------
Form1.frm
Private WithEvents classC1 as ClassC
Private Sub classC1_MyEvent()
Debug.Print "Hoge"
End Sub
Private Sub Form_Load()
Dim classA1 As ClassA, classB1 As New ClassB
Set classA1 = classB1: Set classC1 = New ClassC: Set classA1.classC1 = classC1
Call classB1.Hoge
End Sub

419 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:40:23 ]
( ´,_ゝ`)プッ

420 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:47:14 ]
┐(゚〜゚)┌

421 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 12:02:09 ]
・・・

422 名前:デフォルトの名無しさん [2010/03/10(水) 13:52:16 ]
>>419-421

ClassA.cls
Public Property Set classC1(c As ClassC)
End Property
---------------
ClassB.cls
Implements ClassA
Dim classC1 As ClassC
Public Sub Hoge()
Call classC1.RaiseMyEvent
End Sub
Private Property Set ClassA_classC1(c As ClassC)
Set classC1 = c
End Property
---------------
ClassC.cls
Public Event QueryMyEvent()
Public Sub RaiseMyEvent()
RaiseEvent QueryMyEvent
End Sub
---------------

423 名前:デフォルトの名無しさん [2010/03/10(水) 13:53:45 ]
ClassD.cls
Public Event MyEvent()
Private WithEvents classC1 As ClassC
Dim mclassA1 As ClassA
Public Property Set classA1(a As ClassA)
If Not (mclassA Is Nothing) Then Set mclassA.classC1 = Nothing: Set mclassA = Nothing
Set mclassA = a
Set mclassA.classC1 = classC1
End Property
Private Sub classC1_QueryMyEvent()
RaiseEvent MyEvent
End Sub
Private Sub Class_Initialize()
Set classC1 = New ClassC
End SUb
---------------
Form1.frm
Private WithEvents classD1 As ClassD
Private Sub classD1_MyEvent()
Debug.Print "Hoge"
End Sub
Private Sub Form_Load()
Set classD1 = New ClassD
Dim classB1 As New ClassB
Set classD1.classA1 = classB1
Call classB1.Hoge
End Sub

424 名前:デフォルトの名無しさん [2010/03/10(水) 14:07:27 ]
ClassB.cls
Implements ClassA
Dim classC1 As ClassC
Public Sub Hoge()
If Not (classC1 Is Nothing) Then
Call classC1.RaiseMyEvent
End If
End Sub
Private Property Set ClassA_classC1(c As ClassC)
Set classC1 = c
End Property

425 名前:デフォルトの名無しさん [2010/03/10(水) 14:13:22 ]
ClassE.cls
Implements ClassA
Dim classC1 As ClassC
Public Sub Hoge2()
If Not (classC1 Is Nothing) Then
Call classC1.RaiseMyEvent
End If
End Sub
Private Property Set ClassA_classC1(c As ClassC)
Set classC1 = c
End Property
---------------
Form1.frm
Private WithEvents classD1 As ClassD
Private Sub classD1_MyEvent()
Debug.Print "Hoge"
End Sub
Private Sub Form_Load()
Set classD1 = New ClassD
Dim classB1 As New ClassB
Set classD1.classA1 = classB1
Debug.Print "Test1": Call classB1.Hoge
Dim classE1 As New ClassE
Set classD1.classA1 = classE1
Debug.Print "Test2": Call classB1.Hoge
Debug.Print "Test3": Call classE1.Hoge2
End Sub




426 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:20:19 ]
荒すな

427 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:26:44 ]
>>402がVBの仕様も調べずに設計したのが悪い



428 名前:デフォルトの名無しさん [2010/03/10(水) 16:07:39 ]
ClassD.cls
Public Event MyEvent()
Private WithEvents classC1 As ClassC
Dim mclassA1 As ClassA
Public Property Set classA1(a As ClassA)
If Not (mclassA1 Is Nothing) Then Set mclassA1.classC1 = Nothing: Set mclassA1 = Nothing
Set mclassA1 = a
If Not (mclassA1 Is Nothing) Then Set mclassA1.classC1 = classC1
End Property
Private Sub classC1_QueryMyEvent()
RaiseEvent MyEvent
End Sub
Private Sub Class_Initialize()
Set classC1 = New ClassC
End Sub

429 名前:デフォルトの名無しさん [2010/03/11(木) 00:14:19 ]
ひどいな・・・

430 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:21:17 ]
ひどすぎる

431 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:47:40 ]
どうしてこうなった・・・

432 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:59:58 ]
MSDN読まないのか
VBドキュメントの
Implements ステートメント
インターフェイスのインプリメントによるポリモーフィズムの提供
インターフェイスの作成とインプリメント
標準インターフェイスのインプリメントと使用
この辺り

433 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:33:12 ]
変なソースコード貼り付けた人と>>402>>432のアドバイスを参考にするように

434 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:58:57 ]
接続ポイントはややこしいからねぇ。
極力避けてコールバックオブジェクトを使うのが正解。

435 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:22:27 ]
そうだね

436 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:30:53 ]
混乱してきた

437 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:43:37 ]
MSDNって機械翻訳で変な日本語多くて読みにくいんだよねぇ・・・でも英語だと全く読めないし・・・('A`)マンドクセ



438 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 15:56:20 ]
>>436-437
プログラマ向いてない
転職をお勧めする

439 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:57:06 ]
>>437
スパゲッティソースより読みやすいと思うがwwwww

440 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:11:49 ]
プログラマーって閉鎖的なヤツが多い

441 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:15:41 ]
自明の理

442 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:53:49 ]
MSDNはVB6の頃の奴はむしろ読みやすかった気がする
.netになってから激しく読みにくい

443 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:00:01 ]
ローカルにもインストールしてあるけど、検索がしづらくなったので、

site:msdn.microsoft.com を付けてぐぐってます。

444 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:14:45 ]
webのは記憶ないけど、ローカルのは確実に今の奴の方がクオリティー高いだろw
ダメな奴ってすぐ自分の無能を道具のせいにするよな。

>>443
まあビューワは2003までの奴の方が現行の奴よりも使いやすい。
それでもVS98の時代よりは使いやすいと思うが。
いずれにせよ、2002以降のビューワーはカスタマイズした上でキーボードショートカットを
駆使して使うのが基本。

君が使いにくいと思うのなら、たぶんそういうことやってないんだろう。

445 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:20:12 ]
>>444さんのカスタマって何をどうしてるの

446 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:44:26 ]
>>445
言葉で説明するのは難しいよね。

まず俺は2008用のドキュメントもビュワは2003のを使って見てる。

それ前提で言うと、左側のペインは「検索」と「キーワード検索」で水平に二分して、
出しっぱなしの状態にしている。

残りの「検索結果」、「目次」、「お気に入り」はウィンドウの下側に、
それぞれ別個に、スライド表示(タブにマウスを乗せるとにょっと出てくるやつ)でドッキングさせてる。

隠れてるスライド表示のウィンドウを表示させるのは、キーボードショートカットを使うのが基本。

まあこんな感じ。

2005以降のビュワーの場合は「検索」ウィンドウがでかくなってしまって左側のペインに
収めるのは難しいから、こいつもウィンドウの下側にドッキングさせて、検索するときは
キーボードショートカットで表示するのが基本だろうね。

447 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:07:08 ]
へー。2003のビューアで2008のドキュメントが見られるんだ。
さすがに、2010は無理だろうな・・・。



448 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:59:35 ]
すいません
Picture1.Picture.HandleってののHandleはこれなんなんですか?w
Picture1.Hwndとはちがうし
Picture1.hdcともちがう
でもPicture1.Picture.Handleって指定しないといけないものが多い
Handleって書いてるからハンドルなんだなーってのはわかりますが
わけのわからんことをいってたらすんませんです(*´д`*)ハァハァ

449 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:05:06 ]
Handle プロパティ

Picture オブジェクト内のグラフィックスのハンドルを返します。
構文
object.Handle
「対象」一覧内のいずれかのオブジェクトを指すオブジェクト式です。
戻り値
Handle プロパティが返す値は、Type プロパティの設定値によって異なります。対応する戻り値は次のとおりです。
Type プロパティ 戻り値
1 (ビットマップ) HBITMAP ハンドル
2 (メタファイル) HMETAFILE ハンドル
3 (アイコン) HICON ハンドルまたは HCURSOR ハンドル
4 (拡張メタファイル) HENHMETAFILE ハンドル
解説
ダイナミック リンク ライブラリやWindows API で、関数呼び出しの一部としてグラフィックスにハンドルを渡す場合に有効です。


MSDNライブラリ-VisualBasicリファレンス Pictureオブジェト->プロパティ->Handleプロパティより引用


450 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:08:26 ]
著作権法違反

451 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:11:10 ]
>>450
固いこというなよw^^;;;;;;

452 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:40:23 ]
明らかに”引用”の範囲を超えているな

453 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:44:46 ]
男塾思い出した

454 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:54:01 ]
そもそも引用の要件みたしてないだろ・・・

455 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:01:29 ]
>>278-279もな

456 名前:デフォルトの名無しさん [2010/03/12(金) 18:27:31 ]
自分の言葉で説明できないと仕事やってけないだろう・・・
博士号の人が就職難な理由のひとつに、自分の言葉で説明できず、全て引用で済ましているってとこにもある

457 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:35:39 ]
なんだボク、学校の宿題に出たのか?



458 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:43:34 ]
なんで本筋それたら盛り上がるんだよw
せめてハンドルの話で盛り上がれw

459 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:14:25 ]
俺、あのハンドル受け取ったら結婚するんだ

460 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:36:25 ]
>>449のハンドルってどんなAPIで使うのよ?

461 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:50:19 ]
べつにいいんよ

462 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:21:02 ]
新しいテキストドキュメントを作成して x~x.txt と名前を変え、VB6で作ったプログラム
で削除しようとしたらvistaではうまくいくのですがxpではエラーになってしまいます。
仕様でしょうか?

463 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:27:29 ]
ショートファイル名?

464 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:43:09 ]
すみません間違えました。 X~X.txt です。どうやら~という記号が入ってるとエラーになるようです。

465 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:52:12 ]
あれ?投稿すると文字が何故か変換されてしまいます。 asc値が 126 の記号です。


466 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:46:54 ]
>>465
当たり前のことをちゃんとやってから質問してる?

当たり前のこと、というのは、例えば削除できない理由が本当にファイル名が原因なのか、
ちゃんと確認しましたかって意味だけど。

467 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:16:06 ]
エラー番号とエラーメッセージくらい



468 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:18:52 ]
>>466>>467
>>462ですがXPの入ってるPCの方を再起動してもう一度やったところ削除できました。その前は確かにそのファイル名
のテキストファイルだけが削除できなかったのですが、理由はわかりません。
あと、文字が勝手に変換されるのは自分で作った2chBrowserの仕様でしたw
大変お騒がせし申し訳ありませんでした。


469 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:29:20 ]
利用中ファイルのアクセスのプロテクト系だろどうせ


470 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:57:53 ]
いちいち何作ってるかまで言わんでよろしい

471 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:03:01 ]
やっぱくやしかったんだねwwwwwww

472 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:31:42 ]
(;´∀`)・・・・

473 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:31:34 ]
VB6のリソースエディタによるストリングテーブルの一行に
格納できるテキストの最大サイズは32KB?

474 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:57:11 ]
それ以前にストリングテーブルリソースの上限が4097文字

475 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:04:27 ]
>>474 トンクス
あまり使えないなぁ〜orz

476 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:04:28 ]
どんな長文をリソースに突っ込もうとしてるんだw

477 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:22:34 ]
リソースのストリングって何に使うためにあるの?
いや、他の言語でもそうだけど、リソースに文字列含ませる意味が未だにわからない



478 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:40:55 ]
メニューの文字とか。
言語切り替えると全部切り替わる用。

479 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:05:12 ]
つまり日本人以外にも使ってもらうためにってこと?

480 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:33:59 ]
故意に必須原型ファイルを削除するようなアホが
いないとも限らないのでその対策用にと。。  

481 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:54:01 ]
>>479
読み書き方法が決まってる世界共通のなんでもボックス。
ハードコーディングと違って製品化後も書き換えられるのが特徴。
それ以上の意味はない。

482 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 17:24:57 ]
>>476
シェアウェアの課金コード

483 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 17:59:33 ]
入れたきゃ2つに分割して入れればいい話だろう?
そこまでしてリソースに収めたほうがいい理由なんてないが
入れちゃいけないって理由もない。


484 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 20:45:40 ]
製品化後も書き換えられるってことは非圧縮になる?

485 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:04:55 ]
>>484
なんで圧縮されるの?

486 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:27:04 ]
プログラム起動中に動的にリソースの内容を書き換えるのって
絶対無理ですよね?アホな質問でスイマセン

487 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:57:03 ]
リソースは書き換えられるでしょ。VB6に操作できる関数が用意されてるかどうかは別で。



488 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:11:48 ]
リソース用DLLを作るとかってやってなかったっけ?
昔の事だから忘れたな

489 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:02:46 ]
Windows7でもVB6って動く?7用のAPIとかって使えるの?

490 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 02:23:48 ]
>>489
www.google.co.jp/search?hl=ja&q=windows7+vb6&sourceid=navclient-ff&rlz=1B3GGGL_jaJP292JP292&ie=UTF-8

491 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 02:34:36 ]
わざわざありがとんくす

492 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 02:46:29 ]
うわ、ggrksって言ったら感謝されたでござる

493 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 03:09:09 ]
みんなハッピーでよかった

494 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 12:36:32 ]
VB6 で軽快な付箋のようなポップアップウィンドウを実現
するにはどうしたらいいのでしょうか? 
ヒントだけでも(APIとか)お願いします。

495 名前:デフォルトの名無しさん [2010/03/19(金) 13:52:20 ]
エスパー説明よろ

496 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:08:05 ]
フォームウィンドウの枠線をなくして
付箋1枚で1フォーム表示

これでいいんじゃねぇか?

右下にNotifiIconとか適当に出しとけばいけると思うけど

497 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:10:32 ]
コマンドボタン押すたびにポップアップウィンドウ?

Form1.frm (CommandButton一つ配置)
Private Sub Command1_Click()
Dim f As New Form2
f.show
End Sub
----------------------------
Form2.frm (BorderStyleを3に設定)
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static dx, dy
If Button > 0 Then
Me.Left = Me.Left + X - dx
Me.Top = Me.Top + Y - dy
Else
dx = X
dy = Y
End Sub




498 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:29:58 ]
Module1.bas
Private Const SWP_NOMOVE = 2, SWP_NOSIZE = 1, SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_TOPMOST = -1, HWND_NOTOPMOST = -2
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Function SetTopMostWindow(hwnd As Long, Topmost As Boolean) As Long
If Topmost = True Then 'Make the window topmost
SetTopMostWindow = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
SetTopMostWindow = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
SetTopMostWindow = False
End If
End Function
Form1.frm (CommandButton一つ配置) -----------------------
Private Sub Command1_Click()
Dim f As New Form2
f.show: SetTopMostWindow f.hWnd, True
End Sub
Form2.frm (BorderStyleを0に設定) -----------------------
Private Sub Form_DblClick()
Unload Me
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
SetTopMostWindow Me.hWnd, True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static dx, dy
If Button > 0 Then
Me.Left = Me.Left + X - dx: Me.Top = Me.Top + Y - dy
Else
dx = X: dy = Y
End Sub

499 名前:494 mailto:sage [2010/03/19(金) 14:30:23 ]
すいません、分りにくかったですか。
VB6で出来るだけ高速に複数行のテキストをポップアップ表示させたいのです。
それには、やはりAPIを使った方がいいのかと

500 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:32:26 ]
また2chブラウザか!

501 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:34:23 ]
最近人気なのか?
いまさら2chブラウザをなぜVBで・・・


502 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:37:37 ]
どうせバレるんだからストレートに聞けばいいのにな
だからブラウザ作ってる奴はウザがられる

503 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:40:39 ]
>>499
APIのほうが早いに決まっているだろ

Win32API質問箱 Build86
pc12.2ch.net/test/read.cgi/tech/1265350980/

504 名前:499 mailto:sage [2010/03/19(金) 15:50:51 ]
ありがとうございました。それでは早速、退散いたします。

505 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 07:59:36 ]
出来るだけ高速にって言っても、んな目に見えるほどの差なんて出ないんじゃねーの?
どんなもん求めてるのか知らんけど

506 名前:デフォルトの名無しさん [2010/03/23(火) 01:16:02 ]
低スペックパソコンなんだろう。おそらく。
既存の2chブラウザが動作しなくらいの旧式パソコンとか

507 名前:デフォルトの名無しさん [2010/03/25(木) 22:06:33 ]
print でcsvファイルに書き込みを行いたいのですが、

2003/12/15 14:50:30.01

と書き込みを行った場合、
csvファイルをエクセルで開くと、2003/12/15 14:50:30.01 とセルに表示されません。

エクセルのセルの表示設定で表示形式を変更してやれば、ちゃんと表示されます。

str = format(now, "yyyy/mm/dd hh:mm;ss")
str = str & ".01"
print #番号, str

みたいな感じで書き込みを行っているのですが、
この段階でstr には "2003/12/15 14:50:30.01"が入っているのですが、
書き込みを行ってエクセルで開くと、そのように表示されません。
どうすればエクセルで書式設定の変更を行うことなく表示されるのでしょうか?



508 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 22:07:33 ]
頭に ' を付けるとか。

509 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 22:19:03 ]
CSVじゃ限界あるからエクセルファイルとして作成を

510 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 22:56:11 ]
>>508
頭に'をつけることで効果もないような
ただの文字列扱いにするってことか

511 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:04:46 ]
csvとxlsをvbから作成するのって何か違うんだっけ

512 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:04:49 ]
うん。

513 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:05:40 ]
xlsは、ExcelのCOMコンポーネントを使って作るのが一般的。
csvは単なるテキストファイルなので、そういうのいらん。

514 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:11:10 ]
つまり、csvで作ると書式設定を行えないから表示がおもったとおりにいかないという?

515 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:12:47 ]
csvをどう表示するかなんて、アプリ次第だしね〜

516 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:15:42 ]
びしっとした決まりが無かったからね
RFCをちょびっと読んでそのまま捨てた

517 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:44:01 ]
昔からcsvに統一規則がなかったからな。
csvは相手側をコントロール出来るもんじゃない。「相手側に配慮する」のが関の山だ。
相手側がcsvの読み方をユーザーに尋ねてコントロールするもんだ。
RFCも普及するやら。時代はxmlに突き進んでるし。



518 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:49:46 ]
相手側ってのはVBじゃなくてエクセル?

519 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:52:16 ]
相手がVBだろうがエクセルだろうがCSVになった時点で色々消えてるべ

520 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 01:33:12 ]
電話番号の090が90になっちゃったり、ゼロ埋めのコード0001が1になっちゃったり色々あるわな
ダブルクオォートで囲ったり、先頭に'つけても回避できない事例も結構あったよ
結局Excelオブジェクトぶん回してxls作るのが一番手っ取り早いというところに落ち着いた
データ量が多いときは有償だけどExcelCreater使ってたわ

521 名前:デフォルトの名無しさん [2010/03/26(金) 17:33:04 ]
Function hoge() As Class1
Dim c1 As New Class1
c1.value=10
Set hoge=c1
End Function

Sub Test()
Dim c1 As Class1
Set c1=hoge()
End Sub

これって使い方正しい?こういう使い方って良く無い?



522 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:35:05 ]
正しい。

523 名前:デフォルトの名無しさん [2010/03/26(金) 17:41:23 ]
ありがとう

524 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:42:29 ]
Function hoge() As Class1
Dim c1 As New Class1
c1.value=10
Set hoge=c1
End Function



Function hoge() As Class1
Set hoge = New Class1
hoge.value=10
End Function



525 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:53:59 ]
デザパタでいうFactoryMethodパターンみたいなもんか

526 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:09:34 ]
For Each って、Variantでしか取り出せないんでしたっけ?

527 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 05:15:50 ]
mjd?



528 名前:デフォルトの名無しさん [2010/03/29(月) 00:05:55 ]


529 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 00:35:06 ]


530 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 13:49:31 ]
>>526
俺は無知だと思い知らされたわ
すげぇよあんた

531 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:08:17 ]
やぁ、>>526ですよ。なんですかこの冷たい反応わw
つかマジに質問したんやけどなぁ。
久々にEach文書いたらVariantじゃないと受け取れなくて「・・・え、嘘でしょ?」とか思って。

なんかVariant指定しないとエラー出たり、時々エラーも出ずに動いたりでよくわかんね。
でもコンパイルは通らないんで結局Variantじゃなきゃ嫌らしい。うそーん。

532 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 14:20:50 ]
Dim aa As New Collection
Dim temp As image

aaにimage突っ込んだり・・・・ラジマンダリ

For Each temp In aa

Next

まぁ言い方によるんじゃなかろうか

たとえばCstr関数のヘルプより抜粋
バリアント型 (内部処理形式が文字列型 (String) の Variant) に変換して返します。



533 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 15:32:44 ]
ごめん、何言ってるのかさっぱりわからない。

534 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:31:11 ]
>>532

For Each element In group
[statements]
[Exit For]
[statements]

Next [element]

For Each...Next ステートメントの構文は、次の指定項目から構成されます。

指定項目 内容
element
必ず指定します。コレクションや配列の各要素を繰り返す変数を指定します。
コレクションの場合、
引数 element にはバリアント型 (Variant) 変数、総称オブジェクト型変数、
または任意の固有オブジェクト型のオブジェクトの変数を指定できます。
また、配列の場合は、引数 element にはバリアント型のみ指定できます。

group
必ず指定します。オブジェクト コレクション名または配列名 (ユーザー定義型の配列を除く) を指定します。


MSDNライブラリ Visual Basic リファレンス ステートメント For Each...Next より引用

535 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:45:37 ]
MSDNライブラリのリファレンス・オブジェクトのCollectionのページで使用例を見たら

MyClasses.Add Item:=Inst, Key:=CStr(Num)

という記述があったんだけど

:=

これって何?こんなの初めて見るんだけど


536 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:50:17 ]
MSDN内を名前付き引数で検索

537 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 16:57:33 ]
今年もVB6をやらされる新人がいるのか
いいかげん会社たためや



538 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:04:09 ]
もう入社したのか

539 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:10:27 ]
俺の時代は会社がきまった瞬間からその会社に行ってたものだが、今は無いのかな

540 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:14:48 ]
普通10月に入社式だもんな

541 名前:デフォルトの名無しさん mailto:sage [2010/03/31(水) 17:15:39 ]
新卒採用とかしてるIT企業なんてあんの?

542 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 00:24:43 ]
あるよ

543 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 01:11:24 ]
この不景気にやるねぇ

544 名前:デフォルトの名無しさん [2010/04/01(木) 20:16:43 ]
ランダムな3桁の数値の入った配列Hoge(n)を
(重複した数値を除いた)ユニークな数値が何個あるのか数を数えたいのですが
どうすればいいですか?

545 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:22:38 ]
>>544
ソートしてからカウントすれば簡単じゃないの?
って、少しは頭使おうよw

546 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:24:21 ]
dim kazu[0 to 999]
dim i,kosuu
for i = 0 to n step 1
kazu[hoge[i]]++
next

for i = 0 to 999 step 1
if kazu[i] == 1 then kosuu++
next

VBの文法はまったく忘れたけど、こんなもんじゃない?

547 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:25:51 ]
ループで。



548 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:50:23 ]
>>545>>546の方法
どちらのほうがよいのか


549 名前:デフォルトの名無しさん [2010/04/01(木) 20:51:16 ]
>>546
VB6以前にインクリメントは無い
配列は丸括弧


550 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 20:57:27 ]
>>548
どっちがいいってもんでもなくて
nの個数とか速度とかメモリとかの状況によるでしょ
最後にゃ実際にやってみないとね

551 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 21:00:47 ]
連想配列使えばいいのに

552 名前:デフォルトの名無しさん [2010/04/01(木) 21:27:21 ]
ここって需要まだあるの?
ずいぶん前のじゃない?60

553 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:36:43 ]
>>552
良いか悪いかは置いといて需要はまだまだ多いぞ
いまだに新規案件で採用されたりするからな
Windows7でも動くしな

554 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:40:40 ]
新規案件で!!

555 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:48:30 ]
>>544,548
まとめ

その状態から重複していない事を担保するにはどんな方法でも最低n-1回のループは必須。
「ユニーク数のカウント」を最高速化したいなら、はじめから重複しないように追加しておくか、
そもそもカウントを配列追加時に行っておくのが正しい。

>>546の方法は、最大値の数だけ別配列を用意してバケツソート的手法でカウントしている。
このタイプの手法が使えるなら、これが概ね最速と考えられる。
だが>>546のコードはちょっと無駄が目立つ。ついでに999を越えても動作するようにしてみた。

Dim Huga() As long
Dim i As Long, Kosuu As Long
Redim Preserve Huga(999) '0〜999決め打ち
OnError GoTo AryErr '用意したHuga()のサイズが足りなかった場合エラーをトラップ
For i = 0 To Ubound(Hoge)
 If Huga(Hoge(i)) Then
  Kosuu = Kosuu + 1 'カウントアップ
 Else
  Huga(Hoge(i)) = 1
 End If
next
AryErr: Redim Preserve Huga(Hoge(i)): Resume 0 '999で足りなかった場合に増量して再処理

コーディング的には>>551の言うようにCollectionやDictionaryを活用するほうが手っ取り早い。(OnErrorが嫌ならDic)
数が少ない場合や、値が整数ではない(小数を含むなど)、または値の種類の範囲が大きい(0や999999999を含む)場合では
メモリ確保の時間的コストとメモリの量的コストが大きすぎる結果になり、>>546的手法は適さない。
結局のところ>>550

556 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:57:50 ]
set dic = createobject("scripting.dictionary")
for each h in hoge
dic(h) = dic(h) + 1
next
debug.print dic.count

557 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 22:58:51 ]
足す必要なかったw
set dic = createobject("scripting.dictionary")
for each h in hoge
dic(h) = "hoge"
next
debug.print dic.count




558 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:22:20 ]
ウインドウの×(閉じる)ボタンをおしても
ctrl+ALT+DEL で起動中のプログラムとかをみたときに
VBで作成したプログラムが残るのですが、どこが原因なのでしょうか?
ちなみにフォームは見れません。スタートアップのモジュールも終了しています。

559 名前:デフォルトの名無しさん mailto:sage [2010/04/01(木) 23:24:46 ]
そんなことは無い

560 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 00:01:48 ]
>>555
なにが偉そうにまとめだよw
そんなもの普通にソートしてやれ、ってのが常識だろ。
連想配列とか本気でいってるんか。

561 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 00:34:43 ]
>558
このへんじゃねーの
ttp://questionbox.jp.msn.com/qa633567.html

562 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 01:30:24 ]
>>560
古い人は皆そう言うな。

563 名前:デフォルトの名無しさん [2010/04/02(金) 01:55:42 ]
未だにVB6を新規案件ってことは
その客は
かなりショボイパソコンを使ってるってことか?

564 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 03:14:52 ]
>>563
言ったろ
VB6.0はWindows7でも動くんだぜ


565 名前:デフォルトの名無しさん [2010/04/02(金) 03:38:58 ]
発注側は何でどうして言語指定するのかなぁ
古いパソコンでも無いのならわざわざVB6指定する意味が分からない
VB6で作ったソフトウェアを商業目的に使うのに制約とかあるのかなぁ?
それとも発注側が何か弄るってこと?孫請けとかで部分的なの作れってこと?
いや、俺素人だから知らんのけどね


566 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 05:17:16 ]
VB6で構築したシステムが現役で稼動していて、少なくともあと10年はそのまま稼動させる予定。
で、業務の変更・追加に伴うシステムの修正・新規案件がががが

567 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 07:12:49 ]
既存システムへの追加とかならわかるけど
完全新規ではさすがに無いよね
しばらくVB.NETできてたけどだんだんC#のほうが増えてきた



568 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 07:23:39 ]
ここは、VBプログラマ質問スレというより職業VBプログラマ質問スレ

569 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 08:12:44 ]
>>568
仕事が絡まなかったら、それこそ今更覚えようなんてする奴はいないだろうしなぁ

570 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 09:22:45 ]
VBAには役立つけどね

もしくは人が足りなくてVBAしかできない奴にやらせようとしてるとか・・・


571 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 09:29:50 ]
Windows7以降のOSではVBAどうなる

572 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 10:01:20 ]
どうにもならんだろ。

573 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 21:06:46 ]
sage

574 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 21:08:30 ]
>>560
なんか典型的なVB厨の発想だなそれ

575 名前:デフォルトの名無しさん mailto:sage [2010/04/02(金) 21:11:33 ]
アンカーミスったw
上のは>>560じゃなくて>>562ね。


576 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 02:55:32 ]
>>569
ノシ
完全に趣味でVB6やってますお
10年くらい前にVB6LEを買って以来ずっとVB6しかやってないですお
今更新しい言語習得なんて億劫ですし
パソコンのスペック的にも最近の新しいVBはインストルでけませんですお
別にVB6だからって困ることは無いですお(LEはちょっと困ってますが)
当時学生で金も無かったのでLEしか買えなかったんですお


577 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 02:59:24 ]
最初はN88BASICを趣味でやってたんですお
そっからVB6へ変えたんですお
ですがかなり苦労しましたですお
勝手が違いすぎましたお
もうそんな苦労ゴメンですお
なので今でもVB6使ってますお



578 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 03:03:22 ]
プログラミングは僕の中の趣味のランキングでは4位か5位くらいに相当するのですお
たまに気が向いた時だけプログラミングするだけなので未だにプログラミング能力は初心者に毛が生えた程度あるか無いかですお
ベーシックマガジンという雑誌だけを頼りにN88BASICもVisualBasicも覚えたんですお


579 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 10:29:24 ]
>>576
俺漏れも。学生時代に購入してアカデミック何とかが有効だったからプロフェッショナル版買った
確かLEとの差は数千円だったような気がしたから欲張ってこっち選んだと思った

580 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 21:43:33 ]
>571
Officeがある限り安泰です

581 名前:デフォルトの名無しさん [2010/04/06(火) 01:09:50 ]
Microsof HTML Object Library (mshtml.dll)の
Scriptletコントロールって何に使うコントロールなの?

Microsoft Internet Controls (ieframe.dll)の
WebBrowserコントロールと同じ?


582 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 01:38:02 ]
そのWebBrowserのgetPropertyとかputPropertyの使い方がワカラン
プロパティってどんなのがあるの?
このプロパティ弄れば、個別にJavascriptをOFFにしたり、画像非表示にしたりとか出来るの?

583 名前:デフォルトの名無しさん mailto:sage [2010/04/09(金) 21:41:03 ]
>JavascriptをOFFにしたり
VB6以前では何か無理みたいですよ。よく知りませんが,
OnAmbientPropertyChangeメソッドを実装する必要があるようです。
VB界のあの大御所ですら完全には出来てないようですし。

584 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 05:19:02 ]
>>583
あぁ、それ以前調べたけど、俺の拙い知識と技術じゃ全くむりぽかった。
JavaScriptと画像表示切りたかったんだけどなぁ・・・

585 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 18:31:16 ]
VB6.0に付属してるWebBrowserコントロールは
Trident(MSHTML.dll) HTMLレンダリングエンジンを使ってるんですよね。
ここで疑問なのは、VB6.0でWebBrowserコントロールを使う場合でも常に、systemフォルダにあるMSHTML.dllの最新の機能が使えてるのかということです。(まぁ、当然かな)

MSHTML.dllのバージョン としては下記のようです。

/ Trident MSHTML.dll IE
/ 4.0.x 4
/ 5.0.x 5
/ 5.5.x 5.5
/ 6.0.x 6
/ 3.1 7.0.x 7
/ 4.0 8.0.x 8 <- Tridentとしては初めてAcid2テストを通過

ちなみに、自分のパソコンのmshtml.dllのバージョンを調べたところ
ファイルバージョン 7.0.6000.17037(製品バージョン 7.00.6000.16386)
更新日時2010/03/10 1.52となってました。

586 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 11:02:08 ]
既存のVB6プロジェクトに含まれるファイル(*.cls|*.bas|*.frm)を調べて、
使われていないクラスファイルを見つけたいと思います。

プロジェクトに含まれるファイル(*.cls|*.bas|*.frm)を開いて、
全てのファイルで「 As (クラス名)」という文字列が含まれていない
クラスファイルは使われていないクラスファイルとして処理しようと
していますが、「 As (クラス名)」以外でクラスファイルを参照する
方法があるでしょうか?


587 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:08:53 ]
>>586
自己レスです。「 As (クラス名)」の他に「= New (クラス名)」もありますね。
他に見落としはないだろうか・・・



588 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:26:54 ]
implements

589 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 13:52:20 ]
TypeOf ... Is

590 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 14:40:53 ]
CreateObject

591 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 15:01:55 ]
CreateObjectがアリだと他にもいっぱい出てくるな・・・

592 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 15:11:07 ]
CreateObject 関数
ActiveX オブジェクトへの参照を作成して、返します。


593 名前:デフォルトの名無しさん mailto:sage [2010/04/12(月) 15:31:25 ]
TypeName
Controls.Add

594 名前:デフォルトの名無しさん [2010/04/13(火) 00:47:40 ]
リッチテキストボックスコントロールで
プログラミングでよく使われるようなエディタ風(特定単語を色分けや字体変えたり、行番号表示したり)
を作るのって
難しい?

595 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 00:57:57 ]
とても難しいです

596 名前:デフォルトの名無しさん [2010/04/13(火) 00:58:57 ]
そうか、残念

597 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 07:05:56 ]
テキストエディタってどういうデータ構造で持てばいいんだろうな
考えるだけでむずかしー



598 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 07:11:49 ]
テキストで持てばいいんじゃね?

599 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:09:43 ]
テキストファイルをFileSystemObjectのTextStreamで開く
一行ずつ読み出しては解析してRichTextBoxに追加&装飾
文末(EOF)まで繰り返す
タブ記号や改行記号もなんとかして加える


600 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:27:41 ]
そうかー
文字データと装飾データを別に持てば意外といけるかー

601 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:33:24 ]
むしろリッチテキスト使わずに
オリジナルコントロール作っちゃえばいい
UserContorolにPictureBox配置して
PictureBoxにテキストファイルを描写
カーソルや範囲指定、日本語入力と色々と頑張る必要はあるけどな

602 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:42:27 ]
結論 古いVBではエディタは作れない

603 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 14:56:59 ]
できた
Dim x as Integer, y As Integer, sen as Boolean
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Select Case KeyCode
    Case 39 : x = x + 1
    Case 40 : y = y + 1
    Case 37 : x = x - 1
    Case 38 : y = y - 1
    Case 13
      y = y + 1
      x = 0
  End Select
  Me.Refresh
End Sub
Private Sub Form_Paint()
  Me.PSet (0, 0)
  Me.FontName = "MS ゴシック"
  Me.Font.Size = 16
  Me.Font.Bold = True
  Print "あいうえお"
  Print "かきくけこ"
  Print "さしすせそ"
  If sen Then Line (x * 20, y * 20)-(x * 20, y * 20 + 20)
End Sub
Private Sub Timer1_Timer()
  If sen Then sen = False
  Else sen = True
  Me.Refresh
End Sub


604 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:04:13 ]
画面のチラつきを抑えるには
PictureBoxコントロールを2つ用意し
一方はAutoRedrawをTrue、VisibleをFalseにして
毎度Clsして全て描写
そしてもう一方はAutoRedrawをFalseにして
さきのPictureBoxの描写が終わったのを見計らって
PaintPictureでさきのPictureBoxのImageを描写する
これでチラつきが消える

605 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:06:49 ]
うそつき

606 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:10:25 ]
If sen Then Line (x * 20, y * 20)-(x * 20, y * 20 + 20)



Dim w, h
w = TextWidth("あ")
h = TextHeight("は")
If sen Then Line (x * w, y * h)-(x * w, y * h + h)


607 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:19:59 ]
>>606
おお
便利そう



608 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:25:19 ]
オブジェクトブラウザ眺めてりゃ結構便利なメソッドや関数や定数見つかる

609 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:28:15 ]
(´・ω・`)

610 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 15:30:40 ]
そういやオブジェクトブラウザ上のLineメソッドって
Sub Line(Flags As Integer, X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long)
ってなってるけど何でだろう?

611 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 16:03:09 ]
APIのCreateThreadってVB6で扱える?

612 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 16:21:28 ]
確か扱えたと思うけど、一時中断とかすると即死したような気がする。

613 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:09:40 ]
IDEとの相性は最悪だったきがするな
以前、それも考慮に入れてつくればいいとかしつこく言ってた奴がいたが

614 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:11:30 ]
ActiveXexeにしてマルチプロセスにしたほうがいいね

615 名前:デフォルトの名無しさん mailto:sage [2010/04/13(火) 17:30:06 ]
やはり無理か・・・マルチプロセスなら簡単そうだな。それにする

616 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 02:51:36 ]
>>582-585
VBじゃないけど、
DonutとかいうTrident使ってるブラウザで
ページごとに個別に設定できるから
VBでも可能だと思うよ
DonutはうちのWin95のIE5.5で確認したから
MSHTML.dllはIE5.5以上なら出来るはず


617 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 02:52:37 ]
Donutじゃなくて派生ソフトのDonutLってソフトだった。
先日VectorからWin95パソにDLったのよ



618 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 03:06:58 ]
>>616-617
実現するためには引き渡すオブジェクトの定義が必要で、
大元の問題は、そのクラス定義がVB6だけでは書けないって事だったと思う。(もううろ覚え)

IE操作する機能のために、定義を他の方法で書いて用意しなきゃいけないくらいなら、
いっそ最初から外部DLLとして作って渡したほうが良いんじゃないかって感じで形骸化してる。

619 名前:616 mailto:sage [2010/04/15(木) 04:34:08 ]
俺、素人なのに生意気に意見してゴメンお

620 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 15:10:23 ]
VBで関数ポインタを呼び出す
ttp://nienie.com/~masapico/doc_FuncPtr.html

これってどうなの?


621 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 15:35:01 ]
>>620
DEPで落ちるんじゃないか

622 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 16:22:46 ]
>>610
Line等は古代のBASICとの互換性のため特殊な文法になっている
COMオブジェクトレベルではそのパラメータに変換して呼び出されている
従ってCallByNameでLineメソッドを呼ぶ場合はFlagsが不詳だがこんな感じ
CallByName Me, "Line", VbMethod, CInt(32+8+2), CSng(15), CSng(30), CSng(40), CSng(40), CLng(vbRed)


623 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 16:46:40 ]
なるほど

624 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:38:36 ]
超初心者ですが、VB6で質問があります。
画面の無いモジュールのソースを見る必要があるのですが、標準モジュールとクラスモジュールがたくさんあり、実際にそのモジュールを使用する際にどのモジュールから処理が開始されるのかわかりません。

また、一つのモジュールの処理完了後に、どのモジュールに行くかもよくわかりません。

ご教授、もしくは参考サイトなど、お願い出来ますでしょうか?

625 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:47:39 ]
sub main()からだよ

626 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 20:49:28 ]
>>624
関数とかクラスというものは知っていますか?

627 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:18:07 ]
>>626
関数はわかります。
SUBやFUNCTIONの後に定義し、引数が必要であれば与えてやり、FUNCTIONであれば帰り値があるんですよね。

クラスは今いちわかりません。イメージ的には変数やプロシージャをまとめた物で、他のモジュールで上手く流用してやるというイメージです。



628 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:21:24 ]
初心者ならすぐにC#かJavaか最低でもVB.NETに乗り換えるんだ
会社でVB6を覚えなければならないなら、ご愁傷様だが

629 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:23:21 ]
>>625
sub main()でプロジェクト内を検索してみれば良いのですね。ありがとうございます!

そこからそのモジュールを上から下に実行していき、最後のプロシージャで次にどのモジュールに行くか書いてある感じですかね。

なんかイケそうな気がします!頑張ってみます。

630 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:26:19 ]
>>628
まさしくご愁傷様です。ですがC#も勉強していこうと思ってます。VB6をある程度わかるようになってから並行して勉強しようと、、。

631 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:30:37 ]
>>629
モジュールに書かれているプロシージャを上から順番に
実行していく(1個目のプロシージャが終わったら
2個目のプロシージャを実行、…、どんどん順番に
実行していって、最後のプロシージャの実行が終わったら、
そのモジュールの実行が終わって、次のモジュールを
実行する)と思っているなら、それは間違いだよ。


632 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:32:20 ]
>>631 のように思っているなら、関数というものが
理解できていない(関数はどのようにして実行される
のかが理解できていない)ということになるね。


633 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:35:08 ]
>>631
なるほど、ではなくsub main()から始まるモジュールを上から下に処理していき、その中で他のモジュールを利用するという感じでしょうか?
そのほうがなんとなく納得出来る気がします。

634 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:38:54 ]
>>632
多分そうです。ですが、なんか今までのソースの見方が意味不明だったのが解決出来そうな流れで、非常に興奮してます。

sub main()から始まり引数付きで他のモジュールのプロシージャを呼び出し、その帰り値を貰ったりして進んでいく感じですかね?

635 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 21:47:22 ]
VBにはステップ実行があるから、一度やってみるといい

636 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:05:48 ]
>>635
ありがとうございます。ネットでサンプルコードを拾って色々やってみます。

637 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:16:10 ]
>>634
だいたいあってる



638 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 22:17:28 ]
>>636
そういう意味ではなくて、[F8] を連打しろ、という意味だ。

639 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 23:23:53 ]
>>638
うん、そういう認識です。

実際やってみたら割と思うように進んで納得しました。呼び出し元と呼び出し先、またそこが呼び出し元になって、さらに戻って〜みたいな流れで最終的にはメインの最後で終わる感じですね。

あとはクラスモジュールやAPIの使用なんかは少し難しい感じがしますが、頑張ってみます。

640 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 15:20:50 ]
>>585
ちなみに、IE8のMSHTML.DLLはそのまま使うとIE7互換モードになることに注意。
blogs.msdn.com/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx

641 名前:デフォルトの名無しさん mailto:sage [2010/04/17(土) 15:50:42 ]
>>640
そうでしたか。 トン

642 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 18:12:28 ]
VB6で質問です。
ListViewで上の要素をクリックするととりあえず降順にソートしてくれるけども、もう一回クリックで昇順とかは
.NETなら見つかるんだけんども、VB6は無理なんでしょか?

643 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 19:43:27 ]
>>642
できるよ。

644 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 22:51:36 ]
>>642じゃないけど、ListViewで安定ソート出来ないもんかしら?
やっぱソートを全部自前でやるしかない?


645 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 23:35:21 ]
>>644
そもそもGUI部品にソート機能を持たせよう、
って発想が間違ってることにいい加減気がつこうよ。

646 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 23:58:33 ]
表示の降順・昇順ソートは普通じゃないの? Explorerとかの日付ソートとか。

まあともかく…
できなくはないけど安定しない、思想がよろしくない。で、いいのかしら?

647 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:17:04 ]
ソート?エクセルにデータ渡してソートしてもらって再取得とかじゃダメなの?



648 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:18:14 ]
は?

649 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:32:42 ]
>>646
ソート機能を否定してるんじゃなくて、
ソート機能をGUI部品に担わせるのが間違ってるといってるんだよ。

650 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:36:29 ]
どう違うんだ?

651 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:40:03 ]
打っても響かないところがVBスレらしいところだなw

>>650
ソートする責任はListViewに表示しているアイテムを集約してるオブジェクトに
持たせるべき、ということ。

652 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 00:43:37 ]
それって否定だろ?

653 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:00:29 ]
これがVB脳の恐怖か....

654 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:08:15 ]
ListViewは数字でのソートが・・・上位桁に0埋めて桁合わせないと数字の大きさ順にソートしてくれなかった

655 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 01:09:28 ]
>>653
おまえは鳩山か?

656 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 07:08:37 ]
バブルソートでおk

657 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 10:38:20 ]
>>652
「ListViewソート機能の否定」ならわかるんだが
単に「ソート機能の否定」ってと「ソートすんな」だよね?
ListViewじゃなくてオブジェクトで「ソートしよう」って言ってるのに、なんで「ソートすんな」なんだ?



658 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 16:05:16 ]
>>651
しかし見た目を掌るListViewが見た目のソートを持たないというのも微妙な気が。
データそのものやその扱い自体のソートなら内部で持つべきだと思うけど。

ともかく。
ふつうにはやりにくい、でいいのかしら?
>>642のひとの手法が知りたい…使い物になるのかはさておいて。

659 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 16:14:21 ]
ListViewの昇順降順くらい

Private Sub ListView1_ColumnClick (ByVal ColumnHeader as ColumnHeader)
Let ListView1.SortKey = ColumnHeader.Index-1
Let ListView1.SortOrder = lvwAscending :Rem 昇順。降順ならlvwDescending
Let ListView1.Sorted = True
End Sub



660 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 17:28:33 ]
すると、クリック毎に入れ替えると

ListView1.SortKey = ColumnHeader.Index - 1
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
ListView1.Sorted = True

かな

661 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 17:53:22 ]
lvwAscendingとlvwDescendingの値は1と0だから
ListView1.SortOrder=1-ListView1.SortOrder
でおk

662 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 17:55:01 ]
Withくらい使えよ・・

663 名前:デフォルトの名無しさん mailto:sage [2010/04/22(木) 18:13:32 ]
Withとかきめぇ

664 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 17:57:51 ]
>>594
やってみた
RichTextBoxでjavaファイルをTeraPad風に色とボールドしてみた
ファイルを読み込んだ時だけ色・ボールドするので
中身編集すると・・・めちゃくちゃにはなる
やり方が悪いのかもしれんがファイル大きいと結構時間かかる

結論:RichTextBoxでやるのは無理がある

665 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 07:09:38 ]
>>594 >>664
こんなんどう?
非表示でIEやリッチテキストに描画させて、それをPicture内に再描画して提供。
右クリックやドラッグなどの処理は透過的に処理する。

まぁ面倒くさい事に変わりはないな。



666 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 07:25:57 ]
それだと文字位置などの管理が無理だな
すべて自分で描画したほうがラクだろ

667 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 08:11:32 ]
>>666
そうかね?
クリックも全部裏のコントロールに渡せばカーソル位置や文字の選択もそっちが勝手にやってくれるんじゃない?
実際に試して話してるわけじゃないけど。



668 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 08:22:24 ]
実際試してみろよ
そもそもそんな使い方ならピクチャに再描画する意味なんてないだろ

669 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 08:36:17 ]
>>668
意味は、うーんあんまないかもなw
描画エンジンを自前で作りたくないし、リッチテキストの処理は非常にめんどくさいのでパスしたいのさ。
俺がやるなら内部にIE一匹飼ってHTMLで表示を作る。CSS使って自由度高いし。
で、入力はフックしてHTMLに変換して制御とか。

670 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:05:00 ]
入力部(カーソルなど)が問題だってのになにいってんの

671 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:18:24 ]
>>603がすばらしいじゃん

672 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:23:00 ]
笑えない冗談だ

673 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:26:10 ]
www7a.biglobe.ne.jp/~sigotnin/delphi.htm
これ使えない?

674 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 09:29:08 ]
まあ>>603にはかなわないか

675 名前:デフォルトの名無しさん [2010/04/24(土) 20:56:25 ]
>>603みたいなやり方だと
日本語入力とか出来ないよね?
KeyDownやKeyPressイベントじゃIMEとかの日本語入力使えないよね?

676 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 21:29:22 ]
え?どこに入力が?

677 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 21:33:29 ]
IMEの制御くらいAPIでいくらでもできますよ



678 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 23:26:26 ]
>>594のってエディタ作るんでしょ?>>603のってエディタになってなくね?

679 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 23:48:22 ]
だからみんな相手してないんじゃん

680 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:54:56 ]
まあRitchTextBoxを使うのが一番簡単だとは思う。
入力した文字にシンタックスカラーがリアルタイムで適用されるような
応答性の高いものは難しいと思うけど、以下の方針で作ればそれなりに
実用的なものはできるんじゃないか。

- テキストの解析とシンタックスカラーの適用は、タイマーを使って一定時間ごとに一行ずつ行う。

- 上記タイマーは、Changeイベントで起動し、全行の解析が完了時点で停止する。

- 行の解析は、タイマー起動時の現在行か、またはその1行上の行から開始する。

- 行番号表示は、左側にもう一つ別の行番号専用のRitchTextBoxを置いて実現する。

681 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 00:59:51 ]
VB厨はコントロールに頼りすぎる

682 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:22:40 ]
>>680
そんなアホな事をする位だったら自作したほうがラクだろ?

683 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:34:19 ]
>>682(あと>>681)
またそういう寝ぼけた事を言う。
そう思うならやってみたら?
まあやってみなきゃ大変さが分からない時点で君がダメグラマなのは確実だな。

エディタの類はVBじゃなくても一から実装するのは難しい部類に入るプログラムなのに、
低レベルのコーディングにまったく向いてないVBでやったら気が狂うこと確実だわ。

しかし、エディタを書けるかって質問して舐めたこというかどうかで
ダメな奴を見分けられそうだよなw

684 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:43:30 ]
寝ぼけた事を言ってるのは>>680(あと>>683)だが

685 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 01:46:04 ]
682だけど、
以前やってみたから言ってんだよ。

686 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:37:31 ]
やってるわけがない。
やってたら>>682みたいな戯言が言えるはずがない。
だからVB厨って言われる連中はダメなんだ。

687 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:42:33 ]
ではお前が作ったRutchTextBoxを使ったエディタを見せてくれないか?
俺はリアルタイムの色変更とスクロール、文字位置制御で挫折したんだ
えらそうに言うくらいだから、できたんだろうな?



688 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:44:34 ]
>>680
些細なことだけど
×RitchTextBox
○RichTextBox


689 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:44:38 ]
技術的な難易度を指摘してるだけなのに、いつのまに俺がRutchTextBox(笑)
を使ったエディタを作ったことになってるんだろう。

訳がわからん。

690 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:45:22 ]
>>687
些細なことだけど
×RutchTextBox
○RichTextBox

691 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:46:30 ]
>>689
てめえが難癖つけてきたんじゃねえか糞野郎!!!!!

692 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:47:09 ]
>>680
行番号表示って、編集してるほうのカーソル位置とかスクロールに合わせてスクロールさせるんだよね?
RitchTextBoxのスクロール量の取得・設定てどうやるの?

693 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:52:34 ]
VB6のIDEだと編集中の行は色づけが解除されるよね

694 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:53:12 ]
>>692
↓の454のサンプルの方法で可能なはずだと思った。
もう長いことVB6使ってないんで記憶が確かなら、だけど。
web.archive.org/web/20030110071501/www.vbvbvb.com/jp/gtips/index0451.html

695 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:53:44 ]
解除されるのでもいいから、リッチテキストでやってみろよ

696 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 03:07:47 ]
>>692
ごめん、君の文章を少し読み間違えてたようだ。
でも>>694のサンプルにはそれも一応載ってるな

697 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:06:19 ]
OS、Windows2000じゃないんですけど



698 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:07:02 ]
めちゃくちゃ重いサイトだな

699 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 04:33:29 ]
>>692
API

700 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 07:27:25 ]
GWはテキストエディタつくろーっと

701 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:25:04 ]
別にあなたが何しようとどうでもいんですけど・・・^^;

702 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:30:53 ]
気になるくせにーw

703 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:44:19 ]
反応早すぎだろうw
気にしてるのがどっちか丸分かりじゃねーかw

704 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:52:19 ]
一日中2ちゃんしてるからw

705 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:15:51 ]
VB6でデータベースの列を追加する方法か、その内容をひっかけられるMSDNの語句を教えていただけないでしょうか。
.NETやC#ならすんなり当たるのに…世の中つらい。

706 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:17:14 ]
alter tableするだけじゃねーの?

707 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 14:31:02 ]
扱いは追加じゃなくて変更なのか…d。
ググるとそこそこあたるので探ってみる。



708 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 17:31:07 ]
つうか、SQLの知識のほうじゃねぇか…

709 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:55:03 ]
>>708
ああ、そうか… って、VBでSQLなスレ見つけたけど、中身がわりと残念な進行してるねえ。
むこうで聞いて大丈夫だろうか?

710 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 21:29:41 ]
DBはDB板へ

711 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 02:33:05 ]
>>705
まずどうやってデータベースに接続してるのか?
まあ、DAO.TableDefかADOXを調べてみろ

つかここ見れば解決
msdn.microsoft.com/ja-jp/library/cc948693(v=msdn.10).aspx


712 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 18:50:25 ]
VB6付属のMSDNライブラリのVBのLogの項目で

Static Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function

ってあったんだけど、これってStaticつけられてるけど何か意味があるの?

713 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:07:17 ]
実行速度が遅くなる以外は違いがない気がするな

714 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:22:42 ]
インスタンス無くてもアクセスできる

715 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:01:46 ]
なぜインスタンスが?

716 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:16:03 ]
C++とは意味が違う

717 名前:デフォルトの名無しさん [2010/04/28(水) 19:20:06 ]
Property Let とか Property Set は斬新だった




718 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 09:35:43 ]
b() = Inet1.OpenURL(strURL, icByteArray)
でバイト配列にデータを格納したら
そのあとは
どんなプログラムを書けばハードディスクに記憶できるのか

719 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 10:30:15 ]
ファイルを作って書き込めばいい。

720 名前:デフォルトの名無しさん [2010/04/29(木) 11:18:24 ]
>>718

b = Inet1.OpenURL(strURL, icByteArray)
fn=FreeFile()
Open "File.txt" For Binary As #fn
Put #fn, , b
Close #fn

721 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:32:29 ]
サンクス

722 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 01:06:10 ]
またVB厨か
el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html

723 名前:デフォルトの名無しさん [2010/04/30(金) 02:19:34 ]
>>720
この方法のヤバさと言ったら
File.txtが既に存在していて
書き込むbのサイズよりファイルサイズが大きい場合だよね
超ヤバイ

724 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 05:57:50 ]
なにが?

725 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 09:58:29 ]
引き出したい言葉を普通に質問すればいいのに

726 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 15:25:44 ]
>>723
サンプルにエラー処理の事でつっこむとかバカなの?

727 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 15:27:14 ]
>>722
60年代前半生まれだしな

つうかSAPて言語・・・なのか?w



728 名前:デフォルトの名無しさん [2010/04/30(金) 17:33:14 ]
>>726
エラー?

729 名前:デフォルトの名無しさん [2010/05/04(火) 00:24:00 ]
つい最近、Trueの値が-1である理由に気づいた。
もう10年以上(まぁかなりの素人ではあるけれど)プログラミングに触れてきてるのにね。
2の補数のビットで表現してたって本当つい3日前に気づいた
Falseがビットが全部0に対してTrueはビットが全部1
ビットが全部1だと2の補数だと-1になるという・・・
ずっと昔から、何で1じゃなく-1なんだろうと思ってた・・・その疑問がやっと解決した・・・


730 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:39:23 ]
全部0とそれ以外
それだけだと思うんだ

731 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:43:18 ]
Debug.Print "True="; CInt(True) ' -1
Debug.Print "False="; CInt(False) '0

732 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:44:56 ]
CBool(1) さて・・・どっち?

733 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:46:46 ]
誰もそんな話してないけどな。

734 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:46:47 ]
Dim a,b
a=10
b=20
Debug.Print CInt(a < b)

735 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:02:02 ]
宇宙線の影響を考えると1ビット反転でコンピュータ障害がおきかねないな



736 名前:デフォルトの名無しさん [2010/05/04(火) 23:28:37 ]
原因不明のエラーはWindowsMeのせいじゃなくて、宇宙線のせいだったんだな。それなら仕方ないな。

737 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 00:40:56 ]
ageてまで言うような事なのか?



738 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 01:01:06 ]
そこはスルーしとけ

739 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 10:32:50 ]
なんでもWindows Meのせいにするのは天江衣

740 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 00:59:32 ]
顧客「おたくのアプリケーション、ちょくちょくエラーが出るんですけど
営業「宇宙線の影響なので仕方ありません
顧客「なんだ宇宙線のせいなのか。それならば仕方ないな。

使える!

741 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 10:00:50 ]
ねーよwwww

742 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:52:26 ]
なんのためのECCか

743 名前:デフォルトの名無しさん [2010/05/08(土) 00:17:54 ]
英語塾?

744 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:23:58 ]
ECCで訂正できるのって1bitのミスだけで2bit以上は検出だけじゃなかったっけ

745 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:28:41 ]
ミスるメモリだとわかる点だけでも価値はあったんだぜ

746 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:31:56 ]
エラー検出訂正 (error detection and correction)?

747 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 02:32:50 ]
クラスモジュールでグローバルな変数・定数・メソッドを使うのに抵抗があります



748 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 10:01:21 ]
>>747
それは明らかにおかしい
必要ならば使うしかないだろ


749 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 14:40:47 ]
俺は使いまくり。とても人に見せられるソースじゃない

750 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 19:30:36 ]
グローバル変数は害悪
定数やメソッドは問題ない

751 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 14:03:49 ]
>>750
そのへん含め.NETになったと聞いたけど、そうなのかしら? .NET触ったことないからよくわかんないけど。

ところで。
Windows7でMSCommがマトモに動いてくれないのだが、なにか情報出てたりしますか?
MSComm使って無さそうなソフトだと(ActiveX?)普通に受信するのに
MSComm32を使ったアプリだと、[ 通信デバイス読み取り時にエラーが発生しました(8020) ] を返してくる…。

USBtoシリアルとWindows7の組み合わせが悪いのか、Windows7だけの話なのか?

752 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 14:13:30 ]
うちの環境で

DELLノート Win7+エレコムのUSBシリアル
でソフト書いても問題なかったけどなぁ
VB6でもC#でも

753 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 14:21:08 ]
APIで書き直せばおk

754 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 14:36:04 ]
>>752
マジカ
おのれIOデータ

とりあえず、受信バッファに何かあるときに MSComm.Inputすると出るの。
それ以外は出ないし送信もできるのに…。

>>753
それは最終手段にしたい…。

755 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:53:45 ]
まず本当にOSの問題かどうかの裏をとろうよ。
そんなこと言ってるからVB厨とか言われちゃうんだよ。

756 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:03:34 ]
IOデータってOSなの?

757 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:09:54 ]
おのれIOデータのUSBシリアルめ、という意味なんだろう



758 名前:754 mailto:sage [2010/05/12(水) 22:38:13 ]
IOデータのサポートに言ったら、他にそういう報告はないとのこと。
とりあえず1世代前の製品の最新ドライバ入れてみてという変なこといわれた。
やったら治った。

なんぞーっ
ドライバがこなれてないのかしら。

>>755
XPで起こらないのは確認済み。

759 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 01:44:06 ]
自分に限界を感じた
データベースというのがさっぱり理解できない
データベースそのものもわけわからんのだが
それを扱うメソッドもよくわからん
VisDataもヘルプ読みながら使ってみたがよくわからん
これは
もう完全にセンスの問題だと思う。俺のプログラミングに関するセンスがダメなんだと思う
家計簿的なもの作ってやろうじゃんと思ったけど
さっぱりだ。
そもそもデータベースの入門書みたいな本とかもまったく理解できなかった
これは致命的だろう
ああ、くそだ

760 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 02:30:57 ]
バイナリアクセスモードでファイル開いて
putやgetでstringの読み書きって半角や全角や制御コードとか全部2バイトデータかな
dim s as string * 20
put #1, , s
put #1, , n&

get #1, , s
get #1, , n&
で取り出せるよね? sの内容にかかわらず


761 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 02:31:58 ]
回答待つより自分で試したほうが早いか・・・やってみるお

762 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 08:23:17 ]
>>759
こういう人が居ると安心する。
自分は頭がよくてよかった。

763 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 12:49:35 ]
>>759
マジレスしたら
センスの有無はあるだろうけど
要は慣れだと思う

俺でもできるんだ
俺だって最初はまったく理解できなかった

764 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:18:53 ]
>759
DBを使わず、自分でファイルの読み書きするプログラムを書いたことはある?
まずはそれからだと思うが・・・」


765 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 01:29:14 ]
>>759
その「入門書」のタイトルを教えてくれれば、
何かアドバイスできるかも知れないな。
(もっと適切な入門書を紹介するとか)

766 名前:759 mailto:sage [2010/05/17(月) 01:47:04 ]
なんかいっぱいレス下さって・・・意外です^^;

>>762 士農工商より下の位がいるみたいな感じっすかね

>>763 もう諦めの境地ですから、試行錯誤的にやってみてもエラーメッセージとか意味不明すぎて
 MSDNの説明じゃ要領得なくて、ネット検索とかもう探すの面倒になりましたっす

>>764 当初は、DB使わず、データをLongやStringの配列で自前でデータ管理しようと試みたんすけど
 データを表示する表みたいなコントロール?(DataGridとか)がイマイチ使い方が理解できなくって
 そのコントロールってデータベースのデータ使ったほうがいいのかなって思って
 データベースに挑んでみたですけど、まぁ忍耐の限界っす

>>765 書籍タイトルはちょっと分からんです、図書館で立ち読みでしたので
 データベースの本はほとんどMicrosoftAccessの使い方の本ばっかでそれらは読んでないです
 大学時代に一応データベースの授業受けたんですけど、ちんぷんかんぷんで、出席点だけで単位を貰った感じっす

まぁ趣味でやってる程度なんで、どうしても出来る必要ってないんで
でもみなさんの気持ちには感謝っす
 



767 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:00:26 ]
あきらめろよ。



768 名前:759 mailto:sage [2010/05/17(月) 02:08:47 ]
>>767
書き損ねましたっすが、はい、あきらめてます

769 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:27:49 ]
愚痴るだけとか士ねよ

770 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 02:33:17 ]
家計簿程度ならエクセルで十分なキガス

771 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 15:42:08 ]
初心者ならVBAでいいな

772 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 17:51:52 ]
でもまぁ、集計とかその辺が入るしなぁ
どうせやるならDBだろ と思うんだが

773 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 18:03:02 ]
趣味で古いVB使うってどんな状況なんだ?

774 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 20:02:03 ]
>>773
使わなくなったVBを貰ったとかいうのはどうか。
あとは昔からのBASICはよく知ってるんだが、.NETの具合にクラクラしたとかどうか。

775 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 20:35:32 ]
>>576
>>579

776 名前:デフォルトの名無しさん [2010/05/17(月) 21:29:52 ]
質問させて下さい。
VBScriptを使用して開発を行う際、
何のエディタを使っていらっしゃいますか。

ASP(VBScript+HTML)で開発することになったのですが、
使用するエディタを何にしようか迷っています。
詳しい方がいらっしゃいましたら教えていただきたいです。

※候補としてはVisual web developer 2008 expressを考えています。

777 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 22:12:39 ]
趣味で家計簿みたいなのを作るならExcelVBAがいいと思うよ。
表みたいなやつはもともとデフォルトでついてるし(Excelだから)
結構いろんなこともできる。
VBで画面作ってデータベースに接続して・・・・となるとそりゃ
趣味の範囲としては難しいよ。



778 名前:デフォルトの名無しさん [2010/05/19(水) 01:33:39 ]
複数のテキストボックスをテキスト形式で保存するプログラムを作成しています。
なんとか「保存」「読み込み」のボタンを設置し異常なく作動しました。
ここまではいいのですが、よく考えたら起動時に自動で読み込んでくれると
便利だと思うのですが、検索してもなかなか出てきません。
お詳しい方ご教授頂けると嬉しいです。宜しくお願い致します。


779 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 01:36:24 ]
Form_Loadで処理すればいいんじゃないの?いや、俺も初心者レベルだけど

780 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 01:47:47 ]
Private Sub Form_Load()
Dim f As New FileSystemObject
Dim t As TextBox
For Each t In Text1
t.Text = f.OpenTextStream("Data" & t.Index & ".txt").ReadAll()
Next
End Sub

こんな感じ?


781 名前:779 mailto:sage [2010/05/19(水) 01:55:47 ]
>>780も俺のレスだけど、>>779,780は無かったことにして欲しい。俺の勘違いだった

782 名前:778 [2010/05/19(水) 09:47:49 ]
すいません追加事項を
起動時に自動で読み込み、なおかつ参照ファイルが存在しなければ
作成する。を追加でお願いします。


783 名前:デフォルトの名無しさん mailto:sage [2010/05/19(水) 15:18:27 ]
>>758
マジで? おれも数ヶ月前に同じようなこと聞いて同じような回答をもらったが、あきらめて
Ratocのやつに買い換えたよ。
もう一度試してみる価値ありかもな。

784 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 00:30:58 ]
>>782
よくわからんけど、どういうことなの?

785 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 00:38:19 ]
自分で考えるつもりはなくて
人に作って欲しいってことじゃね?w

786 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 00:46:35 ]
MDIフォームで作ってんのか?

787 名前:デフォルトの名無しさん mailto:sage [2010/05/20(木) 00:54:11 ]
>>778の言いたいことを少しずつみんなで推理していこう
まずこれ
>複数のテキストボックスをテキスト形式で保存するプログラムを作成しています


う〜ん・・・
複数のテキストボックスをテキスト形式で保存???
これは・・・・テキストボックスの内容をテキスト形式のファイルに保存してるってことなのかな?
1つのテキストボックスに対してファイルを一つ用意するのかなぁ・・?





788 名前:デフォルトの名無しさん [2010/05/20(木) 22:24:38 ]
age

789 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 00:50:30 ]
フォームロード時にファイルシステムオブジェクト使えば簡単に処理できます

790 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 16:01:21 ]
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\wmi")
Set colitem = objWMIService.ExecQuery _
("Select * from WmiMonitorID")
For Each objitem in colitem
Wscript.Echo
Wscript.Echo "シリアル: "& objitem.SerialNumberID[]
Next

win7ですが、シリアル採集できるはずですが、ステートメントの末尾が不正エラー出ます。
YearOfManufactureとかは採集できますが、[]のなかになにかいれないとだめなんでしょうか。

791 名前:デフォルトの名無しさん [2010/05/21(金) 17:03:55 ]
角かっこを私は知らない

792 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 17:17:07 ]
かっこわるい

793 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 17:22:47 ]
ひとまずwinmgmtsでググってみたよ
おれには分からない






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<172KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef