VBプログラマ質問スレ(6.0以前) Part53
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/08/21(火) 12:40:16質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。
VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。
○ 質問者の心得
一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
二.VBScript、インストーラーなどはこのスレでOK。
三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
四.荒らしは相手しない。
○ 回答者の心得
一.答えられない質問は無駄に罵倒せずスルー。無理するな。
二.代用法を強制しない。
三.回答する上で必須ではない情報をむやみに聞き返さない。
四.荒らしは相手しない。
五.VB情報募集中。
六.回答は質問者が理解できるよう具体的に。
MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
0002デフォルトの名無しさん
2007/08/21(火) 22:26:25リストボックスにカーソルがある時に
↑↓キー以外にも←→キーでも選択行が変わりますが
←→キーで選択行を変更したくない場合は
どのようにすれば良いのでしょうか?
プロパティかなにかで止められないでしょうか?
0003デフォルトの名無しさん
2007/08/22(水) 16:05:420004デフォルトの名無しさん
2007/08/22(水) 16:14:04キーダウンイベント有無関係ナシに
リストボックスのIndexは移動しないか?
イベントで動いた分強制的に戻すなら・・・
0005デフォルトの名無しさん
2007/08/22(水) 17:27:440006デフォルトの名無しさん
2007/08/22(水) 17:31:43はい。キーイベント関係なしに動きます。
強制的に戻そうにも、タイミング的にどうすれば良いものか。。。
実はずっと探してはいたのですが、リストボックスコントロールの
制御後にイベントを発生させることができれば可能だとは思います。
しかし、コーディング的にはすっきりしません。
別の方法も模索中ですが、横スクロールバーを追加すると、
←→を押していると左右に少しずつ移動し(格好悪い)て、
一番端に来るとやっぱり上下に移動してしまいます。。。
この方法ではできませんでした。
なんとかならないものでしょうか(泣)
0007デフォルトの名無しさん
2007/08/22(水) 17:35:07なかったことにしてやりたいですw
もしかして私は何か間違ってるでしょうか?
KeyDownとは無関係にリストボックスの上下移動をしているように思います
0008デフォルトの名無しさん
2007/08/22(水) 19:34:30結構頻出なんだけどな
Option Explicit
Private WithEvents lstbox As ListBox
Private Sub Form_Load()
Dim i As Long
Set lstbox = Me.Controls.Add("VB.ListBox", "lstox")
With lstbox
.Move 0, 0, 3000, 5000: .Visible = True
For i = 1 To 100: .AddItem i: Next
End With
End Sub
Private Sub lstbox_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyLeft Then KeyCode = 0
End Sub
00092
2007/08/22(水) 19:44:02申し訳ありません。
いろいろやって、自分でも結論が出ました^^;
やはり間違っていたようで、キーイベントで拾って処理する事ができました。
おっしゃる通り、keycodeを0にすれば良かったです。
昨日から何度も目にしていたのですが、リストボックスの制御する事で
頭がいっぱいになっておりました><;
本当に申し訳ありませんでした。
0010デフォルトの名無しさん
2007/08/22(水) 23:37:56New するのと CreateObject を使うのと、何か違いはあるのでしょうか?
パフォーマンスに差があったりしますか?
0011デフォルトの名無しさん
2007/08/23(木) 00:18:13「使用中のブラウザに表示する」というチェックボックスがありますが、
これは何なんでしょうか?
0012デフォルトの名無しさん
2007/08/23(木) 00:43:01http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200403/200403_04030024.html
0013デフォルトの名無しさん
2007/08/23(木) 07:17:01VBでCOMコンポーネントを作成していて
DLLが置いてあるディレクトリにあるファイルを読み込む必要があるのですが
自分がインストールされているディレクトリのパスを取得する方法はありますでしょうか?
0014デフォルトの名無しさん
2007/08/23(木) 10:49:020015デフォルトの名無しさん
2007/08/24(金) 00:15:46LostFocusイベントで取得するのはムリでしょうか?
0016デフォルトの名無しさん
2007/08/24(金) 02:14:410017デフォルトの名無しさん
2007/08/24(金) 13:11:06できることならWebサーバにもVBを入れてこのDLLをデバッグしたいのですが、
本番サーバと環境に違いが出てしまうので、サーバにはインストールできません。
ASPからDLLが呼びだされたときに、他のマシンにインストールしたVBを使って
フックしてデバッグすることはできないでしょうか?
0018デフォルトの名無しさん
2007/08/24(金) 16:36:31一度読み込んだ写真を再度表示する際は、
高速に表示できるような処理を行いたいと考えています。
どなたかご存知であれば、ヒントご教示願います。
[詳細]
フォルダから読み込んだ写真ファイルをリストボックスに表示させ、
リストボックスの選択した写真をイメージプロパティに表示させています。
(2メガ程度の写真を数百枚扱います)
一度読み込んだ写真を再度表示する際に、Image1.Picture = LoadPicture(List1)
としていますが、これだと再読み込みになってしまい表示が遅いです。
Image1.Pictureの値には「923075963」のような数値が入っているので、
これを使えないかと思い、いろいろ調査してみましたが、わかりませんでした。
0019デフォルトの名無しさん
2007/08/24(金) 19:06:53VB6に向かない仕事だと思う。
またVB6以外を使うとしても根本的は解決法はない。
せいぜい「直前にみた画像」を数枚メモリにキャッシュしておく程度の
工夫しかできないと思う。
というか、数メガ程度の画像の読み込みが遅いってことはそもそもないと思うんだけどどうだろう。
どうでもいいけど言葉は正確に使うべきだし使おうとすべきだ。
君の文章にはやたらと「読み込んだ」という表現が出てくるが、
いったいどういう意味でその「読み込んだ」という言葉を使っているのだろう。
002018
2007/08/24(金) 21:06:25レスありがとうございます
そうですか。解決法は無いのですか。。。><
>というか、数メガ程度の画像の読み込みが遅いってことはそもそもないと思うんだけどどうだろう。
これは300K程度の軽いものに比べて遅いという意味です。
自作のPGで、一度表示した写真を
Set Image2.Picture = Image1.Picture
のように別のイメージプロパティからセットすると、表示が早かったので
Image1.Pictureの情報がメモリか何かに格納されているのでは無いかと思いました。
それならフォルダ内の写真をメモリに先読みすれば良いのかなと思った次第です。
>いったいどういう意味でその「読み込んだ」という言葉を使っているのだろう。
Image1.Picture = LoadPicture(List1)のような事を指しています。
「読み込んだ」だと表示されていない印象を受けるので、「表示」と書けば良かったと思います。
結果として、私の思っていたような事はできないものとして、
裏処理として、写真枚数だけイメージプロパティを追加する処理を
試してみたいと思います。(非常に重くなりそうな予感ですが。。。)
どうもありがとうございました。(^^)
0021デフォルトの名無しさん
2007/08/24(金) 21:10:40Pictureオブジェクトをコレクションか何かで持っておいて
set image1.picutre = obj
とかやればいいんじゃない?
でも、これだと数百枚x2Mじゃ問題あるので
キャッシュアルゴリズムやリングバッファのようなものを実装する必要があるかな
002218
2007/08/24(金) 21:11:01イメージプロパティ追加じゃなくて、メモリにキャッシュでしたw
0023デフォルトの名無しさん
2007/08/24(金) 21:11:44002418
2007/08/24(金) 21:13:19キャッシュアルゴリズムやリングバッファですか〜
早速調査してみます。
レスありがとうございます(^^)
002518
2007/08/24(金) 21:14:46どうやらそのようですw
後は私のがんばり次第という事で、締めくくりたいと思います(^^)
0026デフォルトの名無しさん
2007/08/24(金) 22:13:310027デフォルトの名無しさん
2007/08/24(金) 23:48:070028デフォルトの名無しさん
2007/08/25(土) 02:30:00まだ952だぞ。
0029デフォルトの名無しさん
2007/08/25(土) 15:45:07手っ取り早いのはCSV形式で保存させてしまうこと。
後何か聞きたいことがあるなら前スレ使って。
http://pc11.2ch.net/test/read.cgi/tech/1179563617/
0030デフォルトの名無しさん
2007/08/25(土) 18:27:58ほい
http://www.bcap.co.jp/hanafusa/VBHLP/excel1.htm
0031デフォルトの名無しさん
2007/08/25(土) 22:21:50Dim a(,) As Integer
a= New Integer(,) {0,300,400,400,500,600,700,800}
{400,500,700,800,1000,1200,1300,1500}
{700,1000,1300,1600,2000,2000,2000,2000}
{1300,2000,2000,2000,2000,2000,2000,2000}
ローカルレベルでこのように配列を宣言したのですが
・配列初期化子の次元が少なすぎます。
・構文エラーです。
とエラーが出てしまいます。
この宣言、初期化の仕方のどこがおかしいのでしょうか?
0032デフォルトの名無しさん
2007/08/25(土) 22:26:03ほんとにVB6か?
0033デフォルトの名無しさん
2007/08/25(土) 22:33:07え〜と間違えましたVB2005です。すみません
0034デフォルトの名無しさん
2007/08/25(土) 22:49:26そろそろやめてほしい。
0035デフォルトの名無しさん
2007/08/26(日) 01:02:07配列には数値以外にも画像を格納する事ができるんですよね?
.gif画像を格納したいんですけど
数値を格納する時と違ってどのように書けばよいのでしょうか。
0036デフォルトの名無しさん
2007/08/26(日) 01:14:20今からでも遅くは無い
VBはやめとけ
他の言語にしろ
0037デフォルトの名無しさん
2007/08/26(日) 01:17:43クラスとコレクションの違いを教えてください。
0038デフォルトの名無しさん
2007/08/26(日) 01:18:07ありがとうございます
0039デフォルトの名無しさん
2007/08/26(日) 01:21:12やめたほうがいいと思う理由はなんですか?
0040デフォルトの名無しさん
2007/08/26(日) 01:25:05>>37
初心者ということが、決して免罪符にならにということは覚えておいた方がいい
とりあえず、オブジェクト指向の本を読んでクラスについて勉強を
コレクションはとりあえず、忘れてOK
0041デフォルトの名無しさん
2007/08/26(日) 02:56:170042デフォルトの名無しさん
2007/08/26(日) 03:43:38つ「GetObject」 「gif フォーマット」
0043デフォルトの名無しさん
2007/08/26(日) 10:12:36その書き方だと何をしたいのかがわからないんだよ
初心者だから説明のしかたがわからないというのはわかるんだけど
配列にgifファイルをどのような形で保存したいと思っているのか?
pictureオブジェクト?ファイル内容をそのまま?展開したビットマップ?
せめて、その配列を用いて何がしたいのかを書いてくれ
0044デフォルトの名無しさん
2007/08/26(日) 10:39:00直線的に進もう、という態度がそもそも間違い。
0045デフォルトの名無しさん
2007/08/26(日) 12:11:19Debug.Printの出力を表示させることはできないでしょうか?
0046デフォルトの名無しさん
2007/08/26(日) 16:04:45debug.printはやったこと無いのでわからんが
OutputDebugStringなら出力できるよ
VC6持ってればの話だけど
0047デフォルトの名無しさん
2007/08/27(月) 15:17:270048デフォルトの名無しさん
2007/08/27(月) 18:29:55思って聞いてみたのですが。
Debug.Printを入れた時と消したときで、コンパイルしてできたexeファイルに差異がありますし。
0049デフォルトの名無しさん
2007/08/27(月) 22:54:45VB6で特定のフォームを表示しているフォームのすぐ背面に
持ってくることは可能でしょうか?
ウインドウズ任せでなく、任意の表示順にしたいのですが、
なかなかいい方法が見つからなくて困っています。
よろしくお願い致します。
0050デフォルトの名無しさん
2007/08/27(月) 23:01:14よろしくお願いします、
0051デフォルトの名無しさん
2007/08/27(月) 23:29:24つ「Moveメソッド」「Zorder」
0052デフォルトの名無しさん
2007/08/27(月) 23:30:39つ「StretchBlt」
0053デフォルトの名無しさん
2007/08/27(月) 23:31:52win32APIのSetWindowsPosを使う
>>50
まず、そのサムネイルはどのような形でVBから扱えるのかを教えて
0054デフォルトの名無しさん
2007/08/29(水) 15:39:25終わったスレは邪魔にしかならない。
とっととDAT落ちするように埋めることの何が悪い。
今後もアクセスされるべき重要な情報があれば、
とっくにどっかの誰かが引用なりなんなりしてるわ。
0055デフォルトの名無しさん
2007/08/29(水) 15:59:33遅いスレで950で次を立てると両方のスレでグダグダ
次スレを立てるタイミングを考えろ糞野郎って事だ
0056デフォルトの名無しさん
2007/08/29(水) 16:05:06VBを愛する者同士仲良くしようZE☆
0057デフォルトの名無しさん
2007/08/30(木) 21:14:38マスクエディットコントロールを2つ(MaskEdBox1、MaskEdBox2)を貼り付けただけのものを起動させ、
別途作ったプログラムからAPIを使ってこのフォームのコントロールに値を入力したいと考えています。
その場合まずFindWindowでフォームのウインドウハンドルを取得して、その子ウインドウ(コントロール)
のハンドルをGetWindowで取得するところまではできたのですが、取得したハンドルが4つのコントロール
のどれにあたるのかの判別方法がよくわからないのです。
GetWindowTextを使うとテキストボックスであればデザイン時に設定しておいたTextプロパティの値が取得
できるようなのですが、マスクエディットコントロールにはTextプロパティが無いようなので何も取得出来ず、
判別が出来ませんでした。
今はGetWindowPlacementでウィンドウの描画位置を取得して何とか判別できるようになったのですが、これ
だとフォームのデザインを変更するたびに別途作ったほうのプログラムも修正しなければなりません。
もし何かもっとスマートなやり方がお解かりになる方がおりましたらどうかご教授願えないでしょうか?
どうぞよろしくお願い致します。
0058デフォルトの名無しさん
2007/08/30(木) 23:32:21長いからななめ読みし貸してない
とりあえずMSDNはみた?
0059デフォルトの名無しさん
2007/08/30(木) 23:44:58はぁ?何が言いたいんですか?
0060デフォルトの名無しさん
2007/08/31(金) 00:43:34>もし何かもっとスマートなやり方がお解かりになる方がおりましたらどうかご教授願えないでしょうか?
君は一つ一つの文を短くしたほうが良いよ。
0061デフォルトの名無しさん
2007/08/31(金) 10:20:55一つ聞きたいけど、MaskEdBoxに値を入力しているのはどうやってやってるの?
GetWindowTextが出来ないんじゃ、SetWindowTextも出来ないのでは?
0062デフォルトの名無しさん
2007/08/31(金) 11:04:00VB側プログラムが普通の作りなら
GetWindowLong(hwnd, GWL_ID)
で特定できる可能性はある
VB側プログラムを自由に変更できるならSetPropでプロパティを付けておけばよい
0063デフォルトの名無しさん
2007/08/31(金) 11:29:06もしくはGetWindowLongで、UserDataを与えておくとか
0064デフォルトの名無しさん
2007/08/31(金) 11:29:52006557
2007/08/31(金) 19:42:01SetWindowTextは別アプリに対しては使えないそうです。別アプリの場合はSendMessageのWM_SetTextで
やるみたいです。
でも確かにマスクエディットにはTextプロパティがないので、仕方がないのでSendMessageのWM_KeyDown
で1文字ずつ送ろうと思ってます。まだ試していませんが。。。
>>62
おっしゃられているウインドウのIDというのが難しくてよくわかりません。
ここのサイト(ttp://www.winapi-database.com/Window/Class/GetWindowLong.html)でGetWindowLongのサン
プル(マウスカーソルの位置にあるウインドウの情報を得るもの)をダウンロードして、コントロールを色々貼り付
けてテストしましたが、GWL_IDはテキストボックスだとText1とText2でそれぞれ違う値になるのですが、コンボボ
ックスだと全部同じ値になってしまい、これだと判別出来ないのでは?と思いました。というかそもそもウインドウ
のIDというものがどういう使われ方をするものなのかがわからないのでそれ以前の問題なのですが。。。
>>63
同じ理由でUserDataというのもよくわかりませんw
できればフォーム側のプログラムに手は加えたくないです。
お答え頂いたみなさんどうもありがとうございます。
ご提示頂いた方法を調べる過程で色々と勉強になりました。
一応GetWindowPlacementでやりたいことは実現出来ているので、もっと良い方法は気長に探そうと思います。
0066デフォルトの名無しさん
2007/09/01(土) 17:43:48だから、とりあえずMSDNオンライン見れと:
http://msdn2.microsoft.com/en-us/library/ms633591.aspx
0067デフォルトの名無しさん
2007/09/01(土) 18:35:45初心者質問で申し訳ありませんが、調べてもわからなかったので、
教えて頂けますか?
[質問]
FORM_LOADの時にsetfocusすると
「プロシージャ呼び出し、または引数が不正」となり処理中止します。
ある条件の場合はフォーカスを変えたいのですが、
この場合、tabindexなどを全て変更したりする必要があるのでしょうか?
また別の方法があるでしょうか?
これに付随して、IMEプロパティもオフにしたいのですが、
リストビューに存在しないので設定方法がわかりませんでした。
宜しくお願い致します。
0068デフォルトの名無しさん
2007/09/01(土) 19:06:48Load時はまだオブジェクトが出来ていな状態だから、
TabIndexを一番低い値にするとか、
ロードした後にsetfocusするとかしかない
0069デフォルトの名無しさん
2007/09/02(日) 00:24:38もしくはForm_Activeで出来るかな。試してないのでよろしく
0070デフォルトの名無しさん
2007/09/02(日) 00:41:07form.setfocus
007167
2007/09/02(日) 04:31:38みなさんありがとうございます。
70さんの方法で、
Form1.Show
ListView1.SetFocus
とすれば、ロード時のセットフォーカス実現できました!
showすれば良かったのですね^^
ありがとうございました!
0072デフォルトの名無しさん
2007/09/02(日) 16:27:07リストボックスでテキストをダブルクリックして表示させることはできますか?<br>
また、サンプルプログラムとかありますか?
0073デフォルトの名無しさん
2007/09/02(日) 17:06:26> フォルダにあるテキストをリストボックスに表示しているのですが<BR>
> リストボックスでテキストをダブルクリックして表示させることはできますか?<br>
> また、サンプルプログラムとかありますか?
フォルダにアルテキストを(リストボックスに)表示させているのに、
なんで、ダブルクリックして表示させにゃならんの?不思議
0074デフォルトの名無しさん
2007/09/02(日) 22:51:07意味不明だからもうちょっと分かり易く、やりたいことを具体的に日本語でOK。
0075デフォルトの名無しさん
2007/09/02(日) 23:53:12指定して習得したいのですが可能ですか?
サンプルなどありましたら、提供していただけると助かります。
0076デフォルトの名無しさん
2007/09/03(月) 00:25:08参考:
rarpに対応して撥ねない機器なら、rarpを使ってできるかも?
0077デフォルトの名無しさん
2007/09/03(月) 01:17:14リストボックス内にテキスト形式のファイル名でもリスト表示しているのか?
でテキストボックスに選択したテキストファイルの内容を表示?
つ「DblClickメソッド」
優しすぎるか?
0078デフォルトの名無しさん
2007/09/03(月) 14:36:25どのような理由か教えてください。
0079デフォルトの名無しさん
2007/09/03(月) 20:59:02よく分からないけど、指定されたファイルがなかったら or 削除出来なかったらエラーが出るくらいしか思いつかん
on error 〜で引っかけて対処しておけばエラーで止まることもないから俺は使ってるけど
0080デフォルトの名無しさん
2007/09/04(火) 01:10:23なんかkillっていうと、プロセスの強制終了ってイメージがある
0081デフォルトの名無しさん
2007/09/04(火) 02:51:33今の今まで聴いたことが無い
ソース見せてくれ
0082デフォルトの名無しさん
2007/09/04(火) 09:01:32確かFSOは条件少し指定できたっけ?
忘れたが
008378
2007/09/04(火) 09:17:33レスありがとうございます。
>>79
ファイルが無いとか、ロックされているケースは私もon error で対処しています。
これだけの問題ならKILLを使いたいと思います。
>>81
「kill vb ファイル 削除 (お勧めしません)」 でググってみて下さい。
ちなみにそのサイトでは、
System.IO.File クラスの Delete メソッドを使用する事がお薦めのようです。
この方法は、Microsoft Scripting Runtimeにチェックを入れたり、
インスタンスの生成や、使用後の参照の開放等、手続きが面倒なので
KILLを使いたいのですが深刻なバグがあるのなら、
Deleteを使用した方が良いと思い、質問させて頂きました。
008483(78)
2007/09/04(火) 09:21:32>>82さんの言うFSOでした。
正 FileSystemObject (FSO) の DeleteFile メソッドを使用する事がお薦めのようです。
誤 System.IO.File クラスの Delete メソッドを使用する事がお薦めのようです。
0085デフォルトの名無しさん
2007/09/04(火) 10:34:510086デフォルトの名無しさん
2007/09/04(火) 11:08:18VB6標準のじゃないってことを理解して使ってればOKだけど
客先に入れたら動かんってことも結構ある。
0087デフォルトの名無しさん
2007/09/04(火) 12:19:40インストーラー作れば問題ないな
というか、VBで作ったソフトの場合インストーラー必須じゃない?
0088デフォルトの名無しさん
2007/09/04(火) 12:21:130089デフォルトの名無しさん
2007/09/04(火) 13:00:48じゃあ、IExx必須とやるしかないな
0090デフォルトの名無しさん
2007/09/04(火) 14:24:35コードの「読み」書きが最も大切だと習わなかったのですかね
0091デフォルトの名無しさん
2007/09/04(火) 14:44:54日本語が不自由な奴が仕様を正しく理解できるとは思えん。
>>90 みたいなプログラマーはいらん。
0092デフォルトの名無しさん
2007/09/04(火) 16:23:04内部で作る作業ファイルとかはKILLだな
KILLは確かに好ましくないって聞いてるけど
楽なんだよな('A`)
0093デフォルトの名無しさん
2007/09/04(火) 17:25:42WSH単体のインストーラも公開されている。
しかもWindows 98/2k以上には何らかのバージョンがインストール済みなので、
バージョンの違いに頭を抱えなくて済むならそれでいい。
0094デフォルトの名無しさん
2007/09/04(火) 17:26:21その言い草はなんです!
あなたみたいなプログラマー(かどうかも疑わしい)こそいりません
0095デフォルトの名無しさん
2007/09/04(火) 17:26:45VB6じゃない
0096デフォルトの名無しさん
2007/09/04(火) 17:27:220097デフォルトの名無しさん
2007/09/04(火) 17:47:41人の日本語にはケチをつけるのかw
0098デフォルトの名無しさん
2007/09/05(水) 12:00:52宜しくお願いします
エクスプローラからフォルダをVBで作成したツールにドラッグし、
ツール側で内容を読み込んでいるのですが、
ドラッグされた際に、エクスプローラよりも背面になっています。
なんとか前面に表示させたいのですが、良い方法があればお教え願えますか?
0099デフォルトの名無しさん
2007/09/05(水) 17:14:29Win32APIのSetWindowPosできたはず
VB6 SetWindowPosでぐぐればサンプルみつかる
0100デフォルトの名無しさん
2007/09/05(水) 17:41:48ドラッグ先の自作アプリが手前にあり、エクスプローラが後ろにいる状態で
エクスプローラのファイルをドラッグ&ドロップしても、自アプリが後ろに来ちゃうって事?
それとも、一度エクスプローラをカレントにしてからと言う事?
0101デフォルトの名無しさん
2007/09/05(水) 18:18:36010298
2007/09/06(木) 12:32:23常に前面では無く、エクスプローラから
フォルダをドラッグされて、処理する場合に前面に表示したかったのです
あと100さんのご質問の答えとしてはカレントにしてからとなります
結果として101さんのお答えで実現できました!
みなさんありがとうございました^^
0103デフォルトの名無しさん
2007/09/07(金) 10:18:00初心者です。
0104デフォルトの名無しさん
2007/09/07(金) 12:16:03質問があります。
現在イメージボックスを使用して画像を表示しているのですが、
画像の上に文字を表示して保存したいと考えています。
ピクチャーボックスであればすぐできると思いますが、
こちらだとボックスの大きさがコロコロ変わるので困ります。
(Stretchのようにサイズ変更されずに圧縮してくれれば良いのですが)
宜しくお願い致します。
0105デフォルトの名無しさん
2007/09/07(金) 12:42:440106デフォルトの名無しさん
2007/09/07(金) 12:48:070107104
2007/09/07(金) 12:57:22すいません。Imageコントロールの事です^^;
0108デフォルトの名無しさん
2007/09/07(金) 19:21:04ピクチャーボックスを使えば、すぐ出来るとの事なので
画面表示にはImageコントロールを使って
ピクチャーボックスをvisible=falseにして、文字描画と保存処理を行えばよいのでは?
pictureオブジェクトは、set picturebox.picture = image.pictureで共有できる
ただ、文字を書き込むってAPI使わんでもスグ出来たかどうかちょっと疑問だが
0109104
2007/09/08(土) 07:04:47レスありがとうございます。
実は一度考えた方法なのですが、ピクチャーボックスの幅が自動で
大きくなってしまったり、元の画像の大きさを縮小したりできなかったので
諦めていました。
ピクチャーボックスへの文字描画は
Picture1.CurrentX = 800 'X座標
Picture1.CurrentY = 30 'Y座標
Picture1.Picture = Image1.Picture '画像取り込み
Picture1.Print "2007/09/08 06:58:14" '文字表示
とかやれば一応文字が反映されています。
あとはsavepictureかなにかやれば良いのだろうと思います。
もう一つ問題があって、現在Imageコントロールを使っていると言いましたが
写真を一枚一枚処理するのでは無く、複数枚の写真をいっきに処理
しなければなりません。なのでピクチャーボックスで一つずつ処理する方法では
実現が難しいという事もあります。(でも、できない事は無いと思います)
0110デフォルトの名無しさん
2007/09/08(土) 09:37:50事前に処理するファイルパスを変数に入れておいてループ取り出しながら繰り返せばいいんでなくて?
絶対に複数の画像を同時に処理しなければならない理由とかあるの?
0111デフォルトの名無しさん
2007/09/08(土) 10:56:35VBScriptで時刻を表示させる時に 午前10時以前でも "9:xx:xx" ではなく "09:xx:xx" と、ゼロを入れて2桁で時間を表示したいのですが、なにか表示形式指定のオプションみたいなものがあるのでしょうか?
それとも時間、分、秒と別々に取得して自前の関数で補正しないとだめでしょうか?
0112デフォルトの名無しさん
2007/09/08(土) 11:03:56その方法で、ビットマップに文字列が保存されるかなぁと疑問だったんだが出来るならいいけど
複数枚の写真が、動画のようなもので時間的に余裕が無いということだろうか?
それともバッチ処理のように、ファイルを連続でということなら>>110が書いているような方法で良い訳だが
ちなみに時間短縮ならAPIを使って、DCを自分で作って(CreateCompatibleDCなど)
そこにimage.picture.handleを選択して(SelectObject)
文字列を書き込んで(TextOut など)
って事をすれば良い
こうするととりあえず、DCを画像ごとに生成する必要が無いのでちょっとは早くなるかも
0113デフォルトの名無しさん
2007/09/08(土) 11:15:17VBSはformat使えないし、formatdatetimeがヘボだから
自分で関数作るのがいいかもね
0114デフォルトの名無しさん
2007/09/08(土) 11:36:04レスどうもありがとうございます。
なるほど〜そうですか。そしたらこんな感じで自分で作ってみました
今までは
MsgBox ( Time )
で実行結果 "9:12:34"だったのを、
MsgBox( Right( "0" & Hour( time ) ) & ":" & Right( "0" & Minute( time ) ) & ":" & Right( "0" & Second( time ) ) )
として、実行結果"09:12:34"になるようにしました
とりあえずこれで^^;
どうもありがとうございました
0115デフォルトの名無しさん
2007/09/08(土) 11:47:180116114
2007/09/08(土) 11:57:16おっしゃるとおり
MsgBox( Right( "0" & Hour( time ),2 ) & ":" & Right( "0" & Minute( time ),2 ) & ":" & Right( "0" & Second( time ),2 ) )
でした!
あとちなみに
MsgBox FormatDateTime( Time, vbShortTime ) & ":" & Right( Minute( Time ), 2 )
でもなりました
もう少し短くならないかな^^;
0117デフォルトの名無しさん
2007/09/08(土) 12:05:23Windowsの”地域と言語のオプション”で左右されそうな希ガス
0118デフォルトの名無しさん
2007/09/08(土) 12:09:37短くするよりも、精度上げた方がいいけどね
time関数は一度しか使わないで、戻り値を変数に入れてからの方が良いよ
0119114
2007/09/08(土) 12:13:05まじですか
そしたら
Dim aTime
aTime = Time
で、
MsgBox( Right( "0" & Hour( aTime ),2 ) & ":" & Right( "0" & Minute( aTime ),2 ) & ":" & Right( "0" & Second( aTime ),2 ) )
って感じにしました
勉強になりますm(_ _)m
0120デフォルトの名無しさん
2007/09/08(土) 13:37:53一応、ピクチャボックスに書き加えたものまで含めて保存したい場合は、
Picture1.PictureでなくてPicture1.Imageの方を保存ね。
0121デフォルトの名無しさん
2007/09/08(土) 19:03:46基本的なアルゴリズムが理解できてとOSの知識があればOKだと思うんですが。
0122デフォルトの名無しさん
2007/09/08(土) 19:15:33問題ないんじゃない
PCの知識も必要かもしれないが
0123デフォルトの名無しさん
2007/09/08(土) 19:30:000124デフォルトの名無しさん
2007/09/08(土) 20:56:57他の言語に移行できないヤツはVBも理解できていない
0125デフォルトの名無しさん
2007/09/08(土) 22:25:54動画ファイルをダウンロードするのはどうしたらいいのですか?
text,jpg,zipなんかはできるんですけど
なぜか動画は同じ方法ではダウンロードできません
もしかしたらこのコントロールではむりですか
参考になるヒントなど教えてください。
0126デフォルトの名無しさん
2007/09/08(土) 23:00:390127デフォルトの名無しさん
2007/09/08(土) 23:16:28.flvファイルです
0128デフォルトの名無しさん
2007/09/08(土) 23:39:07flvか
ダウンロードの方法は、保存支援サイトが何をやってるか見ればわかるだろう
0129デフォルトの名無しさん
2007/09/09(日) 01:51:16DL厨対策に動画のURLの取得が一筋縄でいかないようになっているだけ。
0130デフォルトの名無しさん
2007/09/09(日) 09:17:20もう少しじっくりコードを見直してみます。
0131デフォルトの名無しさん
2007/09/09(日) 10:36:27VB6のときにあった、ディストリビューションウィザードがなくなって
セットアップディスクが作成できなくて困ってます。
別のツールかなにかで作るのでしょうか?
お勧めがあったら教えてください。
0132デフォルトの名無しさん
2007/09/09(日) 11:26:36VSI (Visual Studio Installer)
0133132
2007/09/09(日) 11:27:41VB2005は知らんです。
0134109
2007/09/09(日) 18:07:15>>112
>>120
レスありがとうございます。
申し訳ありません。話がややこしくなってしまいました。
いっきに処理しなければならないのは忘れて下さい。
私が勘違いしていました。
おっしゃる通りバッチのような感じで処理できます。
ポイントとしては、
・現在Imageコントロールを使っているので、Imageで文字描画できないか
・Pictureボックスしか無ければ、仕方ないけど、ImageのStrechみたいな
ボックスの大きさを固定しつつ圧縮する技はないか
以上2点です。
Pictureボックスの大きさを気にするのには理由があります。
処理する前にどの位置に日付を描画するのかを目視したいからです。
写真によっては文字の位置や色なども変えなければ見えませんので。
その為、ボックスの大きさは常に一定で、
Imageのような画像のサイズ圧縮が必要になります。
0135デフォルトの名無しさん
2007/09/09(日) 23:59:38自分はImage嫌いなのでPictureを二つ用意する。一つは非表示で元画像(等倍)。
表示用にはStretchBltかスクロールバーで表示する。
0136134
2007/09/10(月) 10:04:06レスありがとうございます。
基本的な事で申し訳ありませんが、
ピクチャー1のAutoSizeをTrueにすると、
写真が大きい場合、ピクチャー1が画面上からはみ出るのですが
これをピクチャー2にコピーしてもうまくいきません。
また、AutoSizeをFalseにすると、写真が小さく表示され、やはり無理です。
どのように対処されていますか?
0137デフォルトの名無しさん
2007/09/10(月) 10:15:530138デフォルトの名無しさん
2007/09/11(火) 01:57:56元画像AutoSize=True
手法1(Stretch):StretchBltを使って表示画像に転送
手法2(ScrollBar):表示位置(原点)を保持しておいてスクロールバーを移動させるたびにBitBlt
手法1の場合完結しているが小さい場合に見づらい。
手法2の場合どんなサイズでも擬似的に表示できる。その代わり制御が少し面倒。
他にも色々あるだろうけど、原寸そのままに表示できない場合は、小さくするか
一部だけ表示させるしかないでしょ。
0139デフォルトの名無しさん
2007/09/11(火) 21:28:45フォームにWinSockコントロールを複数貼り付けたり
Win32APIのWinSock関係を直接操作したりすることなく
複数クライアントとの同時通信などと言うものは可能なのでしょうか?
WinSockコントロールはひとつのインスタンスでひとつのコネクションしかもてなかったと思うのですが・・・
いかがなものでしょうか
0140デフォルトの名無しさん
2007/09/11(火) 21:31:08でけます。
WinSockコントロールを配列にして扱うサンプルがMSDNにあるでよ
0141デフォルトの名無しさん
2007/09/11(火) 21:56:09ありがとうございます
MSDN漁って見つけることができました。
0142136
2007/09/12(水) 00:43:16色々と情報を頂いて、頑張ってはみたのですが、
私では実現できないようですので、残念ですが今回は諦めます。
お時間頂いてありがとうございました。
0143デフォルトの名無しさん
2007/09/12(水) 23:11:43winsockを使用して作ってます。
スレの取得はできるようになったのですが、書き込みの方法がわかりません。
特にクッキーの設定の部分がわかりません。
助けてください。
0144デフォルトの名無しさん
2007/09/12(水) 23:42:59迷惑だからやめてください
0145デフォルトの名無しさん
2007/09/13(木) 04:54:56HTTPべんきょうしてください
0146デフォルトの名無しさん
2007/09/13(木) 09:13:32本当にやる気があるならmonazillaで調べて自分で解決してください
俺はそこで調べて誰にも聞かずにdat取得、スレ書き込みまでできました(スレたてはテストの都合上作成も試みていない)
0147デフォルトの名無しさん
2007/09/14(金) 20:20:32a.Run "lame.exe -b 192"
みたいな感じでコマンドプロンプトで実行させるプログラム自体は起動できるんですが、
実行中はコマンドプロンプトに制御が移ってしまうのが嫌で、
VB側で実行中のパラメータとかを直接受け取ることって何の関数を使えば出来ますか?
コマンドライン型のアプリケーションを完全にこっちで制御したいんです
0148デフォルトの名無しさん
2007/09/14(金) 20:35:33http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/JAPAN/support/kb/articles/JP171/6/54.asp
コンソールウィンドウを表示させればいいのかな?でもこれだと表示させるだけで
パラメータも受け取れないし・・・WshShell使うのと変わらないですね。。
0149デフォルトの名無しさん
2007/09/15(土) 12:03:16自作プログラムなら幾らかやりようがあるけど、既製品はまず無理。
作るときは製品のドキュメントをよく読んでいくしかない。
0150デフォルトの名無しさん
2007/09/15(土) 12:39:15プログラムが終了するまで自プログラムが停止してしまうということだけなら、
3つ目の引数にFalseを指定すれば解消できる。
今度は終了を検地できないけどね。
a.Run "lame.exe -b 192", 1, False
http://msdn.microsoft.com/library/ja/script56/html/wsmthrun.asp
0151デフォルトの名無しさん
2007/09/15(土) 23:35:54それなら出来るんですけど、自分のしたいことはコマンドライン型のEXEを、
実行中にパラメータを取得したいんです。具体的にはLameなら実行中のパーセンテージを
こっち側のプログラムで取得して、自作のフォームにプログレスバーとして表示したり、完全に制御したいんです。
>>149
既製品は無理なんですか?それはVBの限界ってことでですかね?
例えば変換君のフロントエンドなんかは、ffmpegのパラメータを実行中に取得してるみたいで・・・同じことをしたいんですが、
VBではどんなAPIを使用しても不可能ですか?
0152デフォルトの名無しさん
2007/09/16(日) 01:21:56そりゃきっとVBで可能だとしても、やるとかえって大変ですよ。
他の開発言語・ツールを使った方がいいと思います。
え?なにがいいかって?馬鹿野郎よくググれ。
0153デフォルトの名無しさん
2007/09/16(日) 11:17:54そういう用途ならLAME_ENC.DLLか何かを使ったほうがいいと思う。
VBからどれくらい扱えるかはわからないけど。
0154デフォルトの名無しさん
2007/09/16(日) 14:38:44テキスト名を選択したときにテキストの内容をテキストボックスに
標示させたいのですが、パスがわかりません。
0155デフォルトの名無しさん
2007/09/16(日) 15:12:19何をしたくて何が分からないのか分かりません
0156デフォルトの名無しさん
2007/09/16(日) 15:21:43つ「App.Path」
つ「CommonDialogBox」
0157デフォルトの名無しさん
2007/09/16(日) 15:49:28>>156
回答ありがとうございます。
デスクトップ上にあるフォルダの中のファイルをListViewで表示してます。
ListViewで表示しているファイル名をStreamReaderを使用してテキストの内容を
ラベルに表示させたいです。
ファイル名を時間にしていますので、ファイル名のパスを指定できません。
0158デフォルトの名無しさん
2007/09/16(日) 16:04:09> ファイル名を時間にしていますので、ファイル名のパスを指定できません。
???
0159デフォルトの名無しさん
2007/09/16(日) 16:18:44取り付く島がないじゃないか
0160デフォルトの名無しさん
2007/09/16(日) 16:38:230161デフォルトの名無しさん
2007/09/16(日) 16:55:20自身のプログラム内なら、ファイル名生成のルーチンから
ファイル名を横取って来ればいい。
0162デフォルトの名無しさん
2007/09/16(日) 17:03:47複数あるプログラムをボタンをクリックした時にCheckboxにチェックが
あるときは起動してチェックがないときは起動しないプログラムを
作成したいのですが、方法とコードなどありましたら、ご教授ください。
0163デフォルトの名無しさん
2007/09/16(日) 17:07:24回答ありがとうございます。
また、ListViewで選択しているファイルののパスを指定する場合の
方法はありますでしょうか?
0164デフォルトの名無しさん
2007/09/16(日) 20:26:50想像できない
0165デフォルトの名無しさん
2007/09/16(日) 21:33:42いいサンプルプログラムとかありますか?
0166デフォルトの名無しさん
2007/09/17(月) 01:05:24ガキでなければキチガイばっかりだなw
0167デフォルトの名無しさん
2007/09/17(月) 08:58:54ListViewにファイル名を入れる時はどうやってそのファイル名を取得したの?
俺がListViewにファイル名を入れる時は、そのファイル群が置いてあるフォルダを指定し、
検索してフルパスを取得し、ファイル名だけ抜き出して表示させるが
この過程においてファイルのパスが分からないという問題は起きないわけだが
どう考えてパスが分からないと導き出した?
これで意味が分からないならもう一度勉強し直した方がいいよ
0168デフォルトの名無しさん
2007/09/17(月) 10:47:43私はDEL使いなんですが、会社で前任者が作ったVBソフトのメンテをやることになりました。
内容はimageコントロールの画像の表示方法に関することです。
なにしろ、VBはVBA程度の知識しかないので
カードデータベース風の情報管理ソフトです。
フォームにimageコントロール(以下イメコン)があります。
利用者は自分で撮影したデジカメ写真をフォームに登録して表示させることができます。
しかし、stretch=trueにするとイメコンのサイズに変形されるしfalseにすると一部分しか表示されません。
そこで、フォーム上のイメコンのサイズで収まるようにアスペ比を一定に縮小させる、または、元サイズのままスクロールできるようにしたいんですが、
どうすればいいんですか?
それと、imageコントロールとpictureコントロールの違いって何ですか?
0169デフォルトの名無しさん
2007/09/17(月) 11:40:31アスペクト比一定なら、元画像の縦横サイズとImageの縦横それぞれの倍率を取って倍率の小さい方で
縦横同じ倍率で縮小すればいい。
スクロールする場合は表示位置(x,y)を保持して、スクロールバーの値が変わったときに表示サイズの
縦横分だけ抜き出して表示。スクロールバーの値の範囲は0から元画像の幅−表示サイズの幅
>imageコントロールとpictureコントロールの違い
これくらいは自分で調べてくれ
0170デフォルトの名無しさん
2007/09/17(月) 13:26:51IPictureDispに画像を保持してRenderメソッドでPicturBoxに描く。
0171デフォルトの名無しさん
2007/09/20(木) 10:17:30ボタンを押して始まる処理の中で、DoEventとSleepを使ってかなり長いループを作って
これを実行している最中に右上の[×]で終了させるとボタンの処理が遠い世界に旅立つので
フォームのQueryUnloadで「End」を書いて終了させているのだけど、何か間違っている気がしてならないです。
これで問題はないものでしょか?
0172デフォルトの名無しさん
2007/09/20(木) 10:37:31End命令は即座にVBの実行を停止する命令で、FormのunloadやTerminate、
オブジェクトのTerminateイベントの処理をすべてバイパスする。
ActieX(COM)のアンロード処理も省かれるので、
アウトプロセスサーバーを使ってる場合にActiveX.EXEのプロセスが終了しない。
これらのことが問題にならないなら使っていいよ。
0173デフォルトの名無しさん
2007/09/20(木) 11:33:16ありがとうございます〜
えーと、やっているのはAPIによるPCIボードのアクセスとシリアルの入出力。
シリアルは閉じるとして、APIのほうはClose命令があるのでソレを発行しておけばよいかな…
あと万全を期すため?
EndをQueryUnloadからUnload最後に移動かしら。
0174デフォルトの名無しさん
2007/09/20(木) 13:12:48遠い世界へ旅立つループ処理に教えてあげてループ処理を抜けさせるようにすれば?
0175デフォルトの名無しさん
2007/09/20(木) 13:36:56その時は遠い世界へ旅立つループ処理が終わるのを待ってあげないとダメなので本末転倒なんだぜ?
0176デフォルトの名無しさん
2007/09/20(木) 14:25:03自分の場合メッセージボックスを出してループだけ抜けさせて、Unloadイベントをキャンセル。
改めてユーザー側にもう一度終了させるようにした。
下手に一括でやろうとしてプロセスが残るより安心。
0177デフォルトの名無しさん
2007/09/20(木) 15:51:33あー。ループのほうでトラップ(?)するというのはスッポリ抜けてたす。
ループでフラグ立て→[×]→フラグでUnloadキャンセル→ループ内で「フラグ消し→Unload Me→Exit sub」
とやってみた。
それっぽくなった。
こっちのほうが幸せっぽいかな。
0178デフォルトの名無しさん
2007/09/20(木) 19:00:13ダメな奴は本当なにやらしてもダメだな。人に通じる文章すらちゃんと書けないのか。
ループでDoEventsなんて、VBプログラマが嘲笑されるときのネタの定型だぞw
しかもなんでSleepかますの?
Sleepの意味分かってるのかねw
0179デフォルトの名無しさん
2007/09/20(木) 19:03:550180デフォルトの名無しさん
2007/09/21(金) 00:35:49久しぶりにのぞいてみたけど健在で驚いたよ。
0181デフォルトの名無しさん
2007/09/21(金) 09:34:37ありがとう。
画像を定比で縮小することはできた。
だけど、スクロールバーで足踏み。
スクロールバーを動かすと確かに図形も動くけど、元の画像がそのまま移動するだけ。
つまり画像を左にスクロールすると、右側には、今まで見えていなかった画像が現れるのではなく、ただのブランクになる
もうわけわからん〜
0182デフォルトの名無しさん
2007/09/21(金) 11:13:420183デフォルトの名無しさん
2007/09/21(金) 11:41:310184169
2007/09/21(金) 12:11:18手抜き説明。書き殴りだからあっているかどうか不明
[Form1]
'元画像をPicture1に表示、表示用画像にPicture2を用意
'簡単のためScaleModeはPixelで統一
'スクロールバーの値を利用する
Private Sub HScroll1_Change()
'HScroll1の値の範囲は0からPicture1.Width-Picture2.Width
Bitblt Picture2.hdc,0,0,Picture2.Width,Picture2.Height, _
Picture1.hdc,HScroll1.Value,VScroll1.Value, _
vbSrcCopy
End Sub
Private Sub VScroll1_Change()
'VScroll1の値の範囲は0からPicture1.Height-Picture2.Height
Bitblt Picture2.hdc,0,0,Picture2.Width,Picture2.Height, _
Picture1.hdc,HScroll1.Value,VScroll1.Value, _
vbSrcCopy
End Sub
元画像と表示画像、スクロールバーの値について適当な絵と値を書いて考えてみれ
これでカネ稼ぐんだろうから、少しは苦労しなよ。こんなのは基礎だぞ〜
0185デフォルトの名無しさん
2007/09/21(金) 13:29:26SpreadPreviewを貼り付けたフォームでKeyPreviewをTrueにして
フォームのKeyDownイベントをトラップしていると
SpreadPreviewにフォーカスが有る時に
一度しか押していないキーのイベントが2度発生してしまいます
この症状の解決方法などご存知の方はいらっしゃいませんでしょうか
0186デフォルトの名無しさん
2007/09/21(金) 13:59:43そういう質問はメーカーに問い合わせるのが先だ
0187デフォルトの名無しさん
2007/09/21(金) 14:12:240189デフォルトの名無しさん
2007/09/22(土) 01:20:02丁寧にすまん。 じっくり勉強させてもらうわ。
だけど、
> これでカネ稼ぐんだろうから、少しは苦労しなよ。こんなのは基礎だぞ〜
いや、だから、俺はdel使いであってVBなんて知らないの。
ただ前任者の尻ぬぐいをしてるだけだって。
0190184
2007/09/22(土) 17:31:37Bitbltの変数足りないかも分からんのでヘルプ見直しておくれ。すまん
>前任者の尻ぬぐいをしてるだけだって
よーく分かるwだが、調べれば結構載っているからな。がんばり〜
0191デフォルトの名無しさん
2007/09/22(土) 23:47:04>いや、だから、俺はdel使いであってVBなんて知らないの。
>ただ前任者の尻ぬぐいをしてるだけだって。
回答になってねぇよwwwww
DEL使いとかじゃなくって社会人かどうか疑いたくなるなwwww
0192デフォルトの名無しさん
2007/09/23(日) 01:08:33だよなwwwww
俺もお前のこと疑うぜwwwwwwwwwうぇwww
0193デフォルトの名無しさん
2007/09/23(日) 15:23:34だよなwwwww
俺もお前のこと疑うぜwwwwwwwwwうぇwww
0194189
2007/09/23(日) 21:59:28> 回答になってねぇよwwwww
> DEL使いとかじゃなくって社会人かどうか疑いたくなるなwwww
すれちになるからあまり深入りしたくないが、ニートのおまえには言われたくねーよ。
うちは別にソフトベンダーでも何でもなくて、業務用アプリを担当部署ごとに作ってるだけ。
仕様書も何もなく放置されていたバグだらけのソフトを、君もプログラミングできるなら何とかしてくれ
っていわれてメンテする羽目になっただけだ。
0195デフォルトの名無しさん
2007/09/23(日) 22:07:22「del使い」じゃなくて「DEL使い」って逝っちゃってるんだから,見逃してやろうぜ・・・
0196デフォルトの名無しさん
2007/09/23(日) 22:17:24const * int a;
* const int a;
int * const a;
* int const a;
違いを教えて下さい
0197デフォルトの名無しさん
2007/09/23(日) 22:24:280198デフォルトの名無しさん
2007/09/23(日) 22:25:27書き方が違うだけで全て同じものです
0199デフォルトの名無しさん
2007/09/23(日) 23:10:46ありがとうございました。
なぞが解けました
0200デフォルトの名無しさん
2007/09/23(日) 23:38:480201デフォルトの名無しさん
2007/09/24(月) 00:34:50もしCのことならここ読め。
ttp://kmaebashi.com/programmer/pointer.html
0202デフォルトの名無しさん
2007/09/24(月) 01:26:56んっとにカスばっかりだな
お前らのうちどんだけが本当のPGとかSEなんだよw
0203デフォルトの名無しさん
2007/09/24(月) 01:28:120204デフォルトの名無しさん
2007/09/24(月) 09:37:170205デフォルトの名無しさん
2007/09/24(月) 17:42:14フォルダ名をリネームするプログラムを作りたいんです
ファイル名の変更は出来たんだけど・・・
どなたか教えてください
0206デフォルトの名無しさん
2007/09/24(月) 18:03:420207デフォルトの名無しさん
2007/09/24(月) 19:41:58nameステートメント使えばいいんでね?
0208デフォルトの名無しさん
2007/09/24(月) 21:20:42取得したいのですが可能でしょうか?
iphlpapi.dllを使用すれば可能とのことだったのですがコードが
分かりません。
0209デフォルトの名無しさん
2007/09/24(月) 23:50:22フォルダパスの文字列の"開始"という文字を"完了"に置き換えたいのですが
現在はパス名をセルに一度書き込んでから
エクセルのReplace関数でセルの文字を置き換え、それをコピー先のパス名として変数に代入する
みたいな感じでやってます。
コードはこんな感じです。
Cells(1, 1).Value = myStDir
Cells(1, 1).Replace What:="完了", Replacement:="開始"
myEnDir = Cells(1, 1).Value
myFso.CopyFolder myEnDir, myStDir, True
これでも動く事は動くんですが、VB上で変数の文字列の一部を置換する事はできるんでしょうか。
0210デフォルトの名無しさん
2007/09/25(火) 00:02:42VBの文字列関数なんて数が知れてるじゃないか
0211デフォルトの名無しさん
2007/09/25(火) 00:20:43myEnDir = Replace(myStDir, "完了", "開始")
何かReplaceはVBで使えないって思い込んでました・・申し訳ない・・
0212デフォルトの名無しさん
2007/09/25(火) 01:33:11どんな感じのネットワークかわからんから,正直何も言えない
まあpingが通るなら単純にネットワーク内に存在する可能性のあるのIPアドレスにpingを送ってみればいいかもな
0213デフォルトの名無しさん
2007/09/25(火) 13:20:330214デフォルトの名無しさん
2007/09/25(火) 13:38:340215デフォルトの名無しさん
2007/09/25(火) 15:16:45いいのがあるか探してみるよ。
0216デフォルトの名無しさん
2007/09/25(火) 17:07:49InputMan7.0を購入して、今まで使用していたVer6.5から7.0に移そうと移
行ツールを試してみたのですが、できるコントロールとできないコントロ
ールにわかれてしまいました。
BOC社のサイトで調べてみるとTab上にあるコントロールは認識しないよう
なFAQを見つける事ができ、最新版をDLすれば解決するとありました。
早速DLして再度移行ツールを実行してみたのですが、やはりエラーになり
思うような結果が得られませんでした。
この他に、上手く移行できたものでも勝手にフォントサイズが変わってし
まう(小さくなる)という現象がおきてしまいました。
何か原因をご存知の方がいましたら是非教えてください。
OSはVISTAでVBは6.0です。
0217デフォルトの名無しさん
2007/09/25(火) 17:15:160218デフォルトの名無しさん
2007/09/25(火) 18:53:460219デフォルトの名無しさん
2007/09/25(火) 19:03:53言いたい事はわかるけど気になったからBCC社のHP見てきた
>[必要システム]
>Visual Basic 6.0日本語版(Windows 95/98/Me/NT 4.0/2000/XP/Server 2003/Vista)
一応Vista対応謳ってるから>>217でFAだな。
0220デフォルトの名無しさん
2007/09/26(水) 16:32:190221デフォルトの名無しさん
2007/09/26(水) 16:37:46IDEのテキストエディタにU+9B73などをコピペすると化けてしまったんですが…
0222デフォルトの名無しさん
2007/09/26(水) 19:00:44VBってコンパイラもエディタもS-JISしか対応してないんじゃないの?
むしろそんなことができたら怖いと思うがw
0223デフォルトの名無しさん
2007/09/26(水) 20:11:35MSDN
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpado260/htm/mdmscstreamspersistence.asp
0224デフォルトの名無しさん
2007/09/27(木) 00:24:15MSDNって読みづらくないですか?
でも、なんとか頑張って読んでみようと思います。
ありがとうございました。
0225デフォルトの名無しさん
2007/09/27(木) 01:41:48辞書引くのって難しくないですか?
まで読んだ
0226デフォルトの名無しさん
2007/09/27(木) 10:00:110227デフォルトの名無しさん
2007/09/27(木) 10:56:28技術評論社の本
http://www.gihyo.co.jp/books/syoseki.php/4-7741-0859-6
VBの言語仕様をしっかり解説してるのがいいと思う。
ADODBについては微妙だけど。
買っちゃいけないのは、いわゆるHowTo本。
サンプルコードがいっぱい載ってるような奴ばかり読んでると、
コピペしかできないなんちゃってプログラマになりやすい。
0228デフォルトの名無しさん
2007/09/27(木) 12:40:56なんだ入門書みたいなものが欲しかったのか。
http://www.microsoft.com/japan/technet/prodtechnol/sql/2000/evaluate/exercises.mspx
これの「開発編 No.3 ADO 2.6 入門 」どうぞ。
0229デフォルトの名無しさん
2007/09/27(木) 15:41:03ちょっとお聞きします。
任意の期間を設定して、その期間内はForm1へ
期間外はForm2へ
としたいのですが、どうすればいいのでしょうか?
0230デフォルトの名無しさん
2007/09/27(木) 15:50:540231デフォルトの名無しさん
2007/09/27(木) 16:56:03???
0232229
2007/09/27(木) 16:57:07もうちょっと勉強して出直します><
0233デフォルトの名無しさん
2007/09/27(木) 18:15:590234デフォルトの名無しさん
2007/09/27(木) 18:19:270235デフォルトの名無しさん
2007/09/27(木) 18:24:000236デフォルトの名無しさん
2007/09/28(金) 10:47:18使えますぜ?
0237デフォルトの名無しさん
2007/09/28(金) 11:06:150238デフォルトの名無しさん
2007/09/28(金) 11:20:040239デフォルトの名無しさん
2007/09/28(金) 11:41:170240デフォルトの名無しさん
2007/09/28(金) 14:19:07test.Add "テスト","test"
For Each test2 In test
Debug.Print test2
Next
この時に、"テスト"は取れますが"test"を取得する方法がわかりません。
0241デフォルトの名無しさん
2007/09/28(金) 14:48:000242デフォルトの名無しさん
2007/09/28(金) 19:20:590243デフォルトの名無しさん
2007/09/28(金) 23:24:36イヤならCollection2つ使って自作
0244デフォルトの名無しさん
2007/09/29(土) 18:00:06VB6&CAPICOMについて質問させてください。
VB6からCAPICOMを利用して、
ファイルの復号化を行おうとしています。
アルゴリズムはAESで、
暗号化は別の言語で施されており、
暗号化時に使用した
鍵とベクトルの情報はわかっている状態です。
MSDNや
ttps://www.netacademia.net/tudastar/default.aspx?upid=2781
こちらのサイトのサンプルを見ながら
復号化ロジックをVB6で実装しようとしているのですが、
なかなかうまくいきません。
サンプルを見た限りでは
鍵の設定は SetSecretメソッドで行っているようなのですが、
ベクトルの設定はどこで行えばよいのでしょうか。
何卒ご教授のほどよろしくお願いいたします。
0245baka ◆Jgn6bakat.
2007/09/29(土) 19:02:560246デフォルトの名無しさん
2007/10/03(水) 18:53:58すべての線の太さは指定できるのですが、
4行単位で線を太くしようとしてもうまくいきません。
お手数おかけしますが、ご教授よろしくお願い致します。
0247デフォルトの名無しさん
2007/10/03(水) 22:07:56オーナードローに対応していればオーナードローで
標準だと出来ないと思っている
0248デフォルトの名無しさん
2007/10/04(木) 18:04:17入力しないと起動できなくなるようにしたいのですが、どのようにすれば
いいでしょうか?どなたかお助けを下さい。
0249デフォルトの名無しさん
2007/10/04(木) 18:07:46アプリケーションの最初の画面で
「初回起動時から30日たちましたか?」
「はい」 −>「パスワードを入れてください」
0250デフォルトの名無しさん
2007/10/05(金) 00:31:44初回起動時にレジストリか適当な隠しファイルに日時を格納しといて
毎回毎回起動時に参照してきゃいいだけだろ
0251デフォルトの名無しさん
2007/10/05(金) 09:57:53ありがとうございます。
初回起動時というのはどのように判断させればいいのでしょうか?
0252デフォルトの名無しさん
2007/10/05(金) 10:03:47真性の馬鹿か?
レジストリ使うならレジストリ上にキーがなかったら初回起動とかって分かるだろ。
0253デフォルトの名無しさん
2007/10/05(金) 10:14:41すみません。初心者でレジストリを参照とかさせた事がないもんで。
ファイルを使用してなんとかやってみます。
0254デフォルトの名無しさん
2007/10/05(金) 10:22:38すみません。教えていただきたいのですが、
レジストリを参照する場合ですが、HKEYLOCAL_MACHINEのSOFTWAREの
MicrosoftのVisualVasicの中のKEYになるんでしょうか?
それらしいKEYが見当たらないのですが。
0255デフォルトの名無しさん
2007/10/05(金) 11:33:07きみが自分で追加しようとするKEYのことだろ?
初回起動時→レジストリに書き込んでいない 状態で起動し、レジストリにKEYを挿入し初回起動日を入れる
2回目以降→初回に書き込んだ日付との差が初回起動からの日数
てことだろ?
0256デフォルトの名無しさん
2007/10/05(金) 13:55:39Windowsとかもっと基本的なPCの知識を身につけたほうがいいと思うぞ。
0257デフォルトの名無しさん
2007/10/05(金) 14:21:55お聞きしたいことがあるんですが、
VB6でOLEを使わずに、Office製品を制御する方法ってありますか?
考えとしては、Office(Excel,Word)製品の名前をフォーム内の左側にリストボックスで表示させ、
右側にリストボックスから選択されたExcelやWord等を立ち上げて使用したいのですが。
丁度ギコナビとか、そのような感じでOfficeを制御できればと思っています。
0258デフォルトの名無しさん
2007/10/05(金) 18:21:30つ Shell
0259デフォルトの名無しさん
2007/10/05(金) 23:13:130260デフォルトの名無しさん
2007/10/05(金) 23:17:33VB6でMDBを操作してる。
で、MDB中のテーブルに含まれるイメージデータを個別のイメージファイルに取り出そうとしてる。
tbl : id, name, adrs, section, img...
で、レコード毎に SavePicture rs.field(3).value, id.bmp みたいな処理にしてるんだけど、固まってしまう。
レコードセットとかちゃんとしてるし、他のフィールドデータをテキストで取り出すのはうまくいってる。
どうやればいいんですか?
0261デフォルトの名無しさん
2007/10/06(土) 16:42:07開発環境はXPで動かすので、作ったプログラムだけが将来のOSで動けばいいんですが。
ドットネットはもう風前の灯火なので、いまさら乗り換えるつもりはないです。
0262デフォルトの名無しさん
2007/10/06(土) 16:57:11マイクロソフトに聞けばいいんじゃね?
マイクロソフト以外にVistaの次のOSについて詳しく知ってるやついないし
0263デフォルトの名無しさん
2007/10/06(土) 17:29:53テーブルにはバイナリデータが入ってんの?
なら、byte配列で取得したあと、
Openステートメントを使ってバイナリモードで書き込みするとか。
0264260
2007/10/06(土) 23:45:37はぁ、バイト単位で読み取らなきゃいけないんだ? 試してみるわ。
テーブルの定義を見る方法がわからないんだけど、フォームのピクチャコントロール?には、フィールド値からLoadPictureステートメントで呼び出して表示してるから、
外部保存もSavePictureでいけるかなと思ったんだけど。
MSDNのSavePictureのヘルプ見ても、適当な例が載ってないんだよな
0265デフォルトの名無しさん
2007/10/07(日) 05:45:10msflexgridは使い勝手が悪いからサードパーティを購入することを勧める。
出来る事ならの話やけど、この時期に新規って事は無いよな。メンテだろうな。
太線にしたければ、1行おきにrowheightを変更して背景色を灰色にしてみれば?
こんな回避手段も可能だったかな?
昔、泣かされた事を思い出すなぁ。ってか・・・まだVB6以前って使ってるのか現役で?
凄いな!
0266265
2007/10/07(日) 05:46:310267デフォルトの名無しさん
2007/10/08(月) 00:07:41TypeName(rs.Field("img").Value) = "Byte()"
ってことなんでないの?
0268267
2007/10/08(月) 00:13:31ってところが引っ掛かっただけなんだけどさ。
イメージデータってことは普通に考えてバイナリのフィールドなんだろうし。
0269デフォルトの名無しさん
2007/10/08(月) 10:38:420270デフォルトの名無しさん
2007/10/08(月) 17:14:36>>227の本は中々良さそうですけど、もう絶版なんですね。
ヤフオクとか見てもないようだし、アマゾンのマーケットプレイスだと
定価より高い上に送料がかかるのでなんだか買う気がしません。
古本とかでもかまわないのですが、現在さほど高くなく入手できる
お薦めの本があればどなたか教えていただけないでしょうか。
0271デフォルトの名無しさん
2007/10/08(月) 18:02:270272デフォルトの名無しさん
2007/10/08(月) 20:42:55言い方は違うが>>271に同意
別の言語習得したほうがいいだろ。それに古本じゃ自力で探さないと無理だな。
お勧めしてもあるとは限らないし。
0273デフォルトの名無しさん
2007/10/08(月) 23:24:15VBAならまだVB6互換だからAccessやExcelのVBAの本で勉強すれば?
これなら今から習得しても充分メリットはある。
VB6は既に過去の言語と思われているけれど企業システムでは未だ第1線の現役だったりする。
それになんだかんだ言ってもRADの一つの完成形だと思う。
.NETになって一貫性のない言語になってしまったので.NETのプログラミングをするなら
迷わずC#をお薦めする。
#VB6の参考書ならウチに沢山ある処分に困っているので引き取ってもらって
使ってもらえるのならありがたい。
0274270
2007/10/09(火) 13:44:51いろいろありがとうございます。とても参考になりました。
なるほど、VBAの本という手もあったんですね。
C#は.NETな仕事が自分の手元まで来れば提案してみたいと思います。
VB6の参考書の件については、譲っていただけるのであれば嬉しいです。
よろしければメールアドレス欄の方までメールをお願いします。
0275デフォルトの名無しさん
2007/10/09(火) 18:27:59でもまあ言葉はきついけど>>271の言うとおりだなあ。
0276260
2007/10/09(火) 21:47:13何とか解決できました。皆様ありがとうございました。
参考までにフロー。
dim BufferSize as long
dim Buff() as byte
フィールドのサイズ → BufferSize
getchunkでデータ取得 → Buff
出力ファイル、バイナリモードで開く
put # でBuffを出力
ファイル閉じる
って感じ。
0277デフォルトの名無しさん
2007/10/10(水) 19:54:25System.Windows.Forms.Screen.AllScreens
という方法で得られるようですが、VB6の場合はどのようにするのでしょうか?
0278デフォルトの名無しさん
2007/10/10(水) 23:19:21参照設定で何を選択すれば使えるようになりますでしょうか
0279デフォルトの名無しさん
2007/10/10(水) 23:22:55VB5なら自分で書けよ。
大して難しくないでしょ
0280デフォルトの名無しさん
2007/10/11(木) 15:48:04まだ始めてもいないので、大雑把な質問をさせてください。
インターネットエクスプローラーで、あるサイトに飛び、そこでユーザー名とパスワードを入力する。
この単純な作業をワンクリックで実行させたいのですが、VBでそのようなことは可能でしょうか?
可能であるなら、頑張って勉強しようと思います。
ご存知の方、どうか宜しくお願いします。
0281デフォルトの名無しさん
2007/10/11(木) 17:23:36余裕で可能。
0282デフォルトの名無しさん
2007/10/11(木) 17:34:11可能 .NETでも余裕
引数つきでIEを起動してSendKeysのWaitモードを使うのが一般的かな
0283デフォルトの名無しさん
2007/10/11(木) 18:10:08>>282
ありがとうございます!
それではVBの門を叩いてみようと思います。
0284デフォルトの名無しさん
2007/10/11(木) 18:20:460285デフォルトの名無しさん
2007/10/12(金) 14:36:34どんなPCを用意すればいいでしょうか
Win98/Meくらいまでなら、動作しますか?
たぶんインストールすら無理だろうと思いつつも、
既存のVB6や2005の環境等が壊れるのが恐くて、
Xpや2000へのインストールは試してません・・・
0286デフォルトの名無しさん
2007/10/12(金) 14:46:320287デフォルトの名無しさん
2007/10/13(土) 00:34:13何で2.0?
0288デフォルトの名無しさん
2007/10/13(土) 07:27:36古いプログラムのメンテ用としか思えないがwww
0289285
2007/10/13(土) 08:54:57見つからなくて・・・
どなたか情報や実績お持ちじゃないでしょうか
0290デフォルトの名無しさん
2007/10/13(土) 09:04:08OSはWin3.1だろうからCPUは486DX,RAM8-16MB,画面はVGA-XGAだろ。
0291デフォルトの名無しさん
2007/10/13(土) 09:21:14会社にVB2の箱があるから書くよ
■アプリケーションソフトの作成に必要なシステム
コンピュータ本体 80286以上を搭載しWindowsが稼働するパーソナルコンピュータ
基本ソフトウェア Windows 3.0A/3.02/3.1(リアルモードでは動作しません)
最小稼働メモリ プロテクトメモリ4MB以上
ハードディスク 14MB以上の空き容量が必要
フロッピーディスクドライブ 3.5インチ(2HD)または5インチ(2HD)
その他 Windowsに準じた日本語入力システム
本体に接続可能でWindowsに対応したマウス
うちでの実績は担当外だから詳しくわからないけど、開発環境はWindows95。
運用環境はWindows98のはず。
2000/XPはビートリーブ関係の問題で使えないとのことだった。
0292289
2007/10/13(土) 10:11:25助かりました
Windows95を準備して当たってみます
0293デフォルトの名無しさん
2007/10/15(月) 17:42:12あるメソッドで、ファイルのオープン時にエラーが発生する可能性と、その他のコードでエラーが発生する
可能性があるとします。このとき、On Error Gotoを使ってエラーハンドリングする場合、次のように書きました。
Sub Foo()
Dim fn as Integer
Dim fileOpened as boolean
fn = freefile
On Error Goto MyExit
open "filename" for input as #fn
fileOpened = true
' エラートラップされる可能性のあるコード
MyExit:
if fileOpened then
close #fn
end if
End Sub
これを次のように書くと何か問題あるでしょうか?
Sub Foo()
Dim fn as Integer
fn = freefile
On Error Goto MyExit
open "filename" for input as #fn
' エラートラップされる可能性のあるコード
MyExit:
close #fn
End Sub
長々と書きましたが、つまりは「close #0を実行すると何が起こるのか?」がわからないということなんです。
0294デフォルトの名無しさん
2007/10/15(月) 17:47:11そうするとファイルオープン時のエラーに対処できないんじゃ?
53だっけ?57?
まぁ50番台にしとく
On Error Goto 0あったほうがよくね?
0295デフォルトの名無しさん
2007/10/15(月) 18:22:54開いてない番号指定してCloseしても何も起こらない。
Sub Foo()
Dim fn as Integer
fn = freefile
close #fn
End Sub
エラートラップはそのモジュールと、そこから呼ばれる下位モジュール
だけで有効じゃなかったっけ?
下位モジュール呼ぶ前にエラートラップ外したい段階でOn Error Goto 0
いれればいいんでね?
暗黙の初期化とはいえ、上の文の方でOn Error前に
fileOpened = false が無いのが気になる。
0296293
2007/10/16(火) 10:08:21エラーの種類によらず、何かのエラーが起こったら処理を中断して終了するので、特にファイルオープンエラー
の場合かどうかを調べなくてもいいんです。
On Error Goto 0は>>295さんの言うとおり、いらないと思います。
>>295
情報ありがとうございました。ひとつのメソッドで複数のファイルを操作するとき、オープン済みフラグを
使用すると煩雑になるので困っていました。
オープン済みフラグは無しで行きます。
それと初期化の件ですが、やっぱりあったほうがいいですかね…。
Functionのdefaultの戻り値はFalseで、ローカルな数値系の変数の初期値は0、BooleanならFalseという
のを使いまくりです…
0297デフォルトの名無しさん
2007/10/16(火) 14:50:11VB6のデフォルト値は信頼できるから、どんどん使っていいよ。
0298デフォルトの名無しさん
2007/10/16(火) 16:02:00まぁ、エラートラップが1個ならそれでいいかもね
でもエラー内容をCALL元に帰すにしろ、帰さないにしろ
MyExit:内で
エラークリアはしておいた方がいいと思うがな
0299デフォルトの名無しさん
2007/10/16(火) 20:30:360300デフォルトの名無しさん
2007/10/18(木) 08:27:55> Windows95を準備して当たってみます
今時のPCで作業するんなら、XP+仮想化ソフト上のWin95という方法もあるよ。
0301デフォルトの名無しさん
2007/10/18(木) 22:27:38TreeView(VB6仕様)でノードを追加している間、処理の高速化のために再描画処理を回避させたい(=追加処理が終わってからいっぺんに再描画させたい)のですが上手くいきません。
以下の2パターンで試してみたのですが効果がありませんでした。
・パターン1
Ret = LockWindowUpdate(TreeView1.hwnd)
↓
TreeView1にNodeを追加する処理・・・
↓
Ret = LockWindowUpdate(0&)
・パターン2
Ret = PostMessage(TreeView1.hwnd, WM_SETREDRAW, False, Byval CLng(0))
↓
TreeView1にNodeを追加する処理・・・
↓
Ret = PostMessage(TreeView1.hwnd, WM_SETREDRAW, True, Byval CLng(0))
両パターン共、戻り値には1が来るのでエラーにはなっていないと思うのですが・・・(?_?;)
何卒宜しくお願いしますm(__)m
0302デフォルトの名無しさん
2007/10/22(月) 16:04:27コッホ曲線は自分で作ることができました。
どなたかヒントだけでも教えてもらえないでしょうか?
よろしくお願いしますm(_ _)m
0303デフォルトの名無しさん
2007/10/23(火) 03:12:200304デフォルトの名無しさん
2007/10/23(火) 03:37:20ヒント:
>>302は勉強しろ
0305デフォルトの名無しさん
2007/10/23(火) 10:22:26そんなアドインとかありますか?
0306デフォルトの名無しさん
2007/10/23(火) 12:26:11字下げしろ
ネスト深くするな
0307デフォルトの名無しさん
2007/10/23(火) 12:28:17UXGAでも見れないくらい深く長い谷が存在する
0308デフォルトの名無しさん
2007/10/23(火) 13:37:31プリントできるサイズに縮小して印刷する方法はありますか?
IrfanViewの印刷で言うところのBest fit to page (aspect ratio)です。
0309デフォルトの名無しさん
2007/10/23(火) 13:52:46mcopyみたいな外部アプリを使ったほうが楽でないかい?
0310デフォルトの名無しさん
2007/10/25(木) 02:06:48それは書き方がへたくそなだけだ
0311デフォルトの名無しさん
2007/10/29(月) 00:10:59英語から日本語に書き換えるアプリを作っています。
で、チェックボックスのラベルの書き換えを行うときに躓きました。
SendMessage hWndX, &HC, 0, ByVal "あいうー"
でラベルの文字は変わるのですが、
この時ラベルの幅が無駄に広く、隣にテキストボックスが
有るのですが、このテキストボックスの上にラベルの空白になっている部分が重なって、
テキストボックスが隠れてしまいました。
チェックボックスのZオーダーを下げるか、
チェックボックスのラベルの幅を小さく出来れば解決できると思ったのですが、
SendMessageで送れるコマンドでサイズを変更するとかZオーダーを変更する方法はありますでしょうか?
お願いします。
0312デフォルトの名無しさん
2007/10/31(水) 15:18:35例
1234円⇒1300円
1299円⇒1300円
1300円⇒1300円
1301円⇒1400円
にしたいのですが・・・
0313デフォルトの名無しさん
2007/10/31(水) 15:42:194桁なら
dim Mony as long
Mony=金額入れる
msgbox int(((Mony /100) +0.9999)) *100
こんなんじゃダメかな?
0314デフォルトの名無しさん
2007/10/31(水) 15:43:31数式考えれ
((x-1)\100+1)*100
0315デフォルトの名無しさん
2007/10/31(水) 15:44:14以前まで表示されていた列のデータが、急に表示されなくなりました。
全てではなく、特定の1、2列程度。
プログラムは変更しておらず、デバッグするとSetTextで
データのセットはしていました。
プログラムの修正をしていないのにも関わらず、今まで表示されていたものが
表示されなくなる原因がつかめません。
0316デフォルトの名無しさん
2007/10/31(水) 15:51:58>、急に表示されなくなりました。
って一言で書いて歩けど、絶対に、絶対に、絶対になにかしているから結果が変わった。
それは文章に出てきていないし、俺たちが分かるものじゃない。
がんばれとしかかけないぞ
0317デフォルトの名無しさん
2007/10/31(水) 15:59:39レコードとかから取ってきてるんだろうけど
ヴァリアントの変数に入れてる?
入れてなかったら、ヴァリアントの変数に一旦収納するかしてみ
0318デフォルトの名無しさん
2007/10/31(水) 16:02:08正しくソートする方法はありますか?
.sortに、flexSortGenericAscendingや、flexSortStringAscendingや
flexSortNumericAscendingなども設定してみたんですが、
いまいち法則性がわからない結果になってしまいます。
.colを間違っているとかは無いとは思うのですが。
0319315
2007/10/31(水) 16:16:14何もしていないのに表示されなくなるってことは
環境周りかとも思うのですが。
WindowsUpdateを定期的に実行しています。
あと、Variant型にはしてないです。
でも今までそれで表示されてたんですよね。
一応Variantに変換してセットしてみたんですが、
やはり表示されませんでした。
0320デフォルトの名無しさん
2007/10/31(水) 16:17:05うまくできました。本当にありがとうございます
0321デフォルトの名無しさん
2007/10/31(水) 16:52:16追記ですが、Format(price, "##,###,###")
のような処理をした文字列です。
これのFormatの処理をやめて、数字としてソートすると正常に
ソートができます。
0322デフォルトの名無しさん
2007/10/31(水) 16:56:39同じような質問ばかりですみません・・
0323313
2007/10/31(水) 16:57:53おーいす
ちなみに0.9999の箇所を0.8000とかに変えると
1捨2入とかもできるぞ〜
あと100の値は繰り上げ用の桁な(繰上げする桁が百の位だったので)
10^(ベキ)n(繰り上げる桁数)とかすると良い
>>319
ソース見てないからなんとも言わんが
ちゃんとデータ収納されてるの?
あと変数にマウスオーバーした時の値(黄色い枠が表示されるじゃん)が「”」で囲われてるか?
0324デフォルトの名無しさん
2007/10/31(水) 17:10:00それって・・ホラ
新しいフォルダ(1)
新しいフォルダ(10)
新しいフォルダ(2)
・・・
見たいな感じじゃね?
0325デフォルトの名無しさん
2007/10/31(水) 17:14:29メジャーどころのRDBなら書ける
0326デフォルトの名無しさん
2007/10/31(水) 17:14:46いえ、そういうような法則性は一切見られません。
1,096,400 1,199,240 1,201,250 1,757,620 1,360,810
1,800,190 1,052,100
みたいな感じになってしまいます。
0327デフォルトの名無しさん
2007/10/31(水) 17:25:18なら非表示の列に数字を突っ込んでソートさせれば?
0328デフォルトの名無しさん
2007/10/31(水) 17:25:21さらに試してみると、毎回ソート結果が微妙に入れ替わるようです。
ただ、数字の塊として見ると、ある程度までは並んでいます。
0329デフォルトの名無しさん
2007/10/31(水) 17:25:36プライスってことは、その前に商品コードや品名・規格・単位などあるんですよね?
それでソートされているのでは?
0330デフォルトの名無しさん
2007/10/31(水) 17:25:48先頭を空白で埋めて全ての値の文字数を合わせて文字列ソート
0331デフォルトの名無しさん
2007/10/31(水) 17:37:21>>329
プライスの列だけでソートしてみているのですが、おかしくなるようです。
>>330
なるほど、そういうやり方もあるのですね。
>>324さんのいうようなケースであればそれでいいとは思います。
ただ、今回の場合は、結果が不定な感じで法則性が
よくわかりませんでしたので、>>327さんのやりかたを試してみました。
.ColWidth(列) = 0で、列を非表示にした列に、元の数字を入れて、
そちらでソートしてみたところ、うまくいきました。
本当はもうちょっと検証すべきかもしれないのですが、
とりあえずはこのやり方でやってみたいと思います。
0332デフォルトの名無しさん
2007/10/31(水) 17:42:221,234,567や2001/12/23の場合、,や/という異物より
まずは手前の数字部分だけでソートができていて、
異物以降は不定になるという事かもしれません。
今見てみると、カンマ区切りの数字以外でも、
上記のような日付も似たような不思議な挙動になっています。
0333デフォルトの名無しさん
2007/10/31(水) 18:01:33イミディエイトウィンドウで
? val("1,234,567")
? val("2001/12/23")
するとソートされている順序がわかるかと。
0334デフォルトの名無しさん
2007/11/01(木) 05:58:09flvファイルの再生が出来ません。
swfファイルと同じファイル指定方法ではダメなのでしょうか?
0335デフォルトの名無しさん
2007/11/01(木) 15:16:08新規でプロジェクトを作成し、保存しようとすると
C:\Program Files\Microsoft Visual Studio\VB98
がデフォルトで表示されます
これを
d:temp
等に変えることはできますでしょうか?
よろしくお願いします
0336デフォルトの名無しさん
2007/11/01(木) 19:00:44Flash(というよりSWF)を作る際に、FLV再生する機能が使えるということなので、
FlashでのFLV再生では、各自(ニコニコやYouTubeなど)がFLVを再生するSWFを作っている。
ちなみにコーデックとスプリッタが揃っている(WMPで再生できる)環境なら、
ActiveMovieなどでAVIやMPEGなどと同様に再生できる。
0337デフォルトの名無しさん
2007/11/02(金) 00:44:32vb6.exeのショートカットを作って作業フォルダ変更
0338デフォルトの名無しさん
2007/11/02(金) 10:13:13FlexGridのソートについての質問ですが、
2列をキーにしてソートする場合
.Col = x
.ColSel = y
.Sort = flexSortStringAscending
でできるのですが、
3列をキーにしてソートする方法はあるのでしょうか?
0339デフォルトの名無しさん
2007/11/02(金) 10:25:38隠しフィールドに任意の列数文の値を文字列化(と桁数合わせて)してそれでソート
0340as
2007/11/02(金) 14:30:58VB6で作成したシステムをC:\Program Files\aaaとC:\Program Files\bbb
にインストールしました。
1つのまったく同じシステムですが状況によってDBの接続先を変えたくてです。
DBの接続先はiniファイルを見て判断しています。
プログラムのiniファイルの参照パスはapp.path\SystemName.iniです。
このときaaaフォルダにインストールしたexeを実行しても
bbbフォルダにインストールしたexeを実行しても
後からインストールした方のiniファイルを見に行ってしまい結局同じDBを参照してしまいます。
app.pathをやめて./SystemName.ini と ./を使うことも考えましたが./はシステム操作中にカレントディレクトリが
変わってしまうことがあるっぽいということを聞いたのでやめました。
自分だけが使うなら都度iniファイルを書き変えるのですが使う人が素人ばかりなのでそういうわけにもいきません。
何かいい解決方法はないでしょうか?よろしくお願いいたします。
0341デフォルトの名無しさん
2007/11/02(金) 16:13:05プロジェクトがABC.vbpなら、それをコピってABC2.vbpを作る
2つのプロジェクトから別個にABC.exeとABC2.exeを作って
インストーラもそれぞれ別個に作る
0342デフォルトの名無しさん
2007/11/02(金) 16:23:21フォルダ: 実行(仮).exe
SystemName.ini
SystemNameの中身(仮):Datapath=c:\Data\DataA.mdb
C:\Program Files\bbb
フォルダ: 実行(仮).exe
SystemName.ini
SystemNameの中身(仮):Datapath=c:\Data\DataB.mdb
ってこと?
app.pathで取った情報の終端に既に「\」があって
C:\Program Files\aaa\\SystemName.ini こんな風になってる事はない?
0343as
2007/11/02(金) 16:46:05システムはEXEを起動してメニューを表示し
各機能はDLLを呼ぶ形で実行しています。
メニュー画面から
Set l_obClass = CreateObject("aaaProg1.class_aaaProg1")
l_obClass.Show_aaaProg1
と aaaProg1.dll を呼ぶ
この場合、DLLも名前を変えて作成し直し上記プログラムも
Set l_obClass = CreateObject("bbbProg1.class_bbbProg1")
l_obClass.Show_bbbProg1
のように修正するべきなのでしょうか?
プロジェクトをコピーしてABC2.exeを作りましたが現象がかわりませんでした。
重ね重ね申し訳ございませんが、よろしくお願いいたします。
0344デフォルトの名無しさん
2007/11/02(金) 17:03:42プログラミングしてる人も、提供される人も・・・。
0345as
2007/11/02(金) 17:11:14ご回答ありがとうございます。
まったくそのような感じです。
ステップ実行して確認してみましたが\\とはなっていませんでした。
0346デフォルトの名無しさん
2007/11/02(金) 17:21:150347as
2007/11/02(金) 17:35:30APIのGetPrivateProfileString関数を使って読んでいます。
0348デフォルトの名無しさん
2007/11/02(金) 17:43:16DLLも各aaaとbbbにあるん?
てか
EXEで取得したAppPathの文字列をDLLに渡したら?
参照設定辺りでうにゃうにゃになってるんでね?
0349デフォルトの名無しさん
2007/11/02(金) 17:47:42・オープンしようとしているiniファイルのパスを確認
・GetPrivateProfileStringを抜けたときに取得された値を確認
・それぞれのiniファイルのエントリが本当に正しいか確認
しろ。
それから、iniファイルだけが違うインストーラを作るのは、VBのプロジェクトをコピーする必要ないぞ。
どのインストーラ作成ツールを使ってるのか知らないけど、iniファイルを入れ替えるだけでいい。
0350デフォルトの名無しさん
2007/11/02(金) 17:50:09後からインストールした情報で上書きされる。
0351as
2007/11/02(金) 18:33:30>>350様のおっしゃったことが
まさに当てはまっているような気がしますので、DLLも名前を変えて
つくり直しています。
0352デフォルトの名無しさん
2007/11/08(木) 01:42:41iniに記すSectionかKeyを分けて接続先を変えればいいだけじゃないか…
0353デフォルトの名無しさん
2007/11/11(日) 18:40:110354デフォルトの名無しさん
2007/11/11(日) 22:18:18無理。
0355デフォルトの名無しさん
2007/11/12(月) 01:10:31ありがとうございました。
0356デフォルトの名無しさん
2007/11/12(月) 01:19:01が、標準でないなら無理だな
0357デフォルトの名無しさん
2007/11/12(月) 08:44:110358デフォルトの名無しさん
2007/11/18(日) 15:26:360359デフォルトの名無しさん
2007/11/18(日) 18:41:540360デフォルトの名無しさん
2007/11/18(日) 18:46:35【真剣な質問だった場合】
このスレに書き込んでるんだったら、Windows と Visual Basic が要ります。
Visual Basic 2005 Express Edition だったら Microsoft のサイトから
ただで入手できます。
ていうかスレ違いのような気がするので総合質問スレッドへお願いします。
0361デフォルトの名無しさん
2007/11/18(日) 18:48:58今からやるなら少なくともVBやVB.NETはやめといた方がいいぞ。
どの言語でやるかはここで聞けばいい。
http://pc11.2ch.net/test/read.cgi/tech/1193132235/
0362デフォルトの名無しさん
2007/11/19(月) 03:38:170363デフォルトの名無しさん
2007/11/19(月) 15:21:36Do until データがEOF
変数 = 変数 & データ & vbCrLf
データ次の行へ
Loop
こういう処理の流れでできるだけ早くできる方法って何になりますか?
現状データが5000件くらいになると処理が遅くなってきまして・・・
0364デフォルトの名無しさん
2007/11/19(月) 15:23:500365デフォルトの名無しさん
2007/11/19(月) 15:32:195000くらいなら文字列を配列&改行で持っておいて最後にJoinのほうがマシじゃない?
0366デフォルトの名無しさん
2007/11/19(月) 16:00:01いつもはVB SourceBookの「文字列を高速に連結するクラス」を使ってる。
同じようなものが「VB 文字列 高速 連結」で検索すると見つかる。
0367デフォルトの名無しさん
2007/11/19(月) 16:12:15文字列連結パフォーマンスを向上させる方法
ttp://support.microsoft.com/kb/170964/
0368デフォルトの名無しさん
2007/11/19(月) 17:00:15処理速度が尋常じゃなく向上してなんとかなりそうです。
0369デフォルトの名無しさん
2007/11/19(月) 17:41:430370デフォルトの名無しさん
2007/11/19(月) 19:13:45Windowsのスタートアップに登録してWindows起動時にプログラムが
起動すると設定が読み込まれていません。
一度、プログラムを終了してから再度起動すると設定が読み込まれます。
設定の保存方法はXMLファイル(app.config)になります。
使用しているVBのバージョンはVB2005です。
0371デフォルトの名無しさん
2007/11/19(月) 19:17:400372デフォルトの名無しさん
2007/11/19(月) 23:43:05スレタイよめwwww
0373デフォルトの名無しさん
2007/11/20(火) 14:47:31それ.NETだけじゃね?
0374デフォルトの名無しさん
2007/11/20(火) 14:53:18違うフォームに同じ名前のpublic変数がありまして
この場合の挙動ってどうなるか知りたいのですがどうなるんでしょうか?
いっそのことprivateに変えられたらいいけどソース書いたの辞めた人だし
かといって挙動を追うのも面倒だorz
0375デフォルトの名無しさん
2007/11/20(火) 14:55:370376デフォルトの名無しさん
2007/11/20(火) 15:25:07フォーム側が優先されるんじゃなかったけ?
ローカル>自public>他public
0377デフォルトの名無しさん
2007/11/20(火) 15:39:49全部テストして値確認するのも面倒だし現状ちゃんと動いてるから
ぶっちゃけ今のままでも良いといえば良いんだよね。
無駄な変数とか探してたらそういうのがあったから出来たら直したいと思っただけで。
>>375
なるほど。ということはprivateに直してもよさげな気がしました。
ありがとうございます。
0378デフォルトの名無しさん
2007/11/20(火) 16:16:16CreateObject("System.Text.StringBuilder")
0379デフォルトの名無しさん
2007/11/21(水) 09:19:30.NET Framework必須じゃね?
0380デフォルトの名無しさん
2007/11/21(水) 10:45:590381デフォルトの名無しさん
2007/11/25(日) 13:13:430382デフォルトの名無しさん
2007/11/25(日) 22:17:38サーセンwwww
0383デフォルトの名無しさん
2007/11/26(月) 21:49:14日本語の文字化けはVB6jp.dll同じフォルダに入れておけばいいのは前に教えてもらったんですが
0384デフォルトの名無しさん
2007/11/26(月) 22:38:560385デフォルトの名無しさん
2007/11/27(火) 09:48:460386デフォルトの名無しさん
2007/11/27(火) 13:05:15それってWindowsに標準でインストされてるじゃん
0387デフォルトの名無しさん
2007/11/27(火) 18:29:470388デフォルトの名無しさん
2007/11/27(火) 20:33:57ググってみたが、過去の情報ではMSVBVM60.DLLは元々はないみたいだね。
でも俺も外部のDLLやOCLを利用しない、基本的なプログラムだけでEXE作って
ZIPで中にVB6jp.dllだけ入れて会社の支店に配布したけど、特にランタイムもなにもインストールせず
使えてたようなんだけど何でだ?OSは2000とXPのみだけど、今はもうWindowsUpdateに組み込まれてるのか…
0389デフォルトの名無しさん
2007/11/27(火) 21:59:080390デフォルトの名無しさん
2007/11/27(火) 23:02:29それは大分昔の話だぞ
0391デフォルトの名無しさん
2007/11/28(水) 00:15:01それ以前に組み込まれている可能性もあるし
SP2いれたら勝手に入ったかとおもう
0392デフォルトの名無しさん
2007/11/28(水) 01:16:33間違いなく実行ファイルだけでどのPCでも動くな。OSが98以前は分からんが。
0393デフォルトの名無しさん
2007/11/28(水) 09:06:06>>387
>"98はVB5のそれがあるけど"
>>388
>OSは"2000とXPのみだけど"
バカなの?
0394デフォルトの名無しさん
2007/11/28(水) 15:26:460395デフォルトの名無しさん
2007/11/28(水) 15:55:17Win98にVB5は入っているがVB6は入ってない
2000/XPの場合はSPによるらしいがいつの間にかVB6が入っている
ってことじゃね?適当なパーティション用意して調べた方が早そうだな
仮想PCの方がいいか
0396デフォルトの名無しさん
2007/11/29(木) 16:50:10フォント設定ウィンドウで文字セットのリストボックスで任意の言語を設定できるようになってますが
同じ事をFont.Charsetプロパティで行うにはどうすればいいのでしょうか?
ヘルプを見ても0,2,128,255の値しか載ってませんでした
0397デフォルトの名無しさん
2007/11/29(木) 19:57:41Googleで wingdi.h SHIFTJIS_CHARSET
でいいんじゃないかな
0398デフォルトの名無しさん
2007/11/29(木) 21:18:280399デフォルトの名無しさん
2007/11/29(木) 21:24:56Private Sub Command1_Click()
Image1.Visible = True
Timer1.Enabled = True
Text1.Text = Time
ti = 0
Text2.Text = ""
Text3.Text = ""
End Sub
0400デフォルトの名無しさん
2007/11/29(木) 21:25:57Text2.Text = Time
Text3.Text = Str(ti)
Timer1.Enabled = False
Image1.Visible = False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Timer1_Timer()
ti = ti + 1
End Sub
質問ですが、このソースでクリア(空白?)の
>>Text2.Text = ""
Text3.Text = ""
等は書いても書かなくてもいいのでしょうか?
0401デフォルトの名無しさん
2007/11/29(木) 21:29:370402デフォルトの名無しさん
2007/11/29(木) 21:34:580403デフォルトの名無しさん
2007/12/01(土) 00:52:43VB6のActiveXコントロールをWebページに組み込んで、
複数ファイルのアップロードをしようと画策しています。
BFUpコントロールが理想に近いものでしたが、
警告ダイアログが出たり、ファイルごとにパラメータを変えたりできないのでちと断念しました。
アップロードされたファイルを受け取るサーバ側の処理はすでにできておるので、あとはVBでコントロールを作成するのみです。
httpのputっぽいイメージでアップロードさえできればあとはこっちで何とかするんで、
VBによるhttpアップロード処理が書かれたサンプルがあるサイトはありませんか。
もしくは検索キーワードを教えてくれると喜びます。
0404403
2007/12/01(土) 20:19:52BASP21にバイナリ吐きとソケット通信があったんでそれを使用。
皆さんありがとうございました。
0405デフォルトの名無しさん
2007/12/05(水) 00:07:491ヶ月前から手が付けられなくすごく困っています
VB6.0でつくったソフトウェアを公開したのですが、他のPCではほとんどがエラーで終了してしまうそうです、
こちらでどうなってるのか見たいのですが仮想マシンを入れるようなお金は無く、
友達に協力してもらおうと思っていたのですが友達の環境(VB6.0導入済み)では問題なく動いてしまい、参考になりません
色々調べてみて「Dependency Walker」を使い、出されたDLLをEXEのフォルダに入れるというのを見つけたのですが、それで動作するのかまったく検討が付きません
どうすれば他のXPで動くようにできますか?
(ディストリビューションウィザードは使いたくありません)
0406デフォルトの名無しさん
2007/12/05(水) 00:11:39ファームが表示される前にシステムフォルダにコピーしたりregsvrでレジストリ登録したりしてる
0407デフォルトの名無しさん
2007/12/05(水) 00:17:53それがよく判らないのでどうしようもない・・・
これらが用事されました
「ADVAPI32.DLL;GDI32.DLL;KERNEL32.DLL;MSVBVM60.DLL; MSVCRT.DLL;NTDLL.DLL;OLE32.DLL;OLEAUT32.DLL;RPCRT4.DLL;USER32.DLL」
0408デフォルトの名無しさん
2007/12/05(水) 00:41:15Formに日本語表示させてるならVB6JP.dllがないと文字化けするくらいで。
0409デフォルトの名無しさん
2007/12/05(水) 01:05:080410デフォルトの名無しさん
2007/12/05(水) 07:55:08これだけは避けたかったのですが・・・
ttp://carefreeness.futene.net/
ここのソフトウェアに問題のアプリをのせています、エラー内容は「OCXオブジェクトに関するエラー」としか判っていません
もしよければ確認お願いします、m(_ _)m
0411デフォルトの名無しさん
2007/12/05(水) 11:19:25どうでもいいけど、ページ開いて本文にリンクがないのにまず萎え。
メニューからSoftwareを開いて、そこにダウンロードリンクがないのが萎え。
moreをクリックして、そこにもダウンロードリンクがないのが萎え。
なので、ダウンロードしてない。
0412デフォルトの名無しさん
2007/12/05(水) 12:29:34ソフトの表部分には、カスタム OCX を使ってるんだよね?
ドキュメントを見ると、Office XP Web コンポーネントらしいけど
こいつが、MSComCtl.ocx を使っている。
Vector あたりで、VB のランタイムを落としてきてインストールすれば
動きそうな気がする。
0413デフォルトの名無しさん
2007/12/05(水) 12:53:07OWC.DLL をフォルダにコピーするだけじゃだめ。
regsvr32 でレジストリに登録しなきゃたぶん動かない。
0414デフォルトの名無しさん
2007/12/05(水) 12:59:580415デフォルトの名無しさん
2007/12/05(水) 14:26:540416デフォルトの名無しさん
2007/12/05(水) 14:49:17とりあえずコンポーネントの依存性だけでも
確認するのが先決じゃね?
0417デフォルトの名無しさん
2007/12/05(水) 14:51:59それが嫌だって言ってるから相談してるんじゃんか。
インストーラーじゃなくっても、リソースに組み込んで
LoadResDataで起動時最初にコピーしてregsvr32で登録するようにすれば大丈夫
0418デフォルトの名無しさん
2007/12/05(水) 15:19:51インストーラを作りたくないのか。
0419デフォルトの名無しさん
2007/12/05(水) 15:28:38は?
0420デフォルトの名無しさん
2007/12/05(水) 16:31:03つか、なんでインストーラ作りたくないんだよ?
0421デフォルトの名無しさん
2007/12/05(水) 17:05:46説明が間違っていました「ディストリビューションウィザードを使いたくない」ではなく「インストーラを作りたくないです」
理由はあまり好かれる形じゃないと思ったことが理由です、なので、できればZIPで一まとめにしたいと考えています
動作問題の解決として「OWC.DLL」のレジストリ登録をできるようにしてみます、
コンポーネントの依存性についてなんですが「Dependency Walkerで使用されたDLL調べる」ということとは違うことでしょうか?
コンポーネント依存性についてネット検索してみたのですが依存性の調べ方がイマイチ判りませんでした、どのように調べるのでしょうか?
長文失礼しました
0422デフォルトの名無しさん
2007/12/05(水) 17:08:45すいません、m(_ _)m
0423デフォルトの名無しさん
2007/12/05(水) 21:18:32あんまVBとは関係ない話題だけど、製品じゃなくってフリーソフトで
インストール必須の仕様だとそれだけで使いたくなくならない?俺だけ?
0424デフォルトの名無しさん
2007/12/05(水) 21:31:290425デフォルトの名無しさん
2007/12/05(水) 22:03:23素直に作れよ
0426デフォルトの名無しさん
2007/12/06(木) 00:09:400427デフォルトの名無しさん
2007/12/06(木) 01:04:080428デフォルトの名無しさん
2007/12/06(木) 01:11:300429デフォルトの名無しさん
2007/12/06(木) 04:30:34だいたいランタイムはインストールされてるだろ
ない奴は別途ダウンしてもらえばいいと思うぞ
業務ならインスコしてもらえばいいだけだしな
でも・・・俺も.netに移行したほうがいいと思うんだが・・・・
0430デフォルトの名無しさん
2007/12/06(木) 12:02:06.Net移行も考えたことありましたが趣味で作ってるだけなんですw
それにプログラム作り始めて1年、本も読まず完全独学でがんばっています
0431デフォルトの名無しさん
2007/12/06(木) 15:01:11開発言語:VB6.0
OS:Win2000
Voice Text コントロールを使用して音声を読み上げる際に使用される
音声辞書を編集することは可能でしょうか?
(ユーザー辞書を作成し、それを元に読み上げをさせる方法等)
出来れば、辞書の登録や編集もVBで行いたいのですが。
具体的には、デフォルトのままで、"11A" を読み上げさせると、
"ジュウイチアンペア" と読みます。
これを、"イチイチエイ" と読ませたいのです。
フリーのソフト等で辞書登録してその通りに読ませることが出来るもの
があるので、何かしら方法があると思うのですが。。。
0432デフォルトの名無しさん
2007/12/06(木) 16:01:40音声辞書の仕様はすでに把握していて
それをどうすればVBで出来るのかって話なんだろうな?
辞書の仕様についてVBスレで質問してるんなら帰れ
0433デフォルトの名無しさん
2007/12/06(木) 16:13:030434デフォルトの名無しさん
2007/12/06(木) 19:11:16どうすればVBで出来るかというところが知りたかったのですが、
辞書の仕様を分かっているのかと言われると分かっていないので
勉強しなおしてきます。
失礼しました。
0435デフォルトの名無しさん
2007/12/08(土) 16:13:24流暢な歌声でデスマプロジェクトも和む。
0436デフォルトの名無しさん
2007/12/11(火) 03:19:06ところがPCの調子が悪く、買い換えようと思ってるんですが、現在はXP SP2か、Vistaしか販売していないようです。
XP SP2でも、Vistaでも、VB6.0は問題なく動作するものでしょうか?
マイクロソフトのページだと、Vistaでも動作する、とあるのですが……XP SP2に関してはページが見つかりませんでした。
XP SP2だと、win98あたりのツールが使えない等の話を聞いていたので、SP1のまま使用し続けていたのですが、
こういうのはただの取り越し苦労でしょうか?
とりあえずVB6.0の動作だけでも、教えていただければと思いレスしました。
よろしければ、どなたかお教えください。
0437デフォルトの名無しさん
2007/12/11(火) 09:49:58問題ない。
0438デフォルトの名無しさん
2007/12/11(火) 11:28:24既に回答レスついてるが、俺も VB6+XPsp2 だけど、全く問題ない。
むしろ、Vista環境に変えたとき今までのソースがそのまま使えるかどうかの方が気になる。
0439デフォルトの名無しさん
2007/12/11(火) 11:57:27ソースは探せばある。
0440デフォルトの名無しさん
2007/12/11(火) 11:58:46今までVB6で作ったアプリがVistaで何の問題もなく動くというわけではない。念のため。
0441デフォルトの名無しさん
2007/12/11(火) 12:59:31あれ?VistaでIDEの動作保証はされてないんじゃなかったっけ?
0442デフォルトの名無しさん
2007/12/11(火) 13:09:480443デフォルトの名無しさん
2007/12/11(火) 13:28:33読んでも分かんないから教えてくれって言ってるのか?
0444デフォルトの名無しさん
2007/12/11(火) 13:30:410445デフォルトの名無しさん
2007/12/11(火) 14:04:59実行するごとにCtrl+A、Delは疲れました・・・
0446デフォルトの名無しさん
2007/12/11(火) 15:32:05Debug.Printしなきゃいい
つか、わざわざ消す意味がわからんが
0447デフォルトの名無しさん
2007/12/11(火) 15:50:36別件質問ですが、
Application.VBE.SelectVBComponents.CodeModule.CreateEventProc("Click", "Button")
ここの、Buttonコントロールに何のイベントがあるか、コードが存在すればMemberで所得できますが、
未知の状態でイベントを列挙する方法ありますか。
0448デフォルトの名無しさん
2007/12/11(火) 18:10:47質問が謎過ぎて分かんないんだけど、ひょっとしてこういうこと?
http://pc11.2ch.net/test/read.cgi/tech/1189814602/935
0449デフォルトの名無しさん
2007/12/11(火) 19:02:01としたいのです。その例のように、すでに存在していれば、Membersを使えばできます。
存在しないときはMembersにはないので、そのときどうするかと言う方法が知りたいです。
Buttonとかならせこせき書き写せばいいが、WithEvensにしたときなど全て網羅するのは
大変なのでソース中で知りたいわけです。
0450デフォルトの名無しさん
2007/12/11(火) 21:19:22C言語のmemcpyのような感じで、反復を使わなくても良い方法です。
よろしくです。
0451デフォルトの名無しさん
2007/12/11(火) 21:31:070453436
2007/12/11(火) 22:41:21ご回答ありがとうございました。
これで新PCへの乗り換えも安心して出来ます。
vistaは他の多くのソフトの動作が怪しいようですので、とりあえずはまだXP SP2で行こうと思います。
0454デフォルトの名無しさん
2007/12/11(火) 22:51:32VB5 SP3のRDO経由接続は問題ないでしょうか?
Oracle7.3からの移行を考えていますがVB5のRDOのバージョンで
10g R2附属のDBCのバージョンが相性が悪いという事はないでしょうか?
VB6でRDOのバージョンが上がっているのでVB5のRDOは最新のODBCに
対応しているのかいないのかを知りたいのです。どなたかご教授ください。
0455デフォルトの名無しさん
2007/12/12(水) 00:02:590456デフォルトの名無しさん
2007/12/12(水) 23:26:540457デフォルトの名無しさん
2007/12/12(水) 23:58:32ORACLEから抽出したデータをEXCELに出力するPGが、遅くて使い物になりません。
具体的にはこんな感じです。
・VBからSQLを実行し、データを抽出。(RecordSetで持たせる。)
・1行EXCELに出力したらmovenextして、EOFになるまでひたすらループ。
配列を使えば良い気もするけど、EXCELに出力するときに遅ければ意味がないのかな?
ちなみに1000行出力するのに、4分かかります。
高速化する良い方法ってありますか??
0458デフォルトの名無しさん
2007/12/13(木) 00:12:08EXCELのSHEET1にSHEET2を参照するようにして
吐き出したCSVをSHEET2に取り込むような処理書いてみるとか
DoEventとかループの中に書いてると極端に遅くなるがその辺はどうだろう?
0459デフォルトの名無しさん
2007/12/13(木) 00:17:05知らないなら黙っててください。
0460デフォルトの名無しさん
2007/12/13(木) 00:30:20Excelをデータベースとして扱ってみたら?
0461デフォルトの名無しさん
2007/12/13(木) 00:43:20Excelの出力時、1セル毎に吐き出していて、更に、表示更新がON(プロパティ名は忘れた。。)
の場合、遅いよ
表示更新を出力時に止める(終わったら戻す)か、配列に格納して、セル範囲に代入で激速だ
やってみれ
0462457
2007/12/13(木) 01:11:31指摘通りDoEvents使ってます。
ありがとう。
>>460
500000件ほどデータがあるので、EXCELに入らないのです。
>>461
配列に格納→EXCEL代入は良さそうですね。明日調べてみます。
0463デフォルトの名無しさん
2007/12/13(木) 01:19:16ヒントはExcel側にある
0464デフォルトの名無しさん
2007/12/13(木) 01:59:00> 500000件ほどデータがあるので、EXCELに入らないのです。
遅いとかそんなんじゃなくて不可能じゃないのか?!
0465デフォルトの名無しさん
2007/12/13(木) 03:19:39適当な変数でも持ってループ10回に一回と加の割合でつかうとか対策取るのがお勧め
0466デフォルトの名無しさん
2007/12/13(木) 08:00:490467デフォルトの名無しさん
2007/12/13(木) 11:43:47市販コンポーネントのExcel Creator使うと高速。
0468デフォルトの名無しさん
2007/12/14(金) 17:42:31Split関数 なんてどう?
0469デフォルトの名無しさん
2007/12/16(日) 00:27:25Excelをどうやって使ってるのさ?
Set xlsApp = New Excel.Application
みたいな感じ?
debugで止めてみればわかるが、これだとExcelの起動もデータの書き出しもめちゃ遅です。
おいらは>457使った。
速かったよ。
0470デフォルトの名無しさん
2007/12/16(日) 06:00:510471デフォルトの名無しさん
2007/12/16(日) 07:36:29ある時間が来るごとにbeep音を鳴らすというプログラムを作りたくて
それも一定間隔の時間ではなく、最初は実行して10分後、次はそ5分後に
beep音を鳴らすの繰り返し、要するに、実行してから
10分→5分→10分→5分→10分→5分→10分→5分・・・・・・
という時間間隔でbeep音を鳴らすようなことは可能ですか?
もしやり方分かる方が頂けると助かります
よろしくお願いします
0472デフォルトの名無しさん
2007/12/16(日) 07:43:48timer
0473デフォルトの名無しさん
2007/12/16(日) 08:45:16Option Explicit
Private WithEvents Timer As VB.Timer
Private timerEventAtTime As Date
Private Sub Form_Load()
Set Timer = Me.Controls.Add("VB.Timer", "Timer")
With Timer
.Interval = 500 '.5[s](詳しくはサンプリング周波数とかみて)
.Enabled = True
End With
Call onEventAtTime
End Sub
Private Sub Timer_Timer()
If DateDiff("s", Now, timerEventAtTime) = 0 Then Call onEventAtTime
End Sub
Private Sub onEventAtTime()
Static flag As Boolean
flag = Not flag
Call Beep
If flag Then
timerEventAtTime = DateAdd("s", 10, Now) '逢えて秒.
Else
timerEventAtTime = DateAdd("s", 5, Now)
End If
End Sub
0474デフォルトの名無しさん
2007/12/16(日) 11:18:590475デフォルトの名無しさん
2007/12/16(日) 12:53:06簡単な答えと単純な答えも違う
0476デフォルトの名無しさん
2007/12/16(日) 13:49:280477デフォルトの名無しさん
2007/12/16(日) 17:50:36VBのプログラム内であるexe(Aとします)をshellで起動した後、
Aに対してkeycodeを送りたいのですが、どうしたらいいのでしょうか?
普段はAをキーボード操作にて使用しているのですが、ある計測器からの、
COMポートからの信号によって特定のキー操作と同じ動作をAにさせたいのです。
shellでAを呼び出したときプログラムのIDを取得して、そのIDに対して何とか
すればいいのではという想像はつくのですが、実際のやり方がわかりません。
どうぞよろしくお願いします。
0478デフォルトの名無しさん
2007/12/16(日) 17:57:35sendkeys
0479デフォルトの名無しさん
2007/12/16(日) 18:32:180480デフォルトの名無しさん
2007/12/16(日) 20:04:160481デフォルトの名無しさん
2007/12/17(月) 02:22:410482 ◆MWwfaua4zc
2007/12/17(月) 04:19:030483 ◆J7zvtF5pA2
2007/12/17(月) 04:20:150484デフォルトの名無しさん
2007/12/17(月) 04:21:190486デフォルトの名無しさん
2007/12/19(水) 20:37:25OraTimestampとか使わずにダイナセットから取りだす方法ってある?
0487デフォルトの名無しさん
2007/12/20(木) 17:10:21今現在、instr関数を使って「""」の含まれている文章を検索するにはどうすればいいんすか?
具体的には、検索文字列で「<p class="TXT12"><a class="video" href="watch/sm」というのを使いたいんですけど
"<p class="TXT12"><a class="video" href="watch/sm"
とすると、"<p class="の部分で閉じてしまって「コンパイルエラー:修正候補:ステートメントの最後」というのが出てしまう。
なんか良い方法あったら教えて欲しいっす。
0488デフォルトの名無しさん
2007/12/20(木) 17:40:400489デフォルトの名無しさん
2007/12/20(木) 17:41:040491デフォルトの名無しさん
2007/12/20(木) 21:19:51構文に出会いますが・・・
Public Property Get〜()AS〜
文
End Property
や、
Public Property Let〜()AS〜
文
End Property
で使用されている、「Get」や「Let」キーワードの意味が理解できません。
「どのような意味」で
「どのような場合」に
「どのように使用する」のかが、???です。
ご親切な方、教えて下さい。
0492デフォルトの名無しさん
2007/12/21(金) 00:47:27一回ググレ
0493デフォルトの名無しさん
2007/12/21(金) 10:24:290494デフォルトの名無しさん
2007/12/22(土) 11:26:33VB6なんですが
DIM ST as String
ST = StrConv("ル",vbUnicode)
ST = StrConv(ST,vbFormUnicode)
でSTが"ル"に戻らないの?
"ア"でやると戻るのだか
0495デフォルトの名無しさん
2007/12/22(土) 12:10:08Dim ST As String
ST = "ル"
ST = StrConv(ST, vbFromUnicode)
ST = StrConv(ST, vbUnicode)
0496デフォルトの名無しさん
2007/12/22(土) 12:40:03レスありがとう
それもやってみたけどダメだったのよー
だいたいunicodeに変換した段階で0x8145になるのはなぜ?
"ル"をunicodeで表すと0xEB30でしょ
"メ"も"ロ"も0x8145になるけどなんで
0497デフォルトの名無しさん
2007/12/22(土) 13:27:47ひんと:VB6のString型の内部表現はそもそもUnicode
ちなみに >>495 は上手くいった
0498デフォルトの名無しさん
2007/12/22(土) 13:42:35それがこんな基本も知らないのかよ、という感が否定できん。
0499デフォルトの名無しさん
2007/12/22(土) 13:46:12EXCELのVBAから入って、最近VB6をやり始めた人もたくさんいる
0500デフォルトの名無しさん
2007/12/22(土) 13:50:47メジャーなケースとは「絶対に」想定できんけどな。
0501デフォルトの名無しさん
2007/12/22(土) 15:11:37まぁ、今「Microsoft Visual Basic 2008 Express Edition」の無償配布やってるから乗換えたけど。
2008はVB6より扱いやすいきがする
0502デフォルトの名無しさん
2007/12/22(土) 15:15:260503デフォルトの名無しさん
2007/12/22(土) 16:21:020504デフォルトの名無しさん
2007/12/22(土) 17:42:490505デフォルトの名無しさん
2007/12/22(土) 22:14:500506デフォルトの名無しさん
2007/12/23(日) 09:19:390507デフォルトの名無しさん
2007/12/23(日) 18:43:180508デフォルトの名無しさん
2007/12/23(日) 19:41:51アマゾンのマーケットプレイスでも安い良本はあるよ。
Visual Basic6に関する本では一番使いやすい
ピーターノートンの手解きVisual Basic6〈Vol.1〉
http://www.amazon.co.jp/exec/obidos/ASIN/4877830111
ピーターノートンの手解きVisual Basic6〈Vol.2〉
http://www.amazon.co.jp/exec/obidos/ASIN/487783012X
0509デフォルトの名無しさん
2007/12/23(日) 23:42:36図形をマウスでドラッグしてフォーム内を
自由に動かせれるようにしたいのですがどうしたらいいでしょうか?
リサイズは必要ありません
0510デフォルトの名無しさん
2007/12/24(月) 01:57:55詳しく
0511デフォルトの名無しさん
2007/12/24(月) 02:12:45ActiveXコントロールのボタンを押し
DLLのプロシージャを起動させたいのですがうまくいきません
同じプロジェクトグループ内にあります
コントロール click()
DLLプロシージャ名.呼び出し(引数無)
↑このDLLプロシージャ名がDLLのものと認識されていません
0512デフォルトの名無しさん
2007/12/24(月) 02:28:25端的に、コントロールボタンからDLLプロシージャを呼び出す表記を教えていただければ幸いです
0513デフォルトの名無しさん
2007/12/24(月) 03:35:25クラスか何かと根本的に勘違いしてない?
0514デフォルトの名無しさん
2007/12/24(月) 08:02:38> DLLプロシージャ
そもそもこんな言葉初耳なわけだが
0515509
2007/12/24(月) 12:36:33という動作をさせたいです。
ワードやエクセルのオートシェイプみたいな操作といえば分かりやすいかもしれません
ただ長方形は初めからサイズが決まっているので図形のはしっこを掴んでサイズを変える機能は必要はありません
0516509
2007/12/24(月) 12:42:180517デフォルトの名無しさん
2007/12/24(月) 13:11:50Form_MouseDownでクリックされた箇所が長方形の内側ならフラグON、
長方形の左上からカーソル位置までの距離を取っておき、
Form_MouseMoveでフラグがONならShape1.Move
Form_MouseUpでフラグOFF
でいいんでない?
0518デフォルトの名無しさん
2007/12/24(月) 14:38:510519デフォルトの名無しさん
2007/12/24(月) 15:19:35もっと噛み砕くとコントロールにはボタンだけが配置されていて
それが押されるとDLL内で処理を行って結果を保持。
その結果をテキストボックスに返すといった具合です。
現在ボタンから呼び出し方法で詰まっているところ。
なにぶん素人なのでご容赦ください
0520デフォルトの名無しさん
2007/12/24(月) 15:37:320521デフォルトの名無しさん
2007/12/24(月) 15:53:34本当に実に貴重なスレだ。
0522デフォルトの名無しさん
2007/12/24(月) 16:21:350523デフォルトの名無しさん
2007/12/24(月) 16:23:040524デフォルトの名無しさん
2007/12/24(月) 16:34:390525デフォルトの名無しさん
2007/12/24(月) 17:32:03コントロールもDLLもVB6のものです。
そのコントロールを標準exeに貼り付けています。
コントロールのボタンクリック() ←コントロール内に記述
DLL内プロシージャ名 ←○○.プロシージャ名
えんど
クラスメソッドのような使い方になるのですかね。
とにかくここの連結が謎です
0526デフォルトの名無しさん
2007/12/24(月) 17:36:23なあ、本気でその日本語他人に通じると思ってるの?
無茶苦茶変だぞ君の日本語。
例えば「そのコントロール」って何のことだよ
0527デフォルトの名無しさん
2007/12/24(月) 17:43:50dim hoge as new hoge.c_hoge
call hoge.methodhoge()
みたいな感じ
0529デフォルトの名無しさん
2007/12/24(月) 22:13:03この初心者以前に低脳だなおまい
0530デフォルトの名無しさん
2007/12/25(火) 09:59:33謎です、って、どんなDLLを作ったんだよw それが分からなきゃ、使いようがないだろ。
DLLのユーザーコントロールが自前の処理を持ってたら、何もしなくていいのかもしれんし。
取り込み方が分からないって意味なら、>>527。 参照設定すれば補助入力に反応するようになる。
0531デフォルトの名無しさん
2007/12/25(火) 20:43:39ぶいびーとな
0532デフォルトの名無しさん
2007/12/25(火) 20:57:35Const LINK_URL As String = "http://www.google.co.jp"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
WebBrowser1.Navigate(New Uri(LINK_URL))
Catch
MessageBox.Show("表示できません", "エラー")
End Try
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.Document.All.GetElementsByName("q")(0).InnerText = TextBox1.Text '例1
WebBrowser1.Document.Forms(0).InvokeMember("submit")
End Sub
End Class
これだとgoogleにアクセスしまくりなんですが、どうしたらよいでしょうか?
0533デフォルトの名無しさん
2007/12/25(火) 21:15:48先ずはスレタイ嫁
0534デフォルトの名無しさん
2007/12/25(火) 21:25:33すいません。スレ違いでした。
0535デフォルトの名無しさん
2007/12/25(火) 22:14:46実行中と表示させたフォームがあり、キャンセルボタンがついています。
裏で別フォームが実行しているプログラムをキャンセルしようと考えています。
しかし、裏の処理が重いせいなのか自分で調べて見つけたDoEventsという命令では思ったようにキャンセル処理が実行できません。
そこで、このDoEvents以外にこういったことを実行できる方法はあるのか教えていただきたいです。
環境はVB6.0 SP5.0
OSはXP SP2です。
よろしくお願いします。
0536デフォルトの名無しさん
2007/12/25(火) 23:28:160537デフォルトの名無しさん
2007/12/26(水) 00:15:17http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200712/07120056.txt
さすがに2chと両肩もちはだめよ
0538デフォルトの名無しさん
2007/12/27(木) 17:09:06暇人ktkr
0539もっと暇人
2007/12/27(木) 17:16:35(このスレがトップwww)
0540デフォルトの名無しさん
2007/12/27(木) 17:19:552chって集中的に走査されてるのかな
0541デフォルトの名無しさん
2007/12/27(木) 20:52:510542デフォルトの名無しさん
2007/12/29(土) 14:51:05あれを無効にするようなプロパティとかありましたっけ?
なんか見つかんない(´・ω・`)
0543デフォルトの名無しさん
2007/12/29(土) 16:32:33「ステータスバーコントロールで右下をつかんでウィンドウサイズを変える部分」
が見つかりません。
ステータスバー消して試してみたら?
0544デフォルトの名無しさん
2007/12/29(土) 18:20:012chレスは5分もたたない内にインデックス化されてたりしてビビる
0545デフォルトの名無しさん
2007/12/31(月) 16:13:28プロパティ名はド忘れしたが、
デザイン時のプロパティウインドウに「可変」とか表示されてるのを
「実線」だか「固定」だかにすりゃいいんじゃなかったか?
0546デフォルトの名無しさん
2008/01/01(火) 02:32:57テキストボックスに入力した数の次に大きい素数を探すプログラムを作成しているのですが、
よくわかりません。
Whlie・For文、if文程度であればわかります。
どなたか教えていただけませんか?
0547デフォルトの名無しさん
2008/01/01(火) 03:09:15スレタイ読めますか?
0549デフォルトの名無しさん
2008/01/02(水) 10:08:27日本語でプログラミング「なでしこ」
とても便利です。(日本語なので、プログラムを覚えるだけ)
みなさん、スレ違いですいませんでした。
0550デフォルトの名無しさん
2008/01/02(水) 10:15:440551デフォルトの名無しさん
2008/01/02(水) 11:41:38他力本願のやつには無理だあきらめろ
0552デフォルトの名無しさん
2008/01/02(水) 16:05:55設定はFormに依存みたいですね
ありがとうございました
0553デフォルトの名無しさん
2008/01/02(水) 21:06:16そのとおり
これだけ下がいれば、まだ俺も給料もらえるって安心できるよな。
おめーらわかんねーだろうけど、年とると物覚え悪くなるし、
何より新しいものに挑戦してやろうっていう気力がわかなくなる。
新しい言語やらなんやらの習得が苦痛以外の何者でもないんだよ。
VB6から動けない俺に絶望し、VB6すらわからんお前らを見て、まだ大丈夫だって希望を感じる。
0554デフォルトの名無しさん
2008/01/02(水) 21:09:55ありがとうございます!
0555デフォルトの名無しさん
2008/01/03(木) 01:36:01ウィンドウに付けたメニューをポップアップした際に、
特定のメニュー項目にカーソルを合わせた状態でイベントを起こしたいのですが。
具体的には、例えばメニューにウィンドウで開いたファイルの履歴を作り、
そのファイルについての何かしらの情報をカーソル合わせた時に、
エディットボックスか何かにテキスト入力してポップアップさせたい、、というようなことです。
デフォルトのMenuイベントではClickしか無いので、
どうにかメニューポップアップ時のカーソルイベント発生か何かで実現する方法ありませんでしょうか・・・?
出来れば、まだ実用段階ではない自作イベントやサブクラス化でない方法を探してるのですが。。(VC++で出来てVBではまだやってない)
ご教授よろしくお願いします。
0556デフォルトの名無しさん
2008/01/03(木) 12:47:460557デフォルトの名無しさん
2008/01/03(木) 13:02:51なにの?
0558デフォルトの名無しさん
2008/01/03(木) 13:13:55標準EXEで作るアプリケーション。
c言語だったらmainがエントリポイントだけどVB6ではどれかな
0559デフォルトの名無しさん
2008/01/03(木) 13:18:07フォームに設定したら、VBの内臓エントリポイント、
あるいは、そのフォームのForm_Loadといえなくもない
プロシージャで設定したら、そいつ。
0560デフォルトの名無しさん
2008/01/03(木) 13:22:15サンクス
0561556
2008/01/03(木) 13:46:59Sub Main()
Call MsgBox("main")
End Sub
って書いて実行したんだが
スタートアップフォームまたはSub Mainが必要です
って怒られるんだが何でだろ
0562デフォルトの名無しさん
2008/01/03(木) 13:49:09標準モジュールに書け
0563デフォルトの名無しさん
2008/01/03(木) 13:51:16Formファイルに書いたりすると怒られる。
0564556
2008/01/03(木) 13:52:57おお!できた!
ありがとう
0565デフォルトの名無しさん
2008/01/04(金) 14:56:41下記のページのサンプルでうまく設定できません
ttp://homepage1.nifty.com/MADIA/vb/API/RegSetValueEx.htm
なにがいけないんでしょうか。
OS:Windows XP HOME
0566デフォルトの名無しさん
2008/01/04(金) 15:19:160567デフォルトの名無しさん
2008/01/04(金) 18:09:590568デフォルトの名無しさん
2008/01/05(土) 04:19:150569デフォルトの名無しさん
2008/01/05(土) 10:35:050570デフォルトの名無しさん
2008/01/05(土) 11:02:210571デフォルトの名無しさん
2008/01/05(土) 12:29:570572デフォルトの名無しさん
2008/01/05(土) 15:14:170573デフォルトの名無しさん
2008/01/05(土) 15:32:330574デフォルトの名無しさん
2008/01/05(土) 15:42:080575デフォルトの名無しさん
2008/01/05(土) 16:05:42Private Sub Form_Load()
Set mDb = OpenDatabase("Rental.mdb")
End Sub
上記のようにフォームロードしたときにRental.mdbを開くようにしたいのですが
プロジェクトと同じ場所にファイルを置くのでは開けないのでしょうか?
0576デフォルトの名無しさん
2008/01/05(土) 16:19:24OpenDatabaseって何?
ファイル名だけでなんかデータベースを開こうとしているけど
相対パス指定になるよね?
内部でどういう処理を行って絶対パスに直しているかわかる?
0577572,574
2008/01/05(土) 16:24:36それか勝手にenvironとかみたいなかんじで何かのパスを取ってきてるかも?
っていうか、ググレカス
0578572,574
2008/01/05(土) 16:26:050579デフォルトの名無しさん
2008/01/05(土) 16:31:16返信ありがとうございます。
OpenDatabaseはこれです。
ttp://monjyu.biz/monjyu/bord/sen1/msg/221.html
情報を小出し・後出しにして申し訳ありませんが
これは大学の課題で、大学のパソコンでは上記の方法でRental.mdbを開けたのですが
このプロジェクトのフォルダごとコピーし家のパソコンでやったら実行できなくなってしまい
"実行時エラー '3024':
ファイル '<Rental.mdb>' が見つかりませんでした。"
となってしまいます。
Rental.mdbはプロジェクトと同じフォルダに置いておけば実行できると言われていたのですが…
>ファイル名だけでなんかデータベースを開こうとしてるけど〜
ファイル名だけでは通常開けないものなのでしょうか…?
プロジェクトと同じフォルダにおくことによって相対パス扱いになると思っていたのですが。
(htmlなんかだと同じフォルダのものなら xxx.htmlなどでリンクできますし…)
どうやって絶対パスに直してるか、などはまったく分かりません。
0580デフォルトの名無しさん
2008/01/05(土) 16:35:14んー,ちょっとイミディエイトウィンドウで
print curdir
ってやってカレントディレクトリ表示させてみ?
(面倒だったら絶対パス指定して実行させてもかまわないのでは?
0581デフォルトの名無しさん
2008/01/05(土) 16:41:50C:\Program Files\Microsoft Visual Studio\VB98
と出ました。
プロジェクトがおいてあるフォルダはマイドキュメント内のフォルダです。
カレントディレクトリが間違っていたと言うことでしょうか。
0582デフォルトの名無しさん
2008/01/05(土) 16:45:22まぁだいたいそんなかんじ
一旦IDEでプロジェクト保存して,エクスプローラから保存したプロジェクトを開けばカレントディレクトリはプロジェクトのあるディレクトリになるよ
面倒なら ChDir 関数でカレントディレクトリを移動するんだな
0583デフォルトの名無しさん
2008/01/05(土) 16:48:32ありがとうございます!できました!
カレントディレクトリが大学→自宅にしたのに変わってなかったのが原因だったんですかね?
ともかく、これで課題を続けることが出来ます。
本当にありがとうございました!
0584デフォルトの名無しさん
2008/01/06(日) 12:43:180585デフォルトの名無しさん
2008/01/06(日) 14:44:40日本語を覚えてから書き込んでくれ。
0586デフォルトの名無しさん
2008/01/06(日) 16:56:40日本語でおk
0587もっと暇人
2008/01/06(日) 18:12:32気にスンナ
0588デフォルトの名無しさん
2008/01/06(日) 20:34:38web上の画像を最終的にPictureBoxに表示させたいのですがやり方がわかりません。
WebBrowserを使ってweb画像を表示させBitBltでコピーさせようと思ったのですが、
WebBrowserのデバイスコンテキスト?がわからなくて上手くいきませんでした。
BitBltを使わない方法でも構いませんので、わかる方いらっしゃいましたらよろしくお願いします。
0589デフォルトの名無しさん
2008/01/06(日) 22:29:540590デフォルトの名無しさん
2008/01/07(月) 18:26:14保存せずに表示させる方法が知りたかったのですが、別に保存して最後に消すんでも構わない気がしてきました。
そちらの方法を探してみます。ありがとうございました。
0591デフォルトの名無しさん
2008/01/07(月) 18:45:040592デフォルトの名無しさん
2008/01/11(金) 20:03:21そのピクチャーボックスの中にある画像データやコントロールなどを一つの画像としてデータを取得するとか出来ないでしょうか。
0593デフォルトの名無しさん
2008/01/11(金) 20:31:50なんかできたはず
0594デフォルトの名無しさん
2008/01/11(金) 22:05:37出来ますよ
頑張ってください
0595592
2008/01/12(土) 00:48:430596デフォルトの名無しさん
2008/01/13(日) 01:31:58OSの再起動やログオフをせずに環境変数を反映させたいんです。
Microsoftのサイトには
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM) "Environment", SMTO_ABORTIFHUNG,
5000, &dwReturnValue);
て書いてあるんだけど、VBSでdwReturnValueの定義から書いた場合はどうなるんでしょうか?
0597デフォルトの名無しさん
2008/01/13(日) 03:36:17OleDraw
0598デフォルトの名無しさん
2008/01/15(火) 10:43:21#RRGGBB形式に変換するにはどうすればいいですか?
いくら調べてもよくわかんないんです。><
0599598
2008/01/15(火) 11:21:070600デフォルトの名無しさん
2008/01/15(火) 12:56:24HTMLってBGRじゃなかったっけ?
0601598
2008/01/15(火) 13:26:11RGB形式でした。
しかたないから、16進数に変換したあと、置換しました。^^;
0602デフォルトの名無しさん
2008/01/15(火) 16:08:28ttp://mixi.jp/view_bbs.pl?id=26964091
0603デフォルトの名無しさん
2008/01/15(火) 16:27:27あまりにも糞コードすぐるw
0604デフォルトの名無しさん
2008/01/15(火) 23:21:52コード丸ごとコピペかw
オープンして大丈夫なのかねこれ
0605デフォルトの名無しさん
2008/01/16(水) 04:59:18AccessデータベースのほうにIEのC:から始まるexeパスを入れていて
String型変数strのほうにデータベース接続してIEのexeパスをいれます。
やりたいことはデータベースからひっぱてきたブラウザのexeパスを格納した変数str
と事前にHPのアドレスが格納されたurlを使ってProcess()によるブラウザ、HP起動です。
Dim proc As New Process()
proc.StartInfo.FileName = str
'urlには事前にhttp:からはじまるYahooのアドレスの文字列が格納されているものとします。
proc.StartInfo.Arguments = url
proc.Start()
こうするとproc.Start()のところで指定されたファイルが見つかりませんというエラーが表示されてしまいます。
試しに
proc.StartInfo.FileName = "C:\Program Files\Internet Explorer\iexplore.exe"
proc.StartInfo.Arguments = "http://www.yahoo.co.jp/"
こう変更すると正常にIEでヤフーのHPが表示されます。
データベースからひっぱてくるブラウザのexeパスではエラーになる。。
どう修正すれば
目的通りにブラウザ起動ができるようになるんでしょうか。。
長々しくなってすいません。
0606デフォルトの名無しさん
2008/01/16(水) 09:50:50そこまで試したなら、proc.Start() でブレイクして変数の値を確認すれば、
原因が掴めそうなもんだが・・・。
おそらく、UNICODE辺りが原因なんじゃないかなと推測。
0607デフォルトの名無しさん
2008/01/16(水) 11:55:28ファイル名を「"」で囲まないとダメなんじゃなかろーか。
proc.StartInfo.FileName = """" & "c:\program files..." & """"
0608デフォルトの名無しさん
2008/01/16(水) 12:08:17試してないけど次のどっちかでいけると思う。
proc.StartInfo.FileName = "iexplore"
proc.StartInfo.FileName = "http://www.yahoo.co.jp/"
0609デフォルトの名無しさん
2008/01/17(木) 09:11:500610デフォルトの名無しさん
2008/01/17(木) 09:29:020611デフォルトの名無しさん
2008/01/17(木) 16:22:28columncountで列が変わるたびに線を引くことは可能でしょうか?
___ ___
| | | |
| | | |
| | | |
 ̄ ̄ ̄  ̄ ̄ ̄
このような形にしたいのですが。現在は、
___
| | | |
| | | |
| | | |
 ̄ ̄ ̄
このような形にしかなりません。
わかる方がおられましら、ご回答の程お願いします。
0612611
2008/01/17(木) 16:30:16実際は最大で長方形の線が4つになる予定です。
その後、改ページという感じ
0613デフォルトの名無しさん
2008/01/17(木) 16:38:34つか、外部OCXは回答が得られにくいと思うので念のため。
0614611
2008/01/17(木) 16:56:19回答ありがとうございます。
>改ページイベントで纏めて処理すりゃいいんじゃないの?
そういう手もあったか
ちょっと実践してみます。
>つか、外部OCXは回答が得られにくいと思うので念のため。
やっぱりそうなんですね。
google(日本)でもMSNでも「ActiveReport columnCount」の検索結果が50件程度でしたから。。。
他にも方法あるよーって方がいましたらお教え願います。
0615デフォルトの名無しさん
2008/01/17(木) 17:01:28西欧の帳票だとヘッダーや合計の下付罫線くらいしか使わない。
特に縦方向の罫線はほとんど使われないので、
ActiveReportのような洋モノのソフトはそういう罫線が引けないことが多い。
ActiveReportで何が出来るかを把握する前にデザイン決めたらダメダメだよ。
0616デフォルトの名無しさん
2008/01/17(木) 17:03:42例えば、「ActiveReport 罫線」 とかをメインキーにした方が情報は絶対増えるよ。
0617611
2008/01/17(木) 17:30:23>ActiveReportで何が出来るかを把握する前にデザイン決めたらダメダメだよ。
間違いないと思う。
>>616
そっちをメインキーにすれば良かった。。。
「ActiveReport 罫線」で検索してみます。
さっきのキーは、事例があればと思いメインキーにしてました。
意外とないものですね。
このスレでもPart29あたりにチラッとあった程度でしたから。
0618609
2008/01/17(木) 20:39:21VB6でCheckListBoxを使うには
どうすればよいでしょうか?
0619デフォルトの名無しさん
2008/01/17(木) 20:48:05ググれ
0620デフォルトの名無しさん
2008/01/17(木) 22:03:55エンドユーザに言ってくれ
0621デフォルトの名無しさん
2008/01/17(木) 22:10:31ActiveX.OCX版のCheckListBoxをインストールすれば良いんだよ
これはVB専用ではなく汎用コントロールなので、これ以上はここで聞かないでね
0622デフォルトの名無しさん
2008/01/17(木) 23:21:040623デフォルトの名無しさん
2008/01/18(金) 01:53:29カーネルレベルのことを言っているのなら
無理
0624609
2008/01/18(金) 07:58:44使えないという結論に達しました。
ありがとうございました。
0625デフォルトの名無しさん
2008/01/18(金) 17:20:110626デフォルトの名無しさん
2008/01/18(金) 17:27:010627625
2008/01/18(金) 17:36:500628デフォルトの名無しさん
2008/01/18(金) 22:24:070629デフォルトの名無しさん
2008/01/19(土) 00:05:13ReadDirectoryChangesW
0630625
2008/01/19(土) 10:16:35随時更新されるテキストファイルを随時一行ずつ変数の中に入れたいのですが、
今の方法だと、非効率的な気がします。FileSystemWatcherはVB.NETの関数だそうですね。
使い方勉強してきます
0631デフォルトの名無しさん
2008/01/19(土) 11:04:290632デフォルトの名無しさん
2008/01/19(土) 11:41:220633デフォルトの名無しさん
2008/01/19(土) 17:40:480634デフォルトの名無しさん
2008/01/19(土) 17:53:08出たとしても、普通は板ごとに変わるよ。
0635デフォルトの名無しさん
2008/01/19(土) 18:23:520636デフォルトの名無しさん
2008/01/19(土) 18:26:140637デフォルトの名無しさん
2008/01/19(土) 18:28:320638デフォルトの名無しさん
2008/01/19(土) 18:37:14ピクチャーボックス複数宣言してないと無理?
0639デフォルトの名無しさん
2008/01/19(土) 18:48:39普通に透明のラベルコントロール貼り付けてVisible切り替えとか。
0640デフォルトの名無しさん
2008/01/19(土) 18:56:480641デフォルトの名無しさん
2008/01/19(土) 20:03:38実行時にコントロールを動的作成すれば不確定でも対応できるけど、
コントロールを複数使うのが嫌なら、
API使うなりして、DCに直接描画していくしかないんじゃないかな。
0642デフォルトの名無しさん
2008/01/19(土) 20:57:49帰って来た
でも俺VB2008ですね orz
0643デフォルトの名無しさん
2008/01/20(日) 22:07:30ブラウザに表示させるような物を作りたいのですが、
どのようにすれば実現可能でしょうか?
よろしくお願いします
0644デフォルトの名無しさん
2008/01/20(日) 22:56:55ブラウザは自作?
0645デフォルトの名無しさん
2008/01/20(日) 23:50:24delphiなら、コード3行追加するだけでできるよ。
0647デフォルトの名無しさん
2008/01/21(月) 11:52:13Button1をクリックしたときに一時ファイルとしてTextBox1の内容を拡張子.htmlで保存
その保存したファイルのパスをWebブラウザにナビゲートでおk
0649デフォルトの名無しさん
2008/01/21(月) 13:37:02webbrowser.docunment.write "<html>hello<html>"
見たいな感じでできない?
0650デフォルトの名無しさん
2008/01/21(月) 18:45:58素直に.net移行が無難でしょうか。
0651デフォルトの名無しさん
2008/01/21(月) 19:08:20但し無難というなら.NETの方が無難なのは間違いない
0652デフォルトの名無しさん
2008/01/21(月) 19:09:480653デフォルトの名無しさん
2008/01/21(月) 21:43:40ごめんなさい
とりあえずふいんきだけでも知りたくて・・・
検索してきます
0654デフォルトの名無しさん
2008/01/21(月) 21:49:050655デフォルトの名無しさん
2008/01/22(火) 04:28:550656デフォルトの名無しさん
2008/01/22(火) 15:35:29これは、セーブしてないソースがまるごと無くなる瞬間では?とドキドキして実行ファイルを強制終了したら
VBごと落ちやがりました。 今日やったソースがパーです。。実行前にセーブしない私が悪いんでしょうか?
0657デフォルトの名無しさん
2008/01/22(火) 15:37:11誰しも一回は経験することだ
過ちから学べばいいジャマイカ
0658デフォルトの名無しさん
2008/01/22(火) 15:44:08困った事に、7〜8年位前VB3.0で同じようなことやらかしたの
いま、またVB使っているのですがまた同じ過ちを繰り返してます。、、、何かVB使うとストレスが溜まります。
0659デフォルトの名無しさん
2008/01/22(火) 15:44:34ctrl + breakも効かなかったのか。
ご愁傷様。
0660デフォルトの名無しさん
2008/01/22(火) 15:45:47じゃあ,自分はどMなんだ,と割り切るしかないのジャマイカ?
0661デフォルトの名無しさん
2008/01/22(火) 16:55:3210年強使ってる(らしい)業務アプリなんだが
いきなりフォントサイズが変わる現象が頻発しています。
コマンドボタンだったり、MsFlexGrid内の値だったり。
変わるキッカケが全く分からず、一定でもない。
おそらくデフォルトのフォントに変わってるみたいなのですが、
調べてもそれらしい事が分かりません。
どなたか、似た現象に会ったことありませんか?
0662デフォルトの名無しさん
2008/01/22(火) 17:30:22フォントが壊れた事はあるけど、OSが2000以降の端末で起きたことはないなー。
端末によっては再現しなかったりはしない?
0663デフォルトの名無しさん
2008/01/22(火) 17:45:10端末依存はおそらくないと思います。
どの端末でも不定期ですが発生します。
ただ、今感じている範囲だと、
印刷物を出力すると・・・な印象があります。
(完全に個人的な感想ですが)
0664デフォルトの名無しさん
2008/01/22(火) 19:05:250665デフォルトの名無しさん
2008/01/22(火) 20:17:43やっぱりバグなんだろーなー
わからん。
なにせ、全く同じ結果になる処理を続けて行っても
起こったり起こらなかったりなもので・・・。
もちょっと考えてみます。
0666デフォルトの名無しさん
2008/01/23(水) 05:23:49フォントがデフォルトフォント(やや大きく細く見えるフォント)になる現象があったよ。
フォントってでかいからね。
ループ内でフォントやフォントサイズを切り替えまくると
メチャクチャ処理が遅くなるとかあるし。
まぁWIN98の頃の話だけどさ。
0667デフォルトの名無しさん
2008/01/24(木) 12:28:00どのようなすればいいでしょうか?例のソースを書いて戴けたら幸いです。
0668デフォルトの名無しさん
2008/01/24(木) 12:36:42Private Sub Command1_Click()
Me.Text1.Text = "人数の平均"
End Sub
0669デフォルトの名無しさん
2008/01/24(木) 12:58:21人数の平均結果を数字で出力したいのですが…参考書にも載っていなく困ってます
0670デフォルトの名無しさん
2008/01/24(木) 13:19:55なんの平均だよ?w
誰にも答えようがないだろ、それじゃあ。
0671デフォルトの名無しさん
2008/01/24(木) 13:20:15まずは仕様書を提出しなさい
0672デフォルトの名無しさん
2008/01/24(木) 13:21:310673デフォルトの名無しさん
2008/01/24(木) 13:23:42平均値を計算するには
元となる何らかのデータの集合が必要な訳だが、
それは君の脳から直接吸い上げればいいのかね?
0675デフォルトの名無しさん
2008/01/24(木) 14:36:02そのものズバリが載っている参考書が無くて困ってるんだよ。
とりあえず、ここで何て訊いたら良いかが分かる参考書を紹介してあげてはどうだろう?
0676デフォルトの名無しさん
2008/01/24(木) 15:15:01「ボタンを押すと人数の平均が表示されるプログラム」
↓
【厳密に言うと】
「コマンドを押して人数の平均結果を数字で出力したい」
【質問の答え】
宿 題 は 自 分 で や れ
0677デフォルトの名無しさん
2008/01/24(木) 15:44:290678デフォルトの名無しさん
2008/01/24(木) 15:47:40同意www
>>667
平均の計算方法なら、
数値全部足してから、
数値の個数で割り算するんだお。
ま、電卓かEXCELでやれYo www
0679デフォルトの名無しさん
2008/01/24(木) 15:55:43ヒント1:.NET教えられる教師や講師は希少
ヒント2:.NETを生徒が使う端末分購入できる高校・大学は希少
Win2000もチラホラ出始めた、まだまだ98SE隆盛の時代に
コンピュータ基礎と銘打って
・MS-DOSの一太郎や花子
・FMTOWNSやPC9821
・BASIC言語
なんて授業してた大学もあるんだ
0680デフォルトの名無しさん
2008/01/24(木) 15:59:01いや、JavaかC++だろ。
0681デフォルトの名無しさん
2008/01/24(木) 16:10:10それこそヒント1に引っかかるんじゃね?
0682デフォルトの名無しさん
2008/01/24(木) 16:11:170683669
2008/01/24(木) 19:07:15学校の宿題です、なので仕様書とかもありません
0684デフォルトの名無しさん
2008/01/24(木) 19:09:49宿題は自分でやれwww
仕様書は自分で書け。
0685デフォルトの名無しさん
2008/01/24(木) 19:09:49正直でよろしい。 何を作るか決めて、調べても方法が分からなかったらまたおいで。
0686デフォルトの名無しさん
2008/01/24(木) 19:11:520688デフォルトの名無しさん
2008/01/24(木) 20:08:46入門に最適ではない
そんな馬鹿な事を言う奴な殴ってやれ
0689デフォルトの名無しさん
2008/01/24(木) 20:25:030690デフォルトの名無しさん
2008/01/24(木) 20:35:340691デフォルトの名無しさん
2008/01/24(木) 20:42:380692デフォルトの名無しさん
2008/01/24(木) 20:44:22MSDNってVLでも一人頭結構高額だと思うけどw
0693デフォルトの名無しさん
2008/01/24(木) 21:16:29んなこたーない。 初心者にとって使い易いのは間違いない。
文字の"0"と、数字の 0 が全くベツモノだと説明したトコで、コンピュータ初心者にはハァ?だろ。
VBを使えるようになったヤツが、プログラミング全般に自信を持つのは確かに間違いだが。
0694デフォルトの名無しさん
2008/01/24(木) 21:32:47文字列の扱いに関して、VBって非常に便利なんだと痛感した。
0695デフォルトの名無しさん
2008/01/24(木) 21:50:32が抜けてるな
0696デフォルトの名無しさん
2008/01/24(木) 21:56:010697デフォルトの名無しさん
2008/01/24(木) 22:33:55VBなんて古典は時間の無駄
古典の学者にでもなるつもりかね
0698デフォルトの名無しさん
2008/01/24(木) 22:36:440700デフォルトの名無しさん
2008/01/24(木) 23:21:42データ処理については、Cで書き直すだけで10倍早くなることもザラだけど。
もちろん、VBしか知らないと、API一つ使いこなせないだろうけど、
VBを活用できない、ってのもプログラマとしてどうかという気はする。
0701デフォルトの名無しさん
2008/01/25(金) 09:39:130702デフォルトの名無しさん
2008/01/25(金) 09:43:46やっぱりCが使えないと、社会に出て行けない?
0703デフォルトの名無しさん
2008/01/25(金) 09:51:540704デフォルトの名無しさん
2008/01/25(金) 10:53:42VBでは出来ないことがCではたくさんできるとか?
0705デフォルトの名無しさん
2008/01/25(金) 11:20:38もらうソースが大抵VC++とかCだ
手の込んだことをしようとするとVBではつらい
つらいだけで出来なくはないが、DLLを別途用意とか…
と。
通りすがりの制御系方面プログラマですた
0706デフォルトの名無しさん
2008/01/25(金) 11:50:27今度はVC++かC#を触ってみようと思う、
でもやっぱりVB.netの方が楽しい
0707デフォルトの名無しさん
2008/01/25(金) 15:52:50そうじゃなくて、言語で作るものの方向性が違う。
C系は、データ制御や、高速処理系。
VBは、モジュールの呼び出しやデータの表示、高速開発(すぐ作れる)系。
で、VBは使えるようになるまでが早いので、多くの企業で使われてるが、
制御系や組み込み系の処理はできないので、その方面の業種が選択肢から消える。
VBだけやってた人がCを使いこなすのは、その逆の場合より比較的(かなり?)難しい。
また、Cの方が、メモリの番地単位まで厳密に操作できるから、
コンピュータのデータの仕組みを理解しやすいってのはある。初めてだと取っ付き難いけどね。
0708デフォルトの名無しさん
2008/01/25(金) 16:54:05資格自体に意味は無いが、最低限の知識は得られる
0709デフォルトの名無しさん
2008/01/25(金) 17:22:05Mac版Office 2008では非搭載なんだが、
その理由の1つにWindows版でもそのうちなくなるということが挙げられているようだ。
http://piyo.piyocast.com/piyocolumn/msoffice_mac_2008vba.html
0710デフォルトの名無しさん
2008/01/25(金) 19:55:590711デフォルトの名無しさん
2008/01/25(金) 20:48:38いつの時代の話だよそれw
15年ズレてるよ
0712デフォルトの名無しさん
2008/01/25(金) 21:06:55↓
0713デフォルトの名無しさん
2008/01/25(金) 21:21:200714デフォルトの名無しさん
2008/01/25(金) 21:27:21↓↓↓
0715デフォルトの名無しさん
2008/01/25(金) 21:58:050716デフォルトの名無しさん
2008/01/27(日) 00:47:460717デフォルトの名無しさん
2008/01/27(日) 01:39:43ハァ?論点ズラすなよ
0718デフォルトの名無しさん
2008/01/27(日) 10:09:490719デフォルトの名無しさん
2008/01/27(日) 10:21:50人数って何の人数なのかとか。
ユーザに入力させんのか、ランダムなのか、固定値なのか。
ボタンを押したらどこに平均値が表示されるのか。
TextBoxかLabelか。
はたまたForm上にPenで描画(笑)するのか。
>>669氏は宿題できたのだろうかw
0720デフォルトの名無しさん
2008/01/27(日) 11:34:18諦めて遊んでるか、出来る奴のファイルコピーさせてもらってんじゃね?
0721デフォルトの名無しさん
2008/01/27(日) 15:36:52もしそうだったら氏ねばいいと思う
0722デフォルトの名無しさん
2008/01/28(月) 01:56:58最大値と最小値をボタンを押した時に表示させたいのですが、どうしたらいいですか?
友達に教えてもらって、平均値はでるようになりました。
0723デフォルトの名無しさん
2008/01/28(月) 02:11:39一度、5個くらいの数字を紙に書いて、どうやったら最小と最大が出せるか、考えてみなよ
0724デフォルトの名無しさん
2008/01/28(月) 10:46:380725デフォルトの名無しさん
2008/01/28(月) 10:51:04EXCELでやれwww
0726デフォルトの名無しさん
2008/01/28(月) 13:00:42MsgBox("目視で最大値を確認してください")
0727デフォルトの名無しさん
2008/01/28(月) 14:49:14深読みしすぎじゃね?
つMsgBox("最大値")
0728デフォルトの名無しさん
2008/01/28(月) 14:52:07別にダイアログに出す必要ないだろ。
Debug.Print "最大値" & "最小値"
でいいんジャマイカ。
0729デフォルトの名無しさん
2008/01/28(月) 14:52:42ワロタwww
まぁ単純な比較演算もできないならそれしかないかもなww
0730デフォルトの名無しさん
2008/01/28(月) 15:24:20>>722 VBAのコードが知りたいなら、こんな感じだ。 適当な場所に書いて使うといい。
MsgBox "最大値: " & WorksheetFunction.Max(Range("A1:IV65536"))
MsgBox "最小値: " & WorksheetFunction.Min(Range("A1:IV65536"))
0731デフォルトの名無しさん
2008/01/28(月) 21:33:56質問が高度すぎて答えられないからだよ。
0732デフォルトの名無しさん
2008/01/28(月) 21:51:010733デフォルトの名無しさん
2008/01/28(月) 22:08:25宿題なんだしVBAは無いだろ多分w
軽くエスパーすると最大値、最小値の"表示方法"が分からないんじゃなくて
最大値、最小値の"抽出方法"が分からないんじゃないかと。
平均値の"表示方法"が分かってんなら、
値を表示するまでに至れりゃできるんだろうし。
で、質問の中にある値の情報が"人数"とかいうどうでもいい単位情報しかない。
しかも仕事でもなく単なる宿題ときてる。
つまり確実に授業で教えてもらい済み。
やる気がないから覚えられないのか、
覚える気がはなっから無いのか分からんが、
人に教えてもらおうとするならもうちょいわかりやすい文章書くだろ。
つまりこいつは教えてもらいたいんじゃなく、
代わりに宿題やって欲しいだけなんだ。
これじゃこっちとしても教える気失せるっての。
0734722
2008/01/29(火) 02:01:06出来れば自分でやりたいのですが、授業のペースが早くてついていけていません
VBは6です、VBAかどうかはわかりません
>>730
ありがとうございます
貼り付けてみたんですが、エラーになってしまいました。。。
if分でどう書くかわかりますか?
>>733
すいません、もっとわかりやすい文章がかけるようになります
人数とは店舗Aに来るひと月の人数ということです
入力された値から、最大値と最小値を出します
0735デフォルトの名無しさん
2008/01/29(火) 02:24:27730はネタだったんだろうけど、それすら全く通じないレベルみたいだな・・・
正直、オマイは他人に質問して回答が得られるレベルにはないと思う。
それこそ、ヒマなヤツにコードをまるごと書いて貰わないとムリ。
その教えてもらった友達とやらに頼れ。
どうしてもココでってんなら、その平均値の出し方を書いてみろよ。説明聞くより早い。
0736722
2008/01/29(火) 02:39:59Dim dblAvr As Double
dblAvr = (txtM1.Text + txtM2.Text + txtM3.Text + txtM4.Text + txtM5.Text + txtM6.Text + txtM7.Text + txtM8.Text + txtM9.Text + txtM10.Text + txtM11.Text + txtM12.Text) / 12
MsgBox ("平均は" & dblAvr & "人です。")
End Sub
平均はこれで出るようになりました
最大値はif分を使うようにらしいですが、107人より28人のほうが大きくなったりします
助けてください
0737デフォルトの名無しさん
2008/01/29(火) 02:53:08とりあえず,悪いけど日本語勉強してね.(はぁと
あと,どう見ても文法が怪しいんだけど,VB6でいいのな?
確認だけど,
「txtM1〜txtM12までのテキストボックスに書かれた数値(意味としては人数)の最大値と最小値を得たい」
でいいの?
それならこんな感じ
private sub cmdMinMac_Click() '←最大と最小を表示するボタンをクリックしたときに実行されるメソッド
dim i as long, min as long, max as long
dim ary(1 to 12) as long
for i=1 to 12: ary(i)=clng(me.controls("txtM" & i)): next
min=ary(1): max=ary(1)
for i=2 to 12
if min>ary(i) then min=ary(i)
if max<ary(i) then max=ary(i)
next
msgbox "最小は" & min & " 最大は" & max & "人です"
end sub
0738デフォルトの名無しさん
2008/01/29(火) 02:55:17If CDbl(txtM2.Text) > dblAvr Then
dblMax = CDbl(txtM2.Text)
End If
If CDbl(txtM3.Text) > dblAvr Then
dblMax = CDbl(txtM3.Text)
End If
:
って感じで、テキストボックスの数だけ並べれば、考え方通りのロジックは完成する。
最後に残るのが最大値。 最小値は、IF文の条件の不等号を逆にするだけ。
このコードと睨めっこしてれば、
頭の中の論理を、プログラム文法に直すだけだと分かると思うんだけど。簡単でしょ?
0739デフォルトの名無しさん
2008/01/29(火) 04:01:280740デフォルトの名無しさん
2008/01/29(火) 08:39:12SQLでAvg関数、Min関数、Max関数で抽出するのが楽だなwww
0741デフォルトの名無しさん
2008/01/29(火) 10:55:050742デフォルトの名無しさん
2008/01/29(火) 17:19:03やめろよそんな事言ったらSQLスレとかまで出張しそうだぞw
0743デフォルトの名無しさん
2008/01/30(水) 00:28:560744デフォルトの名無しさん
2008/01/30(水) 00:59:44テキストボックスをコントロール配列で書くのが正しかったようです
ここで質問していたことがバレてしまったので、もうここでは質問できません。。。
ひとに聞くのもスキルのうち、といわれお咎めはありませんでしたが。。。
毎日ありがとうございました
0745デフォルトの名無しさん
2008/01/30(水) 01:44:01あと、先生、ここ見てるってことかな?
先生よ、古い言語なんていまごろ教えるな!変なクセがついた奴が会社に入ってきたって迷惑なんだよ!
教える頭がなければ辞めてしまえ!
0746デフォルトの名無しさん
2008/01/30(水) 02:49:590747デフォルトの名無しさん
2008/01/30(水) 02:54:270748デフォルトの名無しさん
2008/01/30(水) 03:15:130749デフォルトの名無しさん
2008/01/30(水) 08:28:15VB6でOLEオブジェクトとしてMSGraph2000をフォームに作成しています。
データの読み込みは下記コードできたのですが、読み込むまで20秒以上かかってしまします。
Open "C:\Book1.csv" For Input As #1
For lRowCnt = 2 To 100
For lColCnt = 1 To 15
Input #1, lValue
oDataSheet.Cells(lRowCnt, lColCnt).Value = lValue
Next lColCnt
Next lRowCnt
Close #1
これでは遅すぎるので、
データシートにインポートか貼り付け、あるいは読み込んだ状態を保存して
終了する方法はないでしょうか?
0750デフォルトの名無しさん
2008/01/30(水) 09:32:15具体的にどの処理が遅いのかをチェック汁。
何となく、CELL一つ一つに値をセットしながら
ループ回してるのが問題のように思われ。
oDataSheetに配列でデータ渡しする方法無いのか?
0751デフォルトの名無しさん
2008/01/30(水) 16:20:070752デフォルトの名無しさん
2008/01/31(木) 10:31:33無効にしてから有効とは??
いったいどんなプロパティーを書くんでしょうか?
0753デフォルトの名無しさん
2008/02/01(金) 10:58:14画像を取り込みjpgファイルとして保存するプログラムを作りたいのですが
TWAINのAPIについて色々調べるのですが
今いちワカリマセン。
どなたかご教授ください。
0754デフォルトの名無しさん
2008/02/01(金) 10:58:50画像を取り込みjpgファイルとして保存するプログラムを作りたいのですが
TWAINのAPIについて色々調べるのですが
今いちワカリマセン。
どなたかご教授ください。
0755デフォルトの名無しさん
2008/02/01(金) 11:36:110756デフォルトの名無しさん
2008/02/01(金) 11:39:11【画面仕様】
FormにPictureBoxを配置
それをコンテナにしてTextBox1とTextBox2を配置
CausesValidationは全てTrue
TextBox1のValidateイベントで入力チェックが必要
【問題点】
TextBox1からTextBox2へフォーカスが移動する際には、Validateイベントが発生します
しかし、親コンテナのPictureBoxをクリックすると、Validateイベントが発生せずに、
TextBox1からフォーカスが外れ(LostFocus→PictrueBoxのGotFocus発生)、
その後TextBox2をクリックすると、フォーカスが移動できてしまいます
Microsoftのサポート情報でVB6のValidateャCベントは、
「ユーザーが入力できるコントロール」の間でしか働かない・・・
という仕様なのは確認できましたが、上記【画面仕様】のままで
フラグやLostFocusイベントは使わない方向で、
これを回避することはできないのでしょうか
0757デフォルトの名無しさん
2008/02/01(金) 12:21:06Okwave池。
ポイント稼ぎたいバカがソースまで出してくれる。
0758デフォルトの名無しさん
2008/02/01(金) 14:55:21http://support.microsoft.com/kb/197128/en-us
CausesValidationは"バグ"を含んでいます。
これを回避するにはLostFocusイベントを使えと書いてあります。
0759756
2008/02/01(金) 17:13:35それはCausesValidationをFalseに設定したコントロールを含む場合なので、
全てのコントロールでTrueである場合は当てはまらないと思ったのですが、
根は同じということでしょうか・・・
0760758
2008/02/01(金) 18:29:17いや、関連がありそうなんで貼ってみただけ。
それはそうと、試しにやってたら、
TextBox→PictureBoxの場合もValidateイベント発生したよ。
0761デフォルトの名無しさん
2008/02/01(金) 21:38:49NewtonのImageKitでも使えば?
0762デフォルトの名無しさん
2008/02/01(金) 22:26:1810年くらいまえに、まさにそんなプログラムを作ったw
0763デフォルトの名無しさん
2008/02/02(土) 06:45:36OSはXP Pro,VB6.0、サービスパックはわかりません
質問はShell関数を使ってExeファイルを実行しておいて、その戻り値のタスクIDを取っておき
タイマーで1分後に取っておいたタスクIDを使用して実行したタスクをKillしたいのですが
なにか良い方法はありますでしょうか?宜しくお願いします
0764デフォルトの名無しさん
2008/02/02(土) 10:06:15それ以上何が聞きたいんだ?
0765デフォルトの名無しさん
2008/02/03(日) 06:47:17Shell関数を使ってExeファイルを実行しておいて、その戻り値のタスクIDを取っておき
タイマーで1分後に取っておいたタスクIDを使用して実行したタスクをKill
する良い方法を知りたいんだろ
Shell関数を使ってExeファイルを実行しておいて、その戻り値のタスクIDを取っておき
タイマーで1分後に取っておいたタスクIDを使用して実行したタスクをKill
すればいいと思う
0766デフォルトの名無しさん
2008/02/03(日) 09:22:310767デフォルトの名無しさん
2008/02/03(日) 11:16:230768609
2008/02/03(日) 11:38:43そのプログラムをWindows2000の環境で
実行したところなぜかテキスト、ボタン等に
表示する漢字部分が表示されなくなりました。
具体的にはボタンのCaptionに「実行(&S)」と設定したところ
開発環境のVistaでは「実行(S)」と表示され、
そのexeをWin2000にコピーし、実行したところ
「(S)」しか表示されません。
ボタンのフォントは既定値のMS Pゴシックです。
これはどうしてでしょうか?
0769デフォルトの名無しさん
2008/02/03(日) 14:27:330770デフォルトの名無しさん
2008/02/03(日) 16:15:42つ「英語に変更」
0771768
2008/02/03(日) 18:29:18そもそもWin2000で検証している目的は
特別な追加ランタイム「無し」で動くかどうかを
検証するために動作検証を行うのが目的です。
実行環境はWindows2000で、ランタイム等を
入れることができないためです。
SP+パッチは最新です。
VP6の動作に必要なランタイムを調べたのですが
明確なDLL等の資料が見つかりませんでしたので
実際Windows2000環境(ランタイムなし)でテストした結果、
漢字が表示されないという結果になりました。
今のところ漢字の表示以外に不具合等はありませんので
最悪>>770の通り漢字を表示しないことで回避したいと思います。
ですが、漢字が表示するに越したことはないので
質問するに至りました。
漢字を表示するためにランタイムが必須なのでしょうか?
なにか違和感があるのですが。。
VB6で作成したソフト=ランタイム必須でしょうか?
とりあえず漢字以外の動作に問題ないのですが。。
0772デフォルトの名無しさん
2008/02/03(日) 18:39:22見繕ってくれたはず。
日本語が表示されないのは、vb6jp.dllだったかな。。。
0773デフォルトの名無しさん
2008/02/03(日) 18:42:52>明確なDLL等の資料が見つかりませんでしたので
正直に「そんなこと面倒でやってられっか俺様の質問に黙って答えろや」と言えよ。
嘘ばっかりだな。
0774デフォルトの名無しさん
2008/02/03(日) 18:44:100775デフォルトの名無しさん
2008/02/03(日) 18:45:17無駄な時間を割くなボケ
0776768
2008/02/03(日) 19:42:39そうなんですか、
VisualStduioInstallerについては知識がないですので
今から調べてみます。
>>773
いや、調べて見つかればわざわざ2000環境用意する方が
めんどくさいですよ。
実際VB6の開発環境の必要環境の情報ばかりで
動作環境については調べにくかったです。
少なくとも私にはですが。
まぁ私の言い訳はおいておいて、
もし情報ありましたらその情報へナビゲートしてもらえると
今後の勉強になるのでありがたいです。
検索ワード等でも結構です。
>>774
ずばりの回答ありがとうございます。
今回は実行環境にDLLやランタイムを導入することが不可能のため、
日本語表示については諦めたいと思います。
>>775
基本的にランタイム必須という考えは
同意なんですが、
ランタイムに依存するコードを書かなければ
ランタイムすら必要なく、実行ファイルのみで
動作するというのは驚きでした。
0777デフォルトの名無しさん
2008/02/03(日) 19:43:470778デフォルトの名無しさん
2008/02/03(日) 19:49:43というか、vb6jp.dllをアプリケーションと同一フォルダに置けば解決したりして。
レジストリ登録が必要で、でもできないなら、W2Kはどうしようもないけど。
というか、「VB6 文字化け」でぐぐったら出てきたけど。
http://support.microsoft.com/kb/813131/ja
0779デフォルトの名無しさん
2008/02/03(日) 19:55:12>ランタイムに依存するコードを書かなければ
>ランタイムすら必要なく、実行ファイルのみで
>動作するというのは驚きでした。
どうしてそうなる
0780デフォルトの名無しさん
2008/02/03(日) 19:57:09嘘ついてんじゃねーよw
0781768
2008/02/03(日) 20:30:19すみません、どういう意味でしょうか?
ちなみに運用環境にランタイムの組み込みが難しい状況で
どの言語で開発すればよいか悩んだのですが、
とりあえずVB6で作ってみて動かなけりゃ
Cでやってみようか、くらいに軽く考えてみました。
今のところフォントがおかしいくらいで動作に問題なさそうなので
VB6で行きたいと思います。
今後のメンテナンスを考えると今更VB6感はありますが。
>>778
そうなんですか、
だから動くわけですね。
ランタイム無しで動く、という解釈は間違いで
英語版ランタイムが入ってるから動くんですね。
英語版なのでvb6jp.dllが入っていないのも納得できます。
漢字が消える、という解釈をしていまして
文字化けという発想はなかったです。
文字化けで検索すればよかったんですね。
ちなみに同じことを思いましてvb6jp.dllを同一フォルダにおいて実行しましたが
読み込んでもらえなかったらしく文字化けのままでした。
>>779
すみません、考えが甘かったですね。
まさか2000に初めから英語版とはいえ
VB6ランタイムが入っているとは思いもよりませんでしたので。。
0782デフォルトの名無しさん
2008/02/03(日) 20:44:00カレントに、MSVBVM60.dllとVB6JP.DLLがあれば日本語を表示するVB6アプリが
動いた。動作保証とかは知らない。これって一種のSxS?
0783768
2008/02/03(日) 21:27:44いけました!?
ということで再度Wndows2000にて動作検証しました。
結論
MSVBVM60.dllとVB6JP.DLLの2つを
実行ファイルと同じフォルダにおくことで
日本語表示ができました。
あと余談ですが
>>778のリンクで
「Visual Basic で作成した実行可能ファイル(以下 EXE ファイル)を起動すると、Visual Basic のデフォルトである MS Pゴシック サイズ 9pt に設定された TextBox などのコントロールに表示される2バイト文字が、文字化けすることがあります。」
とあったので単純にフォントを8や10に変更したところ
別途DLLを入れなくてもexeのみで日本語が表示できました。
今回は同じフォルダにおくことで
DLLが読み込まれると言うことがわかりましたので
運用環境でこのプログラムを使う時は
サーバー上にexeを配置する時に同じフォルダに
ごっそりランタイムもコピーしておこうと思います。
ありがとうございました。
0784デフォルトの名無しさん
2008/02/03(日) 23:47:09>DLLが読み込まれると言うことがわかりました
これは基本知識ではないのかw
まぁ解決してよかったよ
0785デフォルトの名無しさん
2008/02/05(火) 11:22:59SetLayeredWindowAttributesを使ってフォームを透明にしたのですが
透明にする前のフォームの描画域をクリックしても
フォームではなくその下にあるもの(ファイルなりフォルダなり)に触ってしまいます。
フォームを透明にしながらもそのフォームを触れるようにできる方法はあるでしょうか?
0786デフォルトの名無しさん
2008/02/05(火) 22:04:490787デフォルトの名無しさん
2008/02/05(火) 22:48:56Alphaを0ではなく1にする。
0788デフォルトの名無しさん
2008/02/06(水) 14:49:13N=INT(7*X)
N=INT(2*X)
N=IP(1.3*X)
のIPの意味がわからくて悩んでます。
IPて何でしょう。
0789デフォルトの名無しさん
2008/02/06(水) 14:51:50定義へ移動とかしてみた?
0790デフォルトの名無しさん
2008/02/06(水) 14:52:440791788
2008/02/06(水) 14:52:540792788
2008/02/06(水) 15:02:02>>789
回答ありがとうございます
やってみます
>>790
IPアドレスは思いつきませんでした
やってみます
0793デフォルトの名無しさん
2008/02/06(水) 15:04:31質問があったらあげた方が見てもらいやすいし、むしろ積極的にあげるべきではないのか。
0794790
2008/02/06(水) 15:12:04ちょww
0795デフォルトの名無しさん
2008/02/06(水) 15:16:26罪な奴だなw
0796デフォルトの名無しさん
2008/02/07(木) 13:39:200797デフォルトの名無しさん
2008/02/08(金) 00:42:32DLLを参照設定の件での質問です。
自作のDLLをc:\windows\system32に保存し、参照設定して使っています。
自分の環境で使っている分には問題ないのですが、
別のマシンのHドライブにexeをコピーし、DLLをc:\windows\system32に移すと
「H:\windows\system32\****.dllが見つからない」というエラーが出てしまいます。
環境を変えてもDLLを正しく使えるようにするには、どうしたら良いでしょうか。
補足:自作DLLとはマウスホイールのイベントを拾うためのもので、
http://support.microsoft.com/kb/308636/ja (アクセス97でマウスホイールを無効にする方法)
を少しいじったものです。
0798デフォルトの名無しさん
2008/02/08(金) 01:16:31regsvr32で再登録。
XP以降ならmanifestでサイドバイサイドという手もなくはない。
0799797
2008/02/08(金) 01:34:19回答ありがとうございます。
regsvr32で調べて見ました。
regsvr32 c:\windows\system32\****.dll
んな感じで試してみます。
0800デフォルトの名無しさん
2008/02/09(土) 14:21:31恐縮ながら、質問させていただきます。
今自分は、フォームのコマンドボタン1をクリックするとファイルを開くダイアログボックスが表示されて
開いたファイルの内容をフォーム上のテキストボックス1に表示されるというプログラムを
作成しています。
このとき開くファイルをShift-JIS形式のバイナリデータとして、テキストボックス1に全て表示させたいのですが
どのようにコードを記述すればよろしいのでしょうか?
超初心者的な質問で申し訳ありません。
0801デフォルトの名無しさん
2008/02/09(土) 14:26:02>Shift-JIS形式のバイナリデータ
ってなんだろ?そのまま、メモ帳で開いたように文字を表示したいのか?HEX表示したいのか?
0802800
2008/02/09(土) 14:43:58すいません、誤記してしまいましたorz...
HEX(16進数)表示です。
例えば、バイナリエディタでファイルを開くと
表示される『00 3C FE …』とかの16進数データです。
0803デフォルトの名無しさん
2008/02/09(土) 14:52:41> どのようにコードを記述すればよろしいのでしょうか?
IDE開いてフォームにボタン貼り付けて,ボタンをダブルクリックしてその中でコーディングすればいいんじゃね?
あとコモンダイアログは標準コントロールじゃないのでなんかしないといけなかった気がする
0804800
2008/02/09(土) 15:30:47コモンダイアログは
メニューのプロジェクト→コンポーネントから、コントロールタブ内の『Microsoft Common Dialog Control 6.0』にチェック入れて
フォーム内に配置すれば使用可能になりました。
あとどのようにコードを記述するのかじゃなく、『どのような内容のコードを記述するのか』と
質問すべきでした。すみません。
ちなみに自分は、
Private Sub Command1_Click()
Dim myData As Byte
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Binary As #1
Get #1, , myData
Close #1
Text1.Text = myData
End Sub
って記述して行き詰ってます。
0805デフォルトの名無しさん
2008/02/09(土) 16:16:17ウィザード使ってファイルの読み書き有りにすると
開くところまでのソースはできるので流用するとラクいよ。
コードみて思うことは、EOFまで読む、HEX関数、などなどいろいろ覚えたいところ。
Dim Dat As Integer
Dim DatStr As String
Dim DatTemp As String
Open FileName For Binary As #1
Do While Not EOF(1)
Get #1, , Dat
DatTemp = Right$("000" + Hex$(Dat), 4)
DatTemp = Right$(DatTemp, 2) + "," + Left$(DatTemp, 2) + ","
DatStr = DatStr + DatTemp
Loop
Close #1
Text1 = DatStr
Getで取ると4桁で出てきてコードが上位下位逆になってるからなおして分割してる。
0806デフォルトの名無しさん
2008/02/09(土) 16:19:11一文字分しか表示されないから困ってんだろ?そこまでちゃんと書け。
それすら理解できてないのなら、随分と長い話になるぞ。
Byte型は1バイトだから、Get一回じゃ1バイトしか読まないんだ。
ファイルのケツまで読むのなら、その分ループ回してGetし続けなきゃならん。
HEXで表示したかったらHEX$で変換しれ。
つか、頭から順番に読むだけなんだから、InputB$が使いやすくないか?
0807デフォルトの名無しさん
2008/02/09(土) 16:19:36DatTemp = Right$("000" + Hex$(Dat), 4)
0808800
2008/02/09(土) 17:12:46コード流用させていただきましたところ、うまく出来ました。
ちゃんとテキストボックスに16進数1バイト区切りで表示されました。
ほんとありがとうございます。
まだまだ学ぶことは多々ありますが、これからがんばっていきます。
>>806
自分の質問力不足でした。ほんとすみませんでした。
InputB$っていうのもあるんですね?わかりました調べてみます。
>>807
そのコードを省くとテキストボックスが空欄というか、スペースになってしまいました。
0809デフォルトの名無しさん
2008/02/09(土) 17:46:30ダイアログでキャンセルボタン押したらエラーになるね(笑)
あと、FreeFile使うことをオススメする
0810デフォルトの名無しさん
2008/02/09(土) 23:32:17IPアドレス変更処理の直後に
PCをシャットダウンしたいと思います。
これ自体は簡単にできたのですが、
この実行ファイルをファイルサーバー上に配置しています。
XPでは正常に動作したのですが、
2000だとファイルサーバーと通信できないIPに
変更した後、シャットダウン前に
「〜.exeにエラーが発生しました、エラーログを作成しています」
という意図のエラーメッセージが表示され、
シャットダウンが行われません。
自分の中では実行ファイルは全てメモリに読み込まれ
メモリ上で実行されるため
ファイルサーバーとの通信が切断されたとしても
IP変更処理の直後のシャットダウン処理が実行されるのでは?
と思うのですが勘違いしていますでしょうか?
また、これを回避し、2000でもIP変更処理の直後に
シャットダウンを実施させるよい方法はないでしょうか?
よろしくお願いします。
0811デフォルトの名無しさん
2008/02/10(日) 00:42:54中途半端に具体的なので答えられない
0812デフォルトの名無しさん
2008/02/10(日) 03:35:54あ、いやいや
DatTemp = Right$("000" + Hex$(Dat), 4)
これまるまる省くんじゃなくて
DatTemp = Hex$(Dat)
にする。
桁数がふらつくと不定長な文字列になるから・・・
ってか、流用だけじゃなく、何してるか調べるとそのまま覚えやすいと思うぞなもし
0813デフォルトの名無しさん
2008/02/10(日) 10:23:33Private Sub Form_Load()
Call CommonDialog1.ShowOpen
Text1.Text = fun_GetHexString(fun_GetBinaly(CommonDialog1.FileName))
End Sub
0814デフォルトの名無しさん
2008/02/10(日) 10:25:29========== 指定のファイル名からバイナリデータを取得(Byte配列を返す)
Private Function fun_GetBinaly(ByVal strFileName As String) As Byte()
On Error GoTo ERROR_HANDLER:
Dim intFreeFile As Integer
'---------------------------------------------------
intFreeFile = FreeFile()
Open strFileName For Binary As #intFreeFile
fun_GetBinaly = InputB(LOF(intFreeFile), #intFreeFile)
Close #intFreeFile
On Error GoTo 0
Exit Function
ERROR_HANDLER:
On Error GoTo 0
End Function
0815デフォルトの名無しさん
2008/02/10(日) 10:26:41'========== Byte配列から16進数を文字列として返す
Private Function fun_GetHexString(ByRef bytData() As Byte) As String
Dim strJoin() As String, lngBound As Long, c As Long
'---------------------------------------------------
lngBound = UBound(bytData)
ReDim strJoin(0 To lngBound)
For c = 0 To lngBound
strJoin(c) = Right$(String$(2, "0") & Hex$(bytData(c)), 2)
Next c
fun_GetHexString = Join$(strJoin, Space$(1))
End Function
空白が入るの嫌だったら、Join$(strJoin, Space$(1))をJoin$(strJoin)に。
0816815
2008/02/10(日) 10:33:04Join$(strJoin)
じゃなくて
Replace$(Join$(strJoin), Space$(1), "")
でした
0817デフォルトの名無しさん
2008/02/10(日) 10:35:580818デフォルトの名無しさん
2008/02/10(日) 11:02:08あ〜うぜぇな。
そんなちんけな揚げ足取るんじゃねーよ。
コモンダイアログ使った奴ならわかんだろが。
お前が代わりに書いてやれよ。
If Len(CommonDialog1.FileName) > 0 Then
Text1.Text=処理
Endif
0819デフォルトの名無しさん
2008/02/10(日) 15:24:590820デフォルトの名無しさん
2008/02/10(日) 16:14:50LenBなら負の値もあり得るということになる
0821デフォルトの名無しさん
2008/02/10(日) 17:07:200823デフォルトの名無しさん
2008/02/10(日) 21:51:14だってその情報だけじゃ手元で再現できないじゃん,何一つ.
0824デフォルトの名無しさん
2008/02/10(日) 22:00:16今まで使われていたOCXが事情により使えなくなるため、
まったく同じ機能とインターフェースをもった新しいOCXを作成しています。
これを実装する際、旧OCXを使用しているアプリをコンパイルしなおさないようにしたいため、
新OCXのGUIDを、旧OCXのGUIDと同じものにしたいのですが、
これは可能なのでしょうか?
可能であれば方法を教えていただけないでしょうか。
よろしくお願いします。
0825デフォルトの名無しさん
2008/02/10(日) 22:45:540827デフォルトの名無しさん
2008/02/10(日) 23:57:16これはどう?
ttp://support.microsoft.com/kb/217180/ja
0828800
2008/02/11(月) 02:00:34あっ、仰られるとおりにしましたら出来ました。
そうですね、教わったコードをよく理解できず流用させてもらい、成功したって感じですが
具体的にこのコードは『何をやっているのか?』を理解できてないと、他への応用も利かなくなるだろうし
面白味もないと思います。
本日参考書を購入してきたので、これからしっかり勉強していきたいと思います。
>>813〜816・818様
ご丁寧に説明して下さり、ほんとありがとうございます。感激ですw
早速コードの勉強をさせていただきます^^
>>817様
本日購入してきた参考書に、キャンセル押された時のエラーを回避する方法が2通り載ってました。
いずれも818様のコードとは異なるものでした。
結果を導き出すコードはワンパターンだけではないとわかり、奥が深いなぁと感じました。
...すみません、初心者なもので^^;
それと一応検索はしてみましたが、もしVB6を学習する上でこのサイトはオススメだというサイトがあれば
ぜひ教えて頂けないでしょうか?
参考書と併用していけば、効率よく学習できると思ったので。
よろしければお願いしますm(u_u)m
0829デフォルトの名無しさん
2008/02/11(月) 02:42:35とりあえずここはいいところと思ってる:
http://homepage1.nifty.com/rucio/main/main.htm
0830810
2008/02/11(月) 02:52:02わかりました。
問題の部分は以下です。
Call IP変更
MsgBox "完了"
Call シャットダウン
Win2000環境で実行するとまず、「完了」と表示され次に
「〜.exeにエラーが発生しました、エラーログを作成しています」 のエラー発生で
強制終了し、シャットダウンは実施されません。
「IP変更」メソッド内でIPし、
「シャットダウン」メソッド内でシャットダウンを行います。
メソッドの内部については問題なさそうなので
今回は割愛しますが、必要そうなら言ってくだされば載せます。
疑問は2点です。
1.そもそもネットワークの向こうに配置した実行ファイルで
IPを変更した場合、IP変更部分以降は
実行されないのか?
設計的にまずいのか?
XPの検証環境は自由に使えないので何とも言えませんが、
IP変更→シャットダウンは正常に機能しました。
自分の想像ではWin2000であろうがXPであろうが
実行ファイルを実行した直後にメモリにロードされるので
実行ファイルにとってはどこから実行されたかなんて
相対パスでファイルを読み込んでいない限り
問題ないと思っています。
2.今回の対処方法
Win2000であろうがXPであろうが
IP変更直後にシャットダウンを実施したい
よろしくお願いします。
0831デフォルトの名無しさん
2008/02/11(月) 02:59:19守秘する必要があるかもしれないけれど,やっぱりそれでも情報不足な感じ.
だって,たとえば「フォームを表示した直後に Call シャットダウン をするプロジェクト」を作ったりしてみた?
多分シャットダウン程度なら権限があればマトモにシャットダウンが実行されて電源が切れる状態になると思う.
問題を切り分けていく過程として,
ちょっとトイレ.
ひんと:ウィンドウズのIPの変更は「ネットワーク中に同じIPが存在するかどうかをRARPみたいなので確かめる」だったはず・・・ローカルで閉じてないんだよな
0832デフォルトの名無しさん
2008/02/11(月) 03:03:30| W.C |
|∧∧ |コンコン 入ってますか?
|( )シ.
|| | |
―――┴| |―┴―
ノ∪∪
─――┬─――┬―
| W.C |
|∧∧ |< 今、出てるとこ〜
|( ) |
|| | |
―――┴| |―┴―
ノ∪∪
0833810
2008/02/11(月) 03:19:37レスありがとうございます。
守秘義務もなにも
コピペで作っただけなので載せるのは大丈夫なんですけど、
各メソッドが単一ではきちんと動作していますので
関係ないと思っていますので掲載していません。
切り分けについてはIP変更処理で
ネットワークに支障のないIPに変更した場合は
正常に動くため、各メソッドには問題がないと考えています。
OK:192.168.1.10→192.168.1.11
NG:192.168.1.10→192.168.2.11
サブネットマスクは共に255.255.255.0です。
OKの場合はもちろんシャットダウンも実施されます。
各メソッドに問題ある可能性がありますか?
0835デフォルトの名無しさん
2008/02/11(月) 05:25:46メモリ中に読み込まれるのでファイルはオープンされたままの状態になる。
メモリの状態によっては破棄可能なコードやデータは一旦破棄して
再び使用するとき再読み込みが発生することになる。
一方破棄出来ない領域はページング対象になる。
0836824
2008/02/11(月) 13:00:01情報ありがとうございます。
ただ、これは私が探していたのとあ少し違うようでした。
再登録は再登録なのですが、
その際に新OCXのGUIDを旧OCXのGUIDと同じものに変更して登録したい。
OCXをレジストリ登録する際に任意のGUIDで登録できるのか?
という感じです。
0837デフォルトの名無しさん
2008/02/11(月) 13:15:36http://support.microsoft.com/kb/161137/ja
0838810
2008/02/11(月) 15:56:27>>833
>>834
再度検証してきました。
Win2000環境では実行ファイルをネットワークの先から実行した場合
同じIPに設定し直しても
「〜.exeにエラーが発生しました、エラーログを作成しています」
となることがわかりました。
情報混乱させてすみません。
>>835
そうなんですか。
ということはやはりIPを変更する処理をサーバー上の実行ファイルで
実行させるのは仕様的にまずいわけですね。
※変更後IPが通信に問題がないものだとしても
IPが変わる瞬間にいったんサーバーと切断されるため
>>830の疑問1については納得できました。
ありがとうございます。
疑問2の
サーバー上に配置された実行ファイルを実行して
Win2000であろうがXPであろうが IP変更直後にシャットダウンを実施したい
こちらはどうやって実装すればよいでしょうか?
いったんローカルに落として実行、などは最後にローカルにファイルが
残ってしまうのでちょっと難しい環境です。
0839デフォルトの名無しさん
2008/02/11(月) 16:04:01しかるべきレジストリに記述しておけば、
再起動直後にWindowsが消してくれるでしょ。
あと、Editbinつかって、ExeにSWAPRUNを付与する手もあるはず。
0840810
2008/02/11(月) 21:10:00テンポラリフォルダで実行して
レジストリに記述してWindowsに自動で
消させるって具体的にはどうすればよいでしょうか?
検索ワードとかありましたら
お教え下さい。
Editbinについては調べますね、
ありがとうございます。
0841824
2008/02/11(月) 21:32:50情報ありがとうございます。
いま作成している新OCXはバイナリ互換で作成を行っているのですが、
旧OCXのプロジェクトやソースを流用して作成しているわけではないので、
この設定で解決には至りませんでした。
仕様を踏襲しているだけで、プロジェクト自体は全く別物なので。
0842デフォルトの名無しさん
2008/02/11(月) 22:35:21プロジェクトのプロパティでバイナリ互換をとる対象を選択するようになっているようだけど、
これを使えばいいのと違うの?
っていうか、面倒だし泥臭くてカッコは悪いかもしれないけど
そもそも旧プロジェクトのコードだけ書き換えれば済む話なんじゃないの?0
0843810
2008/02/13(水) 00:30:31Editbinでうまくいきました。
最初は動作に変化がありませんでしたが、
同じ階層においてあるランタイムに対して実行したところ
うまく動作しました。
ありがとうございました。
0844デフォルトの名無しさん
2008/02/13(水) 18:58:00「Visual Basic 6.0 SP4: データ型が無効な時、AddNew の後の CancelUpdate でエラーが発生する」
ttp://support.microsoft.com/kb/257790/ja
が確認できて困っています。><;
よろしくお願いします。m(_ _)m
0845デフォルトの名無しさん
2008/02/14(木) 00:03:580846デフォルトの名無しさん
2008/02/14(木) 06:56:34SP6にしてるのに、
「Visual Basic 6.0 SP4: データ型が無効な時、AddNew の後の CancelUpdate でエラーが発生する」
ttp://support.microsoft.com/kb/257790/ja
が発生してしまいます。><;
どうしたらいいですか?
0847デフォルトの名無しさん
2008/02/14(木) 06:56:540848デフォルトの名無しさん
2008/02/14(木) 09:25:160849デフォルトの名無しさん
2008/02/14(木) 10:50:54SQL文を飛ばすときに配列の処理がわからなくて困ってます。
Dim d As String
Dim g As String
Dim ii As Integer
For ii = 0 To 118 Step 1
d = Text1(ii).Text ←textの配列が119個ある
g = "g_" & (ii + 1) ←mysqlのフィールド
Next ii
mysql = "insert into g_table (" & g & ") values(" & d & ")" 全項目 119項目全て更新する。
コレだと g=119 しか保存されないのですが、変数を当てる場合caseで認識させるしかないのでしょうか?
0850デフォルトの名無しさん
2008/02/14(木) 11:53:08なんのためにForで回してるんだw
Forの中でクエリ実行させろよw
0851デフォルトの名無しさん
2008/02/14(木) 11:57:44g = g & "g_" & (ii + 1) ←mysqlのフィールド
こんな感じで
あとカンマも必要
0852デフォルトの名無しさん
2008/02/14(木) 12:02:000853デフォルトの名無しさん
2008/02/14(木) 13:40:30出来ました。ありがとうございます。
Dim mysql As String
Dim id As Integer
Dim d As String
Dim g As String
Dim ii As Integer
For ii = 0 To 118 Step 1
'd = Text1(ii).Text
'g = "g_" & (ii + 1)
If ii = 0 Then
d = Text1(ii).Text
g = "g_" & (ii + 1)
Else
If ii <> 0 Then
d = d & "," & Text1(ii).Text '←textの配列が119個ある
g = g & "," & "g_" & (ii + 1) '←mysqlのフィールド
'd = d & Text1(ii).Text '←textの配列が119個ある
'g = g & "g_" & (ii + 1) '←mysqlのフィールド
mysql = "insert into g_table (g_id," & g & ") values(" & id & "," & d & ")"
0854デフォルトの名無しさん
2008/02/14(木) 16:27:170855デフォルトの名無しさん
2008/02/14(木) 17:07:17Next無いのにできたのか
凄いなそれは
0856デフォルトの名無しさん
2008/02/14(木) 17:21:31SQLインジェクションも気にしろよ
0858デフォルトの名無しさん
2008/02/14(木) 20:17:43だったら最初から自分で考えろカス!
0860デフォルトの名無しさん
2008/02/16(土) 13:23:45二次元配列を使って配列の中の数字を全てかけ算したものを
メッセージとして出力したいのですが、どうやればいいのでしょうか?
配列の箱?は9こで、0〜2です。(0.0)(0,1)(0,2)(1,0)・・って感じです。
よろしくお願いします。
0861デフォルトの名無しさん
2008/02/16(土) 14:19:37Dim MyNumber(8, 1)
Dim myFig as Double
Dim i As Integer
Dim j As Integer
On Error Goto tagErr_Msg
For i = 0 to 8
For j = 0 to 1
myFig= myFig * MyNumber(i,j)
Next j
Next i
label1.Caption = "計算結果 = " & Cstr(myFig)
Exit Sub
tagErrMsg:
MsgBox Err.Description & ", Err No =" & _
Cstr(Err.Number),Vbexcramation + vbOkOnly
0862デフォルトの名無しさん
2008/02/16(土) 14:45:57ありがとうございます!
9つの箱って言い方悪かったです。すいません。
(0,0)(0,1)(0.2)(1,0)(1,1)(1,2)(2,0)(2,1)(2,2)の9つで
3×3の表の中身を全部かけ算するイメージなんです。
0863861
2008/02/16(土) 16:26:01あ、スマン、一カ所間違いに気づいた。
Forループに入る前にmyFig=1するべき。
じゃないと解はずっと0。
Private sub subCalcMatrix()
Dim MyNumber(2, 2) As Integer
Dim myFig as Double
Dim i As Integer
Dim j As Integer
On Error Goto tagErr_Msg
myFig=1
For i = 0 to 2
For j = 0 to 2
myFig= myFig * MyNumber(i,j)
Next j
Next i
Label1.Caption = "計算結果 = " & Cstr(myFig)
Exit Sub
tagErr_Msg:
MsgBox Err.Description & ", Err No =" & _
Cstr(Err.Number),Vbexcramation + vbOkOnly
End Sub
0864デフォルトの名無しさん
2008/02/16(土) 17:10:29WinXP(SP2)、VB6(SP6)の環境でプログラム開発をしています。
最近、ActiveReports 2.0J(SP1)を使い始めたのですが
レポートの設定を変更するとエラーが出たりVBごとフリーズしたりします。
例えば、ActiveReportsのサンプルプログラムでも
デザイナを開いて、ファイル > ページ設定 の Printer Settings から
用紙サイズをデフォルトプリンタからA4に、
印刷の方向をプリンタの規定値から縦か横に変更。
この状態で実行するとフリーズするか、
「問題が発生したため、Visual Basicを終了します。〜」のエラーで強制終了されます。
まれにエラーが出ずに実行できるときもあります。
コードの方で Printer.PaperSize、PageSettings.PaperSize や
Printer.Orientation、PageSettings.Orientation を変更するようにして実行すると
一度は表示されるのですが、何度か表示と閉じるを繰り返しているうちに
エラーで強制終了となります。
変な質問で恐縮ですが、何か解決策ご存知でしたら教えてください。
よろしくお願いします。
0865デフォルトの名無しさん
2008/02/16(土) 17:46:12社外品は素直にそこに聞くのが一番さ
0866デフォルトの名無しさん
2008/02/16(土) 18:55:120867デフォルトの名無しさん
2008/02/16(土) 19:10:530868デフォルトの名無しさん
2008/02/16(土) 19:35:540869デフォルトの名無しさん
2008/02/16(土) 19:57:51区切りは "," な
Dim Sep as Variant
Dim i as Long , j as Long
Dim Cnt as Long , Result as Long
Sep = Split(Text1.Text , ",")
For i = 0 to 9
For j = 0 To 9
Cnt = i
Result = Sep(i)
If Sep(i) < Sep(j) Then
Result = Sep(j)
Cnt = j
End If
Next
Sep(Cnt)=0
Text2.Text = Text2.Text & Iif(Text2.Text = "" , "" , ",") & Result
Next
0870デフォルトの名無しさん
2008/02/16(土) 20:06:15If Result < Sep(j) Then -------正
0871デフォルトの名無しさん
2008/02/16(土) 20:39:24Dim strNumber() As String
Dim intDelimit As Integer
Dim strExc As String
Dim i As Integer
Dim c As Integer
strNumber = Split(Text1.Text, ",")
intDelimit = UBound(strNumber)
For c = 0 To intDelimit
For i = (c + 1) To intDelimit
If CInt(strNumber(c)) < CInt(strNumber(i)) Then
strExc = strNumber(c)
strNumber(c) = strNumber(i)
strNumber(i) = strExc
End If
Next i
Next c
Text2.Text = Join$(strNumber, ",")
0872デフォルトの名無しさん
2008/02/16(土) 20:39:55最初に、メーカーのドキュメントは確認した?
綺麗な環境を作ってから試してみてもダメなら、メーカーにメールを投げるしかないね。
特殊なエラーっぽいし、業務用ocxを触ってる住人の絶対数も多くはないと思うから。
0873デフォルトの名無しさん
2008/02/16(土) 20:57:01870に修正してもソートされてないみたいだけど・・・?
0874デフォルトの名無しさん
2008/02/16(土) 21:14:27レスありがとうございます。864です。
別の比較的新しいプリンタを開発機に接続して、
そちらをデフォルトで使う設定にしてみたところ、
レポートの設定を変更しても安定して動作するようになりました。
古い方のプリンタで強制終了される現象は未解決のままなので
とりあえずメーカーには報告しておこうと思います。
(プリンタによって動いたり動かなかったりするのは怖いなぁ…)
どうもお騒がせ致しました。
0875デフォルトの名無しさん
2008/02/16(土) 22:53:44横槍みたいで申し訳ありませんが、
> intDelimit = UBound(strNumber)
> For c = 0 To intDelimit
・・・
> Next c
の様にUBoundをループの外に出す書き方はよく拝見します。
For c = 0 To UBound(strNumber)
・・・
Next c
の様に書かない理由はどういうものでしょうか?
私が思いつくのは↓の三つくらいですが。
1)Uboundを使うことで生じるデメリット(速度低下)は、
一時変数を増やすことで生じるデメリット(可読性低下)を上回るから
2)コンパイラはループの外に出せるかどうか判断しないので、人間がやらないとダメ
3)ループの途中で配列のサイズが変わるかもしれない危険を避けるため
よろしくお願いします。
(>871さんのコードを例にしてしまいましたが、>871さんを揶揄するものでは決してありません。)
0876デフォルトの名無しさん
2008/02/16(土) 23:04:48感覚的なものじゃない?
871のように書いておけば、あなたの挙げたような問題を意識する必要がないから。
0877デフォルトの名無しさん
2008/02/16(土) 23:25:560878デフォルトの名無しさん
2008/02/17(日) 00:01:17はずれ。最初に一度しか評価しないので、一時変数使う意味ない
0879デフォルトの名無しさん
2008/02/17(日) 00:15:26私は仕事で必要なプログラムをたまに書く程度のアマチュアです。
以前社内で使っているプログラムを変更させられたことがあるのですが、
それがN88BasicをそのままVBに移行したようなプログラムで、
一時変数使いまくりで(私には)分かりにくく、理解するのにすごく苦労しました。
結局一時変数をほぼ全滅させて、簡潔なプログラムにすることにしました。
で、分かりやすくなったおかげで、プログラムの変更もスムーズにできたわけです。
そんな理由で、私の中では一時変数はGOTO文並の悪役だったので、
プロフェッショナルな皆さんも、一時変数は慎重にそれ相応な理由を持って
使うんだろうと勝手に想像していました。
>876さんのレスを見て、慣れている方は一時変数くらい屁でもないのかな?と思いました。
>878さん、ありがとうございます。不勉強でした。
スレ違いみたいですので、これで終わりにします。
申し訳ありませんでした。
0880デフォルトの名無しさん
2008/02/17(日) 15:40:29プロシージャースコープの変数ならズンドコ使っちゃっていいんじゃね
0881デフォルトの名無しさん
2008/02/19(火) 02:45:080882デフォルトの名無しさん
2008/02/19(火) 10:25:290883デフォルトの名無しさん
2008/02/19(火) 11:29:260884デフォルトの名無しさん
2008/02/19(火) 22:18:420885デフォルトの名無しさん
2008/02/20(水) 07:33:46ループカウンタなんてカウンタ以上の意味ないんだから、
単にiで良いんじゃないの?
Dim intLoopCounter as Integer
って方が萎えるな。
0886デフォルトの名無しさん
2008/02/20(水) 08:40:12まったく同意
あと、無意味にVBを貶める発言もちょっと引くわ
VB6は今でも、簡単なツール作るために使うこと多いし
COMで作ったDLLの保守、デバッグの用ならVB6ほど使いやすいツールは無いぜ
つーかVS2005はノートPCで使うにはあまりにも重過ぎる
0887デフォルトの名無しさん
2008/02/20(水) 16:59:500888デフォルトの名無しさん
2008/02/20(水) 17:06:41余裕があればVB6はできるだけやっといたほうがいい
社会にはVB6の資産・遺産・負債が膨大にあるし、現役で使われることもまだまだ多い
「仕事にありつく」ことを考えたら、「VB6がわかる」ことはかなりウェイト大きい
VB6を捨てさせることしか頭にないようなレスは、MSの工作員かと思っちゃうよ
0889デフォルトの名無しさん
2008/02/20(水) 17:59:34VB6.0で帳票アプリケーションを製作中です。
帳票にはクリスタルレポートを使用します。
入力データは固定長のテキストファイルで一レコード3200Byte。
レコード長は最大でも60くらいです。
入力レコードを元に編集、ソートなどが多少は発生しますが、
殆どそのままクリレポの方に投げて帳票印刷する単純なプログラムです。
[レコードを全てバッファに読み込み]→[ソート、編集後に印刷]→[終了]
としたいだけなのですが、
一度エクセルなどに取り込んだ方がいいのでしょうか?
作業用のツールですがパフォーマンス重視との担当の要望です。
VBははじめてなのでアドバイス頂けたらと思います。
0890デフォルトの名無しさん
2008/02/20(水) 18:23:52エクセルを起動させるのに結構時間かかるよ。
0891デフォルトの名無しさん
2008/02/20(水) 18:26:28コンソールAppを作成しているのですが、Sub Mainがすぐに終了してしまい困っています。
ソースで説明しますと、以下のソースのExeを作成してdos窓から実行すると、
処理が完了していないにも関わらず、Exeが終了してしまいます。
試しに、WaitForSingleObjectに自分のハンドルを渡しINIFINITEで実行したのですが、
それでも抜けてしまいます...
どなたかご存知の方ご教授くださいませ。
Private Sub Main
call OtherModule.Run() '糞重い処理
End Sub
---
Private Sub Main
call OtherModule.Run() '糞重い処理
call WaitForSingleObject(App.hInstance, -1) 'APIは定義済
End Sub
0892デフォルトの名無しさん
2008/02/20(水) 18:28:18ありがとうございます。
テキストベースのレコードをソートするイメージを持ったとき、
エクセルでやった方がいいのかな?と思いまして。
読み込んだレコードを配列に入れちゃってソートした後に印刷かければ問題ないですか。
了解です。
0893891
2008/02/20(水) 18:32:54>>891の説明が少し間違っていました。
Sub Mainでコールした処理はタスク上は動作しています。また、正常に処理を終えます。
しかし、Mainがすぐに終了するため、見かけ上はすぐに終わるように見えます。
処理が終了するまでMainを抜けない方法を教えてください。
よろしくお願いします。
0894デフォルトの名無しさん
2008/02/20(水) 18:59:190895デフォルトの名無しさん
2008/02/20(水) 19:03:260896891
2008/02/20(水) 19:06:42基本的にそのようなことはないです。
ですが、Sub Mainだけは(さらにFormが絡まなければ)別のように思えます。
なんとなく、Sub Mainは子プロセスを作成して、さっさと終了しているように思えます。
自分も初めてSub MainのCUIベースのアプリ作っていて、戸惑っているところです。
0897デフォルトの名無しさん
2008/02/20(水) 19:32:08VB6の場合フォームなしでもSUBSYSTEMのタイプは必ずWINDOWSになるのですぐに制御が戻る。
VC6も入れてるならEDITBINが使えるはずだから修正してみたら。
EDITBIN /SUBSYSTEM:CONSOLE hoge.exe
0898891
2008/02/20(水) 19:38:28できました!レスサンキューです!
「Windowタイプ」という物があるとは...とても勉強になります。
本当にありがとうございました。
0899デフォルトの名無しさん
2008/02/20(水) 20:15:03こういうのもある。
start /wait hoge.exe
0900デフォルトの名無しさん
2008/02/20(水) 22:15:24M$がサポート打ち切るのに捨てるもなにも捨てるしかないだろう?
0901デフォルトの名無しさん
2008/02/20(水) 22:21:43それに捨てられるかはMSが決めることじゃないし
0902デフォルトの名無しさん
2008/02/20(水) 22:57:39女の腐ったような奴だな
0903デフォルトの名無しさん
2008/02/20(水) 23:02:020904デフォルトの名無しさん
2008/02/20(水) 23:04:30VB.NET質問スレ (Part24)
http://pc11.2ch.net/test/read.cgi/tech/1197507828/l50
0905デフォルトの名無しさん
2008/02/20(水) 23:07:54こんなのに2時間以上検索を続けていた私は何なのでしょう・・・
ありがとうございます。
0906デフォルトの名無しさん
2008/02/20(水) 23:14:12運の尽き。ていうか、ひょっとしてGUIの標準規格って作ったら
ニーズあるんじゃまいか
0907デフォルトの名無しさん
2008/02/21(木) 00:28:52Office Basicとして何度でもよみがえるさ!
0908デフォルトの名無しさん
2008/02/21(木) 09:20:310909デフォルトの名無しさん
2008/02/21(木) 09:31:36そのかわりでVistaでいろいろ出来るようにとVS2008EEとかが無料なんじゃないかな
今度はVS2008Proが無料になるみたいだし
0910デフォルトの名無しさん
2008/02/21(木) 09:39:34作れるアプリはVB6より重いしVB6はまだまだ需要あるんだよなあ
VB6のユーザーがVisual Studioで全く同じように扱えるようにも出来りゃ移行するやつ増えそうだけど
0911デフォルトの名無しさん
2008/02/21(木) 09:50:32女の腐ったような奴だな
0912デフォルトの名無しさん
2008/02/21(木) 09:52:250913デフォルトの名無しさん
2008/02/21(木) 09:52:440914デフォルトの名無しさん
2008/02/21(木) 10:16:360915デフォルトの名無しさん
2008/02/21(木) 13:02:19エラーメッセージもわかりにくいし
0916デフォルトの名無しさん
2008/02/21(木) 14:39:36データの中にカンマが含まれていて、うまく表示できません。
何かいい方法はありませんか?
0917デフォルトの名無しさん
2008/02/21(木) 14:46:29InputステートメントでCSVファイルを読み込んでください
0918デフォルトの名無しさん
2008/02/21(木) 14:55:57Inputステートメントで読み込むとEOF関数で末端を検知するように
しているにも関わらず、実行時に「これ以上データがありません」と
エラーを起こしてしまいます。なぜでしょうか??
0919デフォルトの名無しさん
2008/02/21(木) 14:56:47ちゃんと値を読み込む直前にEOFでチェックしてる?
再現できないYo
0920デフォルトの名無しさん
2008/02/21(木) 15:07:26Do Until EOF(1)
Input #1, aa, bb,…
という風に直前にしているのですが、、、(汗
0921デフォルトの名無しさん
2008/02/21(木) 15:49:41自作DLLが突如動かなくなってしまいました。
アプリから呼ぼうとすると「430(クラスはオートメーションまたは予測したインターフェイスをサポートしていません)が出ます。
DLLのソースを開いたら、バージョン間の互換性が取れないというエラーが出てしまいました。
確かにマイナーバージョンを初めて1上げましたので、バージョンが違うと判断されたのでしょうか。
バージョン間の互換性をバイナリに設定しなおしたりバージョンを元に戻しても430エラーは止まりません。
MSDNライブラリでは、古いレジストリ情報を手動で削除しろとありますが、
レジストリエディタを開いてもどこに自作DLLの情報があるのか探しきれません。
どういう方針でどこから手をつければよいのでしょうか?
よろしくお願いします。
0922デフォルトの名無しさん
2008/02/21(木) 16:28:51つかさ、CSVファイルは、タブ区切りじゃなくて、カンマ区切りなんでしょ?
それで、データの途中にカンマがあるって仕様が破綻してないかい?
データ長が等しいなら、バイナリで単位長さずつ読み出すとか考えられるが
そのデータ構造を誰が考えたのかしらんが、自分で作ったなら再考したほうがいいよ
0923デフォルトの名無しさん
2008/02/21(木) 16:47:200924デフォルトの名無しさん
2008/02/21(木) 16:50:58エラー内容(括弧内)でググッるとトップがm$のサポートページに飛ぶんだけど
その内容見て理解できる?
出来なかったらもう一度質問して
0925デフォルトの名無しさん
2008/02/21(木) 16:51:37カンマ区切りの正しいフォーマットは知らないが,ダブルクウォートで囲まれた文字シーケンス中のカンマは読み飛ばしてくれるよ.
>>920
それはCSVのフォーマットがおかしいってことだな.
代案
・CSVの横幅(列長)が揃うようにフォーマットを厳密に規定
・1項目ずつ読み取る
0926>>916
2008/02/21(木) 17:43:02なぜかダブルクウォートでかこまれたカンマを読み飛ばしてくれなくて困っています。
1項目ずつ読み取るっていうのは具体的にはどういうふうにするんですかね?
0927デフォルトの名無しさん
2008/02/21(木) 17:47:37カラム内のカンマや改行も解釈してくれるから楽だよ。
0928デフォルトの名無しさん
2008/02/21(木) 18:03:58VBのinputにダブルクオートエスケープはあったっけ?
もしかしたらこっちの勘違いかもしれん
0929デフォルトの名無しさん
2008/02/21(木) 18:24:37んなもんはない!
0930デフォルトの名無しさん
2008/02/21(木) 18:47:02ちょっと試してみた
確かに、ダブルクオートによるカンマエスケープは利くね
なるほど、意外と便利だな
0931デフォルトの名無しさん
2008/02/21(木) 18:47:41スマン、言葉がおかしかったw
0932デフォルトの名無しさん
2008/02/21(木) 18:52:23なかなか為になったよ
0933デフォルトの名無しさん
2008/02/21(木) 21:27:00ありがとうございます。そこは読んでいました。
「不用意に外部インターフェイスを変更してはいけない」理由がそれだと理解しています。
クラスのパブリックメソッドやパブリックプロパティには変更を加えていません。
実際にコード上で変更がないのですが、バージョン互換のチェックが外れてしまったのかもしれません。
ただ実際に変更していない以上、ヘルプにあるように
>この問題を回避するには、古い DLL あるいは EXE のレジストリ情報を手動で削除する必要があります。
レジストリを変更して、ローカルサーバーの汎用一意識別子 (UUID) とインターフェイスを
元に戻せないものかと思って質問した次第です。
またオートメーションやバージョン互換については、何となく分かった気になって使っていますが、
理解度としては中途半端だと思っています。
0934デフォルトの名無しさん
2008/02/21(木) 21:33:04Proが無料になるの?まじで?
0935デフォルトの名無しさん
2008/02/21(木) 21:49:41学生に対してのものだから一般は使えないのかな?
http://itpro.nikkeibp.co.jp/article/NEWS/20080220/294225/
0937デフォルトの名無しさん
2008/02/21(木) 22:43:30あー、2003の頃は5000円だったSpokeがロハになったって話か。
0938デフォルトの名無しさん
2008/02/21(木) 23:20:14Do
Input #1, aa
if EOF(1) then Exit Do
Input #2, bb
if EOF(1) then Exit Do
...
Loop
みたいなかんじ
というかそもそもCSVに書かれてあるデータのフォーマットがおかしいんだから
読み込みの方で対処するのはおかしいんだがな
0939デフォルトの名無しさん
2008/02/21(木) 23:24:31パーザを手抜きしてるのが悪い気がするナー。
0940デフォルトの名無しさん
2008/02/21(木) 23:28:58とりあえず、実装を変えないで起きる問題点で
こんなのが見つかったんだけどこれは見た?
ttp://support.microsoft.com/kb/184286/ja
0941デフォルトの名無しさん
2008/02/21(木) 23:29:210942デフォルトの名無しさん
2008/02/21(木) 23:30:23LineInputした1行をForでまわして1文字づつチェック。
いらない文字を捨て、必要な文字列だけ抜き出したら駄目なんかい?
0943デフォルトの名無しさん
2008/02/21(木) 23:39:06ちなみに元の質問がそんな感じのを聞いていたけど
Inputで読み取るように誘導してるおれ
0944デフォルトの名無しさん
2008/02/22(金) 00:20:10あ、これは一応enumを変えているのか、失礼
まったくコードを変更していないということから考えるとおかしいんだよなぁ
0945デフォルトの名無しさん
2008/02/22(金) 00:59:15スマン>>921をちゃんと読んでなかった・・・・
そのdllが参照しているほかのCOM(ocx,dllなど)が何かしらの理由で
バージョンが古くなったりおかしくなってる可能性が高い
正常に動いていたバージョンからエラーが起きるようになった時までにインストールしたアプリが
dllが参照しているcomオブジェクトに何かしらの影響を与えたと思われる
ちなみに
今手元の開発環境にはmsdnを入れていないので古いレジストリ情報を手動で削除〜と書いてある理由が分からないが
VBで作ったある程度大きなactivexdllを手動で削除するというのは、結構面倒くさいのでよほどのことがないとやらないよ
0946デフォルトの名無しさん
2008/02/22(金) 05:18:470947デフォルトの名無しさん
2008/02/22(金) 09:17:35DLL のバックアップはないんだろうか。
・・・あったら聞きにこないかw
>>936
0件のときどうすんの?
0948デフォルトの名無しさん
2008/02/22(金) 09:48:050949デフォルトの名無しさん
2008/02/22(金) 09:53:12if 0<= FileLen("ファイル名") then:ファイルサイズが0の場合の処理。
てかんじでファイルサイズを参照してからDo に入れば良いのでないかい?
0950949
2008/02/22(金) 09:54:430951デフォルトの名無しさん
2008/02/22(金) 09:58:24>947
呼び出し側の参照設定をやり直して再コンパイルしましたが、エラーが止まりません。
諦めて、コンパイル時にDLLの名前を少し変えて完全に別物とすることにしました。
(プロジェクト名他はそのままで)
例えば AAA.DLL→AAA1.DLL
そうしたら、エラーが出なくなりました。
呼び出し側はAAA.DLLを参照したままなんですけど・・・???
まあ呼び出し側を変更せずに動くようになったので、
当面の問題は解決したということにしたいと思います。
が、私がActiveXを十分に理解しないでいるのが一番の敗因だと思いますので
もっとよく勉強して次に備えようと思います。ありがとうございました。
ちなみに、自作DLLは、元々EXEで使っていたものをDLLにしたものです。
EXEのコードはほぼそのままで、mainに引数を渡すパブリックメソッドを一つ書いただけのクラスを被せています。
ですから、外部インターフェイスは変わりようがないのです(中身は変更を加えています)。
そのパブリックメソッドでエラートラップをかけると430エラーを返します。
トラップを外すと、呼び出し側で13エラー「型が一致しません」が発生します。
「型が一致しません」でもググりましたが、
バージョン互換の問題で発生しているケースが結構ありました。
0952デフォルトの名無しさん
2008/02/22(金) 11:10:26>>920 のように書けばいいと思うんだ。
ループの終了条件を後ろに持っていく意図がつかめない。
あと、オープン済みのファイルに対してなら、FileLen 関数より
Lof 関数使ったほうがいいと思う。
0953949
2008/02/22(金) 11:17:09EOFの検出してから再度ファイルにアクセスしてしまうというのが問題の発端のじゃないかい?
>あと、オープン済みのファイルに対してなら、FileLen 関数より
>Lof 関数使ったほうがいいと思う。
おれが言いたかったのはオープン前の話。
0954デフォルトの名無しさん
2008/02/22(金) 12:23:01問題の解決になっていないのは置いとくが、
そもそも終了条件を後ろにもっていくのはおかしい。
0件のときどうする、なんてのは少なくとも >>936 の頭には
無いように見えたから指摘したまで。
>おれが言いたかったのはオープン前の話。
>>949 からは、そうは感じ取れなかった。スマンな
0955デフォルトの名無しさん
2008/02/22(金) 13:09:59つttp://pc11.2ch.net/test/read.cgi/tech/1134464762/
0956デフォルトの名無しさん
2008/02/22(金) 20:13:04そのクラスのインスタンスを作成したいんですが、
どのようにすればいいでしょうか?
0957デフォルトの名無しさん
2008/02/22(金) 23:56:46Dim clsObject As Object
Select Case クラスの名前
Case "犬"
set clsObject = New TeacupChihuahua
Case "猫"
set clsObject = New AmericanShort
Case "スベスベマンジュウガニ"
set clsObject = New SilkyBunCrab
End Select
0958デフォルトの名無しさん
2008/02/23(土) 00:03:000959デフォルトの名無しさん
2008/02/23(土) 00:12:46それはわかるんですが、クラスの数が多く、
クラスの入れ替わりも多いので、
ひとつの記述でできたらと考えています。
何か良い方法はありませんか?
0960デフォルトの名無しさん
2008/02/23(土) 00:21:29Object o = CreateObject( ObjectName )
0961デフォルトの名無しさん
2008/02/24(日) 13:02:41VB6.0でどのように表現すればいいのでしょうか?
具体的に
テーブル名 A B
フィールド名 Fname Fname
があるとします。これをExcelで帳票を作りたいと思っています。
"SELECT a.Fname, b.Fname FROM A a, B b WHERE a.delf = false
としたのですが
Sub Makeline(rs, row)
Cells(row, 1) = rs("a.Fname")
Cells(row, 2) = rs("b.Fname")
と書き込んでもエラーが出ます。
この場合、どのように書けばいいのでしょうか?
知ってる方がいましたら、教えて下さい。
ヨロシクお願いします。
0962デフォルトの名無しさん
2008/02/24(日) 13:11:32rs("hoge1")
rs("hoge2")
0963961
2008/02/24(日) 14:26:34select文でエラーが出てしまいます。
from以下は同じでいいんですよね?
hogeを指定しなくていいんでしょうか?
0964デフォルトの名無しさん
2008/02/24(日) 14:36:03select a.fname as hoge1, b.fname as hoge2 from
0965961
2008/02/24(日) 15:19:30おお!できました。ありがとうございます。
おかげ様で上司に怒られなくて済みそうです。
0966961
2008/02/25(月) 13:07:47昨日はさりがとうございました。&またお尋ねしたいことがあります。
今度は7箇所くらいのテーブルから各々のフィールドを読み込み、帳票を作成しております。
962さんから教えていただいた内容で出来るのですが物凄く時間がかかります。
だいたい1時間くらいかかってしまいます。
SELECT以下の文字が多すぎて読み込みに時間がかかるようです。
もう少し短時間で終わるようにできませんか?
0967デフォルトの名無しさん
2008/02/25(月) 13:17:590968デフォルトの名無しさん
2008/02/25(月) 13:53:02文字が多すぎるせいじゃないと思うよ。
インデックスとか張れば速くなるんじゃない?
0969961
2008/02/25(月) 13:57:30PostgreSQLです。
>>968
多すぎじゃないんですか?
でもインデックスの張り方がわからない・・・
ちょっとググってきます。
0970デフォルトの名無しさん
2008/02/25(月) 14:16:500971デフォルトの名無しさん
2008/02/25(月) 14:21:37当然、エクセルの画面描写をとめてるよね?
0972961
2008/02/25(月) 14:30:15>>971
止めています。データ自体は大した量ないんです。
0973デフォルトの名無しさん
2008/02/25(月) 15:02:15セルに1個づつデータセットしてないか?
2次元配列作ってRangeオブジェクトに対して一気にセットしてみ
0974961
2008/02/25(月) 15:20:01ありがとございます。
試してみますね
0975デフォルトの名無しさん
2008/02/26(火) 10:08:06単にSQL文じゃないのか? テーブル7つ結合してるわけじゃないだろうけど。
>>961
SQLが返るのは早くて、編集に時間が掛かってるの? どこが遅いのか切り分けないと。
0976デフォルトの名無しさん
2008/02/26(火) 10:53:34だな。
EXCELの操作で遅いなら、
Excel Creator使うと高速になるし、
自分で書いてるデータ処理が遅いなら、
ロジック晒せば高速化も出来るだろ。
経験上、データ取ってくるところより、
・取得データをレコードセットのまま操作している
・EXCELのセル1つ1つにデータセットしている
なんてことしてるとやたら遅くなる。
0977デフォルトの名無しさん
2008/02/26(火) 12:50:180978デフォルトの名無しさん
2008/02/26(火) 17:21:11list1.list(1)+list1.list(2)…
とやると合計値ではなく連結した文字列になってしまいます。
かといって
Cint(list1.list(1))+Cint(list1.list(2))…
とすると型エラーが出てしまいます。
もしよろしければアドバイスお願いします。
0979デフォルトの名無しさん
2008/02/26(火) 21:43:31> list1.list(1)+list1.list(2)…
> とやると合計値ではなく連結した文字列になってしまいます。
listプロパティはストリングだから、+はストリング同士の連結の演算子になっちゃう。
だから型変換すれば良いのだが、
> Cint(list1.list(1))+Cint(list1.list(2))…
> とすると型エラーが出てしまいます。
俺んとこのVB6はそんなエラー出さないよ。
リストボックスに入ってる値をよ〜く確認してみたら?
Listにデータが何個入ってるのか知らないけど、
整数型に変換できない値がどこかにあるんでしょ。
0980デフォルトの名無しさん
2008/02/26(火) 21:47:10デバッグ時に確認しやすいだろ。つか、普通にループ回せ。
Dim i As Integer, sum As Integer
For cnt = 0 To List1.ListCount - 1
Let sum = sum + List1.List(i)
Next i
0981デフォルトの名無しさん
2008/02/26(火) 21:48:34○For i = 0 To List1.ListCount - 1
orz
0982デフォルトの名無しさん
2008/02/26(火) 22:00:030983デフォルトの名無しさん
2008/02/26(火) 23:49:070984デフォルトの名無しさん
2008/02/26(火) 23:55:370985デフォルトの名無しさん
2008/02/27(水) 00:32:55常識だろこんなの
0986デフォルトの名無しさん
2008/02/27(水) 09:25:27まさに項目の計算で
for i = 0 to listcount
としたのが不味かったみたいでした。
listcount-1 にしたら問題なく動作しました。
こんな簡単な事だったとはorz
0987デフォルトの名無しさん
2008/02/27(水) 10:20:480988デフォルトの名無しさん
2008/02/27(水) 17:12:52IsNumeric 関数は、可能な限り数値として認識しようとするから
全角の数字や、一部の特殊文字(\とか)が許されてしまう。
それを踏まえて使うぶんにはいいが、業務プログラムだと許されない事が
多いんじゃないかな。
IsDate 関数も同じような動きをしていて、
? IsDate("2008/2/27")
? IsDate("27/2/2008")
? IsDate("2/27/2008")
3つとも 2008/02/27 と認識されて True を返す。
0989デフォルトの名無しさん
2008/02/27(水) 18:30:00True
? "¥1,234" * 2
2468
? CLng("¥1,234")
1234
IsNumericは通った後にC〜系の型変換使えば何の問題もない。
? Format("2008/2/27","yyyy/mm/dd")
2008/02/27
? Format("27/2/2008","yyyy/mm/dd")
2008/02/27
? Format("2/27/2008","yyyy/mm/dd")
2008/02/27
IsDateは通った後にFormat関数で整えれば何の問題もない。
0990デフォルトの名無しさん
2008/02/27(水) 22:27:53>988が言いたいのは
そもそも2008年2月27日を意図して27/2/2008と打つ奴はイネーだろって話じゃないの?
データ入力者が微妙に打ち間違えたとき、トンでもない日付に解釈されちゃったら
エラーで拾えないだろってことでそ?
0991デフォルトの名無しさん
2008/02/27(水) 22:36:10>データ入力者が微妙に打ち間違えたとき
もう少し、よく考えた方がいいぞ。
0992デフォルトの名無しさん
2008/02/27(水) 22:42:580993デフォルトの名無しさん
2008/02/27(水) 22:47:390994デフォルトの名無しさん
2008/02/27(水) 22:50:24かつC変換かけるときOn Errorで網張っとくのが普通だわな。
自分の不出来さを晒すなんて(ry
0995デフォルトの名無しさん
2008/02/27(水) 22:54:210996デフォルトの名無しさん
2008/02/27(水) 23:24:350997デフォルトの名無しさん
2008/02/27(水) 23:30:35経験者乙
雉も鳴かなきゃいいのにね
0998デフォルトの名無しさん
2008/02/27(水) 23:33:35あのさ、マジレスすると、お前プログラマ辞めた方がいいよ。
お前の言ってることは、とりあえず全部回避する方法が有る、
にもかかわらず、お前は知らないだろ。
知らないなら知らないでもいい、初心者スレなのだから。
だがお前みたいに知ったかぶってる奴はいつか、
誰も助けてくれない状況で他人に多大な迷惑かけるようなミスをやる。
ここでアドバイスしている連中がIsNumericだけで計算に値を渡すような日曜プログラマみたいなことしないよ。
0999デフォルトの名無しさん
2008/02/27(水) 23:35:211000デフォルトの名無しさん
2008/02/27(水) 23:39:28>KeyPressで文字を弾いてマウスのコピペにやられちゃったのはどこのどいつだい?
てのの答えが以下なような気がw
>>994
>かつC変換かけるときOn Errorで網張っとくのが普通だわな。
必要であれば入力された文字数も数えるし、値変換する前に数字だけかどうかforで回してチェックしたりもするw。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。