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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2006/02/03(金) 22:58:33
VisuarlStudio
0883デフォルトの名無しさん2006/02/26(日) 17:26:31
■VBのバージョン : VB6

カナからローマ字のヘボン式に変換するソースありますか?
長音oを含む場合母音を重ねないってとこが上手くいきません・・

上記のソースないっすか?
0884デフォルトの名無しさん2006/02/26(日) 17:39:31
あるよ
0885デフォルトの名無しさん2006/02/26(日) 17:43:54
>>882
> DoEvents で CPU 使用率上がっても、別に他の操作に影響ないよね。
あるだろ。他の操作に割り当てられるCPUが減る。
他の操作に使用するCPUが少なければ実害は無いかもしれんが、
他の操作に使用するCPUが多ければ、確実にその操作に影響を与える。
0886デフォルトの名無しさん2006/02/26(日) 18:04:25
>>883
その上手くいかないコードを出せば、修正点を指摘してくれる人は居るかもしれないが
このスレに限らず、コード丸投げソースクレクレはこの板では嫌われてる。

結局それらは努力せずに利益だけ得ようっていう甘ちゃんな考え方だし。
「ものすごく努力したんですが上手くいきません」って、その努力の結果(ソースコード)も出さずに
口先だけで語られても全然説得力無いし
0887pp2006/02/26(日) 18:18:15
テキスト処理で1行ずつ取り出して文字の置き換えをするプログラムで取り出した
文字列が改行のみの場合にその文字列自体をなくすには、どうすればよいでしょうか。
Replace関数で”\n”を””にしてみましたけどだめでした。初心者の私に教えてください。
0888デフォルトの名無しさん2006/02/26(日) 18:48:07
いや、VBのReplace関数は正規表現サポートしてないんだから、
vbcrlfをvbnullstringにしないと。
RegExpやBREGEXPのReplace関数なら普通は\r\nでしょ。
まあ、\nでいい場合や\rのみの場合もあるので、
改行コードについては自分で調べて適切なもの使いな。
VBの組込定数でもvbcrとかvblfとかあるからさ。
0889デフォルトの名無しさん2006/02/26(日) 18:52:49
>>885
いや感覚としてサ。
他の作業(例えばスーパーπとか)でCPUが100%になると、
他の作業がカクカクするけど、DoEvents を入れたVBの無限ループで
CPUが100%になっても、大してカクカクしないからサ。サ。
ちょっとVB起動して検証してみてくれるカナ?カナ?

>>887
置き換えるのをやめればいいんじゃね?
一行読む→変換→変換後を書き込む、なら、「変換後を書き込む」をしない。
0890デフォルトの名無しさん2006/02/26(日) 19:07:34
>>889
DoEventで未処理のWindowメッセージを処理するわけだから
GUIについては「感覚として」重くはならんだろうけど
低プライオリティで動いてるプロセスやCPUの使用率見て動作する省電力機能などに影響は大きいよ。
外注がそんなプログラムをもってきたら即差し戻しだな。
0891デフォルトの名無しさん2006/02/26(日) 19:11:16
ユーザにとっては感覚が軽いほうがいいんだよ
0892デフォルトの名無しさん2006/02/26(日) 19:22:03
もしかしてWindows3.1とか使ってないか?
メッセージループのアイドルタイムにCPUバウンドな計算をさせるってテクニックがあったのを思い出した。
0893デフォルトの名無しさん2006/02/26(日) 19:30:06
>>887
Line Input だと LFのみは行区切りとは見なしてくれないの?
そうだとすると、vbCR ( chr(10) ) を "" にリプレースではだめかな。
VBでは¥はエスケープ文字としては使えない。
0894デフォルトの名無しさん2006/02/26(日) 19:35:56
>>889
カクカクとかそういうアバウトな感覚で答えないでくれないかな。
仮にOS上で優先順位が同じ二つのプロセスしか動いていないとする。

一つはCPU100%使用するアプリ。一つはCPU10%程度ですむアプリ。
OSはこの二つのアプリに50%ずつ割り当てるから、
当然、CPU10%程度ですむアプリは十分なCPUを割り当てられているから
カクカクならない。
これをみただけで結論だしてるでしょ?

一つはCPU100%使用するアプリ。一つはCPU70%必要なアプリ。
こういう場合には、50%しか割り当てられないから、
CPU70%必要なアプリは遅くなるんだよ。
0895デフォルトの名無しさん2006/02/26(日) 19:37:55
>>890
成る程、ポン。
0896デフォルトの名無しさん2006/02/26(日) 19:40:31
>>893
訂正 vbCR > vbLF

補足すると VBで "\n" にあたるのをCで書くと "\\n" で、つまり見た目どおりの文字列。
0897pp2006/02/26(日) 19:52:22
>>888>>889>>893 ありがとうございました。
もともとLineInputには改行コードが含まれてないようなので>>889さんの意見の通りに
書き込みをしない事にして解決しました。みなさん、貴重な意見ありがとうございました
0898デフォルトの名無しさん2006/02/26(日) 20:25:26
>>894
>>891
0899デフォルトの名無しさん2006/02/26(日) 20:40:02
>>891 >>898 引っ掻き回してるのはこいつかw
0900デフォルトの名無しさん2006/02/26(日) 21:13:09
VBって、確か中間コードにコンパルされるんだよね。
その言語仕様が解説されたサイトを教えて下さい。
0901デフォルトの名無しさん2006/02/26(日) 21:16:11
>>900
http://www.1101.com/MOTHER3/
0902デフォルトの名無しさん2006/02/26(日) 22:02:25
>>900
P-CODE?
VB5以降は、とりあえずオブジェクトファイル作られて(そして普通は消される)けど、最終的にはネイティブ
0903デフォルトの名無しさん2006/02/26(日) 22:08:30
>>902
コンパイルでPコード選んでも?
0904デフォルトの名無しさん2006/02/26(日) 22:35:11
いやP-CODEは…あれはインタプリタだっけ?
あんまり使わないからよーわからん
0905デフォルトの名無しさん2006/02/27(月) 11:14:16
>>854
getElementByIdかgetElementsByNameで取得して代入。
0906デフォルトの名無しさん2006/02/27(月) 21:30:47
ネットワークカードが2枚刺さってる環境で、Winsockを使用してUDP通信をしています。

ネットワークカードは別セグメントで

1枚目:192.168.10.1 → VBから使用している側
2枚目:192.168.20.1 → ルーターを介して別ネットワークへ

といった感じになっています。

この場合、Winsockに「192.168.10.1」側のLANカードを使用する、といった設定は
必要になるのでしょうか?

というのも通信が不安定で頻繁に接続が切断されているんです…orz

試しにルーター側のネットワークケーブルを引っこ抜いてみると
通信は安定します。

ルーターの設定が原因かもしれませんのでスレ違いかもしれませんが、
わかる方いらっしゃいましたら教えてくださいm(_ _)m
0907デフォルトの名無しさん2006/02/27(月) 22:43:30
>>906
IPアドレスとポート番号の指定だから、それは関係ない様な気がするけど・・・
route コマンドとかは?
0908デフォルトの名無しさん2006/02/28(火) 00:26:35
テキストボックスを選択した部分だけStrConvで変換して
選択部分とキャレットの位置はそのままにしたいのですが
テキストを右の方から選択してキャレットが選択位置の
左側にある場合はSel***系のプロパティだけで実装できるでしょうか?
0909デフォルトの名無しさん2006/02/28(火) 01:29:20
>>908
出来る。
0910デフォルトの名無しさん2006/02/28(火) 01:39:44
>>909
うそつき
キャレットの位置は無理
0911デフォルトの名無しさん2006/02/28(火) 08:22:24
そうやって相手すると馬鹿が居つくよ。
まあ相手されないならされないでこういう奴はされるまで居つくだろうけどw
地縛霊みたいなもんか。
0912デフォルトの名無しさん2006/02/28(火) 11:20:45
>>908
何がやりたいのかサッパリ理解出来ない・・・
0913デフォルトの名無しさん2006/02/28(火) 13:18:40
AB[CD]lE ([]=選択範囲 l=キャレット)
を
AB[cd]lE
にして、選択範囲もキャレットも維持したいんだろ。
で、キャレットが選択範囲の左右どちらにあるかで、Sel****で
実現できるかどうか変わると。
0914デフォルトの名無しさん2006/02/28(火) 13:59:27
>>913
右から左へ反転選択した場合だって実現出来るんじゃないの?
SelText / Mid$ とか使えば、どっちにキャレットがあるから分かるから、
改めて左から右へ反転選択し直すとかして。
単なる文字列処理なんだし。
0915デフォルトの名無しさん2006/02/28(火) 14:11:31
>>914
キャレット位置の取得/設定プロパティはない。
0916デフォルトの名無しさん2006/02/28(火) 14:42:10
ええぇぇぇ?
0917デフォルトの名無しさん2006/02/28(火) 15:19:37
>>906
OSは何?98/Meはどうあがいても無理
NT系ならrouteコマンドでちゃんとルーチング設定しろでFA
0918デフォルトの名無しさん2006/02/28(火) 16:22:21
>>916
あったっけ?
どんな名前?
0919デフォルトの名無しさん2006/02/28(火) 16:35:06
>>918
ないよ、909と916がアホなだけ
たぶんキャレットと選択範囲の区別すらついてない
0920デフォルトの名無しさん2006/02/28(火) 17:11:53
>>919
でも、確かに、あってもいいプロパティだよね。
って、今迄に一度も必要になった事はないけど・・・
0921デフォルトの名無しさん2006/02/28(火) 17:19:50
まー、無いなら無いでいいんじゃない?
この先どうなろうと俺らの知ったことじゃないし
0922デフォルトの名無しさん2006/02/28(火) 20:14:34
GetCaretPosとかの話題をあえて避けてるような空気
0923デフォルトの名無しさん2006/02/28(火) 20:46:53
ためしにTextBox:Text1をForm:Form1に貼り付けて、次のコードぶち込んで実行し
private sub Text1_Change()
debug.print Text1.SelStart
end sub
0924デフォルトの名無しさん2006/02/28(火) 21:51:36
>>922
クライアント座標を受け取っても、何文字目かは分からない・・・
0925デフォルトの名無しさん2006/02/28(火) 22:17:54
EM_LINEINDEXとかの話題をあえて避けてるような空気
0926デフォルトの名無しさん2006/02/28(火) 22:49:06
>>925
それ、複数行のやつしか使えないんじゃなかったっけ?
0927デフォルトの名無しさん2006/02/28(火) 22:53:37
何か問題でも?
0928デフォルトの名無しさん2006/02/28(火) 23:02:00
VBの用語を調べられるサイトってある?
0929デフォルトの名無しさん2006/02/28(火) 23:11:26
>>927
複数行じゃないやつに使えない。
0930デフォルトの名無しさん2006/02/28(火) 23:12:42
>>928
つMSDN
0931デフォルトの名無しさん2006/02/28(火) 23:44:16
>>929
何か問題でも?
0932デフォルトの名無しさん2006/03/01(水) 00:25:11
>>922
まーた、試したこともないのに適当なこと抜かすやつが出てきたな
SetCaretPosで見た目上、位置を変更できたように見えるが
VBのテキストボックスが内部でキャレット位置を保持していて
現在の位置を無視するので動作がおかしくなるだけ

>>924
EM_POSFROMCHAR で分かる
0933デフォルトの名無しさん2006/03/01(水) 02:05:15
VB6.0で、テキストボックスに文字を入力できないようにするのは、
KeyPressイベントでKeyCode=0にするまでは解ったのですが、
既に入力されている文字をDELETEキーで削除できてしまいます。

DELETEキーを受け付けないようにしたいのですが、
どのようにすればいいのでしょうか??
0934デフォルトの名無しさん2006/03/01(水) 02:21:38
>>993
KeyDownイベントで KeyCode = 0
というか、テキストボックスに文字を入力できないようにするなら
Text1.Locked = True でいいんじゃない?
KeyPressやKeyDownでキーコードつぶすのは、
キーによって細かく動作を変えたいような場合にしか使わんよ
0935デフォルトの名無しさん2006/03/01(水) 02:22:43
Locked
0936デフォルトの名無しさん2006/03/01(水) 06:14:49
Dim s, l As Integer
With Text1
s = .SelStart
l = .SelLength
.SelText = UCase(.SelText)
.SetFocus
.SelStart = s
.SelLength = l
End With
0937デフォルトの名無しさん2006/03/01(水) 08:09:43
> Dim s, l As Integer
> Dim s, l As Integer
> Dim s, l As Integer
0938デフォルトの名無しさん2006/03/01(水) 14:11:43
> Dim s, l As Integer
> Dim s, l As Integer
> Dim s, l As Integer
0939デフォルトの名無しさん2006/03/01(水) 16:03:54
ttp://www2.moug.net/bbs/program/20060301000005.htm
0940デフォルトの名無しさん2006/03/01(水) 21:22:09
たとえばテンキーの"+"を押したときにコマンドボタンをクリックさせるのって

keydownイベントに

if keycode = (107) then
commanbutton1.value = true
end if

じゃだめなんですかねー^^;
0941デフォルトの名無しさん2006/03/01(水) 21:30:40
失礼!
commanbutton1→commandbutton1
0942デフォルトの名無しさん2006/03/01(水) 21:45:11
Callしてやれば同じ事だろ
0943デフォルトの名無しさん2006/03/01(水) 21:52:51
>>940
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = &H6B& Then
KeyCode = VBRUN.KeyCodeConstants.vbKeySpace
End If
End Sub
0944デフォルトの名無しさん2006/03/01(水) 21:53:18
いや ビジュアル的に
ボタン押してるアニメーションも欲しかったので
0945デフォルトの名無しさん2006/03/01(水) 21:56:03
>>943
&H6B& → vbKeyAdd
0946デフォルトの名無しさん2006/03/02(木) 03:34:33
>>934
Locked ってXPだとバグあるよね
Locked = True なのにコンテキストメニューからペーストできちゃう
0947デフォルトの名無しさん2006/03/02(木) 05:14:00
>>946
そんなバグつきのバージョン使ってるやつのことなんかしらね
アップデートできない事情があるならコンテキストメニューも潰せ
0948デフォルトの名無しさん2006/03/02(木) 05:59:45
WebBrowserで異なるドメインのためアクセスできないフレームのドキュメントにアクセスする方法を教えてください
0949デフォルトの名無しさん2006/03/02(木) 06:00:20
嫌です
0950デフォルトの名無しさん2006/03/02(木) 06:37:52
くずが
0951デフォルトの名無しさん2006/03/02(木) 09:13:44
>>946
VB6はXPで動作保証されてません。
「MSのサイトでは云々」って話は無意味だから。
09529482006/03/02(木) 10:34:56
誰かわかる人いませんかー?
0953デフォルトの名無しさん2006/03/02(木) 10:42:45
いません
0954デフォルトの名無しさん2006/03/02(木) 10:51:08
>>952
ドメインが違うとアクセス出来ないのは何故?
URLでサイト開くんじゃないの?
0955デフォルトの名無しさん2006/03/02(木) 11:03:32
>>954
たとえば www2.2ch.net/2ch.html を開いて板一覧のDocumentにアクセスしようとしてもできないです
これを解決する方法を教えてください
0956デフォルトの名無しさん2006/03/02(木) 11:35:56
>>955
現象が再現する必要最低最小限のコードは?
0957デフォルトの名無しさん2006/03/02(木) 11:45:51
>>956
Private Sub Form_Load()
  WebBrowser1.Navigate "http://www2.2ch.net/2ch.html"
End Sub
Private Sub Form_Click()
  Dim Doc As Object
  Set Doc = WebBrowser1.Document.frames(0).Document
End Sub

0958デフォルトの名無しさん2006/03/02(木) 13:03:33
>>957
With WebBrowser1
Dim Doc As HTMLDocument
Set Doc = .Document.frames(0)
End With
0959デフォルトの名無しさん2006/03/02(木) 14:44:26
>>958
ありがとう
でも、私の目的とするところは、ちょっと違うんです
そのコードでオブジェクトそのものは取れても、Documentのプロパティにはほとんどアクセスできないんです
具体的には、そのDocumentオブジェクトを使って、板リンクのURLを取得するとか、そういうことを目的としています
「Documentにアクセス」っていう私の説明の仕方が悪かったですね、すみません
0960デフォルトの名無しさん2006/03/02(木) 15:05:03
>>959
つXMLHTTP オブジェクト
0961デフォルトの名無しさん2006/03/02(木) 16:00:16
>>960
ソースをDLして解析しろってことですよね?
それだと動的な状態が取れないんで、ちょっと困るんです
あくまでもWebBrowserなんで、ブラウザであれこれ操作したいんです
0962デフォルトの名無しさん2006/03/02(木) 17:42:40
NUMLOCKオフった時のテンキーの5キーの定数ってあるんですか?
色々調べたんですがわかんなかったんで
0963デフォルトの名無しさん2006/03/02(木) 17:46:30
>>961
ブラウザの内部状態を知るにはブラウザを作れば良い
0964デフォルトの名無しさん2006/03/02(木) 18:28:20
>>963
それは要するにWebBrowserでは不可能だということですか?
0965デフォルトの名無しさん2006/03/02(木) 19:19:06
TDBGridって動的にセルの数を増減できないのかしら。
0966デフォルトの名無しさん2006/03/02(木) 19:28:19
>>962
つKeyCodeConstants.vbKeyClear
0967デフォルトの名無しさん2006/03/02(木) 20:18:47
WebBrowserを使っているオブジェクト(つまり自作アプリ)からだと
WebBrowserオブジェクト内のほとんどにアクセスできそうだけどな。
フレーム使っているから、その親(つまり2ch.net)のセキュリティが
適用されるのかな?

まーあれだ。2chなら、直接ファイル(dat?)を見に行けと。
0968デフォルトの名無しさん2006/03/02(木) 20:38:38
>>965
つMaxRows
0969デフォルトの名無しさん2006/03/02(木) 21:21:35
>>968
ありがとう。

でも、知りたいのはカラム数の増減なの、ごめんね。
0970デフォルトの名無しさん2006/03/02(木) 21:51:37
>>969
Column の Width を 0 にしたり、Visible を False にすりゃいいじゃん。
0971デフォルトの名無しさん2006/03/03(金) 00:08:46
>>946
Lockedは2000から貼り付け可能です。
ですから、2000でもVB6アプリは動作保証されないということです。


さて、このスレッドももう次はいらないですよね。
0972デフォルトの名無しさん2006/03/03(金) 00:09:50
必要に一票
0973デフォルトの名無しさん2006/03/03(金) 00:17:31
>>946
もしかしてSP6で直ってる?割と有名な放置バグだと思っていたんだが再現しない。
0974デフォルトの名無しさん2006/03/03(金) 00:30:27
次スレイラネ
0975デフォルトの名無しさん2006/03/03(金) 00:31:00
イヤ イルネ
0976デフォルトの名無しさん2006/03/03(金) 00:31:32
つか作っちゃうよ?
0977デフォルトの名無しさん2006/03/03(金) 00:36:24
>>971
莫迦発見。2000は完璧にサポート範囲内だ、っての。
Locked が動作しないのは、お前の糞環境だけ。
0978デフォルトの名無しさん2006/03/03(金) 00:40:42
ただの煽り厨に反応するなよ
0979デフォルトの名無しさん2006/03/03(金) 02:22:19
次スレいるとか言ってるやつはただの教えたがり君だって噂。
0980デフォルトの名無しさん2006/03/03(金) 02:45:16
ん? 次スレたてたけどどうする?

VBプログラマ質問スレ(6.0以前) Part47
http://pc8.2ch.net/test/read.cgi/tech/1141320612/
0981デフォルトの名無しさん2006/03/03(金) 02:47:51
質問があれば使うし無ければ消えるからどうもしないよ?
0982デフォルトの名無しさん2006/03/03(金) 03:24:53
継続するべし・・・・・・・・・・・・・・・・・・・・・・
レス数が950を超えています。1000を超えると書き込みができなくなります。