VBプログラマ質問スレ(6.0以前) Part46
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/02/03(金) 22:58:330698デフォルトの名無しさん
2006/02/15(水) 20:17:000699デフォルトの名無しさん
2006/02/15(水) 20:37:26゙、::::::::-‐''""" ̄"'i
:V;;||:::: '~ニ=ッ, r='|
i!f !::::: ゙、i
i!ゝ!:::: ‐/リ
i::/:、 :::、 /''ii'V
 ̄ハ:::::\ "''il|バ''
ショカツリョウ
諸葛亮 曰く
「目的と手段を履き違えてはいかんぞ」
0700デフォルトの名無しさん
2006/02/15(水) 21:57:340701デフォルトの名無しさん
2006/02/15(水) 22:15:020702デフォルトの名無しさん
2006/02/16(木) 21:29:310703デフォルトの名無しさん
2006/02/16(木) 21:30:16方法はあります
0704デフォルトの名無しさん
2006/02/16(木) 21:36:55ある。
0705デフォルトの名無しさん
2006/02/16(木) 21:58:38俺は多分あるとしか言えない。
0706デフォルトの名無しさん
2006/02/16(木) 21:56:22WinXP SP2
VB6.0 SP6
InputMan Pro 6.5J
InputManのimTextで、IMEオフで入力すると正常ですが、
IMEオンにして入力すると、確定したときに文字がある部分のみ
灰色(フォーム背景色?)になり、文字が隠れてしまうという現象が起こります。
IMEからの入力だと全角、半角問わず発生します。
解決策ご存知の方いましたらご教授お願いします。
0707デフォルトの名無しさん
2006/02/16(木) 22:06:00ネタじゃなくあるって言ってるならファイル操作ってものが全くわかってないんだよw
0708デフォルトの名無しさん
2006/02/16(木) 22:49:16ここではなく、BOC、じゃなくてグレープシティのWEBサイトでFAQ検索した方がいいかも。
0709デフォルトの名無しさん
2006/02/16(木) 22:57:50教えてティーチャー
0710デフォルトの名無しさん
2006/02/16(木) 23:00:41WinXP SP2
VB6.0 SP6
InputMan Pro 6.5J
InputManのimTextで、IMEオフで入力すると正常ですが、
IMEオンにして入力すると、確定したときに文字がある部分のみ
灰色(フォーム背景色?)になり、文字が隠れてしまうという現象が起こります。
IMEからの入力だと全角、半角問わず発生します。
解決策ご存知の方いましたらご教授お願いします。
0711デフォルトの名無しさん
2006/02/16(木) 23:16:30VB6もInputMan65Jも、XPには対応してないよ。
だから、どんな不具合が起こっても仕方がないし、回避方法はない。
0712デフォルトの名無しさん
2006/02/16(木) 23:17:23ヒント:エディタ
0713デフォルトの名無しさん
2006/02/16(木) 23:37:17ヒント:split()
0714デフォルトの名無しさん
2006/02/16(木) 23:54:02あるも何もロジックの問題
0715デフォルトの名無しさん
2006/02/17(金) 00:21:59( ゚∀゚)彡 ロジック!ロジック!
⊂彡
0717デフォルトの名無しさん
2006/02/17(金) 03:40:06一応お客さんなんだしさ。なんらかの対応はしてくれるよ。
0718デフォルトの名無しさん
2006/02/17(金) 06:34:04行を削除する関数とかがあるかって話じゃなくて、
"方法"があるかって話なんだがw
組み込みにしたってAPIにしたって、関数一つで出来る事なんて限られてる。
それを組み合わせて必要な機能を実装していくのがプログラミングというものですよ。
そのレベルの話で「出来ない」とか言ってるなら、「お前の知識では出来ないだけ」だ。
0719デフォルトの名無しさん
2006/02/17(金) 07:02:48正規表現を使いたくて、ここ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsobjRegExp.asp
を参考にスクリプト組んでみたのですが、
被検索文字列を " 2005/12/31" 、検索パターン文字列を "[0-9]^4" にして
RegExpオブジェクトを使っても、どこにも一致してくれません。
パターンを "\\d^4" にしても一致してくれません。
"僕は海が好きで、川が好きで、山も好きです。" から "(海|山)(.)好き" の
パターンを検索すると、これは正常に動作してくれます。
数字4桁を拾うにはどう記述したらいいですか?
0720デフォルトの名無しさん
2006/02/17(金) 07:26:01VBSはスレ違いじゃないけど、正規表現構文はスレ違い。
つーか、全然理解してないようだが、Pattern プロパティのところに正規表現の解説あるから
それを読んでも解らなかったら正規表現スレ行け。
まぁ、この件に関しては数量子の使い方が解ればいいだけだが、この機会にきちんと勉強しておけ。
あまりにも簡単すぎる質問だから、ここでも教えたがり君がスレ違いにも関わらず意気揚々と答え出すかもしれないけどな。
0721デフォルトの名無しさん
2006/02/17(金) 08:20:33スレ違いなら例外なく排除すべき、と単細胞に思い込むほど頭悪いんだから。
スレ違いだろうとなんだろうと、スレの主題に関連した話題で
多数の人間に利益があればそれを否定する理由はない、と理性的な人間なら
考えると俺は思うけどね。
例のパーティージョークだと「こういう場合は海に飛び込む規則になっております」
ってのはドイツ人に向かっていうセリフになってるが、自分の頭で物事考えられない
鳥頭ってのはドイツ人よりむしろ日本人にこそより当てはまるんだよね悲しいかな。
0722デフォルトの名無しさん
2006/02/17(金) 09:57:440723デフォルトの名無しさん
2006/02/17(金) 09:58:060724デフォルトの名無しさん
2006/02/17(金) 10:14:24textbox1に101以上の数値を入れたとき
commandbutton1のフォーカスしないのはナゼ?
ttp://venus.aez.jp/uploda/index.php?dlpas_id=22513
pass:test
0725デフォルトの名無しさん
2006/02/17(金) 11:00:52しらね
バグでもあるんじゃない?
0726デフォルトの名無しさん
2006/02/17(金) 11:11:30そんなのわざわざダウンロードして試してくれる奴なんか居る訳ないでしょ。
コピペだけで一切変更なしですぐ動いて動作を試せるコードを提示しろよ。
0727デフォルトの名無しさん
2006/02/17(金) 14:42:34言いたいことは分かるが、スルーするのも大人のたしなみだと思いねえ
0728デフォルトの名無しさん
2006/02/17(金) 21:59:12VBSの正規表現は、^4で4桁になるのか?
桁数は {なんとか} あたりで指定すると思うんだが?
0729デフォルトの名無しさん
2006/02/17(金) 22:07:09VB6(SP5)の環境で、ADO6.0(SP4)を使ってACCESS2003(SP2)のmdbファイルを
読み書きするプログラムを作っています。
普通にSELECTしてレコードセットを作って〜という部分は、
意図した通りの動きをしているのですが、SELECT文中でLIKE演算子を
使った部分でレコードが無いという結果になっています。
VB中で使っているSQL文を、ACCESSのクエリに貼って動かしてみると、
きちんとレコードが選択されるので、何が問題なのか絞り込めずにいます。
ソースは以下のようになってます。
Private Sub foge()
Dim cn as New ADODB.Connection
Dim rs as New ADODB.Recordset
Dim strSQL as String
strSQL = "select A, B from T where C like 'X*' order by A"
rs.Open strSQL, cn, adOpenKeyset, adLockReadOnly
Do While (rs.EOF = False)
' この辺にレコードの処理
Loop
rs.Close
Set rs = Nothing
cn.Close
End Sub
動きとしては、レコードが選択されない→ループの中に入らない、という状態です。
0730729
2006/02/17(金) 22:33:26cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & p_mdbPath & p_fileName & ";"
0731デフォルトの名無しさん
2006/02/17(金) 22:41:57VB6 に付属しているディストリビューション ウィザードで事足りるものでしょうか。
0732デフォルトの名無しさん
2006/02/17(金) 23:23:50ADOの場合、Likeのワイルドカードって*じゃなかった様な気がする。
%だっけか。ヘルプ見てみて。
0733デフォルトの名無しさん
2006/02/17(金) 23:40:01ディストリビューションウィザードは自分で改造しないと使い物にならない
というのが正直なところ。
InstallShield Expressを使ったほうが良いです。
0734デフォルトの名無しさん
2006/02/17(金) 23:44:29もちろん正規のプロダクトIDが必要だけどねw
まさかヤフオクで入手したVL(w
っていうか、どうせ同じ今から新しく覚えるならVB6ってのは
果たしてよい選択なんだろうかね
0735729
2006/02/17(金) 23:45:45うぉーありがとうございます!
一発で解決しました!
ACCESSで "%" が使えなかったので、ADOの仕様まで考慮してませんでした。
本当にありがとうございましたー
0736デフォルトの名無しさん
2006/02/18(土) 00:19:31例えMDBにアクセスしてても、ADOを使ってる訳で、
SQL文はSQLサーバの方の文法になります。
0737719
2006/02/18(土) 00:45:36PCにインストールされてるMSDNの検索でヒットした正規表現の項目を
使ったのがまずかったようです。微妙に異なる部分に引っかかりました。
ご指摘の通り"{}"で試したところ正常にヒットしてくれました。
この際ちゃんと学習しておくことにします。
0738デフォルトの名無しさん
2006/02/18(土) 01:04:51' オブジェクト変数に参照をセットします。
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If (Err.Number <> 0) Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
If oHttp Is Nothing Then
MsgBox "XMLHTTP オブジェクトを作成できませんでした。", vbCritical
Exit Sub
End If
With oHttp
.Open "GET", strURL, False
.setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"
.Send
strHTML = StrConv(oHttp.responseBody, vbUnicode)
End With
このロジックでまれにstrHTMLにCR/LFだけが帰ってくる場合がありますが、
原因・対処方はありますか?
0739デフォルトの名無しさん
2006/02/18(土) 07:24:280740デフォルトの名無しさん
2006/02/18(土) 08:16:51ネットワークなんて水物ですよ。
0741デフォルトの名無しさん
2006/02/18(土) 15:06:58Access、DAOから入ると良く躓く部分だな、そこは。懐かしい。
0742デフォルトの名無しさん
2006/02/18(土) 15:26:25As Object:CreateObject()よりできる限り事前バインディングのが良く寝?
誰か利点ナリ反論ドゾ
0743デフォルトの名無しさん
2006/02/18(土) 15:40:49Dim oHttp As XMLHTTP26
Set oHttp = CreateObject("MSXML2.XMLHTTP")
が一番良い。
0744デフォルトの名無しさん
2006/02/18(土) 15:49:29('A`)?
0745pp
2006/02/19(日) 01:02:48半角の中グロにして全角の場合は、全角の中グロにするなど前後のテキストに
応じて変換したいのですが…。
ワイルドカードに任意の複数文字を設定するやり方とかあるのでしょうか?
0746デフォルトの名無しさん
2006/02/19(日) 01:35:03変換ルールがあるなら素直にfor-nextとmid$()で逐次変換してくのが良いと思うが・・・
0747pp
2006/02/19(日) 01:58:10やっぱり自分で流れを作ります。
0748デフォルトの名無しさん
2006/02/19(日) 04:33:32あるフォルダの中に複数のファイルがあります。
それらのファイルのタイムスタンプを見てある時刻以前のものを
削除したいといった処理なのですが
フォルダ:TEST
AAA.txt 2006/02/17 01:30
BBB.txt 2006/02/18 12:15
CCC.txt 2006/02/18 18:45
DDDtxt 2006/02/19 03:30
EEE.txt 2006/02/19 04:27
☆ 2006/02/19 03:30 以前のファイルを削除したい
入門WEBページを見ても検討がつきません。。
正直眠りたい。
肌が。。
0749デフォルトの名無しさん
2006/02/19(日) 08:17:24FSO使え。
wshの日本語版ヘルプファイルに詳しく載ってる。
MSDNと同じ内容だけど、wsh(vbs、jsなど)使うなら落としておくが吉。
1週間それを読んでもわからなかったらまた来なさい。
0750デフォルトの名無しさん
2006/02/19(日) 08:37:30VBだとこんな感じ。
Dim objFSO As FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objDir As Folder
Set objDir = objFSO.GetSpecialFolder(SystemFolder)
Dim objFile As File
For Each objFile In objDir.Files
DoEvents
If DateDiff("d", objFile.DateLastModified, "1999/01/01") > 0 Then
Debug.Print objFile.Name, objFile.DateLastModified
End If
Next
Set objDir = Nothing
Set objFSO = Nothing
VBSに DateDiff があるのかどうかは知らない。
0751デフォルトの名無しさん
2006/02/19(日) 08:43:51普段は答えられないことをごまかすためになんだかんだ理由付けて叩くくせに
0752デフォルトの名無しさん
2006/02/19(日) 10:30:49>FSO使え。
みたいな口調を見るとなんだか笑っちゃうよねえ。
やっぱり人間頭の悪さとか精神の未熟さってのはどうやっても隠せないんだな、とw
0753デフォルトの名無しさん
2006/02/19(日) 10:43:000754デフォルトの名無しさん
2006/02/19(日) 11:28:14簡単な質問にすら答えられない人はここ読まなくていいからね。
0755デフォルトの名無しさん
2006/02/19(日) 12:29:32通常は[_][□][×]と最小化、最大化/元のサイズ、閉じると3つ並んでますが、
BorderStyleだと、ボタン3つか閉じるのみかしか選べず、
MaxButton=Falseだと無効になるだけで表示は残ります。
コントロールボタンを[_][×]というようにしたいのですが。
VB6の機能のみで出来ないならAPIでも構わないので具体的な回答をお願いします。
0756デフォルトの名無しさん
2006/02/19(日) 12:48:19VBでは勿論、APIでも非表示には出来ない。
もしやるなら、タイトルバーなしのウィンドの上部を擬似的にタイトルバーにして、
[_][×]とかも全部自分で描画して、其処のマウスイベントを全部拾ってごにょごにょ
しないと。
0757748
2006/02/19(日) 14:38:44無事、解決できました。
日時分秒までの比較を行いたかったので
If DateDiff("d", objFile.DateLastModified, "1999/01/01") > 0 Then
で "s"を指定しました。
コードまで示して頂いて
本当にありがとうございました。
0758デフォルトの名無しさん
2006/02/19(日) 14:53:45良かったね。
今後は >>751 のせいで、二度とコードは貼られないから。
0759デフォルトの名無しさん
2006/02/19(日) 16:13:57落としてみたけど原因わかんないな
exitの解釈が違うんじゃない
0760デフォルトの名無しさん
2006/02/19(日) 19:51:02同じルーチンを2度通るからおかしくなってるんじゃないの
0761デフォルトの名無しさん
2006/02/19(日) 21:16:460762デフォルトの名無しさん
2006/02/19(日) 22:04:04DataTableのSelectメソッドで、抽出条件を記述して
DataRow[]を抽出できたのですが、
抽出したDataRowを新規のDataTableに格納したいのですが、
なかなかうまくいきませんでした。
試した方法は、
新規のDataTableのインスタンスを作成してdataTable.rows.addメソッドで
抽出したrowを追加する方法は間違っているのでしょうか。
0763デフォルトの名無しさん
2006/02/19(日) 22:46:07×やってる事の文章
○コピーペーストでそのまますぐ実行出来る、現象が再現する最小限コードの提示
0764デフォルトの名無しさん
2006/02/20(月) 01:34:49動作が速くなるとかそういうことでしょうか?
0765デフォルトの名無しさん
2006/02/20(月) 03:43:04速度は殆ど変わらないんじゃないかな。
MSXMLが存在しなければ全ての機能が動かないってんなら事前バインディングでいいと思う。
プラグインみたいに、あっても無くてもどっちでも動くようにするんならCreateObject
使うしかねーけど。
仕事じゃないんなら事前バインディングで適当に楽したいね。
0766デフォルトの名無しさん
2006/02/20(月) 09:01:51ちょっと前にそれに関する議論があった様な。
New だと色々不具合が出るよ。
0767デフォルトの名無しさん
2006/02/20(月) 12:25:30(あえて突っ込まれそうな言い方をするけど)参照変数にナニを使うかの問題であって、
インスタンスをどうやって生成するか、というのとは全く別問題だよ。
0768デフォルトの名無しさん
2006/02/20(月) 12:40:37つかそのProgIDだとせっかくMSXML4.0インスコしてあっても3.0のが適用されちゃうよ
0769デフォルトの名無しさん
2006/02/20(月) 12:47:04別のデータテーブルのRowのインスタンスを追加は出来ないんで無かった?
新規のデータテーブルに新規のRowを追加した後、それに抽出したRowのデータを流し込む様なコードにすると動くと思うよ
0770デフォルトの名無しさん
2006/02/20(月) 12:54:34kwsk
0771デフォルトの名無しさん
2006/02/20(月) 13:01:04変数の生成メカニズムが違ってくるんだが。
彼の主張が正しいとするなら、レイトバインドによる複数バージョンの互換が説明できないよ。
0772デフォルトの名無しさん
2006/02/20(月) 19:48:58つーかそんなもんちょっと調べりゃわかりそうなもんだが。
0773デフォルトの名無しさん
2006/02/20(月) 20:28:58WindowsXP SP2
目的
特殊なpngファイルを読込み、標準pngに変換する。
問題点
IHDR、PLTE、IDAT、IEND等の各チャンクと呼ばれるブロック単位から構成されてるとこまでは理解できたのですが
例えば、IHDRチャンクは実際どういう形式でデータ(色情報等)を保持しているのかといったpngの仕様を知りたいの。
質問
pngファイルの仕様を日本語訳にしてるサイトってありませんでしょうか。
または、pngファイルを扱ったサンプルソースを載せてるサイト、参考書でもおっけなのですが。。
せちからい話、当方、英語がまったくできないため、W3Cのpng仕様サイトを見てもさっぱりなのです。。
参考サイト(日本語サイト)、参考書などあれば教えてください。よろしくお願いします。
0774デフォルトの名無しさん
2006/02/20(月) 20:35:25VB関係ないじゃん。
で、Irfanview32 とか LEADTOOLS とかでやった方がいいんじゃないの?
出来るかどうかは知らないが。
0775デフォルトの名無しさん
2006/02/20(月) 20:42:36東京書籍の「NEW HORIZON」とかが良いんじゃない?
0776デフォルトの名無しさん
2006/02/20(月) 20:42:57VBで表示しないといけないんです。。
標準pngはフリーのDLLを使用してImageコントロールに表示できてるんで、
あとは標準pngへの変換だけなのです。
また、特殊pngは独自仕様なので、標準pngの仕様をまず知りたいとこなんです。
0777デフォルトの名無しさん
2006/02/20(月) 20:44:17ありがとうございます!
さっそく調べてみます!
0778デフォルトの名無しさん
2006/02/20(月) 20:47:44英語の勉強からってことですね。。
0779デフォルトの名無しさん
2006/02/20(月) 20:56:20LEADTOOLS を調べもせず書いてるでしょう?
0780デフォルトの名無しさん
2006/02/20(月) 21:02:44グレープシティーのソフトですよね。
LeadToolはバージョン12.0Jを実際に一部機能で使ってるんです。
ただ、特殊なpngファイルが独自仕様のため、外部ツールに頼ることができないのです。
0781繁蔵
2006/02/20(月) 21:04:060782デフォルトの名無しさん
2006/02/20(月) 21:05:51>>769
ご返答ありがとうございました。
Rowを抽出する前のDataTableのCloneメソッドで
テーブル構造が同じDataTableを作成して、このテーブルの
ImportRowメソッドでRowを取り込むことで解決できました。
0783デフォルトの名無しさん
2006/02/20(月) 21:15:15その特殊なPNGを勝手に作った所で、その非標準のPNGを
表示する方法とか標準に変換する方法を提供してないの?
普通はするけど。
0784デフォルトの名無しさん
2006/02/20(月) 21:19:42特殊pngを表示する方法はわかってるのですが、
標準pngに変換する方法はわからないんです。
0785デフォルトの名無しさん
2006/02/20(月) 21:26:11特殊PNGを作った会社(?)に聞けば。
または、表示出来るならクリップボードに入れてペーストすりゃいいじゃん。
0786デフォルトの名無しさん
2006/02/20(月) 21:29:31なるほど、クリップボードは思いつきませんでした。
ちょいと試してみます。
どうもありがとうです
0787デフォルトの名無しさん
2006/02/20(月) 22:03:200788デフォルトの名無しさん
2006/02/20(月) 22:13:56つMSDN
0789デフォルトの名無しさん
2006/02/21(火) 02:48:00漏れはInStrRevあたりグッとクるなぁ。
だって「後から検索」だぜ。タマラン。
0790デフォルトの名無しさん
2006/02/21(火) 16:13:56実行してもいつも同じ値しか得られず正しい温度でもありません.
CPU温度をリアルタイムにモニタする方法はないでしょうか?
Function ACPI_CPUTemp()
dim r, lu
set PFU = GetObject("winmgmts:{impersonationLevel=impersonate}!root\wmi").ExecQuery _
("SELECT CurrentTemperature FROM MSAcpi_ThermalZoneTemperature")
for each U in PFU
r = r&U.CurrentTemperature
Next
ACPI_CPUTemp = (r - 2732) / 10
set PFU=Nothing
End Function
0791デフォルトの名無しさん
2006/02/21(火) 17:21:54ttp://www2.noritz.co.jp/anchor/ashp/netmon/samples/wmi_hard.html
0792デフォルトの名無しさん
2006/02/21(火) 18:09:11そこで質問なのですが、自分自身のウィンドウハンドルを取得するにはどうすればよいのでしょうか?
フォームがある場合はMe.hWndで求めればよいと思うのですが、今回はフォームがありません。
下記の2通りの方法を考えましたが、もっとスマートな方法はありませんか?
・EnumWindows+GetWindowThreadProcessIdの返り値をApp.ThreadIDプロパティと比較する
・EnumWindows+GetWindowTextの第2引数とApp.Titleプロパティと比較する
0793デフォルトの名無しさん
2006/02/21(火) 18:14:48ウィンドを作成してないんだから hWnd はないけど。
Sub Main で Load Form1 とかしてその hWnd を使うとか。
0794デフォルトの名無しさん
2006/02/21(火) 18:41:420795デフォルトの名無しさん
2006/02/21(火) 18:53:44つ田代砲
0796あぼーん
NGNG0797デフォルトの名無しさん
2006/02/21(火) 22:02:46これは値を参照するだけにとどまりますか?
■ このスレッドは過去ログ倉庫に格納されています