VBプログラマ質問スレ ..
552:デフォルトの名無しさん
10/04/01 21:27:21
ここって需要まだあるの?
ずいぶん前のじゃない?60
553:デフォルトの名無しさん
10/04/01 22:36:43
>>552
良いか悪いかは置いといて需要はまだまだ多いぞ
いまだに新規案件で採用されたりするからな
Windows7でも動くしな
554:デフォルトの名無しさん
10/04/01 22:40:40
新規案件で!!
555:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/01 23:22:20
ウインドウの×(閉じる)ボタンをおしても
ctrl+ALT+DEL で起動中のプログラムとかをみたときに
VBで作成したプログラムが残るのですが、どこが原因なのでしょうか?
ちなみにフォームは見れません。スタートアップのモジュールも終了しています。
559:デフォルトの名無しさん
10/04/01 23:24:46
そんなことは無い
560:デフォルトの名無しさん
10/04/02 00:01:48
>>555
なにが偉そうにまとめだよw
そんなもの普通にソートしてやれ、ってのが常識だろ。
連想配列とか本気でいってるんか。
561:デフォルトの名無しさん
10/04/02 00:34:43
>558
このへんじゃねーの
URLリンク(questionbox.jp.msn.com)
562:デフォルトの名無しさん
10/04/02 01:30:24
>>560
古い人は皆そう言うな。
563:デフォルトの名無しさん
10/04/02 01:55:42
未だにVB6を新規案件ってことは
その客は
かなりショボイパソコンを使ってるってことか?
564:デフォルトの名無しさん
10/04/02 03:14:52
>>563
言ったろ
VB6.0はWindows7でも動くんだぜ
565:デフォルトの名無しさん
10/04/02 03:38:58
発注側は何でどうして言語指定するのかなぁ
古いパソコンでも無いのならわざわざVB6指定する意味が分からない
VB6で作ったソフトウェアを商業目的に使うのに制約とかあるのかなぁ?
それとも発注側が何か弄るってこと?孫請けとかで部分的なの作れってこと?
いや、俺素人だから知らんのけどね
566:デフォルトの名無しさん
10/04/02 05:17:16
VB6で構築したシステムが現役で稼動していて、少なくともあと10年はそのまま稼動させる予定。
で、業務の変更・追加に伴うシステムの修正・新規案件がががが
567:デフォルトの名無しさん
10/04/02 07:12:49
既存システムへの追加とかならわかるけど
完全新規ではさすがに無いよね
しばらくVB.NETできてたけどだんだんC#のほうが増えてきた
568:デフォルトの名無しさん
10/04/02 07:23:39
ここは、VBプログラマ質問スレというより職業VBプログラマ質問スレ
569:デフォルトの名無しさん
10/04/02 08:12:44
>>568
仕事が絡まなかったら、それこそ今更覚えようなんてする奴はいないだろうしなぁ
570:デフォルトの名無しさん
10/04/02 09:22:45
VBAには役立つけどね
もしくは人が足りなくてVBAしかできない奴にやらせようとしてるとか・・・
571:デフォルトの名無しさん
10/04/02 09:29:50
Windows7以降のOSではVBAどうなる
572:デフォルトの名無しさん
10/04/02 10:01:20
どうにもならんだろ。
573:デフォルトの名無しさん
10/04/02 21:06:46
sage
574:デフォルトの名無しさん
10/04/02 21:08:30
>>560
なんか典型的なVB厨の発想だなそれ
575:デフォルトの名無しさん
10/04/02 21:11:33
アンカーミスったw
上のは>>560じゃなくて>>562ね。
576:デフォルトの名無しさん
10/04/03 02:55:32
>>569
ノシ
完全に趣味でVB6やってますお
10年くらい前にVB6LEを買って以来ずっとVB6しかやってないですお
今更新しい言語習得なんて億劫ですし
パソコンのスペック的にも最近の新しいVBはインストルでけませんですお
別にVB6だからって困ることは無いですお(LEはちょっと困ってますが)
当時学生で金も無かったのでLEしか買えなかったんですお
577:デフォルトの名無しさん
10/04/03 02:59:24
最初はN88BASICを趣味でやってたんですお
そっからVB6へ変えたんですお
ですがかなり苦労しましたですお
勝手が違いすぎましたお
もうそんな苦労ゴメンですお
なので今でもVB6使ってますお
578:デフォルトの名無しさん
10/04/03 03:03:22
プログラミングは僕の中の趣味のランキングでは4位か5位くらいに相当するのですお
たまに気が向いた時だけプログラミングするだけなので未だにプログラミング能力は初心者に毛が生えた程度あるか無いかですお
ベーシックマガジンという雑誌だけを頼りにN88BASICもVisualBasicも覚えたんですお
579:デフォルトの名無しさん
10/04/03 10:29:24
>>576
俺漏れも。学生時代に購入してアカデミック何とかが有効だったからプロフェッショナル版買った
確かLEとの差は数千円だったような気がしたから欲張ってこっち選んだと思った
580:デフォルトの名無しさん
10/04/03 21:43:33
>571
Officeがある限り安泰です
581:デフォルトの名無しさん
10/04/06 01:09:50
Microsof HTML Object Library (mshtml.dll)の
Scriptletコントロールって何に使うコントロールなの?
Microsoft Internet Controls (ieframe.dll)の
WebBrowserコントロールと同じ?
582:デフォルトの名無しさん
10/04/09 01:38:02
そのWebBrowserのgetPropertyとかputPropertyの使い方がワカラン
プロパティってどんなのがあるの?
このプロパティ弄れば、個別にJavascriptをOFFにしたり、画像非表示にしたりとか出来るの?
583:デフォルトの名無しさん
10/04/09 21:41:03
>JavascriptをOFFにしたり
VB6以前では何か無理みたいですよ。よく知りませんが,
OnAmbientPropertyChangeメソッドを実装する必要があるようです。
VB界のあの大御所ですら完全には出来てないようですし。
584:デフォルトの名無しさん
10/04/11 05:19:02
>>583
あぁ、それ以前調べたけど、俺の拙い知識と技術じゃ全くむりぽかった。
JavaScriptと画像表示切りたかったんだけどなぁ・・・
585:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/12 11:02:08
既存のVB6プロジェクトに含まれるファイル(*.cls|*.bas|*.frm)を調べて、
使われていないクラスファイルを見つけたいと思います。
プロジェクトに含まれるファイル(*.cls|*.bas|*.frm)を開いて、
全てのファイルで「 As (クラス名)」という文字列が含まれていない
クラスファイルは使われていないクラスファイルとして処理しようと
していますが、「 As (クラス名)」以外でクラスファイルを参照する
方法があるでしょうか?
587:デフォルトの名無しさん
10/04/12 13:08:53
>>586
自己レスです。「 As (クラス名)」の他に「= New (クラス名)」もありますね。
他に見落としはないだろうか・・・
588:デフォルトの名無しさん
10/04/12 13:26:54
implements
589:デフォルトの名無しさん
10/04/12 13:52:20
TypeOf ... Is
590:デフォルトの名無しさん
10/04/12 14:40:53
CreateObject
591:デフォルトの名無しさん
10/04/12 15:01:55
CreateObjectがアリだと他にもいっぱい出てくるな・・・
592:デフォルトの名無しさん
10/04/12 15:11:07
CreateObject 関数
ActiveX オブジェクトへの参照を作成して、返します。
593:デフォルトの名無しさん
10/04/12 15:31:25
TypeName
Controls.Add
594:デフォルトの名無しさん
10/04/13 00:47:40
リッチテキストボックスコントロールで
プログラミングでよく使われるようなエディタ風(特定単語を色分けや字体変えたり、行番号表示したり)
を作るのって
難しい?
595:デフォルトの名無しさん
10/04/13 00:57:57
とても難しいです
596:デフォルトの名無しさん
10/04/13 00:58:57
そうか、残念
597:デフォルトの名無しさん
10/04/13 07:05:56
テキストエディタってどういうデータ構造で持てばいいんだろうな
考えるだけでむずかしー
598:デフォルトの名無しさん
10/04/13 07:11:49
テキストで持てばいいんじゃね?
599:デフォルトの名無しさん
10/04/13 14:09:43
テキストファイルをFileSystemObjectのTextStreamで開く
一行ずつ読み出しては解析してRichTextBoxに追加&装飾
文末(EOF)まで繰り返す
タブ記号や改行記号もなんとかして加える
600:デフォルトの名無しさん
10/04/13 14:27:41
そうかー
文字データと装飾データを別に持てば意外といけるかー
601:デフォルトの名無しさん
10/04/13 14:33:24
むしろリッチテキスト使わずに
オリジナルコントロール作っちゃえばいい
UserContorolにPictureBox配置して
PictureBoxにテキストファイルを描写
カーソルや範囲指定、日本語入力と色々と頑張る必要はあるけどな
602:デフォルトの名無しさん
10/04/13 14:42:27
結論 古いVBではエディタは作れない
603:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/13 15:04:13
画面のチラつきを抑えるには
PictureBoxコントロールを2つ用意し
一方はAutoRedrawをTrue、VisibleをFalseにして
毎度Clsして全て描写
そしてもう一方はAutoRedrawをFalseにして
さきのPictureBoxの描写が終わったのを見計らって
PaintPictureでさきのPictureBoxのImageを描写する
これでチラつきが消える
605:デフォルトの名無しさん
10/04/13 15:06:49
うそつき
606:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/13 15:19:59
>>606
おお
便利そう
608:デフォルトの名無しさん
10/04/13 15:25:19
オブジェクトブラウザ眺めてりゃ結構便利なメソッドや関数や定数見つかる
609:デフォルトの名無しさん
10/04/13 15:28:15
(´・ω・`)
610:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/13 16:03:09
APIのCreateThreadってVB6で扱える?
612:デフォルトの名無しさん
10/04/13 16:21:28
確か扱えたと思うけど、一時中断とかすると即死したような気がする。
613:デフォルトの名無しさん
10/04/13 17:09:40
IDEとの相性は最悪だったきがするな
以前、それも考慮に入れてつくればいいとかしつこく言ってた奴がいたが
614:デフォルトの名無しさん
10/04/13 17:11:30
ActiveXexeにしてマルチプロセスにしたほうがいいね
615:デフォルトの名無しさん
10/04/13 17:30:06
やはり無理か・・・マルチプロセスなら簡単そうだな。それにする
616:デフォルトの名無しさん
10/04/15 02:51:36
>>582-585
VBじゃないけど、
DonutとかいうTrident使ってるブラウザで
ページごとに個別に設定できるから
VBでも可能だと思うよ
DonutはうちのWin95のIE5.5で確認したから
MSHTML.dllはIE5.5以上なら出来るはず
617:デフォルトの名無しさん
10/04/15 02:52:37
Donutじゃなくて派生ソフトのDonutLってソフトだった。
先日VectorからWin95パソにDLったのよ
618:デフォルトの名無しさん
10/04/15 03:06:58
>>616-617
実現するためには引き渡すオブジェクトの定義が必要で、
大元の問題は、そのクラス定義がVB6だけでは書けないって事だったと思う。(もううろ覚え)
IE操作する機能のために、定義を他の方法で書いて用意しなきゃいけないくらいなら、
いっそ最初から外部DLLとして作って渡したほうが良いんじゃないかって感じで形骸化してる。
619:616
10/04/15 04:34:08
俺、素人なのに生意気に意見してゴメンお
620:デフォルトの名無しさん
10/04/15 15:10:23
VBで関数ポインタを呼び出す
URLリンク(nienie.com)
これってどうなの?
621:デフォルトの名無しさん
10/04/15 15:35:01
>>620
DEPで落ちるんじゃないか
622:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/15 16:46:40
なるほど
624:デフォルトの名無しさん
10/04/15 20:38:36
超初心者ですが、VB6で質問があります。
画面の無いモジュールのソースを見る必要があるのですが、標準モジュールとクラスモジュールがたくさんあり、実際にそのモジュールを使用する際にどのモジュールから処理が開始されるのかわかりません。
また、一つのモジュールの処理完了後に、どのモジュールに行くかもよくわかりません。
ご教授、もしくは参考サイトなど、お願い出来ますでしょうか?
625:デフォルトの名無しさん
10/04/15 20:47:39
sub main()からだよ
626:デフォルトの名無しさん
10/04/15 20:49:28
>>624
関数とかクラスというものは知っていますか?
627:デフォルトの名無しさん
10/04/15 21:18:07
>>626
関数はわかります。
SUBやFUNCTIONの後に定義し、引数が必要であれば与えてやり、FUNCTIONであれば帰り値があるんですよね。
クラスは今いちわかりません。イメージ的には変数やプロシージャをまとめた物で、他のモジュールで上手く流用してやるというイメージです。
628:デフォルトの名無しさん
10/04/15 21:21:24
初心者ならすぐにC#かJavaか最低でもVB.NETに乗り換えるんだ
会社でVB6を覚えなければならないなら、ご愁傷様だが
629:デフォルトの名無しさん
10/04/15 21:23:21
>>625
sub main()でプロジェクト内を検索してみれば良いのですね。ありがとうございます!
そこからそのモジュールを上から下に実行していき、最後のプロシージャで次にどのモジュールに行くか書いてある感じですかね。
なんかイケそうな気がします!頑張ってみます。
630:デフォルトの名無しさん
10/04/15 21:26:19
>>628
まさしくご愁傷様です。ですがC#も勉強していこうと思ってます。VB6をある程度わかるようになってから並行して勉強しようと、、。
631:デフォルトの名無しさん
10/04/15 21:30:37
>>629
モジュールに書かれているプロシージャを上から順番に
実行していく(1個目のプロシージャが終わったら
2個目のプロシージャを実行、…、どんどん順番に
実行していって、最後のプロシージャの実行が終わったら、
そのモジュールの実行が終わって、次のモジュールを
実行する)と思っているなら、それは間違いだよ。
632:デフォルトの名無しさん
10/04/15 21:32:20
>>631 のように思っているなら、関数というものが
理解できていない(関数はどのようにして実行される
のかが理解できていない)ということになるね。
633:デフォルトの名無しさん
10/04/15 21:35:08
>>631
なるほど、ではなくsub main()から始まるモジュールを上から下に処理していき、その中で他のモジュールを利用するという感じでしょうか?
そのほうがなんとなく納得出来る気がします。
634:デフォルトの名無しさん
10/04/15 21:38:54
>>632
多分そうです。ですが、なんか今までのソースの見方が意味不明だったのが解決出来そうな流れで、非常に興奮してます。
sub main()から始まり引数付きで他のモジュールのプロシージャを呼び出し、その帰り値を貰ったりして進んでいく感じですかね?
635:デフォルトの名無しさん
10/04/15 21:47:22
VBにはステップ実行があるから、一度やってみるといい
636:デフォルトの名無しさん
10/04/15 22:05:48
>>635
ありがとうございます。ネットでサンプルコードを拾って色々やってみます。
637:デフォルトの名無しさん
10/04/15 22:16:10
>>634
だいたいあってる
638:デフォルトの名無しさん
10/04/15 22:17:28
>>636
そういう意味ではなくて、[F8] を連打しろ、という意味だ。
639:デフォルトの名無しさん
10/04/15 23:23:53
>>638
うん、そういう認識です。
実際やってみたら割と思うように進んで納得しました。呼び出し元と呼び出し先、またそこが呼び出し元になって、さらに戻って〜みたいな流れで最終的にはメインの最後で終わる感じですね。
あとはクラスモジュールやAPIの使用なんかは少し難しい感じがしますが、頑張ってみます。
640:デフォルトの名無しさん
10/04/17 15:20:50
>>585
ちなみに、IE8のMSHTML.DLLはそのまま使うとIE7互換モードになることに注意。
URLリンク(blogs.msdn.com)
641:デフォルトの名無しさん
10/04/17 15:50:42
>>640
そうでしたか。 トン
642:デフォルトの名無しさん
10/04/21 18:12:28
VB6で質問です。
ListViewで上の要素をクリックするととりあえず降順にソートしてくれるけども、もう一回クリックで昇順とかは
.NETなら見つかるんだけんども、VB6は無理なんでしょか?
643:デフォルトの名無しさん
10/04/21 19:43:27
>>642
できるよ。
644:デフォルトの名無しさん
10/04/21 22:51:36
>>642じゃないけど、ListViewで安定ソート出来ないもんかしら?
やっぱソートを全部自前でやるしかない?
645:デフォルトの名無しさん
10/04/21 23:35:21
>>644
そもそもGUI部品にソート機能を持たせよう、
って発想が間違ってることにいい加減気がつこうよ。
646:デフォルトの名無しさん
10/04/21 23:58:33
表示の降順・昇順ソートは普通じゃないの? Explorerとかの日付ソートとか。
まあともかく…
できなくはないけど安定しない、思想がよろしくない。で、いいのかしら?
647:デフォルトの名無しさん
10/04/22 00:17:04
ソート?エクセルにデータ渡してソートしてもらって再取得とかじゃダメなの?
648:デフォルトの名無しさん
10/04/22 00:18:14
は?
649:デフォルトの名無しさん
10/04/22 00:32:42
>>646
ソート機能を否定してるんじゃなくて、
ソート機能をGUI部品に担わせるのが間違ってるといってるんだよ。
650:デフォルトの名無しさん
10/04/22 00:36:29
どう違うんだ?
651:デフォルトの名無しさん
10/04/22 00:40:03
打っても響かないところがVBスレらしいところだなw
>>650
ソートする責任はListViewに表示しているアイテムを集約してるオブジェクトに
持たせるべき、ということ。
652:デフォルトの名無しさん
10/04/22 00:43:37
それって否定だろ?
653:デフォルトの名無しさん
10/04/22 01:00:29
これがVB脳の恐怖か....
654:デフォルトの名無しさん
10/04/22 01:08:15
ListViewは数字でのソートが・・・上位桁に0埋めて桁合わせないと数字の大きさ順にソートしてくれなかった
655:デフォルトの名無しさん
10/04/22 01:09:28
>>653
おまえは鳩山か?
656:デフォルトの名無しさん
10/04/22 07:08:37
バブルソートでおk
657:デフォルトの名無しさん
10/04/22 10:38:20
>>652
「ListViewソート機能の否定」ならわかるんだが
単に「ソート機能の否定」ってと「ソートすんな」だよね?
ListViewじゃなくてオブジェクトで「ソートしよう」って言ってるのに、なんで「ソートすんな」なんだ?
658:デフォルトの名無しさん
10/04/22 16:05:16
>>651
しかし見た目を掌るListViewが見た目のソートを持たないというのも微妙な気が。
データそのものやその扱い自体のソートなら内部で持つべきだと思うけど。
ともかく。
ふつうにはやりにくい、でいいのかしら?
>>642のひとの手法が知りたい…使い物になるのかはさておいて。
659:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/22 17:53:22
lvwAscendingとlvwDescendingの値は1と0だから
ListView1.SortOrder=1-ListView1.SortOrder
でおk
662:デフォルトの名無しさん
10/04/22 17:55:01
Withくらい使えよ・・
663:デフォルトの名無しさん
10/04/22 18:13:32
Withとかきめぇ
664:デフォルトの名無しさん
10/04/23 17:57:51
>>594
やってみた
RichTextBoxでjavaファイルをTeraPad風に色とボールドしてみた
ファイルを読み込んだ時だけ色・ボールドするので
中身編集すると・・・めちゃくちゃにはなる
やり方が悪いのかもしれんがファイル大きいと結構時間かかる
結論:RichTextBoxでやるのは無理がある
665:デフォルトの名無しさん
10/04/24 07:09:38
>>594 >>664
こんなんどう?
非表示でIEやリッチテキストに描画させて、それをPicture内に再描画して提供。
右クリックやドラッグなどの処理は透過的に処理する。
まぁ面倒くさい事に変わりはないな。
666:デフォルトの名無しさん
10/04/24 07:25:57
それだと文字位置などの管理が無理だな
すべて自分で描画したほうがラクだろ
667:デフォルトの名無しさん
10/04/24 08:11:32
>>666
そうかね?
クリックも全部裏のコントロールに渡せばカーソル位置や文字の選択もそっちが勝手にやってくれるんじゃない?
実際に試して話してるわけじゃないけど。
668:デフォルトの名無しさん
10/04/24 08:22:24
実際試してみろよ
そもそもそんな使い方ならピクチャに再描画する意味なんてないだろ
669:デフォルトの名無しさん
10/04/24 08:36:17
>>668
意味は、うーんあんまないかもなw
描画エンジンを自前で作りたくないし、リッチテキストの処理は非常にめんどくさいのでパスしたいのさ。
俺がやるなら内部にIE一匹飼ってHTMLで表示を作る。CSS使って自由度高いし。
で、入力はフックしてHTMLに変換して制御とか。
670:デフォルトの名無しさん
10/04/24 09:05:00
入力部(カーソルなど)が問題だってのになにいってんの
671:デフォルトの名無しさん
10/04/24 09:18:24
>>603がすばらしいじゃん
672:デフォルトの名無しさん
10/04/24 09:23:00
笑えない冗談だ
673:デフォルトの名無しさん
10/04/24 09:26:10
URLリンク(www7a.biglobe.ne.jp)
これ使えない?
674:デフォルトの名無しさん
10/04/24 09:29:08
まあ>>603にはかなわないか
675:デフォルトの名無しさん
10/04/24 20:56:25
>>603みたいなやり方だと
日本語入力とか出来ないよね?
KeyDownやKeyPressイベントじゃIMEとかの日本語入力使えないよね?
676:デフォルトの名無しさん
10/04/24 21:29:22
え?どこに入力が?
677:デフォルトの名無しさん
10/04/24 21:33:29
IMEの制御くらいAPIでいくらでもできますよ
678:デフォルトの名無しさん
10/04/24 23:26:26
>>594のってエディタ作るんでしょ?>>603のってエディタになってなくね?
679:デフォルトの名無しさん
10/04/24 23:48:22
だからみんな相手してないんじゃん
680:デフォルトの名無しさん
10/04/25 00:54:56
まあRitchTextBoxを使うのが一番簡単だとは思う。
入力した文字にシンタックスカラーがリアルタイムで適用されるような
応答性の高いものは難しいと思うけど、以下の方針で作ればそれなりに
実用的なものはできるんじゃないか。
- テキストの解析とシンタックスカラーの適用は、タイマーを使って一定時間ごとに一行ずつ行う。
- 上記タイマーは、Changeイベントで起動し、全行の解析が完了時点で停止する。
- 行の解析は、タイマー起動時の現在行か、またはその1行上の行から開始する。
- 行番号表示は、左側にもう一つ別の行番号専用のRitchTextBoxを置いて実現する。
681:デフォルトの名無しさん
10/04/25 00:59:51
VB厨はコントロールに頼りすぎる
682:デフォルトの名無しさん
10/04/25 01:22:40
>>680
そんなアホな事をする位だったら自作したほうがラクだろ?
683:デフォルトの名無しさん
10/04/25 01:34:19
>>682(あと>>681)
またそういう寝ぼけた事を言う。
そう思うならやってみたら?
まあやってみなきゃ大変さが分からない時点で君がダメグラマなのは確実だな。
エディタの類はVBじゃなくても一から実装するのは難しい部類に入るプログラムなのに、
低レベルのコーディングにまったく向いてないVBでやったら気が狂うこと確実だわ。
しかし、エディタを書けるかって質問して舐めたこというかどうかで
ダメな奴を見分けられそうだよなw
684:デフォルトの名無しさん
10/04/25 01:43:30
寝ぼけた事を言ってるのは>>680(あと>>683)だが
685:デフォルトの名無しさん
10/04/25 01:46:04
682だけど、
以前やってみたから言ってんだよ。
686:デフォルトの名無しさん
10/04/25 02:37:31
やってるわけがない。
やってたら>>682みたいな戯言が言えるはずがない。
だからVB厨って言われる連中はダメなんだ。
687:デフォルトの名無しさん
10/04/25 02:42:33
ではお前が作ったRutchTextBoxを使ったエディタを見せてくれないか?
俺はリアルタイムの色変更とスクロール、文字位置制御で挫折したんだ
えらそうに言うくらいだから、できたんだろうな?
688:デフォルトの名無しさん
10/04/25 02:44:34
>>680
些細なことだけど
×RitchTextBox
○RichTextBox
689:デフォルトの名無しさん
10/04/25 02:44:38
技術的な難易度を指摘してるだけなのに、いつのまに俺がRutchTextBox(笑)
を使ったエディタを作ったことになってるんだろう。
訳がわからん。
690:デフォルトの名無しさん
10/04/25 02:45:22
>>687
些細なことだけど
×RutchTextBox
○RichTextBox
691:デフォルトの名無しさん
10/04/25 02:46:30
>>689
てめえが難癖つけてきたんじゃねえか糞野郎!!!!!
692:デフォルトの名無しさん
10/04/25 02:47:09
>>680
行番号表示って、編集してるほうのカーソル位置とかスクロールに合わせてスクロールさせるんだよね?
RitchTextBoxのスクロール量の取得・設定てどうやるの?
693:デフォルトの名無しさん
10/04/25 02:52:34
VB6のIDEだと編集中の行は色づけが解除されるよね
694:デフォルトの名無しさん
10/04/25 02:53:12
>>692
↓の454のサンプルの方法で可能なはずだと思った。
もう長いことVB6使ってないんで記憶が確かなら、だけど。
URLリンク(web.archive.org)
695:デフォルトの名無しさん
10/04/25 02:53:44
解除されるのでもいいから、リッチテキストでやってみろよ
696:デフォルトの名無しさん
10/04/25 03:07:47
>>692
ごめん、君の文章を少し読み間違えてたようだ。
でも>>694のサンプルにはそれも一応載ってるな
697:デフォルトの名無しさん
10/04/25 04:06:19
OS、Windows2000じゃないんですけど
698:デフォルトの名無しさん
10/04/25 04:07:02
めちゃくちゃ重いサイトだな
699:デフォルトの名無しさん
10/04/25 04:33:29
>>692
API
700:デフォルトの名無しさん
10/04/25 07:27:25
GWはテキストエディタつくろーっと
701:デフォルトの名無しさん
10/04/25 23:25:04
別にあなたが何しようとどうでもいんですけど・・・^^;
702:デフォルトの名無しさん
10/04/25 23:30:53
気になるくせにーw
703:デフォルトの名無しさん
10/04/25 23:44:19
反応早すぎだろうw
気にしてるのがどっちか丸分かりじゃねーかw
704:デフォルトの名無しさん
10/04/25 23:52:19
一日中2ちゃんしてるからw
705:デフォルトの名無しさん
10/04/26 14:15:51
VB6でデータベースの列を追加する方法か、その内容をひっかけられるMSDNの語句を教えていただけないでしょうか。
.NETやC#ならすんなり当たるのに…世の中つらい。
706:デフォルトの名無しさん
10/04/26 14:17:14
alter tableするだけじゃねーの?
707:デフォルトの名無しさん
10/04/26 14:31:02
扱いは追加じゃなくて変更なのか…d。
ググるとそこそこあたるので探ってみる。
708:デフォルトの名無しさん
10/04/26 17:31:07
つうか、SQLの知識のほうじゃねぇか…
709:デフォルトの名無しさん
10/04/26 20:55:03
>>708
ああ、そうか… って、VBでSQLなスレ見つけたけど、中身がわりと残念な進行してるねえ。
むこうで聞いて大丈夫だろうか?
710:デフォルトの名無しさん
10/04/26 21:29:41
DBはDB板へ
711:デフォルトの名無しさん
10/04/27 02:33:05
>>705
まずどうやってデータベースに接続してるのか?
まあ、DAO.TableDefかADOXを調べてみろ
つかここ見れば解決
URLリンク(msdn.microsoft.com)(v=msdn.10).aspx
712:デフォルトの名無しさん
10/04/27 18:50:25
VB6付属のMSDNライブラリのVBのLogの項目で
Static Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function
ってあったんだけど、これってStaticつけられてるけど何か意味があるの?
713:デフォルトの名無しさん
10/04/28 12:07:17
実行速度が遅くなる以外は違いがない気がするな
714:デフォルトの名無しさん
10/04/28 13:22:42
インスタンス無くてもアクセスできる
715:デフォルトの名無しさん
10/04/28 14:01:46
なぜインスタンスが?
716:デフォルトの名無しさん
10/04/28 14:16:03
C++とは意味が違う
717:デフォルトの名無しさん
10/04/28 19:20:06
Property Let とか Property Set は斬新だった
718:デフォルトの名無しさん
10/04/29 09:35:43
b() = Inet1.OpenURL(strURL, icByteArray)
でバイト配列にデータを格納したら
そのあとは
どんなプログラムを書けばハードディスクに記憶できるのか
719:デフォルトの名無しさん
10/04/29 10:30:15
ファイルを作って書き込めばいい。
720:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/04/29 11:32:29
サンクス
722:デフォルトの名無しさん
10/04/30 01:06:10
またVB厨か
URLリンク(el.jibun.atmarkit.co.jp)
723:デフォルトの名無しさん
10/04/30 02:19:34
>>720
この方法のヤバさと言ったら
File.txtが既に存在していて
書き込むbのサイズよりファイルサイズが大きい場合だよね
超ヤバイ
724:デフォルトの名無しさん
10/04/30 05:57:50
なにが?
725:デフォルトの名無しさん
10/04/30 09:58:29
引き出したい言葉を普通に質問すればいいのに
726:デフォルトの名無しさん
10/04/30 15:25:44
>>723
サンプルにエラー処理の事でつっこむとかバカなの?
727:デフォルトの名無しさん
10/04/30 15:27:14
>>722
60年代前半生まれだしな
つうかSAPて言語・・・なのか?w
728:デフォルトの名無しさん
10/04/30 17:33:14
>>726
エラー?
729:デフォルトの名無しさん
10/05/04 00:24:00
つい最近、Trueの値が-1である理由に気づいた。
もう10年以上(まぁかなりの素人ではあるけれど)プログラミングに触れてきてるのにね。
2の補数のビットで表現してたって本当つい3日前に気づいた
Falseがビットが全部0に対してTrueはビットが全部1
ビットが全部1だと2の補数だと-1になるという・・・
ずっと昔から、何で1じゃなく-1なんだろうと思ってた・・・その疑問がやっと解決した・・・
730:デフォルトの名無しさん
10/05/04 00:39:23
全部0とそれ以外
それだけだと思うんだ
731:デフォルトの名無しさん
10/05/04 00:43:18
Debug.Print "True="; CInt(True) ' -1
Debug.Print "False="; CInt(False) '0
732:デフォルトの名無しさん
10/05/04 00:44:56
CBool(1) さて・・・どっち?
733:デフォルトの名無しさん
10/05/04 00:46:46
誰もそんな話してないけどな。
734:デフォルトの名無しさん
10/05/04 00:46:47
Dim a,b
a=10
b=20
Debug.Print CInt(a < b)
735:デフォルトの名無しさん
10/05/04 12:02:02
宇宙線の影響を考えると1ビット反転でコンピュータ障害がおきかねないな
736:デフォルトの名無しさん
10/05/04 23:28:37
原因不明のエラーはWindowsMeのせいじゃなくて、宇宙線のせいだったんだな。それなら仕方ないな。
737:デフォルトの名無しさん
10/05/05 00:40:56
ageてまで言うような事なのか?
738:デフォルトの名無しさん
10/05/05 01:01:06
そこはスルーしとけ
739:デフォルトの名無しさん
10/05/05 10:32:50
なんでもWindows Meのせいにするのは天江衣
740:デフォルトの名無しさん
10/05/06 00:59:32
顧客「おたくのアプリケーション、ちょくちょくエラーが出るんですけど
営業「宇宙線の影響なので仕方ありません
顧客「なんだ宇宙線のせいなのか。それならば仕方ないな。
使える!
741:デフォルトの名無しさん
10/05/06 10:00:50
ねーよwwww
742:デフォルトの名無しさん
10/05/07 23:52:26
なんのためのECCか
743:デフォルトの名無しさん
10/05/08 00:17:54
英語塾?
744:デフォルトの名無しさん
10/05/09 00:23:58
ECCで訂正できるのって1bitのミスだけで2bit以上は検出だけじゃなかったっけ
745:デフォルトの名無しさん
10/05/09 00:28:41
ミスるメモリだとわかる点だけでも価値はあったんだぜ
746:デフォルトの名無しさん
10/05/09 00:31:56
エラー検出訂正 (error detection and correction)?
747:デフォルトの名無しさん
10/05/09 02:32:50
クラスモジュールでグローバルな変数・定数・メソッドを使うのに抵抗があります
748:デフォルトの名無しさん
10/05/10 10:01:21
>>747
それは明らかにおかしい
必要ならば使うしかないだろ
749:デフォルトの名無しさん
10/05/10 14:40:47
俺は使いまくり。とても人に見せられるソースじゃない
750:デフォルトの名無しさん
10/05/10 19:30:36
グローバル変数は害悪
定数やメソッドは問題ない
751:デフォルトの名無しさん
10/05/12 14:03:49
>>750
そのへん含め.NETになったと聞いたけど、そうなのかしら? .NET触ったことないからよくわかんないけど。
ところで。
Windows7でMSCommがマトモに動いてくれないのだが、なにか情報出てたりしますか?
MSComm使って無さそうなソフトだと(ActiveX?)普通に受信するのに
MSComm32を使ったアプリだと、[ 通信デバイス読み取り時にエラーが発生しました(8020) ] を返してくる…。
USBtoシリアルとWindows7の組み合わせが悪いのか、Windows7だけの話なのか?
752:デフォルトの名無しさん
10/05/12 14:13:30
うちの環境で
DELLノート Win7+エレコムのUSBシリアル
でソフト書いても問題なかったけどなぁ
VB6でもC#でも
753:デフォルトの名無しさん
10/05/12 14:21:08
APIで書き直せばおk
754:デフォルトの名無しさん
10/05/12 14:36:04
>>752
マジカ
おのれIOデータ
とりあえず、受信バッファに何かあるときに MSComm.Inputすると出るの。
それ以外は出ないし送信もできるのに…。
>>753
それは最終手段にしたい…。
755:デフォルトの名無しさん
10/05/12 19:53:45
まず本当にOSの問題かどうかの裏をとろうよ。
そんなこと言ってるからVB厨とか言われちゃうんだよ。
756:デフォルトの名無しさん
10/05/12 20:03:34
IOデータってOSなの?
757:デフォルトの名無しさん
10/05/12 20:09:54
おのれIOデータのUSBシリアルめ、という意味なんだろう
758:754
10/05/12 22:38:13
IOデータのサポートに言ったら、他にそういう報告はないとのこと。
とりあえず1世代前の製品の最新ドライバ入れてみてという変なこといわれた。
やったら治った。
なんぞーっ
ドライバがこなれてないのかしら。
>>755
XPで起こらないのは確認済み。
759:デフォルトの名無しさん
10/05/15 01:44:06
自分に限界を感じた
データベースというのがさっぱり理解できない
データベースそのものもわけわからんのだが
それを扱うメソッドもよくわからん
VisDataもヘルプ読みながら使ってみたがよくわからん
これは
もう完全にセンスの問題だと思う。俺のプログラミングに関するセンスがダメなんだと思う
家計簿的なもの作ってやろうじゃんと思ったけど
さっぱりだ。
そもそもデータベースの入門書みたいな本とかもまったく理解できなかった
これは致命的だろう
ああ、くそだ
760:デフォルトの名無しさん
10/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:デフォルトの名無しさん
10/05/15 02:31:58
回答待つより自分で試したほうが早いか・・・やってみるお
762:デフォルトの名無しさん
10/05/15 08:23:17
>>759
こういう人が居ると安心する。
自分は頭がよくてよかった。
763:デフォルトの名無しさん
10/05/16 12:49:35
>>759
マジレスしたら
センスの有無はあるだろうけど
要は慣れだと思う
俺でもできるんだ
俺だって最初はまったく理解できなかった
764:デフォルトの名無しさん
10/05/16 21:18:53
>759
DBを使わず、自分でファイルの読み書きするプログラムを書いたことはある?
まずはそれからだと思うが・・・」
765:デフォルトの名無しさん
10/05/17 01:29:14
>>759
その「入門書」のタイトルを教えてくれれば、
何かアドバイスできるかも知れないな。
(もっと適切な入門書を紹介するとか)
766:759
10/05/17 01:47:04
なんかいっぱいレス下さって・・・意外です^^;
>>762 士農工商より下の位がいるみたいな感じっすかね
>>763 もう諦めの境地ですから、試行錯誤的にやってみてもエラーメッセージとか意味不明すぎて
MSDNの説明じゃ要領得なくて、ネット検索とかもう探すの面倒になりましたっす
>>764 当初は、DB使わず、データをLongやStringの配列で自前でデータ管理しようと試みたんすけど
データを表示する表みたいなコントロール?(DataGridとか)がイマイチ使い方が理解できなくって
そのコントロールってデータベースのデータ使ったほうがいいのかなって思って
データベースに挑んでみたですけど、まぁ忍耐の限界っす
>>765 書籍タイトルはちょっと分からんです、図書館で立ち読みでしたので
データベースの本はほとんどMicrosoftAccessの使い方の本ばっかでそれらは読んでないです
大学時代に一応データベースの授業受けたんですけど、ちんぷんかんぷんで、出席点だけで単位を貰った感じっす
まぁ趣味でやってる程度なんで、どうしても出来る必要ってないんで
でもみなさんの気持ちには感謝っす
767:デフォルトの名無しさん
10/05/17 02:00:26
あきらめろよ。
768:759
10/05/17 02:08:47
>>767
書き損ねましたっすが、はい、あきらめてます
769:デフォルトの名無しさん
10/05/17 02:27:49
愚痴るだけとか士ねよ
770:デフォルトの名無しさん
10/05/17 02:33:17
家計簿程度ならエクセルで十分なキガス
771:デフォルトの名無しさん
10/05/17 15:42:08
初心者ならVBAでいいな
772:デフォルトの名無しさん
10/05/17 17:51:52
でもまぁ、集計とかその辺が入るしなぁ
どうせやるならDBだろ と思うんだが
773:デフォルトの名無しさん
10/05/17 18:03:02
趣味で古いVB使うってどんな状況なんだ?
774:デフォルトの名無しさん
10/05/17 20:02:03
>>773
使わなくなったVBを貰ったとかいうのはどうか。
あとは昔からのBASICはよく知ってるんだが、.NETの具合にクラクラしたとかどうか。
775:デフォルトの名無しさん
10/05/17 20:35:32
>>576
>>579
776:デフォルトの名無しさん
10/05/17 21:29:52
質問させて下さい。
VBScriptを使用して開発を行う際、
何のエディタを使っていらっしゃいますか。
ASP(VBScript+HTML)で開発することになったのですが、
使用するエディタを何にしようか迷っています。
詳しい方がいらっしゃいましたら教えていただきたいです。
※候補としてはVisual web developer 2008 expressを考えています。
777:デフォルトの名無しさん
10/05/17 22:12:39
趣味で家計簿みたいなのを作るならExcelVBAがいいと思うよ。
表みたいなやつはもともとデフォルトでついてるし(Excelだから)
結構いろんなこともできる。
VBで画面作ってデータベースに接続して・・・・となるとそりゃ
趣味の範囲としては難しいよ。
778:デフォルトの名無しさん
10/05/19 01:33:39
複数のテキストボックスをテキスト形式で保存するプログラムを作成しています。
なんとか「保存」「読み込み」のボタンを設置し異常なく作動しました。
ここまではいいのですが、よく考えたら起動時に自動で読み込んでくれると
便利だと思うのですが、検索してもなかなか出てきません。
お詳しい方ご教授頂けると嬉しいです。宜しくお願い致します。
779:デフォルトの名無しさん
10/05/19 01:36:24
Form_Loadで処理すればいいんじゃないの?いや、俺も初心者レベルだけど
780:デフォルトの名無しさん
10/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
10/05/19 01:55:47
>>780も俺のレスだけど、>>779,780は無かったことにして欲しい。俺の勘違いだった
782:778
10/05/19 09:47:49
すいません追加事項を
起動時に自動で読み込み、なおかつ参照ファイルが存在しなければ
作成する。を追加でお願いします。
783:デフォルトの名無しさん
10/05/19 15:18:27
>>758
マジで? おれも数ヶ月前に同じようなこと聞いて同じような回答をもらったが、あきらめて
Ratocのやつに買い換えたよ。
もう一度試してみる価値ありかもな。
784:デフォルトの名無しさん
10/05/20 00:30:58
>>782
よくわからんけど、どういうことなの?
785:デフォルトの名無しさん
10/05/20 00:38:19
自分で考えるつもりはなくて
人に作って欲しいってことじゃね?w
786:デフォルトの名無しさん
10/05/20 00:46:35
MDIフォームで作ってんのか?
787:デフォルトの名無しさん
10/05/20 00:54:11
>>778の言いたいことを少しずつみんなで推理していこう
まずこれ
>複数のテキストボックスをテキスト形式で保存するプログラムを作成しています
う〜ん・・・
複数のテキストボックスをテキスト形式で保存???
これは・・・・テキストボックスの内容をテキスト形式のファイルに保存してるってことなのかな?
1つのテキストボックスに対してファイルを一つ用意するのかなぁ・・?
788:デフォルトの名無しさん
10/05/20 22:24:38
age
789:デフォルトの名無しさん
10/05/21 00:50:30
フォームロード時にファイルシステムオブジェクト使えば簡単に処理できます
790:デフォルトの名無しさん
10/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とかは採集できますが、[]のなかになにかいれないとだめなんでしょうか。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5024日前に更新/172 KB
担当:undef