v(・∀-)b VBプログラマ質問スレ(6.0以前) Part28
1 :
デフォルトの名無しさん :
03/08/19 21:29
お疲れ様。
早過ぎ
いや、前スレも同じくらいに立ってるし。
スレタイキモイ
前のよりマシ。
ブビ厨センスな過ぎ(失笑
と言っているのはアンチVB厨なわけで。 アンチVB厨は必死に前の奴にしたいわけだな。ダサいから。
>>9 その病的なまでの被害妄想、すごいな。病院逝っとけ
(*´д`*)アハァ ←絶対こっちの方がいいって
しつこいな
キモ
17 :
デフォルトの名無しさん :03/08/20 10:59
どうでもいい
VBのLabelのCaptionプロパティの設定について質問です。 例えば、以下のように Label1.Caption="&Edit" とすると、表示上はEの下にアンダーラインが入って、キーボードショートカットが 有効であるかのように見えますが、ラベルはフォーカスを持たないので意味が ありません。これはどういうことでしょう? 何か使い道があるのでしょうか?
>>18 たしかヘルプにラベルの次のコントロールに
フォーカスがいくと書いてあるはず。
VBを今勉強中なのですが ただ左から右に 振り子運動を表示させるプログラムを作ろうと思っています 全くなにから手をつければいいのかわかりません 参考HP、図書などなにかアドバイスお願いします
21 :
デフォルトの名無しさん :03/08/21 01:40
学校にいきなさい
>>21 学校逝かなくてもその程度なら入門書買えば出来るだろ
ダイアログボックスを作ったのですが、そのダイアログでOKとキャンセルのどちらが押されたかを 呼び出し側で知るにはどうしたらいいのでしょうか? おねがいします。
24 :
デフォルトの名無しさん :03/08/21 11:40
ASP上から、access2000のレポートを実行させようと こんなコードを書きました。同様のコードを、Access上のVBAから なら、問題なく実行されるんですが、ASP上からだと、エラーも 吐かずに注意音だけを鳴らして、しばらくしてタイムアウトしてしまいます。 Set AccObj = Server.CreateObject("Access.Application") AccObj.OpenCurrentDatabase("C:\123\123.mdb") AccObj.Docmd.OpenReport "R1_Report" AccObj.quit Set AccObj = Nothing asp上からは、無理なんでしょうか?
>>23 ダイアログボックスからどのボタンが押されたかを通知する。
イベントを発生させてもいいしプロパティで渡してもいいし
コールバックをしてもいいしメッセージを投げてもいいし
グローバル変数を書き換えてもいいしお好きなように。
26 :
デフォルトの名無しさん :03/08/21 18:11
>>22 コンピュータの学校じゃなくて中学校、ってことだろ
28 :
なりたてプログラマ :03/08/25 11:10
解像度に合わせてフォームのサイズを変更する関数をつくるように 言われたのですが、難しく感じて困っています。 何かいい方法、もしくはその方法がのってるサイトをご存知の方が いたら教えてください。 VB6.0を使用しています
29 :
デフォルトの名無しさん :03/08/25 11:53
質問です。 VB4.0で作成されたexeファイルがあります。 その実行ファイルのソースファイルを紛失してしまったのですが、 どうしてもソースファイルを入手する必要が生じました。 どなたか、詳しい方やり方等お教え願えないでしょうか。 (逆アセンブラ等をしようするのかな、とあたりはつけてます。)
>29 例え逆アセンブルしたとしても元のソースと同じ物を得る事は無理でつ。
31 :
名前は開発中のものです。 :03/08/25 13:00
vc++の逆アセンブラ、開発中のものはコード見れるけど、 他の人の作ったEXEだけを見ることはできんの?
33 :
なりたてプログラマ :03/08/25 15:35
>32 ありがとうございました。自分が今作ろうとしてる関数はすでに 売られてるんですね。たださすがに買うわけにもいかないので、 なんとか自力で作る努力をしています。
34 :
デフォルトの名無しさん :03/08/25 15:36
逆アセンブルするよりも一から作りなおす方が早い。
Me.Top = 0 Me.Left = 0 Me.Height = Screen.Height Me.Width = Screen.Width
VB6.0 でプログラムを作成しています。 windows2000 で作ったプログラム(vbp)を windows98 で読み込むと コマンドボタンの表示フォントが UI Gothic から Arial に変更されました。 これは何故なんでしょうか? フォントが変わって文字がつぶれて読めません。 助けてください。
単にそのフォントを持ってないから代替品が使われただけ。 素直にMSゴシックでも使いなさい。
ダウンロード対象をブラウザで左クリックし、直接開くを選ぶと取得して処理するアプリを開発したの ですが、ナローバンド(AirH"等)でそれをするとデータが無いというエラーになってしまいます。調べると、 データをダウンロードし終わる前にOPEN処理を行っていました。データ自体は小さなデータなので ブロードバンド環境では問題なかったのですが、ナローバンドではダウンロードが間に合わない様 なのです。一応、存在チェックをループさせ、存在するか一定回数チェックするとループを抜ける ロジックにしたのですが、正しいデータ場合でもループ回数に間に合わなければエラーになってしまう のが問題です。何か、良い方法はないものでしょうか。 あと、ここで質問すべきかどうか良くわからなかったのですが、とりあえずついでに。 VBで作成したアプリをデストリビューションウィザードでセットアップを作成したのですが、XPの 環境で、WININET.DLLが使用中だからインストールできない云々と言うメッセージが出て インストールできないそうなのです。自分の環境ではXPがないので再現できません。何か 対処法はないでしょうか。
>デストリビューションウィザードでセットアップを作成 インストール対象PCのユーザー名が日本語で登録されてると 上手くいかない場合があったような・・・ たしかMSのサイトでそれに関する技術文書が公開されてた。
>>40 まあ、ユーザー名を半角英数にしてくれや。ってなことしか書いてなかったような・・・。
いや、ちゃんとsetupのexeの作り直し方が書いてあった。 というか、ローカルには方法が保存してあるんだけど、 ここに分割して張り付けるのがマンドクサイw
43 :
デフォルトの名無しさん :03/08/26 15:57
ちょっとお聞きしたいんですが、MSFLEXGRIDコントロールで、普通に 表みたいな物を作成したのですが、水平スクロールバーで右にスクロー ルしていくと、一つの区画だけ何も表示されない所ができてしまいます。 | A | B | C ||||||||||||||||| ←何も表示されず後ろの灰色の ぶぶんが見えている。 ちなみにソースは MSFlexGrid1.Rows = 1 'MSflexGridコントロールの初期設定 MSFlexGrid1.Cols = 11 MSFlexGrid1.ColWidth(-1) = MSFlexGrid1.Width / 4 MSFlexGrid1.RowHeight(-1) = MSFlexGrid1.Height / 20 MSFlexGrid1.TextMatrix(0, 0) = "ユーザー名" MSFlexGrid1.TextMatrix(0, 1) = "xxxxx" MSFlexGrid1.TextMatrix(0, 2) = "xxxxx" MSFlexGrid1.TextMatrix(0, 3) = "xxxxx" MSFlexGrid1.TextMatrix(0, 4) = "xxxxx" MSFlexGrid1.TextMatrix(0, 5) = "xxxxx" MSFlexGrid1.TextMatrix(0, 6) = "xxxxx" MSFlexGrid1.TextMatrix(0, 7) = "xxxxx" MSFlexGrid1.TextMatrix(0, 8) = "xxxxx" MSFlexGrid1.TextMatrix(0, 9) = "xxxxx" MSFlexGrid1.TextMatrix(0, 10) = "xxxx" MSFlexGrid1.ColAlignment(-1) = flexAlignCenterCenter 'セルの内容を上下ともに中央揃えで表示する 解決法が分かる方いましたら、ぜひ教えてください
なにこのスレタイださ
PictureBoxコントロールに書いた絵をJPEGやPNG形式で メモリーブロックに保存できるDLLってありませんか? APIのMoveMemoryで取り出して使いたいのです。 ファイル保存するDLLならいくつかあるのですが・・。 一旦ファイル化してメモリーに読み込む方法だと 効率が悪そうなので。 宜しくお願いします。
48 :
デフォルトの名無しさん :03/08/27 10:48
Dim a As Variant, _ ‥ b, c ‥ As Integer, _ ‥ d_a, e As Byte のような感じで変数を宣言しました。 d_a=0 d_a=d_a-1 のようなふうでも、0 より小さい 数も計算されていたようですが、 e = -1 のようにすると、「オーバーフローしました。」 とでました。 なぜでしょうか。
>>48 その宣言だと、変数 d_a の型は Byte ではなく Variant に
なっていると思うよ。
50 :
デフォルトの名無しさん :03/08/27 12:25
教えてくださーい。 モーダルフォームを開いた時に、そのフォームのタスクボタンを表示する方法って あるでしょうか? えーと、VB6.0で"Sub Main"でスタートアップして、そこからメインとなる フォームを開いた時に、タスクバーにそのフォームのタスクボタンを表示したい のですが、 Private Sub Main() 前処理・・・・ 'メインフォームを開く Call Form1.Show(vbModal) 後処理・・・・ End Sub とすると、タスクボタンが表示されないのです。。。 (モードレスで開くと表示されるのですが、開いた途端後処理が走ってしまいます)
>>49 原因がつかめました。分かりました。
ありがとうございます。
>>52 フォームを閉じた後に「後処理」を処理したいもので。
フォームのUnload時のイベントに「後処理」を入れてもいいのですが、
プログラムが汚くなりますし。。。
>>53 いや、モーダルだからタスクバーにもう一個表示してもしょうがないんじゃないのってことなんだが。
WS_EX_APPWINDOWをどうにかして設定すれば出るはず
55 :
デフォルトの名無しさん :03/08/27 19:25
6.0 MaskEdBoxコントロールでそこに入力されたテキスト内容を変更しよう としたときに、TextBoxコントロールでのテキスト内容変更のように 任意の位置から「|」を挿入してテキストを変更することが できないですけど何とかならないですか。 MaskEdBoxは一番最後尾に「|」をいれてからバックスペースで さかのぼってから入れなおさなければならないのですが・・・ そういうものなの?プロパテイの設定ミス?
たとえばハードディスクの名前 VB で、さらにV:というドライブ名をどのディスクも使用していないときに、 VBという名前をつけたハードディスクをV:に割り当ててくれるプログラムはどう書きますか? A:フロッピー C:内臓ハードディスク Q:CD-ROM V:(VBという名前をつけたハードディスク)
VBに直接関係ないじゃん
>>57 VB以外の知識でも教えてくださるとたすかります。
今はコントロールパネルの管理ツールの
コンピュータの管理→ディスクの管理
で何台ものハードディスクを手作業で
E:ハードディスク名 VB
F:ハードディスク名 Other
J:ハードディスク名 Work
みたいに割り当ててるので大変です。
C:\WINNT\system32>LABEL.EXE /? ディスクのボリューム ラベルを作成、変更、または削除します。 LABEL [ドライブ:][ラベル] LABEL [/MP] [ボリューム] [ラベル] ドライブ: ドライブのドライブ文字を指定します。 ラベル ボリュームのラベルを指定します。 /MP マウント ポイントまたはボリューム名として処理される ボリュームを指定します。 ボリューム ドライブ文字 (文字の後にはコロンを付ける)、マウント ポイント、ボリューム名を指定します。指定されている 場合は、/MP フラグは不要です。
>>59 F: , G: などをドライブ名、
ディスクに付けた名前をボリュームラベル
として、
ハードディスクをパソコンにつないだりはずしたりしているうちに、
そのハードディスクのドライブ名がF:になったりG:になったりしちゃうので、
あるボリュームラベルのハードディスクは必ずF:として使用したいわけです。
そうすればショートカットのリンク切れなどもなくなります。
F:へのパスを指定していたファイルのショートカットは、そのファイルがG:というパスに変わっちゃうとショートカットのリンク切れが起こるわけですから。
>>60 Shell関数で実行するわけですね。
目的が達成できそうな気がしてきました。
ありがとうございました。
62 :
デフォルトの名無しさん :03/08/28 10:19
ぐわし
63 :
デフォルトの名無しさん :03/08/28 10:20
あっ、アクセス規制取れた!!やつた!!!!!!! 今月で3回目だったんだよね。うれしいY
64 :
デフォルトの名無しさん :03/08/28 10:25
質問なんですが、 ファイルをバイナリで読んで、バイト配列に代入。各要素を暗号化し、 再び書き込む。という簡単なルーチンを作っているのですが、 今の所、暗号化はビット演算でXOR結合を用いてやっています。↓ bytarray(i)=cbyte(bytarray(i) xor XXX) ※XXXはユーザー指定の定数 ここで、質問ですが、やはりXXXは1〜255の範囲にないとだめなので しょうか?実際には何度かビット演算を繰り返すのですが、 1〜255の場合、総当りでやっても255回で解かれちゃうな〜と 思って質問させていただきました。どなたかご教授いただけたらありがたいです。
その暗号化を複数回繰り返せば・・・ っていう単純な方法じゃダメかえ?
66 :
デフォルトの名無しさん :03/08/28 10:42
>>65 まぁそうなんですけどね。とりあえず、XXXを大きくできたり
できるならそうしたいなぁと思いまして。
iが奇数なら bytarray(i) Xor XXX iが偶数なら bytarray(i) Xor YYY とかやってみれば?
68 :
デフォルトの名無しさん :03/08/28 13:25
>>67 ナイスアイデアですね!!!それは思いつかなかった・・
試してみます。
>>65 複数回繰り返しても結局255回の総当たりのうちに解かれるような…
70 :
デフォルトの名無しさん :03/08/28 15:13
プログラム1000行ぐらいじゃあんまり手が込んでるとは いえないかな?
>>70 十万行すべてが
A = A + 1
なコードは手が込んでますか?
72 :
デフォルトの名無しさん :03/08/28 16:34
マウスのホイールについての質問です。 2つのフォームがあって、それぞれにピクチャーボックスが1つずつあります。 そこに、スクロールバーをつけてピクチャーボックスに貼り付けたオブジェクトを スクロールできるようにしました。 それを、マウスのホイールでもスクロールできないかと試行錯誤してます。 WindowsのAPI(SetWindowLongA)をつかって、サブクラス化ってやつで スクロールを実行することはできたのですが・・・・ 違うフォームの二つのピクチャーボックス内のオブジェクトを同時にフック することができないないので、アクティブになったフォームでフックを 取り直すようにしたら、スタックエラーがでました。 もちろん、フォームがロストフォーカスしたら、アンフックしてるのですが どうも、フックとアンフックを繰り返すとだめっぽいです。 どなたかこう言った処理を作られた方はいませんか?
74 :
デフォルトの名無しさん :03/08/28 23:05
75 :
デフォルトの名無しさん :03/08/28 23:30
教えて下さい。 ディストリビューション ウィザード の [含まれるファイル]で フォルダごとファイルを追加したい場合はどうすればいいですか?
76 :
デフォルトの名無しさん :03/08/29 00:23
77 :
デフォルトの名無しさん :03/08/29 08:00
ファイルは一つ一つでもいいですがフォルダを追加するにはどうすればいいですか。
>>73 > 違うフォームの二つのピクチャーボックス内のオブジェクトを同時にフック
> することができないないので
そんな制限はなかったと思いますが?
質問者は回答者にちゃんとお礼を言うように!
礼はいらん。それよりちょっとだけオパーイモミモミさせろ。
明日は、祐子タンに会えるかな♪
はじめまして 今、VBでメールソフト作ってるんですけど ウインドウズ標準のアドレス帳から アドレス一覧を取り込みたいんで アドレス帳の宛先アドレス一覧を何とか取得したいんですけど 可能なんでしょうか? 一通り調べたところ、MAPIを使うか、CSV出力をしてから取り込むという 方法があるらしいことまでは わかったんですけど 実際どうやるかが、なかなかわかりません^^; どなたか、ご教授いただけないですか?
If A Then a ElseIf B Then b End If はAがTrueならaを実行した後にすぐにEnd IFにジャンプして、Bのところはプログラムが実行されませんが、 Select Case Flg Case A a Case B b End Select はCase AがTrueだったらやはりCase Bを飛ばしてEnd Selectに行くのでしょうか?
>>84 カキコする前にテストしてみりゃわかるだろ・・
>>83 CSVはたぶんOEから出力しないといけないからめんどい。
データが二重になってややこしい。あんまり良い方法とは思えない。
MAPIの使い方についてちゃんと調べたのか?
87 :
デフォルトの名無しさん :03/08/29 22:00
>>78 さん
ありがとうございました。
でもこれだと別のフォルダで同名の別ファイルを追加できないですね。
例えば
\a\test.data
\b\test.data
といったように。方法ないですか。
>>87 そう、同名ファイルはムリみたい。
マイクロソフトのサイトからディストリビューションウィザードよりもいいインストーラーをダウンロードしてくるか、
インストールシールドというソフトをつかうか、
裏技的に、あるアプリを初めて起動したときは
フォルダを作って、そのフォルダにファイルを配置する、
みたいな方法もある。
(Form Loadイベント)
if あるフォルダがない(つまりはじめてソフトを起動した) Then
Createフォルダ
あるファイルをさっきCreateしたフォルダにmoveメソッドなどで配置する。
End If
>>86 MAPIについては、まだ勉強途中っす
とりあえず、メールサーバとかを指定してメール送信するとこまでですね
サンプルみて追いかけてるんで、ほぼ使えないに等しいですわ^^;
では、MAPIについて調べてみることにします
90 :
デフォルトの名無しさん :03/08/29 23:07
>>88 さん
ありがとうございました。
また、いろいろ教えて下さい。
92 :
デフォルトの名無しさん :03/08/30 01:31
VBって手続き型?
94 :
デフォルトの名無しさん :03/08/30 01:50
>>94 オブジェクト指向−実装継承
クラスとか多態はあるのでかなりオブジェクト指向に近い。
96 :
デフォルトの名無しさん :03/08/30 02:02
>>95 なるほど。
だから準オブジェクト指向型なんですね。
ありがとうございました。
WSHではShell関数が使えないようだけどどう?
つかえるじゃん・・
実験してためせと言う人は 薬品をためし飲みしてみて死んでから「ああこれは毒だった。」 と気づく人なんだろ。
>99 そうだね。 これからは実験してみる事をやめて全て他人に聞く事にしとくよ。
>>99 まあ、せいぜい石橋の前で佇んでなよ。
どんな薬品でも最後は臨床試験があるんだよ。
まあ、それ以前にまずは自分でヘルプなりを調べろとは思うが。
>>100-102 過去ログを読めといわないで同じことを何回でも教えてくれて、
どんな簡単なことでも答えてくれて、
質問者の答えを検索しに行ってくれる、
そういう人がいるのが理想の質問スレなんだ。
104 :
デフォルトの名無しさん :03/08/30 13:41
OLEDragDropで、ファイルをフォームにドラッグ&ドロップする方法はわかるんですが フォーム上のコントロール(リストコントロール等)からエクスプローラなどにドロップする 方法がわかる方いますか。
105 :
デフォルトの名無しさん :03/08/30 13:44
あ、それからドラッグは薬、ドロップは飴じゃないよ。勘違いしないでね。
1を読めというせりふもききあきた
108 :
デフォルトの名無しさん :03/08/30 15:14
まぁまぁ。 >99のような奴の為にPin'sがあるのさ。 あっちは、過去ログ検索してそのログへのリンクまで 張ってくれるような親切な奴ばかりだ。 >99よ、家にお帰り・・・
ピンズソーズ?
111 :
デフォルトの名無しさん :03/08/30 16:26
ロマンティックあげるよ ロマンティックあげるよ 本当の勇気見せてくれたら ときめく胸にきらきら光った 夢をあげるよ
ツールボックスに自分でコントロール追加すると、 新しくプロジェクト作成したときに追加したコントロールが なくなってしまいます。追加したコントロールをそのままにするには どうしたら良いのでしょうか?
>>112 templateフォルダあたりを修正すればいいんじゃない?
やったことないけど。
114 :
デフォルトの名無しさん :03/08/30 16:46
VBとVBAはほとんど同じだと思うんですが 技術的、文法的にそんなに違いがあるもんですか?
>>114 文法的にはほとんど同じ。
ただライブラリっつーかコントロールが似ているけど違う。
VBSには型がないよね。むかつくよね。
VBS用の Visual Basic Editor キボンヌ。
むかつく? アンチVB厨は馬鹿だって言うけど本当だね。 型が無い言語なんてのは腐るほど有る。 JavaScript、Perl、Ruby、PHP、SmallTalk
VBには型があるのに・・・という意味で言ったんだが。
むかつくというか、考え方の違いだよ。
>>118 InterDevで出来なかった?
JScriptを含めて。
125 :
デフォルトの名無しさん :03/08/30 18:51
>>115 レスサンクス。おかえしにフェラしてあげるね
>>123 恥の上塗りか ?
CBool(), CByte() 関数なんかのヘルプ見ろ、ヴァカ。
まあお前は、こんな関数が必要になったことないだろ。
そういう奴向けだよ、VBS は。
そういう意味ではよくできているよ。
>>127 まあ、俺もちょっと熱くなりすぎた。
ただ、VBS はそれなりによくできてると思うよ。
最近ちょっとしたツールによく使ってるから、マジでインテリセンスのついたエディタが欲しい...。
>>128 どう見ても、JavaScript のソースにしか見えないんですが...。
>>130 おお、ホントだ。
う〜〜〜ん、欲しくなってきた...。
132 :
デフォルトの名無しさん :03/08/31 00:18
WAVEファイル等の音声波形データをFFT変換して周波数解析した結果を 画面に表示するアプリケーションを作成したいのですが、 波形を表示させるところまでは簡単にできたのですが、 そのFFT変換がわかりません。 試しにSin関数で周波数を合わせて一致させてみてできたのですが、 これだとSin波の波形しか判断できず無理でした。 FFT変換の処理は結構複雑そうで理解しにくいところがありますが どうすればFFT変換できるのかわかる方いましたら教えてください。
>>132 FFTってのは基本はそんなに難しいもんじゃないぞ。
高校生にだって理解できるものだし。
使い方はちょっと難しいかもしれんがな。
検索すればVBからでも使えるDLLやら、
VBのサンプルソースやらが結構見つかると思うよ。
134 :
デフォルトの名無しさん :03/09/01 14:52
年齢取得のプログラム作成で悩んでいます。 1〜100歳までの該当人数、その年齢の割合(%)を求め 最終的に平均年齢を取得します。 この平均年齢の取得方法で悩んでいます。 各年齢取得時に○歳○ヶ月という取得をしなければならず、 単純に 現年齢 = DateDiff("yyyy", rs_02("生年月日"), Now()) とは出来ないので、 現年齢 = DateDiff("m", rs_02("生年月日"), Now()) と変更しましたが、○歳○ヶ月という取得にはなりませんでした。 何か良い方法はないでしょうか?
下の式で、生年月日から現在何ヶ月経ってるのかってのは取得できてるんだろ? それを12で割った数とその余りが分かればいいだけじゃ?
>>134 意味がよくわからないんだけど、
Dim lngM As Long
lngM = DateDiff("m", rs_02("生年月日"), Now())
現年齢 = lngM \ 12 & "歳" & lngM Mod 12 & "ヶ月"
ではダメなんですか?
137 :
デフォルトの名無しさん :03/09/01 15:58
Form1←→Form2←→Form3の流れで Form2にコマンドボタンが2つ(Aは進む、Bは戻る)あるんですが Form3→Form2→Form1→Form2としたときAボタンが消える(透明)になってしまいます。 FormからFormに移動するときは現在フォームをUNLOADしてから 新フォームをSHOWしています。Form3→Form2の時は消えません。 原因が分かる方お教え下さい。 因みに、コマンドボタンのstyleはグラフィックにしています。 styleを標準に戻すとこの症状はなくなります。 よろしくお願いします。
138 :
デフォルトの名無しさん :03/09/01 15:58
>>136 ありがとうございます。
○歳○ヶ月の取得成功しました。
実はもう2つ問題があり、1〜100歳までと書きましたが
24歳以下、25〜99歳(1歳刻み)、100歳以上という区分けをしなければなりません。
そして最後に平均年齢○歳○ヶ月と表示しなければならず、
上手く行かず困っています。
>>138 何が分からないのかが具体的に伝わらないんですが・・・
その例だと、平均を出すのは
136 の lngM の総合計を総人数で割ったらダメ?
区分けは、Case文なり、データ取得SQLを変えるなり・・・
もっとも、VB6まではLongの上限が20億ちょいだから、
総合計をLongにとると、80歳平均で20万人超えるとヤヴァイが。
>138 >135-136を理解して月←→年の変換ができればどうとでもなるだろ? 小学校の算数レベルだぞ?
初めまして!教えて下さい。 VB6.0 で PrintFormを使って印刷したいのですが ピクチャボックスにラベルを貼り付けて印刷すると 赤い字が印刷されないのです。 Windows98では印刷されます。 しかし WindowsXP と Windows2000 ではダメなのですが 印刷方法を知っている方がいらっしゃいましたら教えて下さい。 よろしくお願いします!!! m(__)m
>>141 カラープリンターに繋がっていないか
プリンタドライバがあってないかドライバ設定があってないかバージョンが古いとか
そんなあたりが怪しいです。
143 :
デフォルトの名無しさん :03/09/01 17:07
>>139 説明下手で申し訳ないです。
年齢 人数 %
24 0 0.00
25 1 33.33
26 2 66.67
∫
99 0 0.00
100以上 0 0.00
合計 3 100.00
平均年齢 26歳○ヶ月
↑のような表を作成しています。
平均年齢を求めたくて悩んでいます。
ありがとうございます。 カラープリンタで印刷する時は良いのですが 白黒プリンタで印刷する時に 何も表示されないのです。 黒字にすると白黒プリンタでも字が表示されるのですが、 赤字にすると全く字が無く、真っ白けで 何も表示されていないのです。 同じプリンタでも Win98は印刷できて XPや2000は出来ないのですけど XPや2000でも印刷できるようには出来ないのでしょうか? よろしくお願いします。m(__)m
>>143 ( ゚д゚) ポカーン
各年齢の人数をカウントして、それぞれ総人数で割れば出るじゃん。
ロジックの組み立てが分からないのか?
それならそうと、どこかに一言書いとけ。
146 :
デフォルトの名無しさん :03/09/01 17:29
>>145 多分勘違いされていると思われますので…
表の最後に書かれている【平均年齢 26歳○ヶ月】
というのを求めたいだけで、他の部分は全て出来上がっています。
147 :
デフォルトの名無しさん :03/09/01 17:30
小学生以下の方が降臨するスレはここですか?
>>146 , 147
スンマソン・・・(´・ω・`)ショボーン
でも、それならそれで、139みたいに
年齢(月単位)の合計を総人数で割ったらイイんじゃ?
25歳 3ヶ月 ・・・ 303
26歳 6ヶ月 ・・・ 318
26歳 11ヶ月 ・・・ 323
合計/人数 = 26歳 3ヶ月
さすがVB使い
151 :
デフォルトの名無しさん :03/09/01 18:22
>>149 ありがとうございます。
無事解決できました。
複数のアプリが起動していて、フォームがたくさん起動していて、 あるフォームの下にあるフォームをウィンドウ表示でタスクバーを除いた画面いっぱいにひろげる プログラムを書いていただけないでしょうか? APIとかわからないのでソースをまるごとお願いいたします。 検索キーワードをもらっただけじゃスキル不足の者にはできませんので。 --------- l l l -------- ----l l l l ------- ↑このウィンドウの下のウィンドウをウィンドウモードで画面いっぱいに広げる。
>>152 >ソースをまるごとお願いいたします
氏ね
154 :
デフォルトの名無しさん :03/09/02 09:09
152ツマンネ
>>152 >検索キーワードをもらっただけじゃスキル不足の者にはできませんので。
それじゃどっちにしろできないよ。
つか、今度から夏休みの宿題は早めに終わらせろよ。
次の質問ドゾー
157 :
デフォルトの名無しさん :03/09/02 12:07
Type = ドロップダウンリストなコンボボックスで 選択項目が変わったのはどうやって捕捉すればいいんでしょう? Change イベントはテキストが変更されないと発生しないみたいなんですが… WindowProc をフックして WM_COMMAND メッセージの CBN_SELCHANGE を 捕まえるしかないんでしょうか?
…すみません、忘れて下さい。 リストの選択って Click イベントで取れるんですね。 吊ってきまつ…つДT)
忘れてって言われたやつほど覚えてるよね 余計なこと言わないのが吉。
161 :
デフォルトの名無しさん :03/09/02 22:45
Cではfloatは4バイトで表現されますよね? 4バイトのバイナリデータをfloat型に変換するには VBではどのように実装すればいいのでしょう?
>>161 そのCではというのはVC++ではという意味か?
>>162 VCというか組み込み機器です。
ある組み込み機器からfloat型のデータがバイナリで生でシリアルで流れてくるので
それをVB側のアプリで受信して単精度浮動小数点に変換するということです。
Cの規格では4バイトとは決まっていないんだが。
165 :
デフォルトの名無しさん :03/09/02 23:24
すみません、解決しますた。 IEEE形式の浮動小数点をMS Binaryの浮動小数点に変換すれば よかったみたいです。
167 :
名無し募集中。。。 :03/09/03 09:16
複雑なソートを行うのにデータベースを利用しようかと でファイルを作らず一切をメモリ上で済ます方法を教えて
>167 1.ソートのアルゴリズムを勉強します。 2.そのアルゴリズムを実装します。 3.テストが通れば完成
Webサーバ(Win2K AdvancedServer)数台に対して、IISが正常に起動しているか、
Webからちゃんとアクセスできるか確認するプログラムをVBで作ろうとしてます。
WebBrowserコントロールを使って各サーバのトップ画面を呼出して、返ってくれば正常、
来なければ異常と見なそうとしているんですが、この時、WebサーバのWindowsログイン
認証で引っかかります。
ユーザIDとパスワードだけなら
http:// (ユーザID):(パスワード)@aaa.bbb
で通るんですが、ドメイン認証がわかりません。
教えてください。
ちなみに正常/異常の戻り判定できるんだろうか・・・?
もし上記方法以外のもっといい手段があれば教えてください。。
お願いします
170 :
デフォルトの名無しさん :03/09/03 09:47
すみません 教えてください 普段 Cプログラマですが 今 VBさわっています Public objRset As New ADODB.Recordset のところで ”ユーザー定義型は定義されていません” と 出てきます。 VBで ADOを使う場合はプロジェクトの 設定等々必要ですか? よろしくお願いします。
>>170 [プロジェクト] - [参照設定] で 'Microsoft ActiveX Data Objects 2.x Library' をチェック
172 :
デフォルトの名無しさん :03/09/03 10:23
TimerコントロールというものはFormに貼って使うことしか出来ないのでしょうか?
フォーム無しのプログラムを標準モジュールで作っているのですが、TImerコントロールを使う方法が分かりません。
>>170 プロジェクト->参照設定でMicrosoft ActiveX Data Objectsにチェックすべし
>>173 どうもです。
やっぱそうなるんですか?
フォーム無しでは無理ですか?
>>174 ウインドウが無いとタイマーイベント受け取れないしね。
不可視のウインドウを作るってのはダメなの?
176 :
デフォルトの名無しさん :03/09/03 20:27
API 使う時のdeclare ... ってどんな動きしてるんでしょうか? VBだと構造体を値渡しできないから、例えば、 hoge(point pt) なんてAPIがある場合 declare function hoge(long a , long b ) とかしますよね。 これが気持ち悪くてしょうがないんですが… 実はただ単に引数リストをバイトストリームで渡してるだけとか?
ディストリビューションウィザードにて、デフォルトの インストールディレクトリの設定はできますか? 何度やっても、デフォルトのインストールディレクトリが 「c:\Program Files\Project1」になってしまうので 困っています。
>>178 SETUP.LST の Setup セクション の DefaultDir を編集しろ
すみません、解決しました。 setup.lstをいじったらうまくいきました。 お騒がせしました。
181 :
デフォルトの名無しさん :03/09/04 15:44
>>176 VBだとユーザー定義型(構造体)を値渡しすることはできないですよね?
だから自作で
type point long a longb end type
とか作って引数渡してもコンパイルエラーでちゃいます。
byrefで指定してもエラーが出ますし…
Excelのマクロで、マシンが登録しているネットワークプリンタプリンタの名称を持ってくるには どうしたらいいでしょうか?お願いします。 OS:Win2000 使用ソフト:Excel2000
184 :
デフォルトの名無しさん :03/09/04 17:22
>183 api呼ぶしかないとおもうけど、VBAでできるかどうかしらない
やっぱりAPIなんだ…。 ありがとうございました くだらない質問でごめんね(・∀・)
186 :
デフォルトの名無しさん :03/09/04 20:51
VB6.0でAccess→ADODC→DataGridと連結している。 ADODC1.Recordsetd![列名]=*** でデータを該当する[列名]に セットする場合に[列名]を文字列変数で指定するにはどうすれば よいのでしょうか?
>>186 なんか、こう、「文字列変数」と言われると、「ポッ」となるよね。
>>186 ADODC1.Recordset.Fields(文字列変数).Value=***
!使うよりもこっちの方が分かりやすいと思う。
ADODC1.Recordset.Fields("列名").Value=***
!の使用って推奨されていないんじゃなかったっけか。
もう一つついでに。 VBコード上で[列]を新たに追加するにはどうしたらよいでしょうか? AccessVBAにはColumns.Appendというので追加できるが VB6ではエラーとなる。それともVB6にはそのような便利な 機能はないのでしょうか?
>>190 よく覚えてないけど、ADOでデータベースの構造を弄くる場合、
ほかの奴を使うんじゃなかったっけ?
ADO Ext 2.5 for DDL and Securityってそれっぽい名前のがあるし。
BOCとかの市販OCXの質問はスレ違いでしょうか?
193 :
デフォルトの名無しさん :03/09/05 01:06
Recordset.AddNew でなくて?(ADO)
>192 とりあえず書いてみたら? C++で使っているんですが〜とかだったら間違いなくスレ違いだけどw
>>192 まぁ、BOCは社名変わった訳だが・・・
割合は低いだろうけど、住人にもユーザー居ると思うよ。
>>192 GrapeCityだな。
SPREAD、InputMan、QuickPakPro、LEADTOOLSあたりなら
使ってるぞ。質問に答えれるかはしらんがw
リッチテキストボックスで マウスによるドラッグで 複数行のテキストを矩形選択できるようにするにはどのようなプログラムを書いたらいいのでしょうか?
200 :
デフォルトの名無しさん :03/09/05 20:42
コンパイル時、Enumで確かに定義されている定数に対して 「変数が定義されていません」 のエラーが出てコンパイル(や実行)不可となるケースが発生してます 誰か原因は解りませんか? ソースはbasのみ。定数名はなにかとかぶってもいない。 右クリ>定義ではちゃんと跳ぶ。 Private Enum enmHoge ahya1 = 0 ahya2 end enum Pri〜部を切り>貼りすると戻るけれど無駄にソースを更新したくはないので。
>>200 VBのバグとしか思えんなぁ。漏れもうろ覚えだがこんな経験がある。
Pictureコントロールのlineメソッドの後にstopを書いて実行したあと、
そのstopを消すと何故かエラーが出て実行できなかった。
stop文跡にいくつか改行いれると動いたけど。
クラスモジュールが増えてきて プロジェクトエクスプローラーがごちゃごちゃになってきました。 プロジェクトエクスプローラーのクラスフォルダ内で さらにフォルダ分けしたいのですが可能でしょうか?
204 :
デフォルトの名無しさん :03/09/05 23:17
VB6.0でAccess→ADODC→DataGridと連結している。 Recordset.Findで文字列ではなくて文字列変数で探すには どう表記すればよい? 文字列の場合は一重引用符で囲む。 Recordset.Find”*** = 'WA'" 本の表記によると変数の場合は Recordset.Find"*** = '"&Text1.Text&"'” と&で囲みその外を'(一重引用符)で囲むとなってたがうまくいかない のですが。
205 :
デフォルトの名無しさん :03/09/05 23:19
↑ Recordset.Find "*** = '"&Text1.Text"'"
↑ Recordset.Find "*** = '" & Text1.Text & "'"
recordset.Fields(Text1.Text).Value
208 :
デフォルトの名無しさん :03/09/06 11:18
ドメインを入力すると、グローバルIPを返すプログラムを作りたいんで すが、どうやればいいかさっぱりわかりません。ググってみたんですが、 探し方が悪いのかいまいち見つからない・・・・・・ どなたか、方法を教えていただけたらうれしいです。また、参考になる サイトがありましたら誘導していただきたいです。 よろしくおねがいします。
>> 208 gethostbynameあたりを調べてみたら?
210 :
デフォルトの名無しさん :03/09/06 11:34
>>209 それは聞いた事がありますね。ローカルじゃなくても取得できるのです
か?
今さらなんですが、Winsockコントロールで winsock1.remotehost = "www.yahoo.co.jp"っていう風にドメインを指定 できるのでしょうか?(wwwってただのアドレスとしては必要ないですよね)
他で聞いてきます。
>>212 試すにも、どうやって成功したか判断できないんです(自分のドメインは
ダイナミックDNSのやつなんで、自分のパソコンからはできないし)かといって
試す相手となるアドレスもないので)
>207 recordset.Fields(Text1.Text).Value = *** ↑ これは188で教えてもらった「列」の列名がいくつかあるうちで それを文字列変数にしてどの「列」に該当するかを判定する式。 自分が質問してるのは「列」の列名は固定していて(わかっていて) いくつかあるレコードの中の「(縦)列」の要素が ”= 文字列変数” に一致するレコードを探すという意味も Recordset,Find ですが・・・
>>208 nslookupがやりたいのだろうか。
なにか根本的に勘違いしているようなので、
nslookupがどう名前解決をしているか、
調べてみたらどうだろう。
ドメインとホストについても、たぶん勘違いがあると思う。
とりあえず、既成の関数を利用すれば
目的は達成できると思うけど、せっかくだから、
いろいろ調べてみるといいんじゃないかな。
217 :
デフォルトの名無しさん :03/09/06 15:04
[ws.cls] Option Explicit 'ホストのドメインをIPアドレスに変換するためのクラス Private Declare Function WSAStartup& Lib "WS2_32" (ByVal V&, N As Byte) Private Declare Function WSACleanup& Lib "WS2_32" () Private Declare Function gethostbyname& Lib "WS2_32" (ByVal H$) Private Declare Sub MoveMemory Lib "KERNEL32" Alias "RtlMoveMemory" (D As Any, ByVal S&, ByVal L&) Private Sub Class_Initialize() ReDim D(255) As Byte WSAStartup &H202, D(0) '初期化 End Sub Private Sub Class_Terminate() WSACleanup '終了処理 End Sub
218 :
デフォルトの名無しさん :03/09/06 15:05
Public Function GetIP$(ByVal Host$) Dim P& P = gethostbyname(Host) 'ホスト名で情報ポインタを取得 If P Then '取得できた場合(非ゼロ) ReDim a(3) As Byte 'アドレス取得領域を作成 MoveMemory P, P + 12, 4 '情報からリストのポインタ取得 MoveMemory P, P, 4 '実ポインタを取得 MoveMemory a(0), P, 4 'IPアドレスを取得 GetIP = CStr(a(0)) & "." _ & CStr(a(1)) & "." _ & CStr(a(2)) & "." _ & CStr(a(3)) End If End Function
219 :
デフォルトの名無しさん :03/09/06 15:05
呼び出し Private Function ChangeAddres(Addres As String) As String '与えられたドメインをIPアドレスに変換する関数 引数はドメイン 戻り値はIPアドレス IPアドレスを渡した場合はそのまま返す Dim ChangeClass As ws 'クラスを実装する変数 Dim work As String On Error Resume Next Set ChangeClass = New ws 'クラスをロードする work = ChangeClass.GetIP(Addres) 'ホスト名:xxxのIPアドレスを表示 Set ChangeClass = Nothing 'クラスを解放する ChangeAddres = work End Function こんな感じでやると、ちゃんとできる時と、VB6が原因でkernel32.dll(忘れてしまった)にエラー と言われ強制終了されてしまう時ができてしまいます。 初期化とか解放とかの手順がどこかで抜けているのでしょうか?どなたか見てやって下さい。 スレ汚してすいません。
試してみたらwsastartupとかwsacleanupとかしなければエラーしないし、ちゃんとgethostbynameも動く事 が分かりました。しかし、メモリのリークとかが起こったら怖いんですが、別に飛ばしても大丈夫 なものなのでしょうか?
221 :
デフォルトの名無しさん :03/09/06 17:04
integer ABC; integer *p; p = (*int)(0x0123ABCD); /* ポインタにアドレスを代入 */ ABC = *p; /* 変数にポインタで指定したアドレスの値を取得 */ ↑ みたいなことをVBでやりたいです。 具体的には、VBを使って指定したメモリアドレスの値を 取得したいです。 ポインタの使えないVBでもできるんですかね? よろしくお願いしますm(__)m
VBを勉強したいのですが、よい入門書などありますか? プログラム自体が初めてです。 あと、以前にVB5みたいなやつで、フリーのお試し版みたいなやつがあったと思うのですが、 今もあるのでしょうか?
>>222 大型の書店に行って、いくつか見比べて決める事をお勧めします。
VB6の入門書って、あまりおいてないかもしれないけど。
>>203 元々、プロジェクトの依存関係を示すものであって、整理用ではないと思われ。
いっそのことActiveX DLL化するとか。設計を見直すとか。
227 :
デフォルトの名無しさん :03/09/07 11:52
6.0のデータレポートで、任意の位置に改行を設定するのにはどうしたらよいのですか? 超初心者質問ですみません。
○改ページ ×改行 でした。失礼しました。
229 :
デフォルトの名無しさん :03/09/08 00:46
FTPとローカルのミラーリングソフトを作りたいんだけど、 どうやって作るのか教えてください。 差分コピーしたくて、タイムスタンプで更新されたか比較しようとしたけど、 FTPのファイルはアップロードした時間になってるから、どれが更新された ファイルかわからんのです。結局全部更新されたみたいになっちゃう。
アップロードした時間より更新した時間のほうがあとなら アップロードすればいいだけじゃないの? ただ、FTPサーバーによっては時間が日本時間になっていたり GMTになっていたり単にずれていたりするんで、 ためしにダミーのデータをアップロードしてマシンの時間との 差分で時間を判断するというのは良くある話。
231 :
デフォルトの名無しさん :03/09/08 08:52
今マシンの再セットアップやってるんだけど、前々から疑問に思ってたことがあります。 VisualStudio6.0 Enterprise と Office2000 Premium をセットアップする時、両方とも MSDN が ありますけど、セットアップ先が違います。 これって共有することはできないんでしょうか? 結構容量も取りますし。 MSDN と言っても違うものなのかな? 今までは無難にそのままセットアップしてたんですけど... みんなどうしてます?
232 :
デフォルトの名無しさん :03/09/08 10:36
VB6 WIN2000 で文字をカラーで印刷する為に、PRINTER.FORECOLORで色を設定しても 印刷するとモノクロで出てきます。 同じようなやり方で他のプログラムは問題なく色が印刷されているので(同じプリンター) 何が悪いのかさっぱり分からず困っています。 プリンタオブジェクトのカラーモードはカラーにしてあります なにか考えられる原因はありますでしょうか
233 :
デフォルトの名無しさん :03/09/08 19:05
質問スレだけど、誰も回答する人がいないね。。。 質問溜まってるよ。誰か答えてくれ〜〜
>>231 違うもんだろ。同じだと思うんならカスタムセットアップで入れなきゃ良い。
>>232 マルチは氏ね!
235 :
デフォルトの名無しさん :03/09/09 08:13
CSVファイルからテキストを吸い出すと文字化けしてしまい困っています。 Excel形式で見ると文字化けしており、テキスト形式で見るとちゃんとした数値になっています。 状態は以下のとおり ,6−7−11, → ,20081110, ,001, → ,1, 何かプログラムを組む上で良い知恵をお貸しください。
236 :
デフォルトの名無しさん :03/09/09 08:17
誰か質問答えろ
238 :
デフォルトの名無しさん :03/09/09 09:35
>>235 あらかじめExcelの表示形式を文字列にしておく。
>>235 これを文字化けと言ってしまうところがVB厨のVB厨たる所以か・・・。
ADOデータベースを使って、 1週間前の同じ曜日条件にを参照したいのですが・・・ SQL文で作りたいのですが、教えてください。 お願いします。
242 :
デフォルトの名無しさん :03/09/09 10:52
>>235 この板には合わない質問ですよ。
どこかExcelの初心者スレで聞いた方がいいかと?
243 :
デフォルトの名無しさん :03/09/09 12:24
VB6 WIN2000 で文字をカラーで印刷する為に、PRINTER.FORECOLORで色を設定しても 印刷するとモノクロで出てきます。 同じようなやり方で他のプログラムは問題なく色が印刷されているので(同じプリンター) 何が悪いのかさっぱり分からず困っています。 プリンタオブジェクトのカラーモードはカラーにしてあります なにか考えられる原因はありますでしょうか
>>241 sql文の記述に関する質問ならsqlスレの方が適当かと。
まあどのみちその質問には誰も答えられないだろうな・・・
意味不明だよ。
245 :
デフォルトの名無しさん :03/09/09 13:46
単純に7日前ってことじゃない?
文字列を、シフトJISコードに変換するにはどうしたらよいのでしょうか。
>>247 何からシフトJISに変えるって?
質問の意味が分からん。
StrConvしたいだけかぇ?
250 :
デフォルトの名無しさん :03/09/09 18:35
学校でのプログラムの授業は今まで用語の説明だけだったのに、いきなり以下のような問題が 出題されました。 次の定積分を台形則を使って計算するプログラムを作成せよ。分割数は100とする。 I=∫[x=0,1]4/(1+x^2) dx ただし、プログラムには下の項目を含むようにすること。 1.変数はDoubleを使うこと。 2.積分する関数は、Functionプロシージャを使って計算すること。 3.分割数と積分区間はワークシートのセルから読み取る。(Cells( , )) 4.計算結果はMsgboxを使って表示する。 5.以下の型を用いる。 Function keisan (x as double) as double End Function Sub daiseki() End Sub 全く分かりません…ご教授願います。
>>250 それだけでは情報が足りない。3.の項目についてとか。
ま、講義に出ないクセして単位だけ取ろうとすんなよってこった。
252 :
デフォルトの名無しさん :03/09/09 23:36
VB6.0でAccess→ADODC→DataGridと連結している。 DataGrid(Recordset)をまずクリアしてAddNewでレコードを追加する。 Adodc1.Recordset.AddNew "フィールド1" "A” Adodc1.Recordset.Update ※→ Adodc1.Recordset.Fields("フィールド2").Value = "B" Adodc1.Recordset.Update Adodc1.Recordset.MoveFirst ※部分があると最後のMoveFirstのところでエラー表示となる。 「指定した行は見つからないため更新できません。最終読み取り時以降に 値が変更された可能性がある」とエラー表示。 ※部分をなくすとエラーなくとおる。 ※行で書きこもうとしたrecordsetが存在しないということらしいが なぜ存在しないということになるのかよくわからない。 Updateは念のためいれただけで、あってもなくても結果は同じ。 Connectstrinngによるopen、closeではなくて単純なRecordsetのみである。
”
ワークグループを変更したいのですが… どなたか教えてください。
255 :
ハンマープライス :03/09/10 12:05
ocxにカラー印刷するにはどうすればよいのでしょうか? カラープリンタでも白黒が出るだけで。。。。。。
>>255 俺も知りたい。
ずっと悩んでるんです。
257 :
デフォルトの名無しさん :03/09/10 17:48
ASPなんですが、 if Ubound(MyArray) > request.querystring("hid") then で左の式が評価されていないようです。 if文って両方に式を入れるのはアウトなんでしょうか?
自己解決しますた・・。 明示的に型変換して解決しました。 鬱
259 :
デフォルトの名無しさん :03/09/10 17:56
>>255 OCXに印刷?
OCXってコントロールとかの類のことをさしてるよね。
タブメニューを挿入したいのですが、どうすればいいのか分かりません。 タブメニュー等でググっても出てなかったので質問しました。お願いします。
まったく同じ処理をConnectstrinngによるopen、closeを使った Accesへの接続方式でやってみたらそちらはまったく問題なかった。 Recordsetでも @ADODCのよる連結コントロールと AConnectstrinngによる連結 とでは 有効になるコードとならないコードが存在するということでつか?
>>261 名称は、TabStripだよ。単に使いかたがわからないなら
ヘルプを見るなりして勉強して、もっと具体的になにかわからなかったら質問してねん。
タブを切り替えても、タブが切り替わりません!とか(w
>>264 ADODCとConnectStringではプロパティのデフォルトの値が違う物がある。
CursolLocationとか。
× CursolLocation ○ CursorLocation
デバッグプリントでレコードセットの全内容を表示する方法はありますか? EOFプロパティが思ったように動いてくれません。 (空だと思ってるのに,なんか入っている様子)
'ファイルに出力するときはH_F_File = True Public Sub WriteRSData_SUB(ByVal H_RS As ADODB.Recordset, _ Optional ByVal H_NameOfValue As String = "", _ Optional ByVal H_FieldLength As Integer = 10, _ Optional ByVal H_F_File As Boolean, _ Optional ByVal H_Path As String = "") Dim L_I As Long Dim L_String As String Dim L_Clone As ADODB.Recordset
On Error GoTo ERRORHANDLER L_String = "▼▼▼▼▼▼レコードセット情報▼▼▼▼▼▼" & vbCrLf L_String = L_String & "・変数の情報:" & H_NameOfValue GoSub OutputRS If H_RS Is Nothing Then L_String = "・RSの状態:Nothing" GoSub OutputRS GoTo ExitSub End If
If H_RS.State = adStateClosed Then L_String = "・RSの状態:Closed" GoSub OutputRS GoTo ExitSub End If Set L_Clone = H_RS.Clone With L_Clone .Filter = H_RS.Filter .Sort = H_RS.Sort 'MoveFirst If .RecordCount > 0 Then .MoveFirst End If
'データ作成(レコードセット情報) L_String = "" L_String = L_String & "・フィルター:" & .Filter & vbCrLf L_String = L_String & "・レコード数:" & .RecordCount & vbCrLf L_String = L_String & "・デ ー タ:" & vbCrLf 'データ作成(フィールド名) For L_I = 0 To .Fields.Count - 1 L_String = L_String & StrConv(LeftB(StrConv(CStr(.Fields(L_I).NAME), vbFromUnicode) & Space(H_FieldLength), H_FieldLength), vbUnicode) & " " Next '出力 GoSub OutputRS 'データ作成(データ) If .RecordCount > 0 Then Do Until .EOF = True L_String = "" For L_I = 0 To .Fields.Count - 1 If IsNull(.Fields(L_I).Value) Then L_String = L_String & String(H_FieldLength + 1, " ") Else L_String = L_String & StrConv(LeftB(StrConv(CStr(.Fields(L_I).Value), vbFromUnicode) & Space(H_FieldLength), H_FieldLength), vbUnicode) & " " End If Next .MoveNext '行毎出力 GoSub OutputRS Loop End If Set L_Clone = Nothing End With
GoTo ExitSub OutputRS: '出力したい文字列をL_Stringにセットしてから「GoSub OutputRS」を行うこと 'ファイルに出力かイミディエイトウィンドウに出力 If H_F_File = True Then Call WriteLogAppend_SUB(L_String, H_Path) Else Debug.Print L_String End If Return ExitSub: '締め L_String = "▲▲▲▲レコードセット情報ここまで▲▲▲▲" GoSub OutputRS Exit Sub ERRORHANDLER: Exit Sub End Sub
Public Sub WriteLogAppend_SUB(ByVal H_str As String, Optional ByVal H_Path As String = "") Dim L_Path As String L_Path = H_Path If L_Path = "" Then L_Path = "c:\log.log" End If Open L_Path For Append As #1 Print #1, H_str Close #1 End Sub
275 :
デフォルトの名無しさん :03/09/10 21:41
結局OCXでの印刷は分からないまま・・・ 誰か分かるや強いないのか?
276 :
デフォルトの名無しさん :03/09/10 21:48
↑カラー印刷ね
>>268 Debug.Print WriteRSData_SUB(Recordset)
なんかちょっと入り組んだ質問になると誰も答えてくれないのねここ やっぱりMLで質問してきます ノ
280 :
デフォルトの名無しさん :03/09/10 22:38
初歩的な質問なのですが、VBでDB検索、登録をしたいとおもってます。 テキストボックスに検索したいデータを入力して、コマンドボタンを押すと MSFlexGridに表示させたいんです。 Private Sub Command1_Click() strSQL="select * from tbl where DATA=Text1.text" これ↑どこをなおせばいいでしょうか? 初歩的ですいません。
281 :
デフォルトの名無しさん :03/09/10 22:55
strSQL="select * from tbl where DATA= '" & Text1.text & "'"
282 :
デフォルトの名無しさん :03/09/10 23:01
>>268 全部表示する必要あるのか?普通に
Debug.Print objRS.Fields(0).Value
とか、GetStringすればいいのでは?
283 :
デフォルトの名無しさん :03/09/10 23:18
質問です。お願いします。 フォームにテキストボックスとボタンがあるとして、テキストボックスの LostFocusイベントに数字6桁以外はエラーのメッセージボックス&SetFocusとしています。 ボタンはフォームをアンロード(終了)するのですが、テキストボックスのLostFocusと競合 してしまってアンロードできません。 どなたかLostFocusよりもキャンセルを優先される方法を教えてください。
>>283 LostFocusでやる場合はActiveControl(フォーカスの行き先)で場合分け。
Validateでやる場合はボタン(行き先)のCausesValidation = True。
誤)CausesValidation = True 正)CausesValidation = False
誤)CausesValidation = True 正)CausesValidation = False
>>278 そういった捨て台詞を吐くかどうかは良識に任されている。
せいぜい頑張れよ、厨房!
>>275 「OCXでのカラー印刷」なんて漠然とした目的じゃ、答えようがない。
漠然と質問するひとの多くは、プログラミングの資質に欠けていることが多いから、
適切に答えても無駄骨に終わるってのもあるが。
ひとついえるのは、印刷はプリンタ(ドライバ)に依存する部分が多い。
コーディングでどうにもならない可能性があるから、
そこらへんの切り分けができるまでは、なんとも書きようがない。
>278は釣り。つれるとますます付け上がりますよ
290 :
DrawModeプロパティ :03/09/11 09:59
機能Graphコントロールの描画モードを設定します。 書式[form.]Graph.DrawMode[=setting%] 設定値整数型(列挙型) 0 - 描画しない 1 - クリア 2 - 描画 (デフォルト) 3 - 瞬時表示 4 - コピー (クリップボード) 5 - 印刷 6 - ファイル保存 7 - 回転(True3Dグラフのみ) 8 - 更新(時系列グラフのみ) 9 - テンプレート読み込み 10 - テンプレート保存(データ以外のプロパティ) 11 - テンプレート保存(データを含むプロパティ) 12 - マップ保存(マップファイルへの保存) 13 - マップ追加(マップファイルへの追加) 用法設計時:設定および参照 実行時:設定および参照
てかOCX名すら書かないで回答が返って来るとでも思ってるのかね。 まともに質問すら出来ないやつばっか。だからVB厨と(r
てか本格的な質問はちゃんとしたサイトで聞いたほうがいいと思うよ。 あまり難しいと文句が返ってくるだけですから。 質問が溜まっていくだけで・・・。。。。(苦笑
>やっぱりMLで質問してきます そうしろw
ここは3流のあつまりだからね・・・
>>248-249 すいません、余りにも漠然としすぎていました。
文字列を入力して、その文字列のシフトJISコードを表示するにはどうすればよいのでしょうか。
297 :
デフォルトの名無しさん :03/09/11 12:11
>>296 TEXTBOXに入力?
VBのSTRINGはUNICODEだからStrConvで変換。
その結果をByte配列に取ればいけるんじゃないの?
>>296 文字のコードを16進数か何かで出したいだけか?
>>298 いえ、ocxに出したいんです。カラーで。
300 :
デフォルトの名無しさん :03/09/11 13:17
>>299 上手いけど、面白くない。
本気で書いていたら、あなたとは絶対一緒に仕事したくない。
301 :
デフォルトの名無しさん :03/09/11 14:06
もう、全然質問しても絶対答え返ってこないよね。このスレ
PrintScreenしてペイントに貼り付けて印刷
そうだよな、いまだに「ocxに印刷」の答えが出てこない。
304 :
デフォルトの名無しさん :03/09/11 16:27
あまり難しい質問はしないほうがいいぞ
インストールの方法を教えてください よろしくお願いしますm(__)m
306 :
デフォルトの名無しさん :03/09/11 16:39
つうか、お前らまず質問の仕方を質問しろよ。w
>>305 はまず主語がない。
何のインストールだよ。
308 :
デフォルトの名無しさん :03/09/11 16:50
イミディエイトウインドウをクリアするツールボタンを作ってみました。 結構便利なので、アップロードしておきました。 VBAIDEのデバッグバーに、追加しました。 一番右の、消しゴムのボタンを押すと、クリアします。 その、左のボタン1とボタン2は、でたらめな文字を書き込みます。 ボタン1、ボタン2を押してから消しゴムを押すと、クリアされます。 さらに、その右の、2つのビルトインボタンは、蛇足のようですが。 実は、ビルトインとカスタムの違いは、 ビルトインは、コードを編集しても、平気ですが、 カスタムのほうは、コードを編集すると、Clickイベントを受け取る オブジェクトが、リセットされてしまうため、ボタンを押しても反応 しなくなる点です。 それで、ビルトインのセーブ(ついでにコンパイルも)ボタンを近く に置き図面をセーブしたときに、ツールボタンを作りなおすように しています。 VBAのコードを修正したら、コンパイルし、セーブすると、右の 三つのカスタムボタンが、動くようになります。
>>307 それどう見ても目的語なんですが。
ちなみに主語はあんた自身。
310 :
デフォルトの名無しさん :03/09/11 17:22
>>307 CD入れてフィーリングでいけるだろ?
それでだめならヘルプよめ。
それでもだめならやめとけ。
311 :
デフォルトの名無しさん :03/09/11 17:24
簡単な質問には答えてくれるわけだが
ocxに印刷なんてそんな難しい質問されても答えられません。 勘弁してください。わたしたちはあなたほど頭が賢くありません。 もうこれ以上いじめないで!メーリングリストなりなんなり、 いけばいいじゃない!
つか、釣りや煽りにしても、つまらなすぎ。
シェイプが表示中の画面領域内に含まれるかどうかを判断したいのですが、 (シェイプが非表示/表示になっているわけではなくて) シェイプオブジェクトにそのようなプロパティが存在するのでしょうか。 また、存在しない場合、表示中の画面(図面)領域を取得する方法が 存在するのでしょうか。 どなたか、ご存知の方がおられましたらご教示願えませんでしょうか。
ここは質問するだけのスレです。 決して答えは返ってきません。
>>314 Top,Left,Width,HightがわかるんだからIf文で。
ここは煽るだけのスレです。 決して答えは返ってきません。
318 :
デフォルトの名無しさん :03/09/11 17:56
>なんかちょっと入り組んだ質問になると誰も答えてくれないのねここ >やっぱりMLで質問してきます >ノ それがいいと思う。
319 :
デフォルトの名無しさん :03/09/11 17:57
簡単な質問だったらコチラで十分かと
簡単な煽りだったらコチラで十分かと
322 :
デフォルトの名無しさん :03/09/11 18:00
仕事しろ
これだからDelphiしか使えないヤツラは困る。
あまり難しい質問は止めてください
>>325 はオレじゃないが、ワラタ(w
つーか、答える気はないぞ。
よしよし
328 :
教えてください :03/09/11 21:15
ファイル同期プログラムを作ったんですが、めちゃくちゃ時間がかかってしまいます。 まず、コピー先のフォルダ名、ファイル名を配列に取得し、 コピー元を見てフォルダ、ファイルがなければコピー先から削除する。 次に、コピー元のファイル名、ファイルサイズ、更新日時を配列に取得し、 コピー先に無かったり、新しかったり、サイズが違ったらコピー先にコピーする。 という手順です。 ファイル数は2万〜6万あって、リモートのサーバーからローカルにある DVDにコピーしているのですが、数時間掛かってしまいます。 ファイル情報の取得やコピーには filelen、filedatetime、filecopy等のVBのコマンドを使っています。 削除はshellでDOSコマンドを発行しています。 もっと高速に処理できる方法はありますでしょうか?
329 :
デフォルトの名無しさん :03/09/11 21:19
おい、質問きたぞ 誰か答えてやれ
330 :
デフォルトの名無しさん :03/09/11 22:09
redimで確保した領域はeraseで消せるみたいですが、 ローカル変数をredimで確保して、eraseせずにプロシージャを抜けてしまうと、 勝手に開放されるんでしょうか? Cみたいに自分で開放してやらなきいけないのかな?
勝手に開放されます
>>330 redimで確保した領域は開放される。
ただしオブジェクト配列だった場合は
必ずしもインスタンスが開放される訳ではないので気をつけよう。
>>328 まずどこで時間がかかっているか調べよう。
単純にコピーした場合よりもべらぼうに時間がかかるなら
ファイル情報の取得に時間がかかっているのだろうと思う。
リモートのファイルシステムをファイル一個一個調べていくなんてのは
時間がめちゃくちゃかかって当たり前なんで
リモート側でファイル情報を列挙するプログラムを動かして
ローカル側のプログラムとやり取りさせたらどう?
>>333 仰る通り、更新処理の前の段階で時間がかかっています。
リモートに情報を吐かせて、ローカルで処理すれば?と言うのは会社の上司も言っていました・・・。
HULFTでも使ってやってみようかと思います。
レスありがとうございました!
335 :
デフォルトの名無しさん :03/09/11 23:10
こんばんわ どなたかよろしければ教えてください 開発環境は Win2000 VB6.0 です 現在、 変数 から 構造体へのデータコピー 構造体 から 変数 へのデータコピーを Public Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, source As Any, ByVal Length As Long) というAPIを使用しておこなっています 構造体 → 変数 へのコピーは 変数へコピーしたデータの長さ分スペースを代入してメモリ確保をしています 変数 → 構造体 へのコピーはとくにメモリ確保などのことは意識していません いろいろなホームページを調べてみたところ 、なかには処理前に GlobalLock や GlobalFree というAPIを使用してメモリのロック・開放を行っているものもあればそうでないものもありました メモリのロックや開放は必要なのでしょうか? 現在、直接の原因が上記のことに関係あるかはわからないのですが 「メモリが'read'になりませんでした」 というアプリケーションエラーが出てしまい困っています そのエラーが出るのは特定の箇所ではなく、たとえば画面上に配置したボタンのこともあれば VBの実行ボタンであることもあります どうぞよろしくお願いします
writtenになることはできませんでした ってのも良く出るな・・・
337 :
デフォルトの名無しさん :03/09/11 23:32
そうなんです(T0T) writtenになることはできませんでした も頻発してるんです、、、>336さん readになることができませんでした の間違えでした、、、すいません
>>335 これいうと叩かれるかもしれんが、一言。
そんなことはVBでやるな。言語選択が間違っている。
VBではメモリー操作はやらんと決めろ、そんなところで悩むならCにしとけ。
339 :
デフォルトの名無しさん :03/09/12 11:01
VBでこのような処理はどうすればできますか? AプログラムでCSVファイルを内部テーブルに格納 このAプログラムは常駐しておく Bプログラムで、常駐しているAプログラム内の 内部テーブル情報を取得する 要するに最初のCSVファイル→内部テーブルが遅いので Aプログラムで内部テーブル作成はシステム起動時にしておいて 他のプログラムはソレを参照するって事がしたいのですが・・・ できますでしょうか?
更新が無いならDAOかなんかで繋いじゃえば一発のような気が。
341 :
デフォルトの名無しさん :03/09/12 11:07
VB6 WIN2000 で文字をカラーで印刷する為に、PRINTER.FORECOLORで色を設定しても 印刷するとモノクロで出てきます。 同じようなやり方で他のプログラムは問題なく色が印刷されているので(同じプリンター) 何が悪いのかさっぱり分からず困っています。 プリンタオブジェクトのカラーモードはカラーにしてあります なにか考えられる原因はありますでしょうか
>>339 338を書いたものだが、矛盾するが共有メモリー使えば?w
またはCOM・DCOMか?
343 :
いまさらNT :03/09/12 13:17
昔のシステムの作り直しをすることになりました。いまさらNT4+VB5という環境を作らないといけません。 とりあえずNT4+SP3+OptionPackまでは入れたけど、この後どーゆー順番でインストールしないといけなかったっけ?(;´∀`) 今検索しているところだけど「ここ見れ」というところがあればご教授くださりませ(拝)
>>343 2〜3年前の日経オープンシステムに結構まとまっていたはず。
厳密じゃなくていいなら、SP6あててVB5入れて、VB5のSP3かな?
顧問ダイアログ周りが違うのって、Win2000だったか、IE5だったか。
>>344 SP6は必須? いえ、現状のシステムがNT4SP4で動いてるそうなんで……
(ホントか?、という気がしないでもないけど(^^;))
>>345 NT4の安定してるSPって3(IE4なしの場合)と6(IE4ありの場合)でしょ?
SP4ってむっちゃ寿命短くなかったっけ?
インストールで飛んだりはねたりの思い出が(IE4のせいもあるけど)
まあ、必須ではないはずだけど、SP3->4よりは4->6のほうが敷居は低いはず。
>>346 えと、IE4はSP3で入ります……つか、OptionPackでデフォでつ(^^;
てことで、とりあえずこのまま(NT4SP3)VB5をインストールしてみます。 見事動けばご喝采(藁
>>347 そっか、OptionPackあるんだったね。
でもSP3はIE4必須ではなかったはずだよ。
で、OptionPackあるなら、尚のことSP6、しかもその後の修正当てたほうがいいのでは?
その作ったPCでリコンパイル&インストーラーの再作成ができるなら、上げるだけあげたほうがいいと思うけど。
>>349 なるほどです。ありがとうございました。
>OptionPackでデフォ≠SP3でデフォ⇒IE4
で、ここではモノは作りません。動作確認と仕様の調査だけです。
WinXPぢゃうごかねーよ、とのことなので、VB6もしくはAccess+VBA(環境を閉じるためだけ(^^;))で作り直すように、
とのオーダーなのでつ。
……コンバートだけで動く……わきゃねーよな(^^;
>>350 VB5->6って結構いけると思うけど。
ただ、4のころの3Dコントロール類を5で使っていると少しはまり。
あとの言語レベルでは問題ないはず。
6からたまに5をやると、ユーザー定義型配列を関数戻り値にできないとかSplitがないとかでいらいら。
OptionPackのどの機能にこだわってるんだろう。 個人的にあれは入れたくない(汗 素直にNT4+SP6a+IISでよくない? IEは、いきなりIE6を入れればアクティブデスクトップなし。 まずIE4を入れてIE6を入れればアクティブデスクトップあり。 インストールする順番は、IEの暗号化パックが障害になるケースが あったような気がするけど、基本的にはそう気にしなくていいと思う。 ただ、サービスパックは、アプリケーションをインストールするたびに 適用しなおす必要があったはず。まあ、最後に入れればいいのかな。
VBでWin32APIのPostmessageをつかってプロセスにキーボードの1を押すという情報を おくりたいのですが、しっぱいしてしまいます なにかちがってるのでしょうか? Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Const VK_1 As Long = &H31 Const WM_KEYDOWN As Long = &H100 'キーボードのキーが押された Const WM_KEYUP As Long = &H101 'キーボードのキーが上げられた hwnd = FindWindow("プロセス名", vbNullString) bRet = PostMessage(hwnd, WM_KEYDOWN, VK_1, null ) bRet = PostMessage(hwnd, WM_KEYUP, VK_1, null )
>>335 まず、GlobalLock() と GlobalFree() って...
GlobalLock() ⇔ GlobalUnlock(), GloablAlloc() ⇔ GlobalFree() って言うのは理解してる ?
単純にコピーするだけなら、GlobalLock(), GlobalUnlock() は不要。
でも RtlMoveMemory なんて API 使ってるぐらいだから、なんかの API に渡し/戻り値を使い たいんだろ ?
その使いたい API がメモリーのポインタを 要求/返す か、メモリーオブジェクトのハンドルを 要求/返す かを再度確認すべし。
(メモリーオブジェクトなら、コピーの前後で GlobalLock()/GlobalUnlock() が必要。)
>>338 言いたい事はわからんでもないけど、VB で組んでてここの部分 API でないとできない / API だとぐっと楽 と言う事もあるよね。
>>353 中身見てないけど...
> おくりたいのですが、しっぱいしてしまいます
何がどう失敗してるんだ ?
GetLastError() って知ってるか ?
>>354 >単純にコピーするだけなら、GlobalLock(), GlobalUnlock() は不要。
ハンドルとポインタの違いを理解されていますか?
わたしンち
359 :
デフォルトの名無しさん :03/09/13 19:51
デスクトップにテキストを表示させたいのですが、 何か方法はありますか。 デスクトップカレンダーのような感じで 実行後EXE自体は常駐しないようにしたいです
>>357 > なんかの API に渡し/戻り値を使い たいんだろ
→ なんかの API に渡したいんだろ。
or
→ なんかの API 戻り値を使いたいんだろ。
まあ、「戻り値」の前に「の」が必要だったな。
>>361 何か知らんが世の中無駄に敵を増やしながら歩くタイプだな。
そのテキストが30分ごとに更新したいのです。 壁紙だと更新できないですよね?
>>364 てか常駐無しでどうやって30分ごとに動かすんだ?
>>364 30分ごとに壁紙を更新すればいい。
>実行後EXE自体は常駐しないようにしたいです
いい加減幻想を抱くのは辞めておけ。
>>365 お前のおかげで答えが見つかった。
タスクスケジューラと組み合わせろ。
実現させるとすれば、アクティブデスクトップかな。30分ごとにリロードさせる。 ただ、VBでアプリケーションを作る必要なくなって、スレ違いになるわけだが。
>>361 まあ、なにを言わんとしてるかはわかっていたが、
そもそも、アンタの文章の「/」の使いかた、ヘンだよ。
自分の日本語が不自由なのをさて置いて、厨呼ばわりとはな〜。
>>371 お前、うろ覚えをうる覚えって覚えてるだろ?
374 :
デフォルトの名無しさん :03/09/13 22:37
なにコイツ
知ったかぶりは許すけど、
誉めてもらえなかったからって、
荒らすのはやめなよ
>>353 くん。
378 :
デフォルトの名無しさん :03/09/13 22:40
誰でも構わんが、うざい
>>335 の人はまだ居るかな?
構造体ってのはユーザー定義型のことかな。
CopyMemory使ってユーザー定義型を扱う時は、バイトアライメントが絡んで
くるので注意するように。
APIにVBのユーザー定義型を渡す時は自動でOSが調整してくれるのだけど、
メモリを直接弄ると正しくないメモリ位置を読み書きすることがある。
端的に言うと、コピー先の領域が足りなくて鰓る。
ユーザー定義型をメモリに書き出したい場合は、あきらめて一旦バイナリ
ファイルに書き出してバイト列として読み出すw か、ユーザー定義型の
項目を1項目ずつCopyMemoryするしかないかな。
#一発でどうにかする方法あったらだれか教えて。
>>370 で、そこまで言うなら、どう変なのかきっちり説明してもらおうか。
>>380 結局のところ構造体で受け取ろうが構造体の内容をバイトストリームで受け取ろうが・・・。
>>380 > APIにVBのユーザー定義型を渡す時は自動でOSが調整してくれるのだけど、
こんな機能いつついたんだ ?
385 :
デフォルトの名無しさん :03/09/14 00:56
で、結局説明できないんだろ。
>>351 えと……出来ちゃいました、コンパイル(^^;
コンバートも何もなしで*.exeが出来上がって、とりあえず動くところまではイっちゃいました(^^;;
ということで、環境はWinXP+VB6(SP6)+OfficeXP(予定)、.mdbへのアクセスあり、印刷ありですが、FAQのレベルでかまわないので
(1)VB5→VB6で「動いているように見えても実はココは要注意」という部分
(2)Jet3.5と4.0って共存できたっけ?
(3)VB独自での印刷機能実装で、VB5/VB6で違う部分。
特に(3)で何かノウハウをお持ちの方がいらっしゃればアドバイスをお願いします。一つ、途中でハングアップしてしまう帳票があるようです。
もちろん、これから独自に原因追求してみますが(^^;
>>352 いや、別にこだわってるワケではないんですよ(^^; お客さんの環境はOptionPack+SP3かSP4っつー話だったので、素直に合わせただけ。
でも、本当にSP4で止めてるんだろーか?(苦笑)
以上、よろしくお願いします。
388 :
デフォルトの名無しさん :03/09/14 04:29
粘着がいるな。しかも、自分以外は全部敵だと思ってるようだ。
>>363 の指摘、的確すぎ(w
>>383-384 確かにOSじゃないかもな。DLL側の処理だっけ?
APIをOSと呼ぶのは無理があるかねw
バイトアライメントは言及してる所が少ないのでハマったよ・・・
今回の件とは関係無いかもしれないけども。
391 :
デフォルトの名無しさん :03/09/14 13:34
ちょとスレとは関係ないんだけど、 金融機関コード(支店コード含む)の一覧ってどっかで落とせないですか? 接続先DBに入れたいんですが。
392 :
デフォルトの名無しさん :03/09/15 11:19
開発マシンがとうとうWinXpマシンに移行となりそうです。 VisualStudio6.0って、WinXpでも動くんだろうけど...何か不具合とかないのかな? WinXp対応を謳ったサービスパックとかも出てないようだし。
>>392 Format(2.5,"##0") の結果が 2 になる。→XPのSP1で修正。というのを
聞いたことがある。
たしかGeneral Dateかなんかもyyyy/mm/ddじゃなくyy/mm/ddで返さなかったっけ。 忘れた。ごめん。
>>387 > ということで、環境はWinXP+VB6(SP6)+OfficeXP(予定)、.mdbへのアクセスあり、印刷ありですが、FAQのレベルでかまわないので
>
> (1)VB5→VB6で「動いているように見えても実はココは要注意」という部分
基本的にはない・・・。というか当たったことはない。
だけど、VB6でもWinXPとOfficeXPは注意というか、保障なしだったよね。
WinXPの場合はUIの見た目が変わるから、ボタンとかの文字が入りきらないところがでるかも。
フォーカス持ったときに微妙に折れるボタンラベルとか。
> (2)Jet3.5と4.0って共存できたっけ?
バインドの方法によると思うけど。
でも普通JETはアーリーバインドするよな、だったらOKなような。
でも、こういう不安定要素ははずしたほうがいいような。
> (3)VB独自での印刷機能実装で、VB5/VB6で違う部分。
Printerオブジェクトでしょうか?
それなら同じはずだけど。余り使わないからわからない。
おまけのクリスタルレポートはなくなって、グレープシティーの印刷のおまけ版になったよね。
>>394 それって、コンパネのカレンダー設定とDLLのバージョンで変わる部分だっけ?
実は2000年問題でやられたことが・・・。
自分がつくったんじゃないんだけど、DATE型を明示的に変換(FORMAT)しないで文字列切り出しした馬鹿がいて・・・。
2000年になったらいままで、yy/mm/ddを返していたのが、yyyy/mm/ddを返しやがった。w
VB6.0では文字列をユニコードで扱うと言ってるくせに、次のコードで保存したテキストはシフトジスになっている。 Open "temp.txt" For Output As #1 Print #1, Text1.Text Close #1 ただしいのはこれのような気もするが、どの本にもこうは載っていない。 Open "temp.txt" For Output As #1 Print #1, Unicode(Text1.Text)→変換→Shift-Jis(Text1.Text) Close #1
>>397 どこの誰が言ってたんですか?
内部コードならUNICODEですが。
>>397 >>398の通り。
VBの内部変数はUNICODE、外部に渡すときはOS依存。
ないぶコード???なんぞや?
>>400 VBのString型のもってる文字コードとかその振る舞い。
VBは半角だろうが全角だとうが、文字型として扱った場合、1文字2バイトでしょ?
でもそれをAPIに渡したり、ファイルにはくときに変換してくれてる。
>>401 オレのVBが
Text1.Text = LenB("abc")
6という値を返してきたのでなるほど。
>>402 勉強ついでに、w
引数の文字列をStrConvでVBFROMUNICODEで変換してみ。
少しそのあたりの挙動がわかるから。
でも、VBの文字列は外に出すときは難しい。
APIにUINCODEで渡すとかってなると、OLEとかの基本からになるからね。
>>403 Private Sub Form_Load()
Text1.Text = "abc"
End Sub
Private Sub Command1_Click()
Text2.Text = StrConv(Text1.Text, vbFromUnicode)
End Sub
abcが?cbに文字化けするようだ?
>>404 ちがうちがう、その結果をLENBにかけるのよ。
LENとLENBにかけてみて違いをみると、コードがどうなっているかわかるから。
>>405 Private Sub Form_Load()
Text1.Text = "abc"
End Sub
Private Sub Command1_Click()
Text2.Text = StrConv(Text1.Text, vbFromUnicode) '= ?cb
Text3.Text = Len(StrConv(Text1.Text, vbFromUnicode)) '= 1
Text4.Text = LenB(StrConv(Text1.Text, vbFromUnicode)) '= 3
End Sub
人間にとってはのぞましくない結果といったところだな。vbFromUnicodeを使う人はいなくなるかもしれない。
私の説明もよくないや、 LENについては今回関係ないからとりあえず外しといて。 (補足) ほんとはShiftJISで変換した文字列はBYTE配列でうけるべき 文字列型はUNICODEで文字を持つのが仕様だから、それ以外のコードでもつと、 各関数の動作でおかしい部分が出てくるのは当然。 で、変換しないLENBは6、変換したのは3になってるわけですよね。 それがそのまま最初の問題点の解なんだけど。
>>407 うーむわかった。
VBの関数を使うときは引数がUnicodeでないといけないということだな。
Len(Unicodeの文字列)
InStr(Unicode)
Mid(Unicode)
409 :
supermathmania ◆ViEu89Okng :03/09/16 13:52
VBScriptの変数の内部処理形式を14(10進型)にすることは可能ですか? 内部処理形式14の変数の採りうる値の範囲についても教えてください。 内部処理形式は0,1,2,3,4,5,6,7,8,9,10,11,13,14,17,8192, 8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8209 以外にもありますか?
レスのたびに名前のレス番が更新されてくのはどうかと思った
Command1_Clickで、Windowsのバージョンをダイアログに表示するのを 作っているのですが、Windows95からはじめ、最新のWindows Server 2003をも 判別させたいのですが、どのようにして作ればよろしいのでしょうか。 PLATFORM MOJAR MINOR BUILD で判定しているのはわかるのですが、 細かいバージョンがわかってないので、判定がわかりません。 よろしくお願いします。
>>412 極論からすると、Windowsは外部アプリにバージョンを正しく伝えられるほど良くは設計されていない
自分のパソコンのどのポートが未使用なのかを調べるにはどのようなプログラムを書きますか?
S0=cstr(formatdatetime(cstr(now),"yyyy/mm/dd hh:mm:ss")) 2003/9/17 0:17:12 などを常に 2003/09/17 00:17:12 という文字列で扱いたかったが上のプログラムではだめだった。
Format$(CStr(Now), "yyyy/mm/dd hh:mm:ss") (´・_・`)
>>416 s0=format(now,"yyyy/mm/dd hh:mm:ss")
でダメかい?
っていうか、型がめちゃくちゃなんだがw
ヘルプぐらい見ようよ。
>>417-418 どーも。
いろいろと知ってすぎたから簡単なことを難しくしてしまってたようだ。
420 :
デフォルトの名無しさん :03/09/17 00:48
晒しage
>>416 ネタかと思うような・・・。w
正しくないことを一杯しってそうな。w
まあ、それはおいといて、これってどういう順序で変換されるか単純に興味がわいたので。
S0=cstr(formatdatetime(cstr(now),"yyyy/mm/dd hh:mm:ss"))
now -> cstr で文字列化
formatdatetime の引数は日付式だから上の結果をDATE形変換
その結果の文字列をCSTRしてると。
最初からすると、DATE -> String -> Date -> String -> String かな。w
422 :
デフォルトの名無しさん :03/09/17 10:18
>415 俺が思いつくのは使用しているポートを調べる。 DOS?のnetstatを使う
>>418 あなたも間違えていますよ。
正しくは、
s0=format(now,"yyyy\/mm\/dd hh\:mm\:ss")
です。
>>423 まず、VBって¥がエスケープ文字だっけ?
あと、文字列内って”以外は別に不要じゃなかった?
425 :
デフォルトの名無しさん :03/09/17 10:45
ユーザーコントロールについて デザイン時と実行時に違う表示をさせたい やり方教えて
>>425 Initializeに書いたりメゾット作ったり
>>426 スマソ
Ambient.UserMode ってので判定できるようでつね
失礼しますた
>>424 VBの言語仕様ではなく、Format関数の仕様によるものです。
:/はFormat関数の書式指定文字ですので、この場合\によるエスケープが必要となります。
>>428 \のことは今ヘルプ確認したらその通りでした。
ついでに : / も確認したけど、これに対しては不要だろ?
書式指定文字列としての役割がそれぞれ時間の区切り、日付の区切りなんだから。
そういう用途ではなく純粋に文字としてというなら、よっぽど細かいか屁理屈に思える。
430 :
supermathmania ◆ViEu89Okng :03/09/17 12:52
(再掲)VBScriptで変数の内部処理形式を14にするにはどうすればいいのですか?
>>430 14ってなによ、それをきちんとしてくれ。それまで調べないといけないの?
変数の型変換ならCxx関数だけど。
>>429 :/ はコントロールパネルでの設定に従って他の文字に置換されますが、
それを踏まえた上での「よっぽど細かいか屁理屈に思える」でしょうか?
>>433 元の問題が、文字列として”/”を出したいか、日付っぽい文字=使ってる人が認識してる表記
を出したいかによって、そこの回答がことなるでしょ?
だから、元が曖昧な限りはどちらも正解ではないし、どっちも正解だとなってしまう。
それを
>>418 を間違いと断じて
>>423 が正しいというのは、如何なものかと。
初めてカキコします。 VBでExcelシートのデータを取得しようとしています。 今まではADOをつかってデータを取得しましたが、ほかにデータを取得する方法はあるでしょうか。 ADOより簡単な方法があればいいのですが... ど素人の質問ですがよろしくお願いします。
>>434 それは苦しいぞw
まあでも、
>>423 も「正しくは」とは言わずに「厳密には」と言えば
こう反発は食らわなかったかな。
.DAOを使って読む。→ADOとそんなに変わらん。 ExcelObjectを使って読む。→書式や罫線も触れる。ただし激重
>>436 まあ、私も書きながら、バグ報告並の論理のすり替えだなと思ってたけど。w
>>433 さん、まあそういうことです。
>>435 ツール買っていいなら、Excelなしで読めるコントロールがあるからそれを買う。
安定性、スピードなどはつかったことないからしらん。
VBマガジンとか日経ソフトウェアには広告あると思う。
>>436 なるほど。もう少し気を付けて書くべきでした。
443 :
デフォルトの名無しさん :03/09/17 22:13
VB初心者です。 テキストボックスからDBにデータを複数登録するとき、 値が大きすぎるというエラーが出ます MaxLengthで指定してもうまくいきません どうすればいいんでしょうか? ちなみにデータ型はvarchar(10)です
>>421-442 メモ帳でVBScriptを書いてたときの質問だったけど、
VBScriptにはFormat関数がなかったので結局、
Mid関数やInStr関数を駆使して自作することにした。
2003/9/17 3:23:45
↓
自作プログラムを通過
↓
2003/09/17 03:23:45
参.VBScript もこのスレでOK。
>443 メッセージの通り10byte以上の文字列をいれようとしているだけじゃないの? つかDBMSも、どういう手段でその処理をしているのかも提示せんでまともに 答えられると思うのか?
>>447 まあ、初心者と書いてる段階で2chではつり、PCDNとかだと袋叩きですが。w
初心者ってのは免罪符になりません。
まじめに回答を得たいのならば、きちんと状況説明を行ってください。
これは言語スキルには関係ないし、経験には依存するけど本人なりの努力はしてくれ。
で、多分MaxLengthの仕様に引っかかってるのかな?
上のほうで少しUNICODEで議論したときに何かわすれてると思ったらこのプロパティの仕様だ。w
この値、文字数ではなくANSIでのバイト数のはずです。
だから、全角など入れたときにここだけ変な挙動をしたと思います。
文字長チェックをするのは、KeyPressかなんかでやるお約束的コードがあると思います。
ぐぐって下さい。
449 :
デフォルトの名無しさん :03/09/18 11:40
DataReportで用紙サイズの設定は、 プレビュー表示前やPrintReportする前に出来るのでしょうか? A4横サイズの物を印刷したいのですが…よろしくお願いします。
450 :
デフォルトの名無しさん :03/09/18 14:30
VB用帳票ツール、ActiveReportsについての質問です。 1ページ目を印刷することはできるのですが、2ページ・3ページ・・・と 改ページしていく方法がわかりません。どうしたら良いのでしょうか? よろしくお願いいたします。
>>450 その辺はヘルプとサンプルが普通にあるからそっちを見たほうがいいと思う。
そもそも、レポートの作りかたによって、改ページ制御に仕方が違うはず。
(アンバウンドかどうか)
452 :
supermathmania ◆ViEu89Okng :03/09/18 15:35
(再掲)VBScriptの変数の内部処理形式を14(vbDecimal)にする方法はあるのですか?
455 :
デフォルトの名無しさん :03/09/19 09:46
どなたか教えてください。 現在ある画面でボタン2個つけてあります。 そのボタン1の方でちょっと時間のかかる処理をしていると 処理中なのにボタン2を押せてしまいます。 マウスポインターを砂型にするだけじゃ駄目なのでしょうか・・・ 押せなくする方法がありましたら教えてくださいませ
Button1.Enabled = False
457 :
デフォルトの名無しさん :03/09/19 10:20
VB上でFlashのデータを再生するにはどうしたら良いでしょうか。 よろしくお願いいたします。
>>395 お返事遅くなって申し訳ない
>だけど、VB6でもWinXPとOfficeXPは注意というか、保障なしだったよね。
あらま、ホント? ソースきぼんぬ。
>おまけのクリスタルレポートはなくなって、グレープシティーの印刷のおまけ版になったよね。
Printオブジェクトっす。だからソースはかなり大きいけど、コンバートのとおりはいいです(^^)
>>457 VB6.0で、コンポーネント→Microsoft Internet Controls、を追加すると
ツールボックスにWebBrowserコントロールが追加されているので、
それをFormに貼り付けて、WebBrowserのNavigate2メソッドなどでFlashファイルを読み込む。
>>458 > >だけど、VB6でもWinXPとOfficeXPは注意というか、保障なしだったよね。
> あらま、ホント? ソースきぼんぬ。
うろ覚えと独断部分があるんだけど、基本的に後から出たものに対して、
MSは動作検証はしてOKは出すけど、動作保障はしないはず。
なので、VB6のパッケージに記載されているはずのないXPは保障外。
あと、たとえMSが保障しても動かないものは動かないのでその辺は考慮しておく。
まあ、この部分はXPとかじゃなく全てにいえることなんだけど。
461 :
デフォルトの名無しさん :03/09/19 12:44
VB6の「Toolbar ActiveX Control - Version 6.0」で、ボタンの幅を変更する にはどうすればよいですか? プロパティページで変更しようとしてもできないんです。入力したら、元の値 に戻ってしまう……
462 :
デフォルトの名無しさん :03/09/19 13:08
VB6.0を使用しています。MSFlexGridでチェックボックスやプルダウン は使えますでしょうか?
自己解決してしまいました。 どうも「Microsoft Windows Common Controls-3 6.0(SP5)」を使ってたのが悪 かったみたいなのですが、違うかも…
464 :
デフォルトの名無しさん :03/09/19 13:40
>457 flashのactivxを使う手もある
>>457 です
>>459 さん
>>464 さん、ありがとうございます。
実際には459さんのやり方でできました。
が、音声が鳴りません。単純にスピーカがいかれているわけではないです。
なぜでしょうか?
466 :
supermathmania ◆ViEu89Okng :03/09/19 15:00
Cdecを見落としていたとは。
一定時間おきにマウスカーソルの位置を記録するソフトを作りたいんですが、 timeSetEventとGetCursorPosを使ってます。 100msごとにGetCursorPosを呼び出しているんですが、困ったことに。 デザイン環境からは普通に動くが、.exeから単独で走らせるとクラッシュ。 なにか、いけないことやっているんでしょうか。 Timerオブジェを使ってとりあえず動作させてますが、データの取りこぼしが ひどくて…。
> なにか、いけないことやっているんでしょうか。 やってるんじゃないの?
ん〜聞き方悪いですか。 timeSetEventでGetCursorPosを呼び出すだけなら可能?
可能だ… まあ自分で解決してみます。
471 :
デフォルトの名無しさん :03/09/19 21:48
>>467 timeSetEventとか使うなら、VBでやらないほうがよいと思う。
コールバック関数の部分が多分まずいんだろうけど。
EXEの最適化を無くしてみるとか。
472 :
デフォルトの名無しさん :03/09/19 23:14
FTPとローカルのミラーリングってどうやって作るの? FTPのタイムスタンプを保持しようと思ったら、 やっぱ、ダウンロードしたあとにタイムスタンプを 変更する処理が必要なのかな? 差分コピーしようと思ってるけど、 むずかしい・・・
>>472 FTPソフトがどんな動作してるか考えれば・・・
>>471 ありがとう。timeSetEventには色々と制限があることを
学習した。基本的に駄目らしい。
今更c++とかやってられないので、9X系OSだと精度が
落ちると噂のSetTimer()で組んでみたらいけた。
XPならこれでもお仕着せのタイマーよりはるかに高性能
でデータ取りこぼしなしなので自分的にOK。
475 :
デフォルトの名無しさん :03/09/20 00:53
VBでbitbltを使ってマスク処理をすることはできたのですが、 消して、元の背景を表示するにはどうすればいいのでしょうか?
Timeは 13:34:55のように秒までもとまるけど、さらに秒より下の位の時間を表示させるには? 13:34:55:33
477 :
デフォルトの名無しさん :03/09/20 02:53
フォルダの作成日を変更するには どうしたら良いんでしょう・・・ 教えてください。
>>475 RPGでも作ってると仮定して・・・。
元の背景で塗りつぶせ。
>>475 元の情報を取っておく。
Undo実装なら、そのステップ毎をとっておく。
>>476 そもそも、VBのDATE型の精度ってどこまであったっけ?(手元に資料無し)
なければAPI呼び出しで取っていた数値を自作で文字列化するとか。
>>479 1秒間はセシウム原子の電磁波のすすむ具合から定義されてるんだけど、
1秒よりももっと何億分の1の細かい時間さえも数字として表示できるわけなんだけど、
世界標準時間を公開しているWebサイトまでアクセスするプログラムじゃないと実現できないってことか。
それともAPIなら秒より下の時間も取得できるのだろうか?
>>480 上3行正直なにいってるんだかわかんないから無視。
なにを実現していんだ?って。
APIなら下はとれるけど、それは当然そのPCから取得するので、その中での正しさ。
そもそも、上3行の精度の時計が欲しいなら、Windows上でやるのが間違い。
ハードで実現しろと。
受信したメールから添付ファイルを取り出す方法を教えて下さい。 OUTLOOKのVBAは使わない方法が知りたいです。 宜しくお願いします。
>>481 13:34:55:33
みたいに秒の1つ下のケタまでクライアントのシステムの時間を取れれば十分だから
そのAPIとやらをつかったコードを書いてみてくれんか?
>>483 私はやだ。
2chでないコミュニティーだったら袋叩きだぞ。
まず、自分で調べてやって見て、その上で再質問が基本。
APIとやらと言ってる時点でそのプログラム完成しないから止めたほうがいいよ。
で、そもそもVBのDATEでミリ秒もってないの?
自宅だし、別にやるきもないしでMSDNしらべるきもないからあれだけど。
>>484 せっかくあなたのヒノキ舞台を用意してあげたのに、みんなにすごいと言われる気がないならコード書かなくていいよ
あ〜〜〜あ、書いちゃったね。 ほっとけば、これぐらいの質問だったら、親切が人が現れるだろうに...。 まあ、自分で調べるこったな。
>>485 せっかくあなたに教育の機会を与えたのに。
あまり恥を晒さないほうがいいですよ。
2chといえど、なるべく普通にしようというのがスタンスなんで、
いちいち他人のコードなどタダで書けるか。ということで。
一応、484にも情報の調べ方を少しは書いたんだからそれをキーにして調べて見れば?
MSDNは行っといた方がいいよ。
>>486 このスレでは、荒らしとまちがえられるぐらいしつこく質問しないと解答が来ない。
>>487 猫かぶっちゃってまあ。このむっつりスケベ
Timerプロパティで0.00秒の単位まで取得できるやん
>>489 それは甘い。
Timerイベントは、その秒数経過”後”にイベントが1回発生するのを保証するだけです。
WM_TIMERが1ミリ秒後にメッセージキューに入るだけ。
それを処理できるかはOSに依存します。
なので、1ミリ秒を計測には使えません。
>>490 だれもTimerイベントの話などしていない。
493 :
デフォルトの名無しさん :03/09/21 01:19
メニューエディタで作ったメニューの色が変えれないです。 APIつかうんですか? フォームの色と同じにしたいだけなのに。
どうしてVB厨は独自のキモイ配色を好むのですか?
Outlook等でメールを送信するのを監視する方法はありますか? WindowsXPPro VB6のSP5です。
>>495 COMでOutlookオブジェクトでも作ればイベント発生するんじゃない?
いや、等がはいってるからプロトコル監視しか無いと思う。
>>497 raw socketなお話になって参りましたと。
499 :
デフォルトの名無しさん :03/09/21 12:40
すいません。教えて下さい。 FTPサーバーのファイルの存在チェックをしたいのです。 ただ、ファイルは0バイトのものもあるそうです。 Dirが使えそうなのですが、その後どうしたらいいのでしょうか?
>>499 何で実現したいかによるけど。
取ってきてエラーかどうかじゃだめなの?
VBのFTPコントロールって使わないから、いつもBATファイルをShellで読んでやってる。
501 :
デフォルトの名無しさん :03/09/21 13:24
一応Inetを使うつもりでいます。
>>501 じゃー若干すれ違い。
VB.NET質問スレがあるからそちらへどうぞ。
503 :
デフォルトの名無しさん :03/09/21 13:57
2次元配列への代入の仕方なのですがC言語のように int syoki_1[9][9]={ {26, 0, 0, 4,0,0, 0,0,0}, { 0, 0, 0, 0,0,0, 0,0,0}, { 0, 0, 2, 0,0,0, 0,0,0}, { 0, 7, 0, 0,0,0, 0,0,0}, { 0, 0, 0, 0,0,0, 0,0,0}, { 0, 0, 0, 0,0,0, 0,0,0}, { 0, 0, 0, 0,0,0, 0,0,0}, { 0, 0, 0, 0,0,0, 0,0,0}, { 0, 0, 0, 0,0,0, 0,0,0} 一気に代入する方法はあるのでしょうか?
>>504 すまんかった、INETか、勝手にnetみたら脳内変換かかっていた。
MS脳だ、鬱だ。
Inetをつかったことがないのでわからないけど、無い場合にgetして例外をはかないの?
それとも、相手のファイルが大きいからためし落としを嫌ってます?
早速のお返事ありがとうございます。 Dim syoki_1(1 To 9, 1 To 9) As Integer syoki_1 = Array(Array(26, 0, 0, 4, 0, 0, 0, 0, 0), _ Array(0, 0, 0, 0, 0, 0, 0, 0, 0), _ Array(0, 0, 2, 0, 0, 0, 0, 0, 0), _ Array(0, 7, 0, 0, 0, 0, 0, 0, 0), _ Array(0, 0, 0, 0, 0, 0, 0, 0, 0), _ Array(0, 0, 0, 0, 0, 0, 0, 0, 0), _ Array(0, 0, 0, 0, 0, 0, 0, 0, 0), _ Array(0, 0, 0, 0, 0, 0, 0, 0, 0), _ Array(0, 0, 0, 0, 0, 0, 0, 0, 0)) としたのですが、『プロシージャの外では無効です』 というコンパイルエラーが出るのですが、どこかおかしいでしょうか?
>>506 syoki_1 = Array(Array(26, 0, 0, 4, 0, 0, 0, 0, 0) & _
Array(0, 0, 0, 0, 0, 0, 0, 0, 0) & _
Array(0, 0, 2, 0, 0, 0, 0, 0, 0) & _
・・・
>>505 本番環境も、テスト環境もない素敵な職場なのですよ。
納品する時に環境つくるとかほざいてます。
VBで他のプログラムのウインドウサイズを変更するプログラム を作っているのですが、ウインドウのサイズを変更するのは無理でしょうか? ご教授いただけますでしょうか。 現在の完成度はこうです。 他ウインドウの最大化と最小化は出来ました。 Private Sub Timer1_Timer() Dim y As Integer Dim r As Long Dim hwin As Long Dim nCmd As Long y = GetAsyncKeyState(121) If y <> 0 Then hwin = FindWindow(vbNullString, "プログラム名") If hwin = 0 Then r = MsgBox("ウィンドウが存在しません", vbExclamation + vbOKOnly) End If r = IsIconic(hwin) If r = 0 Then nCmd = SW_SHOWMINIMIZED Else nCmd = SW_SHOWMAXIMIZED End If r = ShowWindow(hwin, nCmd) End If End Sub
追記: 上のコードでは、 GetAsyncKeyState関数 FindWindow関数 ShowWindow関数 IsIconic関数 を使っています。
>>509 MoveWindow APIでいいんでない?
>511 疑問に思っているのは、 MoveWindowで他のプログラムのウインドウサイズを変更する場合は、 他のプログラムはどう指定すれば良いのか、といった点なんですよね。 どういう記述にすればよいのでしょうか?
>>512 えっ?hwndでいいんじゃない?
そういうことじゃなくて?
>513 Ret = MoveWindow(Form1.hWnd, 200, 200, 640, 480, 1) こういう記述になるじゃないですか? これのForm1の部分を、サイズを変えたい別プログラム (例えばこのプログラムとは別にペイントを開いているとしたら、 そのペイントのウインドウサイズ) を変更するにはForm1の部分をなんと記述すればよいのか、という事です。 検索してるけど分からない・・・・゚・(ノД`)・゚・
'バッファを確保 Name = String(250, Chr(0)) Leng = Len(Name) 'アクティブウインドウのハンドル取得 rtn = GetActiveWindow() 'アクティブウインドウのウインドウ名取得 rtn2 = GetWindowText(rtn, Name, Leng) Ret = MoveWindow(rtn.hWnd, 200, 200, 640, 480, 1) オブジェクトが無い言われる罠
私が何をしたいか、っていうのが明確じゃない? えっとですね、フルスクリーンのみでしか起動しないソフトあるじゃないですか? あれのサイズを変更してウインドウでも起動できるようにしたいな、と思って今作ってます。
FindWindowでウィンドウハンドルを取得してるんだから hwin = FindWindow(vbNullString, "プログラム名") MoveWindow(hwin,200, 200, 640, 480, 1) でいいんじゃない? ようはウインドウハンドルが何を指しているのか 理解しているかどうかが問題な気がするけど
>>515 rtn = GetActiveWindow()
のrtnはウィンドウハンドルだよね
んじゃ
Ret = MoveWindow(rtn.hWnd, 200, 200, 640, 480, 1)
は
Ret = MoveWindow(rtn, 200, 200, 640, 480, 1)
でしょう
>517,518 なるほど、ハンドルはそういう意味でしたか。 どうもありがとう、おかげで分かったよ。 んでね、今やってみたんだけど、 ちゃんと動いてるみたいなんだけど、 フルスクリーンのプログラムはウインドウにならず、そのまま・・・。 なんでできないんだろ? コードは Ret = MoveWindow(rtn.hWnd, 200, 200, 640, 480, 1) を Ret = MoveWindow(rtn, 200, 200, 640, 480, 1) にしただけです。
>>519 それはゲームとかDirectX使ってたりしない?
それならたぶん無理だと思うけど。詳しくはないけど。
それか、ノーマルウィンドウに変更してから
MoveWindowするとか・・・
とりあえず、やったことないからわかんないな
>520 某MMORPGです。 DirectX使っていると思います・・・。 まぁ、個人的にROみたいにゲームしながらほかの事、 ってのがやりたかっただけなので、 VBで無理だったらおそらく私には無理でしょうってことであきらめます^^; でも、良い勉強になりましたよ。 2chも結構役にたつ板とかあって、 そういうところって良いですよね^^ 色々教えてくれた人ありがと〜
DirectX使ってるゲームならDirectX用のAPIで 制御しないといけないんだと思う。 VBでもできなくはないと思うけど。 昼間なら詳しいひともいるかもね。んじゃ!
>522 それじゃぁまたちょくちょくここ覗いてみます。 今日はもう寝ます〜。 おやすみぃ〜^^
DirectXのフルスクリーンモードとウインドウモードのコードは 違う(メニューがないだけじゃなく)のでフルスクリーンを 必ずウインドウモードにできるとは限りません。 ゲームが対応していないとウインドウモードにできないし、 ウインドウモードにする方法はゲームにより違う。 ALT+ENTERを送れば大抵ウインドウモードに出来ると思うけど、 話からするとウインドウモードに出来ない奴をやろうとしているみたいだね。 DirectX絡みのAPIをフックしていろいろと大変なことやれば 出来るのかもしれないけど、 大抵はVMWare(PCエミュレータ)を使えって話になる。
なるほど…エミュレータという手がありましたか。 VBスレだしVBで答えてくれる神きぼん! まぁ無理だったりめちゃくちゃ難解なコードになるなら あきらめろってことだろうけど
なるほど…エミュレータという手がありましたか。 VBスレだしVBで答えてくれる神きぼん! まぁ無理だったりめちゃくちゃ難解なコードになるなら あきらめろってことだろうけど
>>524 VMWareってDirectXまでエミュレートしてくれるの?
VirtualPCのほうは、一応エラー出さずに動くけど
表示には反映されないっぽい。
>>525 遠まわしにムリだと言われてるようなもんだぞw
特に
>VBスレだしVBで答えてくれる神きぼん!
と言ってるレベルでは恐らくむりぽ。
追記。諦められないなら、DirectX SDKのサンプルで WindowとFullScreenを切り替えてるやつ(ほとんどがそう)を 見てみるといい。多分諦められる。
ソートのためだけにデータベースをつかってるのはオレです。 あ お い え う→う え い お あ Order By 〜 Desc
VBだからこんなことになってしまうんだ
どんなことだ
ファイルを開くダイアログでファイルパスを取得するときに ファイルパス内にハングルが入ってると正しくファイルパス が取得できないんですが ハングルの部分が?に置き換わってしまってるようなんです これはどうにかならないものか 環境変えたりハングルの部分を変えるしかないのかなとおもってたんですが メモ帳やワードパッドだと開けるのでなにか方法あるんですかね?
>>533 OSは何語版?
VBの場合は内部はUNICODEなんで認識はすると思うんだけど、
CommonDialogが日本語対応してるんかな?
もしあれだったらVBの顧問ダイアログじゃなくて、APIからダイアログを呼び出して見れば?
>>534 早速レスありがとございます
VB6.0
OSはXPで日本語です
元々ファイルを複数選択にするためにAPIでダイアログを作成してて
CommonDialogでもためしてみたんですがだめでした
>>535 VBにも限界があったということだね。
諦めるのが良いよ。
>>535 そもそもで、とうぜんハングル語フォントは入ってるんですよね。
あと、Dir関数の結果とか、FileSystemObjectとかの結果ってどうですかね。
それによっては自作ダイアログで逃げるしか。
あとAPIってSH系の中にダイアログ出せるのってなかったっけ?
>>536 VBの限界ですか
この際、違う言語で挑戦してみます
レスありがとうございました。
>>537 ハングルフォントは入ってます
CurDirをdebug.printで見ても?に置き換わってます
FileSystemObjectってのはためしてないです
>あとAPIってSH系の中にダイアログ出せるのってなかったっけ?
探してみます
Winampのプレイリストウィンドウのようにウィンドウ同士をくっつけることってできますか? VB6を使用しています。
>>540 Part21の297以降あたり読んでみて
VBってマルチランゲージに対応してたっけ? VB.NETは対応、VB5は対応してなかった。VB6は知らない。
PCDN見て見れば、検索かけたけど韓国語で15件引っかかったよ。 あともしあそこで質問するなら、マナーは気を付けて。 533さんみたいな書き方なら十分だと思うけど。
546 :
デフォルトの名無しさん :03/09/23 16:25
以前C言語で作ったプログラムがあるのですが、 ユーザーインターフェースをVBで作っています。 これらを合体させるには、 C言語をVBに書き直すしかないのでしょうか?
>>546 Cのビジネスロジック部を上手く抜き出して、インターフェース整えてDLL化。
もとが綺麗ならこれでいいト思うけど、元が屑だったら全部作り直したほうがよいと思う。
いくつかのEXEに分ける手もあるね。 実際に動作する部分はC言語で作成したものを流用し、 設定や起動をVBで作ったGUIでおこなうような感じ。
>>547-548 うっ、話についていけません(泣)
>>547 >Cのビジネスロジック部を上手く抜き出して、インターフェース整えてDLL化。
>>548 >設定や起動をVBで作ったGUIでおこなうような
について何を勉強したらいいでしょうか?よい参考書、サイトなどあれば教えて下さい。
>>549 まず、Cの普通の知識(読み書き程度)とVBの基本。
DLLはMSDNとかにヘルプに簡単な作り方はある。(要VC)
基本的にはCの関数の呼び出し部を外に公開してVBから呼びだすだけ。
CとVB間の変数のマップはヘルプにある。
あとは上手くグーグルとか使って、入門まとまってるところを探して見てください。
551 :
546,549 :03/09/23 19:12
>>550 まず、Cの普通の知識(読み書き程度)とVBの基本。
>DLLはMSDNとかにヘルプに簡単な作り方はある。(要VC)
DLLは、一度作った事があるのでOKです。
>基本的にはCの関数の呼び出し部を外に公開してVBから呼びだすだけ。
>CとVB間の変数のマップはヘルプにある。
VBからDLLの利用方法もOKです。
となると、Cの関数呼び出し部を外に公開…
今のところ、すべて構造体をかなり使っているので
クラスに書き換える必要がありますでしょうか?
>あとは上手くグーグルとか使って、入門まとまってるところを探して見てください
かなり探しているのですが、「CとVBの合体」を専門用語でどんな単語を検索したらよいのかがわからず
結局検索にひっかかりませんでした。単語のヒントなどございませんでしょうか?
>>551 構造体をVB-Cで渡せないことはないけど、考慮が必要だったはず。
それもヘルプにある。
そこに労力を割くか、インターフェース関数を上手く作るかはものによる。
私は画面入力をそのまま渡すようなイメージで関数の引数をとってしまうけど。(構造体は使わない)
カプセル化をイメージして、Cの部分は全て覆い隠してしまうと。
検索キーはある意味自分の勉強にもなるんだけどね。
DLL VB C 関数だと一杯だろうから、あと入門、自作、呼び出しあたりかな?
それらのキーで絞ったところをみて、更にそこの用語で絞るとか。
553 :
546,549,552 :03/09/23 20:38
>>553 C側のつくりによるけど、VBが渡せないような型の場合に、一度受けるための関数
不要なパラメータとか、渡しにくい部分とかをベタにつくっちゃうけどね。
話は若干逸れるけど、文字列の参照渡しの方法はあります。
もし必要ならBSTR型を調べてください。はまりますけど。w
555 :
デフォルトの名無しさん :03/09/23 21:06
質問だけどVB5.0のソースって.NETで使えるかい? 古い本に付いてたソースプログラムを書きたいんだが
>>555 ActiveXにして再利用してください。
処理の内容を把握してれば書き換えはかえっていい練習 になる。
559 :
デフォルトの名無しさん :03/09/23 22:58
if 2003/09/23 06:20:30 > 2003/09/23 22/35/10 then ってな風に、時間で条件式ってかけますか?
>>559 DATE型の比較なら大きい方が未来です。
文字型の比較でも大きい方が未来・・ってVBはできたっけ?
まあ、差を取るとかあるかもしれないからDATE型にして比較しとけ、
562 :
デフォルトの名無しさん :03/09/23 23:18
質問です。 タイピングソフトのフリーソフトをダウンロードしたんですが、 このソフトのプログラムを見る事は出来るんですか? 出来るんならやり方を教えて下さい。 VBで開発してるみたいなんですが。どうでしょう?
565 :
デフォルトの名無しさん :03/09/23 23:35
プログラムをみたいだけなんですが。それも無理?
VBのコードをリバースすることは無理。 リバースエンジニアリングとかで検索してみれば。
>>565 基本的には無理。アセンブラやマシン語をそのまま読むことはかろうじて可能。
568 :
デフォルトの名無しさん :03/09/23 23:47
そーなんですか。サンクスです。 独自のタイピングソフトを作ってみたいとおもっとるんですが 何かよい方法はありますか?
570 :
デフォルトの名無しさん :03/09/23 23:51
それもやってみたんだけど上手くいかなくて。 でもそれしかないなら頑張るしかないな〜。
571 :
デフォルトの名無しさん :03/09/23 23:54
何か良いサイトか良い本があれば教えて下さい。
>>566 VBなP-codeに対応した逆アセンブラなんてあるの?
>>571 何の処理をする必要があるか一つ一つ分析して一から作れ。
>>572 P-CODEと決まったわけじゃないと思うが。
質問します。 ショートカットファイルをVBから起動させることは、 できないでしょうか?shell関数でやってみたけどだめでした。 拡張子を.lnkにしてもだめでした。知っている方いましたら、 ヒントだけでも教えてください。shellで実行できるぞボケ!!ってときは 思いっきり叩いてください・・・
できるぞヴォケ
577 :
デフォルトの名無しさん :03/09/24 18:36
ショートカットファイルからリンク先を取得 ↓ shellで実行 でいけると思う。
shell関数はどの本みてもexeファイルを起動すると
書いてありショートカットは.lnkなので駄目かと思いつつ
ショートカットもある意味実行ファイルじゃないか?と思ってみたものの
やはり駄目でした。
>>577 やはり駄目なんですか・・・
ウインドウズの自動実行のフォルダにショートカットを入れておくと
起動するところから、ウインドウズはショートカットを叩いてると思うわけですが、
VBからはたして同じことが可能なのか・・・
わかる方いたら教えてください。
>>578 で、肝心のショートカットファイルからリンク先を取得するにはどうすればいいの?
まさか知らないで適当なこと言ったわけじゃないよなあ。
書いてる間に、レスついてました。
>>578 ありがとうございました。その方法試そうとおもいます。
さすがVB房は違うな
VC房の俺に言わせれば ShellExecuteEx() を使え
よく考えたら結局リンク先はEXEファイルにたどりつくんですよね? それだとまずいと思うことがあって・・・ 私が他サイトで聞いた文を引用します。 Fortranにて作成されたアプリケーションをVBからShellで起動させてる プログラムがあるのですが、そのアプリケーションがWin16アプリなんです。 今までのOSでは動作していたのが、XPにしたら動作するXPとうまく起動しないXPが 出てきてしまいました。原因はNTVDSのWowexec.exeが死んでくれたり死ななかったり するためだと思われるんですが、そのFortranのEXEが膨大な記述量でコンパイラが、 昔のワットコムのコンパイラしかないため、Win32アプリに切り替えるの断念しました。 そこで、そのEXEのショートカットを作り、別メモリ領域で実行にする にしたら うまく動くようになりました。しかし最終的にそのEXEをVBから呼ぶのに Shell関数ではやはり、実行できませんでした。 どうにかしてショートカットファイルをVBから実行させたいのですが、 いい方法がありましたらご教授お願いします。 ↑こんなこと可能でしょうか?
>>584 手持ちのAPI Referenceを探したところ見つけました。
ありがとうございました。何とかいけそうです。
一応VC++も勉強していますが、そこまでAPIに詳しくもなく探し方も下手だったため
お騒がせしました。こんなに早くレスがつくと思いませんでした。
ありがとうございました。
580デフォルトの名無しさん[sage] 03/09/24 18:45 ID:
>>578 で、肝心のショートカットファイルからリンク先を取得するにはどうすればいいの?
まさか知らないで適当なこと言ったわけじゃないよなあ。
591 :
デフォルトの名無しさん :03/09/24 23:26
BOCのiNetTransferを使って、FTPからファイルの 情報を取ったり、ダウンロードしたりするソフトを 作ってるのですが、 「10054:リモートホストが強制的に接続をクローズしました〜」とか 「予期しない一般的なエラー」とか たまに出たり出なかったりするのです。 これって、どんなときに出るエラーですか?
>>545 PCDN初めて知りました。
検索もいろいろかけてみたんですがなかったです
で、質問する前にためしてみたいことがひとつ浮かんだので
ためしてみました。
仮にファイルを開くダイアログからファイルパスを
ちゃんと取得し開けるのかと思ったので
fp="D:\aaa\" & ChrW(ハングル文字コード) & "\" & "ファイル名"
fpはWebBrowserコントロールではちゃんと表示され
FileSystemObjectでも開けたんですがバイナリで開きたいため
Open fp For Binary Access Read As #1
としたところエラーが出てしまいました。
ということでVB6.0の限界なようです
レス下さった方ありがとうございました
諦めがつきました
593 :
デフォルトの名無しさん :03/09/25 00:10
すいません、教えて下さい。 VBでステータスファイルを判別しなければなりません。 このステータスファイルをマニュアルで調べると、 1バイト目が"00X0"ならエラーである、と書かれていました。 Dim i_file(10) As Byte Open "c:\stats.txt" For Binary Access Read Lock Read Write As #1 Get #1, , i_file とした後、メッセージボックスで1バイト目を "00X0"という書式で表示したいのですがどうしたらよいのでしょうか?
>>593 本当に「00X0」なのかい?「0X00」じゃない?
もしそうなら「0x00」ってのはc言語系での16進数の表記方法だから
VBに直せば「&H00」ってことだよ。
595 :
デフォルトの名無しさん :03/09/25 00:28
やっぱり00x0になってました・・・ Msgbox(i_file(1))ってやると、0みたいに整数一桁が表示されるのです。 &H00みたいに1バイト目を4桁表示させるにはどうしたらよいのでしょう・・・
>>595 バイナリエディタで開いた場合は1バイト目には16進数で何が入ってる?
right("00" & hex(i_file(0)),2) & "X0"
Byte型:0〜255の整数値 16進表記だと0x0〜0xFF 00X0などという表現は存在しない。
もしかして誤植・・・
はきだされたステータスファイルが今手元にないので調べられませんです。
家にいるので申し訳ないです。
>>596 でOKですよね?これでやってみます。
お世話になりました。ありがとうございました。
>>598 多分これで動くと思います…。
>>597 で指摘されている様に本当なら後ろにx0がつく事はないと
思うのですが…。(何かのローカルルール?)
ヘキサにした場合、前ゼロは省略されるんで596の様にすれば
表示上は、”00x0”になりますです。
フォーカスが他のウィンドウにあるとき、一定のタイミングでプログラムのタスク(っていうのかな)を点滅させることってできますか? 要は勝手に作業をさせておいて一定の条件で作業完了をお知らせする、みたいな…。
>>600 FlashWindow FlashWindowEx のことか?
テキストボックスに2000行ほどログを排出させながらずらーっと見ながらできるプログラムなんですが WINXP,2000だと極端に重くなります。 Win95,98ではさほど重くならないのですが対策はありますか? (この形態のままで。) すでに実行形式である場合OS側で軽量化するすべはありますか? テキストぼっくにログを排出させまくるのはタブなようですが何とかならんですか?
あぁ、こんなピッタリなAPIがあったんですね、情報サンクスです。 さっそくググりまくって使い方を覚えます。
あるダイアログ形式のアプリ (.exe) から、 別のアプリ(.exe) をシェルから起動し、 後者を前者のモーダルとして使用する ような構成はVBでは可能でしょうか? 前者から、後者を起動する際に、パラメータ 渡しでハンドルを伝えるようにすれば・・・ と思ったのですが、親のハンドルを持ってて も、自身で勝手にモーダルになることは できないようで・・・・・挫折してしまいました。 先輩諸兄方々、すみませんが、何かヒントを もらえないでしょうか?
FlashWindowEXですが、使い方でちょっと詰まってしまいました。 今回の場合、Windowではなくタスクバーの方だけを点滅させたいので dwFlags = FLASH_TRAY にするのは分かったのですが、フォーカスがそのWindowにくるまで点滅をさせたい場合は FLASH_TIMERNOFGを合わせて使うとありますが、その方法がいまいち…。 dwFlags = FLASH_TRAY + FLASH_TIMERNOFG dwFlags = FLASH_TRAY & FLASH_TIMERNOFG など試した見たのですが上手くいきません。 あと、FLASH_TIMERNOFGを使うとフォーカスが移るまで点滅すると思うのですが、これを使った場合は、uCountの値はどうすればいいのでしょうか?
>>604 APIだっけか、ウィンドウ位置を指定できる奴がいるはず。
それで、前者のウィンドウの表示を背面に押しやってしまえば?
607 :
デフォルトの名無しさん :03/09/25 20:41
VBの6.0のことなんですがよろしいでしょうか? 簡単なソフトを作っているのですが、 EXEの作成でEXEファイルにすると、出来たEXEファイルのアイコンがVBのになりますが、 これを変更するとこは可能ですか? 自分でいろいろ弄ってたら、 プロジェクトプロパティの「実行可能ファイルの作成」をみつけて、 アプリケーションのアイコン(O):で変更できそうなんですが、 これで変更するんですか? でも、Form1しかないんですが…
>>608-610 Form1しかないんです
ComboBoxで「▼」押したら
Form1しかなくって…
どうやってリストを増やせばいいのか さっぱりわかりません
>>611 だから、Form1のicon替えろって。
>>611 Form1のプロパティにIconってあるだろ?
そこを変えればいいんだよ。
たしか、リソースファイルを使って変える方法もあったと思うが。
615 :
デフォルトの名無しさん :03/09/25 23:49
VB6で作ったプログラムがXPで動かすとエラー送信しますか? で落ちるんですけど そんな情報どこかにありますかね?
>>615 多分、地球上のどっかにはあるよ。
もちっとプログラムの内容だとか、使用している機能だとかを絞り込めば
日本にもあるかもしれない。
617 :
デフォルトの名無しさん :03/09/25 23:58
VBでは、起動してファイルから画像を読み込ませる(LoadPictureなどで)のと、あらかじめプロパティのPictureに読み込ませておくのとで プログラム中(たとえばゲームなど)の重さが変わってきたりしますか?
>618 やれば判るだけの話しではないか?
今現在のプログラムは初期段階なもので双方に差がないんです。 それで、将来的に色々な処理を組み込んだ際にはどちらが理想的なのかと思い質問させていただきました。
>>620 たくさん読ませたり、くり返したりすれば差が出るよ。
要は自分で試せということですね。了解しました。
>>620 起動時の問題であって実行中に関係するのか?
624 :
デフォルトの名無しさん :03/09/26 09:53
↑なに?これ そりゃメモリがexeのサイズに比べて十分あればそんなこといえるだろうが。 まったくVB厨ってのは・・・・
>>624 でも、2行目は君の無知をさらけ出してると思うけど。w
627 :
デフォルトの名無しさん :03/09/26 11:53
つーかどっちも的外れじゃん・・・
アホとアホアンチの戦い(w
いくつものピクチャボックスを交互に表示させて アニメーションさせるときはいちいちLoadPictureするとディスクアクセスが発生して アニメーションが遅くなるとか、それぐらいのことは618はすでにわかっていたのだろうから おれたちは何も心配することはない。
632 :
デフォルトの名無しさん :03/09/26 13:23
>>625-
>>630 まぁつぎから次へと自分の考えもつるさずに知ったか君ばかりですね
633 :
デフォルトの名無しさん :03/09/26 13:25
>>624 いつのまにかいっぱい書き込んだことになってる625ですが。w
大体、EXEのサイズって表現はなんだよ。
EXEのファイルサイズか?実行時の必要メモリか?
普通前者をさすだろ?
それなのに相手を厨とかいってるんだから。
>632
もうそろそろ、アホアンチがお決まりのセリフを吐いて逃げていくと思われ。
↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw ↑ばーかwばーかwあーほーwあーほーw↑ばーかwばーかwあーほーwあーほーw
ツリービューコントロールの水平にスクロールできる幅を取得するには?
640 :
デフォルトの名無しさん :03/09/26 19:45
>>640 なんでこのスレに?
VBだってSP当てないとカスだろうが。
643 :
デフォルトの名無しさん :03/09/26 21:52
VB6.0 EXCEL2000 VB側からエクセルを操作しています。 改ページ→1ページ目を2ページ目にコピー→改ページ→1ページ目を3ページ目にコピー→・・・・・ としているんですが、処理が終わった後にEXCELを開いて見てみると印刷範囲(改ページプレビュー)が 1ページ目だけになってしまいます。改ページコードのカウントは+1すると意図する数値が返ってきます。 上記はEXCELでテンプレートを作りそれを使用しているのですが、上記のようになる BOOKとならないBOOKがあるんです。なにかミスがあるのでしょうか? Dim XL As Excel.Application Dim XlBook As Excel.Workbook Dim XlSheet As Excel.Worksheet Set XL = CreateObject("Excel.application") Set XlBook = XL.Workbooks.Open(strTemplateFile) Set XlSheet = XlBook.Worksheets("sample") XL.DisplayAlerts = False XlSheet.Activate XL.ScreenUpdating = False With XlSheet .ResetAllPageBreaks '現在の改ページクリア For MyBreakCount = 1 To 1 '2ページ作る場合 .ResetAllPageBreaks '43行毎の場合 XlSheet.HPageBreaks.Add XlSheet.Cells(MyBreakCount * 43 + 1, "A") .Rows("1:43").Select Selection.Copy CurRow = MyBreakCount * 43 + 1 & ":" & MyBreakCount * 43 + 1 .Rows(CurRow).Select ActiveSheet.Paste Next End With
>>624 >そりゃメモリがexeのサイズに比べて十分あればそんなこといえるだろうが。
あるだろ。仮想記憶も合わせれば数GBの大宇宙だ。
今時メモリ32MBのWindows95でも使ってるんなら素直に謝るが。
メモリ256MBのWindows XPだけど何か?
VB6&ADO2.7でmdbにOLEDBでつないでいます TableDirectでSeekを使っているのですが DBのとあるレコードにSeekするときに、失敗することがあります。 2度シークすると、目的のレコードに移動できるのですが、一度だけだと 1番最初のレコードが返ってきます。 DBは大きめで、失敗するレコードは固定のようですが、さまざまな箇所、さまざまなMDBファイルで起きます。 しかし、発生する確立はごく低いです。 この現象はなんでしょうか?探し方が下手なのかMSのサイトでも記述が見つかりませんでした。 XPと98マシンで発生しており、ほかの環境ではテストしていません。 VB特有のものなのかしら。それとも Microsoft.Jet.OLEDB.4.0のバグでしょうかね?
>>646 「Windowsはなぜ動くのか。」の一読をお勧めする。
Windowsプログラマの常識が詰まっている。
649 :
デフォルトの名無しさん :03/09/27 11:11
>>647 対処としてSeekしたあと、本当に目的のキーに移動できたかどうか確認して
違っていたら何度もリトライするようなラップ関数を用いてしのいでいます
こんな現象の経験ありますか?
うちだけの現象なのでしょうか?
>>649 取りあえずサービスパック出てないか見てみたら?
651 :
デフォルトの名無しさん :03/09/27 11:26
PictureBoxに透過されたGIFを読み込もうとしています。 普通に読み込むと透過された部分はPictureBoxのBackColorになります。 そこを読み込むGIFの透過色にしたいと思っています。 (透過される前の状態に戻すような感じです) 「ペイント」では透過される前の色になっているのでVBでも可能かと思いましたが、分かりません。 GIFのデータを直接読み込んでいるのでしょうか? よろしくお願いいたします。
>>652 確かにそうですけどw
バイナリか何かで別に読み込まないといけないのかと
何らかの入力画面で、例えば「Esc」を押したらどの入力項目にフォーカスしていても終了処理を 走らせるようにするにはどうすればよいのでしょうか?
>>654 formが先にイベントを受けるのはKeyPrevireプロパティだっけ?
ESCキーは特殊キーだからKeyDownで受ければいけたかな?
656 :
デフォルトの名無しさん :03/09/27 16:25
>>650 MDAC2.8をいれてみても、かわらないなぁ
JetはWindowsUpdateの最新にはなってる・・・
たくさんSeekをするところで、いちいちチェックすると
遅くなりそうだなぁ・・・
皆さんのところでも、間違ったところを更新してしまったりしてないですか?
MDBにわざわざADOってのが危険だろ? DAOで十分だから。
658 :
デフォルトの名無しさん :03/09/27 17:15
VB5.0のソースプログラムをVB.NETに移行する方法って無い?
VB5のソースって普通にVB6でも使えると思うけど。 VB6からVB.NETへの変換ツールはVB.NETのProとかについていたはず。 完全に移行できるわけじゃないけどね。
>>655 上手くいきました。ありがとうございました。
>>656 > たくさんSeekをするところで、いちいちチェックすると
> 遅くなりそうだなぁ・・・
遅くなるとしても、エラーチェックはサボるなよ。
>>654 もう手遅れだろうけど、普通は
CancelプロパティをTrueに設定したコマンドボタンを置く。
663 :
デフォルトの名無しさん :03/09/28 01:07
>>661 それは、場合によりけり。
仕様として保障されるべき点についてはチェックしないでしょうし。
値を代入する毎に、本当に代入できたかチェックしてるわけじゃないでしょ。
Seek は、そのキーが見つからない場合、EOFかBOFに移動するとドキュメントにあるのだから、
EOFかBOFをチェックは最初からしているよ。
今回、いたしかたなく、間違ったレコードが返ってきた場合はリトライというルーチンを追加したわけ。
本来、必要ないでしょう?これは。
原因がわかり、根本的な回避方があるならば、本来必要の無いチェックルーチンを除きたいわけです。
パフォーマンスに悪影響がでそうなので。
>>663 ああすまん。
Seek って元々エラーを返さないんだな。
1日悩みましたがまだわからないです できる・できない だけでいいですので教えてください できないのならそれであきらめがつきます
>>666 できない(キッパリ
ソースは自分で探せ。
少しは気が楽になったか?
っつーか、それが出来たとして>651は何をしたいの?
>>665 すんません。
仕事上のストレス故って事にしといてやってください。
670 :
デフォルトの名無しさん :03/09/28 17:00
>>666 PictureBoxのBackColorに、透明色番号の色値を入れてしまえばいいのでは。
671 :
デフォルトの名無しさん :03/09/28 20:56
「A」をコードの41に変換するのってどうやるんだっけ? なんかできなくて鬱だ・・・
673 :
デフォルトの名無しさん :03/09/28 20:57
フォームのコードの一番上に Public str(1 to 100) As String と記述すると 「定数、固定長文字列、配列、ユーザー定義型および Declareステートメントは オブジェクト モジュールのパブリック メンバとしては使用できません。」 と表示されますがこれはなぜでしょう? 仕方ないのでモジュールに書いてグローバル変数として保持しています。 言語仕様といわれればそれまでなのですが、 どうしてそういう不便な仕様になったのでしょうか? 理由がある気がするのですがわかりません。 教えていただけないでしょうか? よろしくお願いします。
>>673 プロパティかメソッドか解らなくなるので。
つうか、STRって予約語だろ? フォームのパブリックにStringの配列って宣言できるでしょ?
>674 なるほど、確かに区別できませんね。 不便ですね〜 では明示的にプロパティでなく変数だ、と示す方法ありませんか?
教えて下さい。 Win98 で VB6(SP5) で MicroSoft FlexGrid Control 6.0(SP3) を用いて,一覧表を表示すると, 最下行のシングルクリックで, なんとスクロールしてしまいます。 XPでは起らない現象らしいのですが 困っています(T_T) 対処方法をお教え下さい。
教えて下さい。 Win98 で VB6(SP5) で MicroSoft FlexGrid Control 6.0(SP3) を用いて,一覧表を表示すると, 最下行のシングルクリックで, なんとスクロールしてしまいます。 XPでは起らない現象らしいのですが 困っています(T_T) 対処方法をお教え下さい。
>>679 金払ってんだからそのActiveXの開発元にごるぁ!するのが筋です。
>>680 MSに言っても無駄だと思うけど。
まあ、OSバージョンを判定して、クリックイベントかなんかに処理書いて無視させてみれば?
>>682 元記事きちんとみろよ。
MS−FREXGRIDなんで、グレープシティのじゃないです。
MSのはグレープシティのサブセットのはずだけど。
>>683 済まんかった。
ところでそれ、開発モードで使って良いの?
>>684 開発モードってのがわかんないけど一般論で。
VBに付属するコントロールの一部は、他の製品サブセットがある。
(Flex-Grid、帳票など)
それらを使った場合、バグがあってもMSが十分な対応をとらないことがあるし、
そもそも機能的にも不十分だったりする。
なので、それらを使うときは十分な検証をしてからつかうのが普通です。
まあ、メーカーからコントロール買っても、十分なサポートを受けられないことは多々ありますけど。
>>672 あっ、そうだった気がする。
サンキュ。
>>686 騙されるな。
Asc(Chr(Asc("A"))) だ。
((((;゚Д゚)))ガクガクガクブルブルブル
>>667 そうですか。ありがとうございます。
無理でしたら少しというより諦めます。
>>668 話せば長くなります。
>>670 その透明色番号を取得したいんです。
色値を入れるのは2の次です。
690 :
デフォルトの名無しさん :03/09/29 10:55
>645 これだからVB厨は
>>643 単純に、印刷範囲が設定されてるからじゃないの?
うわっ。二日も前のにレスしている粘着がいる。
タイマーイベント内で、一定周期(interval)毎に、たとえばキーボードの「A」を押したときと同じ動作をさせることは出来ますか? KeyDownイベントでKeyCodeがVbKeyAの時に行う動作と同じことをさせたいのですが。。。 コードをそのままコピーして貼り付けるんじゃなく、一行ですむような命令ってありますか?
すみません、上の質問内容はわかったのですが、問題解決には至りませんでした。 Do〜Loop処理の中にDoEventsを入れ、キーボード押下時のイベントを割り込ませるようにしてあるのですが、 タイマーイベント内でCall Form_KeyDown(vbKeyA, 0)を書いても反応してくれません。 何かいい方法は無いでしょうか?
696 :
デフォルトの名無しさん :03/09/29 20:37
Formにはスクロールプロパティがないんだけど、一画面に入りきらない場合で画面をスクロール させたいときとか、どうすればいいのか教えてください。
>>696 Formのかわりにピクチャーボックスの上にペタペタ貼り付けて、
そのTopとLeftをFormに貼り付けたスクロールバー(だっけ?)で移動させる。
>>695 てか、Aを押した時にさせる動作をサブルーチン化か何かさせろよ。
>>694 SetFocusしてSendKeysなりSendmessageなり。
ファイルシステムオブジェクトでファイル名の変更を行いたい場合は、 ファイルシステムオブジェクトにはリネームメソッドがないみたいだから、 ファイルコピーをしたあとに、もとのファイルを削除、としてリネームを実現させるって事? VBにリネーム関数はあるけど、ファイルシステムオブジェクトでやるとしたら。
movefileは考えないのか
>>694 がそもそも何をやりたいかがわからない。
多分、目的をそっちのけで枝葉の先の方でねじれて悩んでいると思う。
根本的に何をしたいの?
いや、GetFile/GetFolderしてNameプロパティを変えるんだっけか よく覚えてないや
>>706 2chといえども頼みかたを知らない厨だな。
>>707 あなたから才能のある野心的な部下は去っていく
>>708 とりあえず、この程度のことを2chで聞いて、あの回答でソースを書けない
君には才能はないよ。
711 :
デフォルトの名無しさん :03/09/29 21:31
ヒント無視してソース書けって何様のつもりなんだよ。
祭りはおわりますた
>>702 file.Name = "newname"
みたいな感じ。いっくらでもWebにサンプルがあるよ。
>>716 ありがとさーん。
そんなかんじでファイルオブジェクトのNameプロパティを変えるやりかたが味があるかもしれん。
WindowsXPHomeEdition(SP1)、VisualBasic6.0(SP5)、ActiveReports1.5に おける専用用紙の印刷に関する質問です。 プリンタがNEC PC-PR201/40で、9.5インチ×4.5インチの連続用紙に 印刷しようとしているのですが、うまくいきません。 objRpt.Printer.PaperSize = vbPRPSUser objRpt.Printer.Orientation = 1 '1...縦 2...横 objRpt.Printer.PaperWidth = 9.5 * 1440 objRpt.Printer.PaperHeight = 4.5 * 1440 のように設定しても、用紙サイズが9.5×4.5インチにならないのです。 (A4サイズに戻ってしまう) ヘルプを見ると「プリンタのドライバによってはPaperWidth、 PaperHeightプロパティを設定できないものがあります」とあり、 残念ながらNEC PC-PR201/40はその例にあたるようなのです。 しかし、今更プリンタを買い換えてもらうわけにも行かず、 途方に暮れています。「ハードを買い換える」以外の方法であれば どんなものでも構いませんので、同じような問題にぶつかって 解決された経験のある方にアドバイスをいただければ、と思います。 当分起きておりますので、ご教示いただければ幸いです。 何卒、よろしくお願い致します。
>>718 とりあえず新しいドライバは落としたのか?
720 :
見習いPG :03/09/30 01:47
回答遅れてすみません。 NECのサイトで落としたのですがダメでした。
721 :
デフォルトの名無しさん :03/09/30 09:13
初心者の単純な質問で失礼します。 コモンダイアログを貼り付けようとすると 「ライセンス情報が見つかりません・・・」 などと文句言われます。何とかなりませんか?
>>721 とりあえず、VBを再インストールしてみるとか、SPを充て直してみるとか。
これだからVB厨は
724 :
for All :03/09/30 09:46
自分の好きな人にだけに教えたいなら個人の掲示板でやれや。 2chは多国籍無法地帯だ。おぼえとけ!
725 :
デフォルトの名無しさん :03/09/30 12:04
Intコントロールで、FTPプロトコルのディレクトリ一覧を取得するメソッドってありますか?
726 :
デフォルトの名無しさん :03/09/30 12:21
SPを充て直す? ワケワカラン!
ControlContainer=Trueしてコンテナコントロールを作りました。 PictureBox や Frame のようにコンテナとして使えて、 拡張機能を持たせたいと考えています。 フォームにそのコントロールを張り、 その上にラベルやボタンなどのコントロールを張ります。 そして、ラベルやボタンのToolTipTextプロパティーに文字列を設定して、 ToolTipを出したいと思ったのですが出ません。 フォームに直接張ると、もちろん普通にToolTipは表示されます。 PictureBoxやFrameの上に張っても、ToolTipTextは表示されます。 自作のUserControlの上に張ると表示されません。 ToolTipが表示されるようにUserControlにコードを追加しなければならない気がするのですが、 どうしたらいいのでしょうか?
728 :
デフォルトの名無しさん :03/09/30 21:24
C++のSTLってのは一体何なんですか? 自分はゲームプログラマーになりたいんですが STLに関する知識って必要ですか? 馬鹿みたいな質問ですいません。
>>728 STLってのはどんな型にも使える汎用のライブラリ。
そしてC++はスレ違い。
730 :
デフォルトの名無しさん :03/09/30 21:52
>>730 この業界いらん知識という物は微塵もないぞ。
タスクトレイにアイコンを表示して常駐するプログラムを作ろうとしています。で、処理中にアイコンを アニメーションさせるにはどうすればよいのでしょうか。 アイコンを表示するのと、待機状態でアニメさせることは出来たのですが、バッチ処理中にアニメさせる 方法がわかりません。一応、処理の所々でアイコンを切り替えるサブルーチンを呼ぶ方法も考えたの ですが、あまりスマートでないですし、例えば一定周期でランプが点滅しているように見せるのは難しい です。サブルーチン内で処理中はタイマーイベントを起こすことも出来ないようですし。 あと、PopupMenuで、メニューを表示してから一定期間の間選ばなかったらメニューを消すには どうすればよいのでしょうか。
タスクトレイ常駐アプリをVBで作るのは、簡単なもののみにしたほうが・・・。 いろいろやるならC言語系に移行するか、グレープシティーかどっかが出してる奴を使ってみれば? 確か、サービスとかタスクトレイ常駐とかを簡単(?)に作れるコンポーネント集があったはず。
736 :
デフォルトの名無しさん :03/10/01 14:39
只今、VBに標準でついているActiveXのKodak Image Edit Controlを使用して 画像の編集をしたいと思っていますが設定値をソースで変更したいのですが、 リファレンスが見つかりません。 どこかに説明が載っているのでしょうか?
VBに標準についているというか、Windows(XP除く)についているようだが、 F1を押して要求されるヘルプ(imgocxd.hlp)はWindows98/Meに入っているらしい。
738 :
デフォルトの名無しさん :03/10/01 15:16
VB6.0で開発しています a.exeからb.exeを起動し、b.exeが終了間際でc.exeを起動します a.exeはc.exeの終了を待機したいのですが 現行ではb.exeの終了しか待機していません 現在b.exeとc.exeは変更できない状態にあります a.exeのみを変更して c.exeの終了を待機することはできますでしょうか?
>>738 c.exeがウインドウを持っているならFindWindow、
そうでないならProcess32First、EnumProcessesあたりを
使えばいいかも。
740 :
デフォルトの名無しさん :03/10/01 15:43
>>737 ありがとうございます。見つかりました!!
>>739 回答ありがとうございます
c.exeと言っていますが
実際はc.exeには数種類ありまして
b.exeからは数パターンのexeが実行されるようになっています
クラス名は固定ですし
キャプションは統一性がないので
FindWindowは使用できません
Process32First,EnumProcessesは使用したことがありません
調べて使ってみたいと思います
ありがとうございました
先ほど質問したものですが、 ActiveXのKodak Image Edit Controlで画像編集をしようと思い 設定してみたのですがTIFF,BMPしか対応していないらしくJPEGは 読み込みのみ対応でした。 JPEGを編集するOCX(線を入れたり、コメントを入れたり)をどなたか ご存知でしょうか?どなたか良い方法がありましたら教えてください。
質問でございます。 VBで、あのフレームバーと言うんでしょうか、ブラウザのフレームみたいな奴で フォームを区切ることは可能でせうか。 可能ならご教授願いますます
744 :
743です :03/10/01 16:42
(環境、Win98、VB6)
746 :
デフォルトの名無しさん :03/10/01 18:07
747 :
デフォルトの名無しさん :03/10/01 18:10
環境:Win2000 VB6.0 VBからウイルススキャンを行いたいのですが、 そういったライブラリとかありますでしょうか? 単にウイルス除去ソフトを起動するのではなく、 ファイル単位にスキャンし「ウイルスあり」などの情報を VB側に返してくれる形なのですが DLL等で提供されいればよいのですが
>>743 できるよ。
で、単に線で区切りたいだけ?それとも個別にスクロールとかさせたいの?
( ´・ω・`) ショボーン 使い道は、Webでメールの受信をするサイトを作ってるんですけど、 サイト内でウイルスを調べられれば、便利かなと思って Webメールみたいな感じです
754 :
デフォルトの名無しさん :03/10/01 20:21
>>753 まあ落ち込むな。無知な奴らの方に非がある。
ノートンのAntiVirusがコマンドラインから実行できる。・・・かもしれない。
よく分からんです。DLLってのもあるのかなぁ?企業向けならあるのかも。
Iriaにダウンロード後にウイルスチェックをするっていうスクリプト
(ダウンロード後にWinExecで何かを呼び出しているがコマンドが書いていない)
があるから何らかの方法はあると思うが。
757 :
デフォルトの名無しさん :03/10/01 21:15
質問させていただきます。 VisualBasicで現在のメソッド名を取得するには どうすればよいのでしょうか? Public Sub Test1() Dim a As String a = ○○○○ End Sub としたら、 a="Test1"となるような関数○○○○などがあればうれしいのですが。 よろしくお願いします。
>>757 無いので、perlやawkなどのスクリプト言語で
a="Test1"と挿入するようなマクロを作ってください。
アドインであったかな?
759 :
デフォルトの名無しさん :03/10/01 21:29
お教えください。 Win-95上でVB5で作成したソースをWin-XP上のVB6でコンパイルしました。 そして、作動を確認し、異常なかったので、そのままディストリビュータ で、パッケージを作成しました。作成したXP上にインストールすると、 「****.dll」が見つかりません。」のエラー。どのように対処したら良いですか?
>>759 そのDLLってActiveX? それともActiveXじゃない奴?
つーか一般的なDLLなら、名前を教えてくれ。
762 :
デフォルトの名無しさん :03/10/01 21:36
>>760 それが。。素人なのでどちらか分からないのです。。
(;^_^A アセアセ…
やり方、違うのですか?
>>762 じゃあそのDLLは参照設定して使っている?
それともDeclareで使っている?
これもわからないならソース作った人に聞いてください。
764 :
デフォルトの名無しさん :03/10/01 21:40
761> AsycFilt.dll なのですが。。
>>758 やはりVB上では無いですか。
Perlとかはあまりよく知りませんが、また調べてみたいと思います。
ありがとうございました。
レスリング部に所属している集団が部活帰りに 「ボクシングってダセェよな、シッシッ言っちゃってよ。」などと 言っているのが聞こえたので走って近づき、リーダー格の奴に、 右ボディを食らわせて前屈みにし、ワンツー連打から左フックでKOした。 オレはその場を立ち去る時に残りの高校生たちを指差し、 「お前らも灰になれるものを見つけろよ」と言った。 離れていく時に後ろから、「ボクシングっていいよな。」と声が聞こえた。
767 :
デフォルトの名無しさん :03/10/01 21:54
VarPtrやStrPtrなどの関数の存在を知っていろいろ遊んでいたのですが、 Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long Dim p As Long, q As Long, r As Long Option Explicit Private Sub Command1_Click() Dim s As String * 1024 s = String(1024, Chr(0)) p = StrPtr(StrConv("one", vbFromUnicode)) q = StrPtr(StrConv("two", vbFromUnicode)) r = StrPtr(StrConv("three", vbFromUnicode)) Call lstrcpy(s, q) Form1.Caption = s End Sub というコードを書いて、Command1_Click()が実行されたとき、Form1.Captionの 値は"two"になってほしいのに、なぜか"three"になってしまいます。 無意味かもしれませんが、コンパイルしてexeを実行しても同じです。 自分だけに起こるのかもしれませんが、よろしくおねがいします。
768 :
デフォルトの名無しさん :03/10/01 22:13
デバッグする際、無限ループに入ってしまった時や、 やたらと時間のかかるプロシージャに入ってしまった時に、 強制終了させるショートカットキーがあったと思うんですけど・・・・・ アレはどうやるんでしたっけ。
CTRL+BREAK
>>765 VBそれないから、ログ出力とか少し不便なんだよね。
おい、お前。そう、お前だよ。 「このスレおもろいから見てみ」「2ちゃんの歴史に残る名スレだぜ」とか言われてホイホイと このhtml化されたスレを見にきた、お前のことだ。 どうだ?このスレおもしれーだろ。 でもな、お前はこのスレを読むだけで、参加することはできねーんだよ。 可愛そうにな、プププ。 俺は今、ライブでこのスレに参加してる。 すっげー貴重な経験したよ。この先いつまでも自慢できる。 まあ、お前みたいな出遅れ君は、html化されたこのスレを指くわえて眺めてろってこった。
>>769 Ctrl + Pause = Breakだからなんか変だぞと。
>>772 コントロールブレークって言う用語があるのでつい(w
でも、BreakはALT + Pauseだぞ!
ぷれぜんとふぉーゆー [プログラミング本]Visual Basic Design Patterns VB 6.0 and VB.NET(必読!VBでデザインパターン)(昔ネットで配布されていた書籍のβ版?)vbpatterns.zip
[プログラミング本]Visual Basic Design Patterns VB 6.0 and VB.NET(必読!VBでデザインパターン)(昔ネットで配布されていた書籍のβ版?)vbpatterns.zip 13,885,055 78b08f47ec082d19a6e39641a8c83f9f
776 :
デフォルトの名無しさん :03/10/01 23:49
VB6.0 + Windows2000の環境 VB使用歴4日の初心者です コントロールのサブクラス化についてなのですが・・・ 例えば、ListViewオブジェクトを簡単にサブクラス化することは出来ないのでしょうか 僕の考えでは新しいクラス(例えばnewListView.cls)を作って implements ListView .... とやれば、サブクラス化できるのではないかと考えたのですが、エラーが出てしまいます エラー内容と、IListViewのタイプライブラリの内容から考えると、ListViewのすべてのメソッドを newListViewクラスで再定義しなおす必要がありそうなんですが・・・・ こんなことをしないとサブクラス化できないんでしょうか VBってこんな面倒くさい仕様なんですか? 教えてください
777 :
デフォルトの名無しさん :03/10/01 23:55
777ズサ━━━━⊂(゚Д゚⊂⌒`つ≡≡≡━━━━!!
>>776 まずサブクラス化と継承とインターフェース継承の違いを覚えよう。
>>776 継承をしたいんだったらVB.NETを使ったら?
>>781 そうします。VB.NETはVB6.0と違って真のオブジェクト指向で便利ですね。
>>780 UNIXでC++やってるんで継承に関しては問題ないと思うんですが
WindowsはというかCOMが素人でどうしようもないですね
勉強しなおしててきます
>>781 客先要求がVB6.0なんです
実はそれが書きたかっただけなんです。(・∀<)
>>752 レス遅れまして申し訳ありません。
出来ますか!後者ですね。
でも境界線をマウスで移動できれば何でも良いです。
786 :
776 本物 :03/10/02 01:31
>>779 一応
MSDNの
"インターフェイスのインプリメントによるポリモーフィズムの提供"
"標準インターフェイスのインプリメントと使用"
ってのがありますのでご一読を
787 :
776 本物 :03/10/02 01:53
Implementsによるサブクラス化に成功しました やはり、癖がありますね ありがとうございました
>>787 言っとくけどインターフェース継承はサブクラス化とは言わないよ。
正しくは多態(ポリモーフィズム)だと思うけど用語は正しく覚えてね。
>>788 あの後いろいろ調べて、分かりました
素人考えで、COMオブジェクトが(というかタイプライブラリが)
クラスの記述ぽかったので勘違いしてサブクラス化と言って
しまいましたが、確かに間違っていますね
大変失礼しました
791 :
デフォルトの名無しさん :03/10/02 10:00
↑まぁ、無知なVB厨がたくさん失礼なことをしました。 このスレでの出来事は忘れてあげてください。 まったく、これだからVB厨は
>>767 p,q,rはStrConvが返した一時領域へのポインターで、lstrcpyが呼ばれる頃には既に無効だから。
>>785 アプリケーションウィザードでエクスプローラスタイルのアプリケーションを作成する参考になるよ。
× 〜作成する参考になるよ ○ 〜作成すると参考になるよ
>>793 この場合では、"one"のアドレスを代入した後で、"two"をのアドレスを代入しようとしても、
それぞれ別の場所にしてくれなくて、上書きされて、最終的に"three"になってしまう
わけですか?
796 :
デフォルトの名無しさん :03/10/02 16:37
データ連結コントロールの機能を使ってadodc1とかに接続しちゃうと、 たとえば二つのテキストボックスからadodc1に接続して、それぞれのテキストボックスに、 別々のadodc1.recordsourceを割り当てたいというのは不可能ですか? set text1.datasource = adodc1 adodc1.recordsource = "Atable" adodc1.refresh adodc1.recordsource = "Btable" set text2.datasource = adodc1 adodc1.refresh としたらtext1にはAtable text2にはBtableが入ってくるのを期待してたんですけど、大間違いでした。 私は普段ADOをコードでオブジェクトを作成して、レコードセットにそれぞれのテーブルのデータを入れて、 それぞれのレコードセットの内容をコードでMSHFlexgridなどに表示していたのですが、 ちょっとコードを減らしたいとおもいました。 コントロール使った場合でもレコードセットが存在してtext1.text2にそれぞれレコードセットを割り当てるというような感覚の操作 はできないのでしょうか? 現状だとほしいレコードセットの数だけadodcを用意しないといけないように感じてます。
>ほしいレコードセットの数だけadodcを用意しないといけない あたり。 データコントロールに頼りすぎるのもどうかなと思うが。 使いまくると保守性が落ちるぞ。SQLの検索にも引っかからないし。
データ連結コントロールって、一覧とかにリンクさせて更新したいとき以外は使わないな。 Accessの普通に開いた画面程度のことをやる場合だけ使う。 入力チェックが不要な単純なデータメンテ画面とかぐらいだな。
>>795 そういことです。
ちなみに、このような動作になったのは偶々で、既に開放された領域に
アクセスする以上、何が返ってくるか判らないと考えてください。
>>799 VBではあまり意味のないことだし、まだ自分には早すぎる話だと思いますが、
補足を含め、ありがとうございました。
801 :
デフォルトの名無しさん :03/10/02 17:58
InetコントロールのFTPコネクションで日付を取得できますか?
>797-798 そうですか。わかりました。ありがとうございます。
803 :
デフォルトの名無しさん :03/10/02 19:26
804 :
デフォルトの名無しさん :03/10/02 19:27
できたりできなかったりします。
>>801 サーバーによる。
サーバーが日付を返すように設定されていれば取得できるし、
そうでないなら取得できない。
>>803-806 返事どうもです。
>>806 そうなんですか。INETコントロールに
inet.Execute , "DIR"
で送っも返り値にファイル名しか返ってこなかったので駄目なのかと思ってました。
何のメソッドを使ったらいいのでしょうか?
>>807 サーバによってできねえって言ってんだろ!
>>810 大文字なLSってコマンドは非常にマイナーだと思うぞ。
>>812 別に一般的なls(UNIX系のコマンド?)のことを言っているんじゃなくて、
MSDNにのっているInetコントロールのFTPへの命令のLSのことね。
>>811 かまってほしい?(w
815 :
デフォルトの名無しさん :03/10/03 10:14
>814 しつこいね。 負け犬の遠吠えにしかみえないよ。 ネットで発言すら、負け犬の遠吠えっぽいのに ネットの中でもまた別スレへ逃げてから嘲笑とは片腹痛い。
816 :
デフォルトの名無しさん :03/10/03 10:50
どなたか教えてください。 ある英文字があり、それを変更していきたいのですがやり方がわかりません。 D→E Q→R という感じです。 何か関数とかあるのでしょうか
文字コードに+1していけばいいだけじゃねぇの。
818 :
デフォルトの名無しさん :03/10/03 10:55
"E" = Chr(Asc("D")+1) koyukotoka?
819 :
デフォルトの名無しさん :03/10/03 11:17
820 :
デフォルトの名無しさん :03/10/03 11:30
>>819 (ノ∀`)そのまま使ったらエラーだろうな
使われてるAsc,Chr二つの関数のヘルプを見て理解して必要なように自分で組み立てろ。
>>819 そりゃー
>>818 を打ち込めばエラーだよ。w
>>818 の式は説明だろ。
英大文字Eの文字コードはDの次だから、
文字”D”のアスキーコードを取って、それを+1して、文字に戻せば”E”になるよって。
822 :
デフォルトの名無しさん :03/10/03 11:48
12桁の数字を扱う型は存在しますか? 変数ではlong型が最高でしょうか? 12桁の数字を格納するクラスとかありますでしょうか? たしかビット演算して上位下位6桁ずつに分けてやるとか方法あるようですが、 ちょっと参考になるサイトおしえていただけないでしょうか? みなさんはこのような大きい数字はどうされているのでしょうか?
通貨型
>823 ありがd
↑822でした
ちょっとおたずねします。 現在FSOでフォルダのサイズを取得しているのですが、 folder.size だとサブフォルダを含んだ全容量がでてきます。 サブフォルダを含まないサイズを取得するさいにはみなさんどうされますか? 地道にfolder.files.item.sizeを足していって合計だすぐらいでしょうか。
>>826 質問の回答は、足してくしかないと思うけど・・・。
変な略し方するな!FSOって。w
>827 そうですか、わかりました、地道に足しマッスル。 FSOってやばいっすか?
こういうところで質問する場合、MSとか雑誌でも使われてる略語以外は使わないほうがいい。 方言の可能性もあるし、自分脳内辞書の略語もあるし。 相手に伝わるように注意せんと。
>829 そうですか。一応FSOはMSDNで検索しても出てきますが
ファンタシシースターオンラインでボケようと思ったが頭文字がPである事に気付いて辞めた奴の数→ (1)
>>830 あんまり使わないねー方がいいぞ、ってこった。
最後がOの3文字ということで、STOと同じように小川直也の必殺技だと思った奴 -> (1)
837 :
デフォルトの名無しさん :03/10/03 21:35
VB.6.0で画像をエンコードさせようとしています。 プロファイルでビットレートをカスタマイズしてProfileフォルダにtest.psxで保存しました。 しかしVBで For i = 0 To ProColl.Count - 1 Set Pro = ProColl.Item(i) If Pro.Name = "test" Then SrcGrp.Profile = Pro Exit For End If としてもカスタマイズしたビットレートでエンコードされません。 自分で保存したプロファイルを活かすにはどうやればいいのですかね?
838 :
デフォルトの名無しさん :03/10/03 23:29
すいません、自己解決しました
>>838 さっきからいろんなスレに出没している偽者だろ。 しつこい。
FileSystemOpen 波動砲発射!
842 :
デフォルトの名無しさん :03/10/04 20:06
すいません、教えてください VBの標準の機能では開きっぱなしのファイルをフラッシュ することは出来ないんでしょうか
843 :
デフォルトの名無しさん :03/10/04 20:16
VBScriptでテキストファイルの読み書きしたいです。 マイクロソフトのサイトの例を見て --------------------------------- Const FILENAME = "E:\tmp\hoge.txt" Dim intFileNo intFileNo = FreeFile Open FILENAME For Input Access Read As #intFileNo Close #intFileNo -------------------------------- とオープンしてクローズするだけって感じでかいてみたのですが, 行5,文字15 エラー:ステートメントの末尾が不正です。 って出るんですが,ファイルのオープンのところはコピペしただけなんで 何故エラーなのかわかりません。教えていただけないでしょうか?
>>842 閉じないでフラッシュしたいってこと? Closeしたらフラッシュされるけど。
閉じないでフラッシュしたいならCloseしてOpenするか、APIを使用しましょう。
>>843 コピペしたから見えない変な文字が入っているんじゃない?
ところでどこのサイトをコピペしたの? 見つからないんだけど。
>>843 Open FILENAME For Input Access Read As #intFileNo
Close #intFileNo
--------------------------
VB ScriptにはVB6.0のような上記のステートメントでファイルを扱えないので
ファイルシステムオブジェクトをつかったりする。
847 :
デフォルトの名無しさん :03/10/04 21:46
アプリを作ったのですが、右上の閉じるボタンを押してもメモリ上に残っているのですが どうすれば解決するでしょうか?
>>847 フォームがどれか残ってる(Hideになってる)なら、それは仕様で当然。
フォームが残ってる経路がないか確認する。
明示的に終了させるならEnd書く。
849 :
デフォルトの名無しさん :03/10/04 22:01
>>847 もしかして限界を感じているのかな?
練習あるのみだよ。
850 :
デフォルトの名無しさん :03/10/04 22:06
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=160 1 146 C
2 119 C++
3 90 Java
4 55 PHP
5 44 Ruby
6 32 Perl
7 24 Delphi/Kylix
8 21 Other
9 17 Assembly
10 16 Python
11 13 Objective C <--------C++に敗北して廃棄状態
12 12 C# <--------超負け組み
13 7 Unix Shell
14 5 Tcl
15 5 Lisp
16 4 Visual Basic <--------廃棄処分
>>850 その他ってのを一つのサンプルとしてランキングに入れるのはどうなんだ?
>>848 >フォームがどれか残ってる(Hideになってる)なら、それは仕様で当然。
>フォームが残ってる経路がないか確認する。
>明示的に終了させるならEnd書く。
Endは強制終了みたいなものだからUnloadでなるべく終らせないといけないと本に書いてたんですが。
Ctrl+Alt+Delを押したらまだ残ってたんです。
で、何回も多重起動できて…メモリが…PCフリーズという感じです。
>>849 >もしかして限界を感じているのかな?
>練習あるのみだよ。
どういうことですか?
>>852 Endは本にはつかうなとかいてあるが、
Unloadイベントを利用する必要がないソフトや
アプリがすべての処理が完了している状態ならEndをつかってしまってもよいし、
これほどベンリで確実にソフトを終了できるメソッドはない!
大体さ、多重起動不要ならApp.PrevActivateで防げ。 あと、End の部分のみ反応してるけど、Formは残ってないんだよね? Formのアンロード後にそのフォームのプロパティに触れると、フォームロードされるからね。 そういうの含めて経路見てから回答くれ。 あと、End は普通に使う。 途中で終わらせるためではなく、最後のはずのフォームで明示的にEndしておく。
>>853 >Unloadイベントを利用する必要がないソフト
これって例えばどんなのがあるんですか?
>アプリがすべての処理が完了している状態ならEndをつかってしまってもよいし
あれ?全部終っていたらEndする必要がないんじゃないのですか??
>>854 おおっそんなコマンドがあったんですね。。知りませんでした。
Formは残ってないです。
ただチルダ(〜)が初めについているアプリがCtrl+Alt+Delを押したときに起動されたままでした。
>>857 キミの文はネタみたいだからもうオレたちはまじめに解答しないかも
>>846 Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set File1 = objFileSystem.OpenTextFile("E:\tmp\hoge.txt")
こんな感じでオープンして,ReadLine使って読み込むことができました。
どうもありがとうございます。
>>857 >あれ?全部終っていたらEndする必要がないんじゃないのですか??
その通り、ランタイムがメモリ掃除をしてくれる。
処理が終了する と アプリが終了する の意味はちがったりする。
>>861 処理が終わればフォームはいらんわけだ。
クリーンナップコードでそれが破棄されるならなんの問題もない。
みんなバカですね
>>863 いや、だから問題の彼がそれをできないからEndかいちゃえなわけで。
>>864 自分を含めているところがなかなか謙虚だな。
>>865 >処理が終了する と アプリが終了する
ここまで言っといてクリーンナップコードを知らないと言うこと?
インターネットエクスプローラを起動してホームページを開く。 ホームページが読み込まれた。←処理完了 インターネットエクスプローラを閉じる。←アプリ終了
>>867 いってるからといって、彼のコードがそれに伴っているとは限らない。
>>868 ああ、そう言うレベルのお話か。
動的にNewしたフォームならスコープはずれれば自動的に死んでくれるっしょ。
死なれると困るから静的においとくんでしょ。
このスレは知ったかぶりの人のほうがバカですね。
みんな人間だからな。
>>870 VB6以前の話だよね、動的にNewしてスコープ外れても自動的に
死なないオブジェクトがあると認識したほうが安全だよ。
きちんとクローズするのまではプログラマの責任と。
>>874 どこからも参照が無くなれば死ぬって仕様じゃないの?
For each A in Forms Unload A Next ですべてのフォームが閉じられたと思う。
>>876 自分で自分をUnloadするのって気持ち悪くてどうも好きになれない。
>>875 話が逸れるからあれだけど、オブジェクトによっては残ったり漏れたりがある。
>>878 それ確認する方法ってどうやるんですか?
参照はないから実際に叩いてみるわけにも行かないし。
Unload Me and You
ちゃんとしたアプリを作るのであれば、>876は最後の手段と考えておいたほうがいいんじゃないかなぁ。
>>876 ってEnd書くのと変わらないよな。
やっぱり、各フォームの生存期間をきちんと管理しておかないとね。
つっこみどころがあるけどネタだろうからつっこむ必要なし
>>882 全然違うぞ・・・
End使うとクラスモジュールのデストラクタやフォームのUnloadを通らずに終わる。
って事で
>>881 に同意
C房だけどVB房っとすごいな
For each A in Forms Unload A Next が書いてあるフォームをForm2として、 Unload Form1 Unload Form2 Unload Form3 を考えてみると、 Unload Form2をやっちゃってるから、Form2に書いてある For each A in Forms Unload A Next というステートメントが無効になる?としたら Unload Form3は実行されないような気もしなくもない。
でもちゃんとすべてアンロードされてるみたい。
From2がUnloadされてもForm2のステートメントは有効のままのようだ。
なんとなーくだけど、IDE実行とEXEで結果が違いそう
>>889 結果つーか、動作っつーか。計算なんかは一緒だけど、環境が違うくなってるよね。
GetModuleFileNameとか。
そのへんどうにかしてくんねーかなと思う今日この頃。
教えて君でスマソ 印刷をしたいのですが、 印刷される位置と、XY座標の関係がわかりません どうすればいいんすか? あたりを付けては何回も修正してます・・・
とりあえず、A4かなんかに座標線を例えば1000単位で出した紙でもつくれば? それでデザインして決めると。
よくありそうな質問ですが……。 他のアプリケーション上のコントロールの情報を取得するには どうすればよいのでしょうか。 具体的には、リストビューやツリービューのアイテムのテキストを取得する、 といった具合です。 いろいろ試してみたのですが、BUTTONコントロールにBM_CLICKをSendMessage してやって押す、といったことは出来ました。
すいません、本当に自己解決してしまいました。
897 :
◆NrzNAFPLAQ :03/10/05 22:00
VB6の初心者です。 複数の画面からなるプログラムを作っていますが、1画面から2画面に移った場合データが表示できません。 プログラムは1画面表示の次画面表示のコマンドにはFORM2.Show1の画面が出たまま止まってしまいます。 データ表示のプログラムは記述してますが、表示できません。 どのようにしたらいいのでしょうか? わかる方、レスください。お願いします。
ぜんぜん意味がわからん。
>>897 >データ表示のプログラムは記述してますが
どこに書いたワケ?
>>897 FORM2.Show1
を
Form2.Show
に書きかえればオーケー
901 :
◆NrzNAFPLAQ :03/10/05 23:30
まだわかりません。 もっとわかりやすく教えてください。
>>901 あなたが出した情報が少なすぎて教えようが無い。
>>901 分からんと言われても質問自体が分からん罠。
まず、初心者といって聞くことは免罪符にはならないよ。 きちんと何で悩んでいて、どこまで調べて、何を試したかを書いてくれ。 ってこれではP○DNか。w
905 :
デフォルトの名無しさん :03/10/06 00:31
VB6.0でACCESS2002のMDBファイルを開けるDATA CONTROLってないですか?
Windowsのシステムフォルダみたいな特殊なフォルダって 実際のパス以外でアクセスできないんですか? W2Kでいえば"\WINNT\TEMP"をアクセスしたいんだけど、 こういうのってOS変わると違ったりするじゃないですか。
>>906 環境変数を使えるよ。
コマンドプロンプトからsetで確認。
>>907 環境変数をVBからはどうやって扱えるんですか?
>>908 一から十まで、聞いて済ませる気かよ(汗
逆に、オマエは環境変数の使いかたを知ってるのか、と聞きたい。
知らないのなら、スレちがい。
知っててその質問をするのなら、プログラミングに向いてない。
じつは
>>906 を読んで、環境変数を知らないのに、特殊フォルダへのアクセス方法が
あるかもしれないということを察したセンスに期待して、ヒントを出す気になった。
結局、自分で調べる意欲のない教えて君だったわけで、正直がっかりした。
ToolBarの質問です。ボタンのキャプションを右に表示したいのですが、キャプションを表示したくない ボタンの右も、最大文字数と同じ空白となってしまいます。空白の場合は表示せず、文字の有る 場合は文字数に合わせた幅にすることは出来ないのでしょうか。 あと、TextBoxにフォーカスされたときにその項目が全選択状態になり、その状態で何か入力したら そのまま書き換えとなるようにするにはどうすればよいのでしょうか。
>>911 >あと、TextBoxにフォーカスされたときにその項目が全選択状態になり、その状態で何か入力したら
>そのまま書き換えとなるようにするにはどうすればよいのでしょうか。
SelStart、SelLengthプロパティを使います。
>>911 If 空白の場合 then
表示せず
Else
文字数に合わせた幅にする
End If
914 :
デフォルトの名無しさん :03/10/06 13:50
Screenオブジェクトについて質問です。 フォームを画面一杯に表示しようと思ってるのですが、 解像度を変更した直後に実行するとうまくいきません。 解像度を変更した直後だと Screen.HEIGHTとScreen.WIDTHの大きさが同じになってしまいます。 これを正しい値にするにはどうしたらよいでしょうか?
>>912 ありがとうございました。
>>913 う〜ん、回答してもらってなんなんですが、求めているのとは違ってますです。とりあえず、Frameに
複数のToolBarを入れることで解決しました。
LISTVIEWについて質問させてください。 アイテムの選択をするとTEXTプロパティが変更可能な状態になりますが、 それを不可能にする方法はありますでしょうか? enableをオフにはできません。
6.0以前ってことは6.0の質問は禁止ですね
918 :
デフォルトの名無しさん :03/10/06 17:46
VB6.0のMSの正式サポートっていつまでなの?
>>914 >フォームを画面一杯に表示しようと思ってるのですが、
フォームのWindowStateを変えろ。
922 :
デフォルトの名無しさん :03/10/06 19:12
>>918 ゴメソ、自分でわかりました
2005/1までなんだねぇ
有料では2008/1までか・・・
.NET覚えるか('A`)ハァ
>>923 6.0スタイルを進みたければREALbasicや次のバージョンのFlashへ移るんだ!
・・・オレは.NETにするがな。
6.0で書いて.NETで変換の道を進め!
926 :
デフォルトの名無しさん :03/10/06 21:44
VB6の初心者です。 複数の画面からなるプログラムを作っていますが、1画面から2画面に移った場合データが表示できません。 プログラムは1画面表示の次画面表示のコマンドにはFORM2.Show1の画面が出たまま止まってしまいます。 データ表示のプログラムは記述してますが、表示できません。 どのようにしたらいいのでしょうか? わかる方、レスください。お願いします。
927 :
デフォルトの名無しさん :03/10/06 21:47
教えて下さい。 IISアプリの勉強をしているんですが、 新規プロジェクト→IISアプリ→実行→IEに「WebClassがどうこう・・・」、で正常に動作するんですが、 その後→プロジェクト保存→実行、ってするとIEにエラーが出て表示されません。 プロジェクト保存しただけなのにどうしてなんでしょうか???
>>927 >エラーが出て表示されません。
どんなエラーが出るのか書かないのはどうしてなんでしょうか???
>>929 すみません。
まだコードも何も書いてないんでものすごく初歩的なことだと思いまして・・・
エラー内容なくてもわかる方いらっしゃるかと・・・
Serverオブジェクト、ASP0178
許可を確認中にServer.CreateObjectの呼び出しに失敗しました。このオブジェクトへのアクセスは拒否されます。
/Project1/WebClass1.ASP,line 14
保存しただけなんですけど(涙
そういえばURLは、
動作○→/localhost/temp/WebClass1.ASP
動作×→/localhost/Project1/WebClass1.ASP
でした。宜しくお願いしますm(__)m
936 :
デフォルトの名無しさん :03/10/07 01:54
>>931 vbModeless だか vbModal だかのEnumの値だろうな
一定のキー(例えばF1)を押すとフルスクリーン表示になるサンプルを作りたいのですが キーを押した際のコードの所に、 Form1.Top = 0 Form1.Left = 0 でプロパティでBorederStyle = 0にすればうまい具合に思ったとおりの表示になるんですが 通常時はBorderStyle = 1でフルスクリーン表示のときだけBorderStyle = 0にしたいのですが どうもうまくいかないようです。 コードに記述するだけでは出来ないのでしょうか?
>937 どううまくいかないか説明できるようになると、うまくいくと思う。
うまくいかないってのは…そうですね、何もおきない、と言い換えます。 試しにForm1の上にボタンを1つ配置し、 Me.BorderStyle = 0 と記述して実行し、ボタンを押しても「なにもおきない」のです。
>>937 オレも超初心者なんだけど。
使い方とか全然知らないから、適当に試してみた。
me.borderstyle=0
だけじゃできなかった。
me.borderstyle=0
me.caption=""
にしたらできたよ。
最初からcaptionを""にしてても、borderstyleを変更するだけじゃできなかった。
ということで、このぐらいはオレみたいなバカでも解決できた。
正しい方法かどうかは知らないけど。
がんばってね。
どうでもいいけど追記。
試したのはVB6。
>>940 はForm1に配置したボタンに記述した。
終わり。
942 :
デフォルトの名無しさん :03/10/07 09:12
>>937 単純に
Form1.WindowState = vbMaximized
ではいかんの?
>921 ありがとう
>>919 ありがとうございました。
ついでに
解像度変更後ScreenオブジェクトのHeightとWidthが同じになっちゃうのはバグなのでしょうか?
それとも自分の環境だけでしょぅか?
環境:
SOTEC PCSTATION M240L
OS :Win2k SP4
VB :VB6
945 :
デフォルトの名無しさん :03/10/07 11:59
他の環境でテストしる。多分コードに書き間違いだろ。
自分の書いたコードにバグがあるかも、とは思わないのかい?
>>945 レスどもっす、
EXEを作って動かしたところ問題無くできました。
デバッグ実行時のみなるようです。
他の環境でのテストは家のPCで試してみようと思いま
>>946 Screenオブジェクトを直接ウォッチして1行ずつチェックしていたら
Width、Height共に同じ値になっていたんで、>944のような質問になりました。
948 :
デフォルトの名無しさん :03/10/07 17:34
wininetを使ってバイナリデータ(画像データ)をHTTP通信にてPOSTするプログラムを 作っているのですが、 ' Sends the specified request to the HTTP server. Public Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" ( ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long ) As Integer この関数の第四、第五引数に入れるデータの作り方が良く分かりません。 sOptionalの部分にはHTTPのフォームの文字列データと実際の画像データが混在している ことになるかと思いますが、どなたか以前にご経験のある方 よろしくご教授願います。
951 :
デフォルトの名無しさん :03/10/07 22:15
>>899 form2.kname = text3.text
from2.show 1
data1.recordset.movefirst
do until dota1.recordset.eof
texe3.text = kname ten
exit do
else
data1.recodset.movenext
endif
次画面を表示させデータを検索させようとすると画面が表示されたまま
止まってしまいます。どのような記述をすればよいですか?
マジックナンバーへのつっこみは無しか・・・
954 :
デフォルトの名無しさん :03/10/07 23:03
>954 かろやかに氏ね
大学の卒論でVBを使ってロボットをシミュレートする事になったんだが
1 プログラムを全然組んだことがない俺でもできるか?
2 そもそもVBでロボットをシミュレートできるのか?
なんでVBで作らねばならないかというと
http://www.sun-mitec.co.jp/roboabotto.html を実際に動かすのが命題でこのロボがVBにしか対応していないだろうということから。
卒業がかかっているので死ぬ気でやるつもり。
アソバイス求む(前スレにも貼らせてもらいました、必死なんで)
>957 知るか!
右の乳首と左の乳首をint関数で暗号化したいのですけど pingがC++だと通りませんが、VBだとどうですか?
>959 通ります。 ちなみに俺は肛門とヴァギナをインクリメントしてます
>959 死ぬ気とやらが全く感じられないな。
>>957 サンプルはVCおよびVBみたいだがDLLの関数を呼び出せれば何語でも
動くだろ。
963 :
デフォルトの名無しさん :03/10/12 19:17
テキストファイルの追加書き込みで最新を一番上に持ってくる場合は どのようにファイルオープンすればいいのでしょうか。
>>963 やりたいこともその答えも大体想像つくが、念のために聞いておく。
「一番上」 ってなんだ ?
>>963 テキストファイルや言語に限らずファイルの最初に追加することは出来ません。
このまえ他スレでも同じような質問が出たような気がする。
966 :
デフォルトの名無しさん :03/10/12 23:02
行の一番上です 無理ですか・・・
>>963 他のtempファイルに元のデータを退避する。→元あるファイルに追加文を新規にかきこむ。
→元あるファイルにtempファイルのデータを追加で書き込む。
968 :
デフォルトの名無しさん :03/10/13 00:04
>>967 ありがとうございます。
ただ追加分が数行であるのに対し元ファイルが100万行を超えるサイズであり、
元ファイル側を追加で書き込むことを退避できないかと思い相談いたしました。
もう少し考えてみます。
>>967 いや、tempファイルに追加分を書き込み
元ファイルを開いてtempファイルに書き込み
元ファイルを削除して、tempファイルをリネームした方が早い
考えてもしょうがないけどな
>>968 そういう状況なら、読み出し時に何とかする方法を考えたほうがいいと思うよ。
まあ、データが100万行を超えるようなものなら、 データベースを使ったほうがいいと思うけど(汗 最終的にテキストファイルが必要なのなら、 データベースから出力する手段を用意すればいいし。
何でもかんでもDBを使うのは感心しないが、それを使ったほうがあきらかに良いケースもあるよな。
975 :
デフォルトの名無しさん :03/10/13 20:40
ActiveX EXE と構造体の共有っつーか参照渡ししたいんだけど、 どうやればいい?
>>974 DBの変わりにDBのようなものを作るという手もある。
ファイルにインデックス情報もたせて・・・。
>977 なぁ、素直にDB使った方が苦労しなくて済むんじゃないか...
>>978 規模によるけどMDBだとバージョンを考慮しなくちゃいけない場合もでてくる。
スタティックリンクできる軽いDBMSがあればいいんだけどね。
980 :
デフォルトの名無しさん :03/10/18 18:31
CSVファイル(テーブルそのまんま)をMDBに取り込むの 一番簡単なやり方なに? (※ ACCESS使用不可
vbのソフトはwinnyで落とそう。
982 :
デフォルトの名無しさん :03/10/18 19:59
VBプログラマーの給料おいくらでつか?
大体100万円〜ってところかな。
今年入社 手取り20万程ですが・・・
>980 DAOで