VBプログラマ質問スレ(6.0以前) Part38
1 :
デフォルトの名無しさん :
04/09/20 18:36:40
4 :
溝田 千壽喜 :04/09/20 18:45:40
4ゲット・・・ つーか重複?
5 :
デフォルトの名無しさん :04/09/20 18:45:45
真スレage
━━━━━━━━━━━━終了━━━━━━━━━━━━
消しとけ
あっちの関連スレリンクは古すぎる
9 :
デフォルトの名無しさん :04/09/20 18:47:55
下記のようにコーディングして、テキストファイルを読み込むと、 当然読み込んだデータの末端に余計な改行が入るのですけど、 不要な改行を付加することなく、スマートに テキストファイルを読み込む方法はないでしょうか? Open TextFilePath For Input As #1 Do Until EOF(1) Line Input #1, Temp ReadData = ReadData & Temp & Chr(13) & Chr(10) Loop Close #1 Text1.Text = ReadData
>>9 =
>>1 という方程式が成り立つような気がするのは俺だけか?
Chr(13) & Chr(10) を消しても入るの? 改行
━━━━━━━━━━━━終了━━━━━━━━━━━━ こっちは重複スレです。削除依頼出してください。
数十秒差だしテンプレがちゃんとしてるから こっち本スレでいいよ。
前スレで立てるって言ったんですけど。。
>>15 あっちのスレの1だけど、こっちが本スレでいいよ。
すべて悪いのは、溝田だから。
>>9 Open TextFilePath For Input As #1
Do Until EOF(1)
Line Input #1, Temp
If ReadData="" Then
ReadData = Temp
Else
ReadData = ReadData & Temp & Chr(13) & Chr(10)
EndIf
Loop
Close #1
Text1.Text = ReadData
間違った × ReadData = ReadData & Temp & Chr(13) & Chr(10) ○ ReadData = ReadData & Chr(13) & Chr(10) & Temp
20 :
デフォルトの名無しさん :04/09/20 19:10:37
前スレで答えあったのに同じ質問繰り返すな。
22 :
デフォルトの名無しさん :04/09/20 19:58:44
━━━━━━━━━━━━終了━━━━━━━━━━━━ こっちは重複スレです。削除依頼出してください。
Dim i As Integer i = FreeFile Open "hoge.txt" For Binary As #i Text1.Text = Input(LOF(i), #i) Close #i
━━━━━━━━━━━━終了━━━━━━━━━━━━ こっちは重複スレです。削除依頼出してください。
自治しつこいよ
26 :
デフォルトの名無しさん :04/09/21 01:44:44
はじめまして、宜しくお願いします。 VisualBasic逆引き大全500の極意(秀和システム)の069、070 ページ97、98を参考にして @メニューからプロジェクト⇒フォームモジュールを追加でログオンダイアログを選択し次のようにコードを書きました。 Option Explicit Public LoginSucceeded As Boolean Private Sub cmdCancel_Click() 'ログオンに失敗したことを示すために,グローバル変数を Flase に設定します。 LoginSucceeded = False 改行して Me.Hide End Sub Private Sub cmdOK_Click() '正しいパスワードかどうかを調べます。 If txtUserName.Text = "suzuki" And _ txtPassword.Text = "123abc" Then 'ここにパスワードが一致したことを呼び出し元に通知するコードを記述します。ここでは簡単にグローバル変数を True に設定します。 LoginSucceeded = True 改行して Me.Hide Else MsgBox "パスワードが正しくありません。もう一度入力してください !", , "ログオン" txtPassword.SetFocus 改行して SendKeys "{Home}+{End}" End If End Sub 次にForm1に4つCommandButtonwonを配置し Option Explicit Private Sub Form_Load() 'ログオンダイアログボックスを表示 frmLogin.Show vbModal 'ログオンに失敗していたらプログラムを終了 If frmLogin.LoginSucceeded = False Then MsgBox "ログオンできませんでした。" End End If 'ログオンダイアログボックスをメモリから消去 Unload frmLogin End Sub これで、実行をかけるとfrmloginでとまってしますのですが?どのようにしたら良いでしょうか?
その本って2千円ちょっとするやつでしょ 高いよね。分厚いけど。
2千円の本なんて安い部類だよ
30 :
デフォルトの名無しさん :04/09/21 02:49:35
>>27 >>28 さんへ
\2.400税別です…
PCの本だったら安い部類ですかね
2000円は入門書とか、特定の技術のみの本ですよね。 リファレンスに使える奴だと5000-10000円、それ以上のも普通にあるし。(APIバイブルとか) で、とまっちゃうって何が?何処で?
整数の文字列"1234567"とかがあって データの意味は値12345.67なのですが "12345.6"と表示させたいので Format$("1234567" / 100, "0.0") というような風にしたところ "12345.7"と四捨五入されてしまいます。 マニュアルによると四捨五入をするのが仕様のようなのですが 四捨五入させないで小数点第二位以下切り捨てを行いたい場合 どのようにしたらよいでしょうか?
33 :
デフォルトの名無しさん :04/09/21 09:33:17
参照設定の質問です お願いします 現在、2台のPCを使って作業をしているのですが、参照設定にチェックをつけようとしているのですが Win2000(Office2000)には参照設定の Microsoft Excel 9.0 Object Library にチェックがついているのですが、 WinXP HomeEditionのマシンには(Word ExcelがOfficeXP その他Officeが2000) には Microsoft Excel 9.0 Object Libraryがなくかわりに Microsoft Excel 10.0 Object Libraryがあるのですがこちらを使用してかまわないでしょうか?
>>33 そういう場合は参照設定をせずに、CreateObjectからExcelオブジェクトを起こしたほうが良いとは思う。
最終的な動作環境で複数のExcelバージョンを相手にするなら、それぞれごとにテストを行うのは必須ですよ。
EXEも最悪はそれぞれごとか、外部設定で2000かXPかを指定してもらう形になると思います。
>>32 ベタなやり方としては、100倍して10で割った商(小数点2位の切捨て)を、さらに10で割ると。
CINTの仕様が手元で調べられないんだけど、10倍して小数点以下切り捨てて10で輪ってもいいかも。
createobject使え
36 :
デフォルトの名無しさん :04/09/21 09:47:40
>>31 すみません、おねがいします
実行をかけ ユーザー名 suzuki パスワード 123abc を入れると
コードの画面に行くのです
初心者で申し訳ございません。
37 :
デフォルトの名無しさん :04/09/21 09:49:49
>>36 それは・・・。
1.何らかのエラーが発生して、デバック待ちになっている。
2.あなたがブレークポイントを張っている。
のどちらかではないのでしょうか?
止まったときにVBたんは何か言ってません?
>>37 早速の返信ありがとうございます。
とくにVBはなにかあしら文句はいいません。(言ってほしい。。。)
2.のブレークポイントを張っているは該当しないですね。。。
デバック待ちの場合ですとどのような対処方法がありますか?
>>34 >>35 回答ありがとうございます。
う〜ん 早速、調べてやってみたいとおもいます
>>38 その本はあなたには早過ぎるので、別の本からやるといいよ
>>38 どこかのUploaderにソース上げれば診てもらえるかもしれないがね
>>36 そういうサンプルコードだから。
最後に無条件でUnload frmLoginが実行される。
━━━━━━━━━━━━終了━━━━━━━━━━━━ 以後レスした人がいる場合、スレスト食らうので注意。
>>34 ありがとうございました。
Format$(Int("1234567" / 10) / 10, "0.0")
という風にすることにしました。
VB6.0を使用しています。 なぜかわからないんですが、 突然PictureBoxのプロパティウインドウのHeightとWidthの単位が ピクセルになってしまいました。 通常HeightとWidthの単位はTwipですし、 単位を変えることは出来ないと思ったんですが、 もしかしたら変えることが出来、私がそれを触ってしまったんでしょうか? もし戻せるのであれば、どのようにして戻せばいいのでしょうか?
>>46 ピクセルになってるとわかってるんなら、そこをいじればTwipになるさ
>>47 そうなのですが、単位を指定するところはScaleModeしかなく、
HeightとWidthはScaleModeでは反映されないので困っています。
>>49 フォームのScaleModeをTwipに変更したら元に戻りました。
いつの間にか触っていたみたいですね。
どうもありがとうございました。
51 :
デフォルトの名無しさん :04/09/21 13:34:40
コマンドボタンの境界をなくすには?
SetWindowLongとか SetWindowRgnとか 境界のないピクチャボックスの中においてみるとか
53 :
デフォルトの名無しさん :04/09/21 15:13:28
>>52 スマソ
下二つのような方法をとらんで出来ないものかと思っていたがなんかムリっぽい
あきらめるよ
54 :
デフォルトの名無しさん :04/09/21 23:51:12
どういう風にかけばいいかわからず悩んでいます。 テーブル(DB)のフィールドに「Book」で入ってるか「本」で入ってるかわからない(両方存在することはないが両方存在しないことはある) Recordsetに「Book」で入ってるか「本」で入ってるかわからない(両方入ってることはないが両方入ってないことはある) そうやってやりとりしたデータを配列strArr() as String(の1つに)に「Book」か「本」の値を入れたい。 というようなことがテーブルの仕様がよく変わるわたしは結構あるのですが解決する名案はないでしょうか? 「Book」のエイリアスを「本」というようにうまく定義できればいいのですが(実際には「Book」以外の列もいろいろエイリアスをつけたい) どうやって実装すればいいのか案が思い浮かびません。 知恵を貸して下さい。
>>54 たのむ。日本語勉強してくれ。
現状どうなっているのか、どうしたいのか、なにが問題なのか。
人に伝える文書で頼む。
>54 ワラタ。 PG辞めてお笑いblog職人として生きるって手はどう?
57 :
溝田 千壽喜 :04/09/22 09:49:07
>>54 彼の言うことを要約すると、嫁が憎いてなことを言ってます。
そんなことはどうでもいいんだが、
テキストボックスにセットフォーカスやろうとすると、
「プロシジャーの呼び出しまたは引数が不正」とか
わけの分からん事言われてエラーになるんだけど、
どうしたらいいですか。
ちなみに、プロパテイは、Visible、Enabled共にトルーに
なってます!
58 :
溝田 千壽喜 :04/09/22 09:51:30
あっそれから、 F10キーが押されたら、処理が実行されるな画面を作ってるんだけど、 当然F10キーが押されると、メニューバーにフォーカスが行ってしまって、 困ってるんでるんですけど、どうしたらいいですかね。
60 :
溝田 千壽喜 :04/09/22 10:08:49
>>59 えぇーー!
そんなこと言わずに教えてください。
61 :
デフォルトの名無しさん :04/09/22 11:00:19
すみません、超初心者です。 Option Explicit Private Sub cmd_Click(Index As Integer) On Error GoTo cmd_Click_Err Select Case Index 'Case 0 '新規作成ボタンを押下 '新しいテキストを追加する 'Case 1 'Lookボタンを押下 '登録されているテキストを呼び出す 'Case 2 '検索ボタンを押下 'DBにつなぐ検索エンジンらしきもののテキストにつなぐ Case 3 '終了ボタンを押下 '閉じる Unload Me EndSelect Exit Sub cmd_Click_Err: Call ErrMsgDisp("cmd_Click_Err") End Sub これってどうやって解けばいいのですか??? すみません、教えてください
がんばって解く
63 :
溝田 千壽喜 :04/09/22 11:06:59
そんなことはどうでもいいんだが、 テキストボックスにセットフォーカスやろうとすると、 「プロシジャーの呼び出しまたは引数が不正」とか わけの分からん事言われてエラーになるんだけど、 どうしたらいいですか。 ちなみに、プロパテイは、Visible、Enabled共にトルーに なってます! F10キーが押されたら、処理が実行されるな画面を作ってるんだけど、 当然F10キーが押されると、メニューバーにフォーカスが行ってしまって、 困ってるんでるんですけど、どうしたらいいですかね
>>61 仕様が伝わってこないので、こちらとしても何ともし難い。
>>64 さん すみません
オブジェクト内の
新規ボタンを押したら 新規作成画面へ
Lookボタンを押したら登録されているテキストの画面へ
検索ボタンを押したら検索画面へ
終了ボタンを押したら 終了です・・・
仕様とかいう言葉もあんまりわかってないのですみません
よろしくお願いします
>>65 新規作成画面と言われても。
あなたがわからないのに、どうやって作ればいいと言うのか・・・
>>63 自称天才の割には・・・。
前半、デバックで実行すれば、どのプロシジャの呼び出しで引数不正かでるでしょ?
それ見れば。
後半、一般的にはWindowsのデフォルトは尊重すべき。
逆らうならKeyPressかKeyDownだったかで、F10キー押下時にKeyCodeかKeyAsciiを0(など)にしてしまう。
副作用は自分でどうにかしろ。
>>66 さん
たびたび申し訳ないです。
新規作成 Look 検索はとりあえずは新しいFormに行くような形にしたいのです。
さっぱりわけがわかんなくて困っているのです。。。
ほんと、すみません
70 :
デフォルトの名無しさん :04/09/22 11:29:30
>>68 本屋にいって入門書を買って来い。
または入門系のHPを見る。
最近入門の話題があったとおもうからそこを辿れば?
質問以前の問題です。
>>68 学校の宿題か何かでしょうか。でしたらご自身のノートを見てください。
いいかげんな解答してあなたを困らせたくもないですから。
72 :
溝田 千壽喜 :04/09/22 11:44:28
>>69 氏ね
>>67 前半の件
それが、
txtText.SetForcsなの。
そこの場所でエラーになってます。
先ほども申し上げましたが、プロパテイは
Visible、Enabled共にトルーに
なってます!
後半の件
スゴイ!直った!君天才!
でも、その副作用って例えばどんなのがあるの!
┌───────────────────
│あ、どうもスイマセン、
>>72 がお騒がせしました・・・
└───v───────────────
/⌒\ っ /\
/'⌒'ヽ \ っ/\ |
(●.●) )/ |: | すぐ連れて逝きますんで・・・
>冊/ ./ |: /
/⌒ ミミ \ 〆
/ / |::|λ| |
|√7ミ |::| ト、 |
|:/ V_ハ |
/| i | ∧|∧
и .i N /⌒ ヽ)
>>72 λヘ、| i .NV | | |
V\W ( 、 ∪
|| |
∪∪
74 :
溝田 千壽喜 :04/09/22 12:00:12
>73 氏ね荒し!
どっちも嵐だよ。
>>74 あんたもう少し”普通”の会話覚えたほうがいいよ。
さっき少し答えたけど、あんた
>>72 見てナチュラルにムカついたので、後は自分で勝手に調べれば?って思った。
76 :
溝田 千壽喜 :04/09/22 12:06:09
>>75 いや、漏れは少し口は悪いがいい奴です。
txtText.SetForcsなの。
そこの場所でエラーになってます。
先ほども申し上げましたが、プロパテイは
Visible、Enabled共にトルーに
なってます!
VB6.0での質問です。 テキストボックスの表示文字数や行数の限界は有るのでしょうか? テキストファイル読み込み、それをテキストボックスに表示させるプログラムを書いたのですが 90kbのテキストファイルを表示させようとした場合3分の2程度表示され、それ以降がなぜかカットされてしまいます。 全てを表示させる手があれば教えてほしいです。 ソースは以下です。 Private Sub Command1_Click() ' テキストを読みこむ Dim fn As Integer fn = FreeFile Open "サンプル.txt" For Input As #fn Text1.Text = StrConv(InputB(LOF(1), #fn), vbUnicode) Close #fn
78 :
デフォルトの名無しさん :04/09/22 14:19:33
追記、全部表示ならリッチテキスト
表示制限は符号付32ビットじゃなかったかな スクロールと連動して表示内容かえるような構造にするしかないんでない?
>78 >79 「Text プロパティ テキスト ボックス(TextBox)コントロール 最大 64KB までに制限されています。 」 と書いてありました。明確なお返事ありがとうございます。 リッチテキストを使用してみますね。 >80 まだ未熟なもので、「符号付32ビット」「構造」など用語がいまいちわかりません。 今後調べながらそれもやってみようと思います。
これから勉強しようと思うのですがお勧めの本を教えてもらえませんか? いくつもピックアップして貰えたほうが嬉しいです。 我がまま言うと値段が安いのを希望してます。
83 :
デフォルトの名無しさん :04/09/22 16:19:08
10日で覚える Visual Basic6.0 入門編 & 実践編 とかどう?
84 :
デフォルトの名無しさん :04/09/22 20:23:00
MSHFlexGridとDataEnvironmentを 使用して、階層表示は出来るのですが、始めから 展開されている状態なので、初期表示時は折りたた まっているようにしたいのですが、何か設定方法 はありますでしょうか? 環境はWindowsXP VB6.0 access2000 です。 プロパティ類は全部見ました。 宜しくお願いいたします。
>>76 >いや、漏れは少し口は悪いがいい奴です。
昔一緒にやってたバカが同じことで悩んでて、笑っちまったい。
頭は悪いが調子がいい奴だったぜw
TextBoxのコンテナのEnableがFalseとかじゃねーの。
フォームが表示されてない状態でもそーなるしな。
間違いなくてめーの恥ずかしいような凡ミス。
黙ってコードおっかけてろ。
86 :
デフォルトの名無しさん :04/09/23 00:16:54
Inetでプロキシを切り替えながら次々と接続したいんですが、 プロキシが切り替わりません。 一応、StateChangedイベントでicDisconnectedがわたったのを確認してから プロキシを切り替えてExecuteしてるんですが、それでもダメです。 どうすればいいですか。
>>86 INTERNET_OPEN_TYPE_PROXY とかでぐぐればでてこない?
89 :
デフォルトの名無しさん :04/09/23 11:42:26
>>85 おまぇ、日本語が読めねぇのか?
>>76 で、
>Visible、Enabled共にトルーに
>なってます!
言ってるでしょ。
ちなみに、SetForcs直前で、Visible、Enabled共にトルーに
しています。
さあさあ答えなさい
>>89 おい基地害。
85を100回音読しろ。ちゃんと答え「も」書かれてる。
粘着されても困るから一応言っておくが、Loadイベントではまだ フォームは表示されていない。
92 :
溝田 千壽喜 :04/09/23 12:39:49
>>90 がちょーん!
そのとうりですた・・・・。
しかし、インターネットってすごいですね。
そんな事まで分かっちゃうんですね。
ところで、Form_Initalizeってイベント何なんですか?
なんかForm_Loadの前に実行されてるみたいですけど。
93 :
デフォルトの名無しさん :04/09/23 12:48:35
まず皆様、相手にするな。 で、おまえ口の聞き方を覚えるのと、入門書買って来るのと、MSDNぐらい見ろ。
94 :
グレープ町 :04/09/23 22:28:32
denpyomanっていうツールを使って明細フォームを作ってます。 denpyomanに入力して、datacenterに配列として渡したデータを、追加ボタン押下時に SQLサーバーなどのDBに入力するにはどうしたらいいのですか?? denpyomanを使っているかたどのようにされているのでしょうか?
×まず皆様、相手にするな。 ○皆様、相手をしないでください。
VB6の初心者的質問です。以下のようなコードを記述しました。 (MainFrom) Private Sub cmdNURUPO_Click() Dim ぬるぽ as string: ぬるぽ=txtNURUPO.Text Call sub_OpenFile(ぬるぽ) End Sub (標準モジュール) Sub sub_OpenFile(FileName as string) Open FileName For Input As #1 For I = 1 To 10 Input #1, tempX(I) Next I For I = 1 To 10 Input #1, tempZ(I) Next I Close #1 End Sub (続く)
text1.text = "ぬるぽ"Then MsgBox"ガッ" Eles MsgBox"ガッガッガッ" End Sub
99 :
デフォルトの名無しさん :04/09/24 03:28:46
(続き) ここで、txtNURUPOにファイルのフルパスを入れるとうまくファイルを読み込みます。 しかしパスが C:\Documents and Settings\Ore Desu\デスクトップ\データ.txt のように、たぶん反角スペースが含まれていると、 「実行エラー52 ファイル名、または番号が不正です」 と出てきます。どうすればこのようなパスのファイルでエラーが出ないようになりますか? あと、 Open "データ.txt" For Input As #1 にして、 実行ファイルを作成してから同じフォルダにデータ.txtを入れておくとうまく読み込むのですが、 そうしないで、txtNURUPO.Textに データ.txt って書いておいても 「実行エラー52 ファイル名、または番号が不正です」 とでてきます。どうすればよいですか? ご教授お願いします。
100
openする前に If Dir(FileName) = vbNullString Then strMsg = "[" If InStr(1, FileName, "\") = 0 Then strMsg = strMsg & App.Path & "\" End If MsgBox strMsg & FileName & "]はない" Exit Sub End If
ちょっと質問です。 PictureBoxかImageで背景(例えば白)の部分を透過させることはできますか? ぐぐってみたら、BitBltとかそういう話が多かったのですが 出来れば、コントロールを使用したいと思ってます。
103 :
デフォルトの名無しさん :04/09/24 08:17:13
>>97 初心者?初心者だからこそなんで自分で問題を解決しようとしない。
いまの時代、「○○するにはXXする」式で全ての問題の答えを網羅的に
記憶するなんて出来ない。
要するに、問題を自分で解決する能力のない奴は永遠にプログラムなんて
書けない時代になっている。
もちろん、一般論を言えば初心者には解決不能な問題ってのはあるだろう。
しかしこんな問題は、初心者だろうが小学生だろうがヘルプを丁寧に追跡すれば
解決できるはずだ。
104 :
デフォルトの名無しさん :04/09/24 09:19:14
97=溝田 千壽喜
105 :
デフォルトの名無しさん :04/09/24 15:00:02
教えてください VB6でOracle10gに接続しようとしてるのですが やはり今でもoo4oが最速なのでしょうか? だいぶ昔VB5のころはoo4oが最速と言われてましたが。
>>103 教えてやる気がないならレスするなよ。。。
107 :
デフォルトの名無しさん :04/09/24 16:02:52
VB6です。 コンボボックスについて質問があります。 コンボボックスにカーソルを持っていって文字を入力したり Deleteキーを押して文字を削除したり、出来ないようにしたいのですが どうすればよいのでしょうか。 EnableやLockedを試してみましたが、コンボボックス自体が使えなくなったり ロックされたりしてしまいます。
VB6.0で彼女を作りたいんですが。
109 :
デフォルトの名無しさん :04/09/24 16:22:08
>>107 Styleは 2-ドロップダウンリストにしているのか?
>>109 1-ドロップダウンコンボでした
ありがとうございました
>>105 自分でまず試してみたら?
あと、使い方によってはoo4oのほうがいいときがある。
(ストアドよびまくりとか。)
>108 その目的なら、VBというよりはSQLだな INSERTの仕方を覚えればOK その前にCONNECTIONしなきゃいけないけどな
>108 できません。仕様です。
>114 おいおい、誤って「DELETE FROM ドクヲ」とだけしてExecuteしちまったらどうするんだ。 初心者にソレはキツいぜ。
kanojyo.exeを実行しても平気ですか?
>117 やめとけ、感染するぞ
>>113 ってことは
ほとんどの場合は
oo4oよりADOとかのほうがいいってことか?
>>119 そうは書いていないけど。
まあ、今までのMSとORACLEの相性を考えたら明確なんだけど。
どなたか TABとSPACEを交互に打ち続ける ESCで停止する っていうのを書いてくれませんか 当方はVBとかサッパリです
VB6.0を使っています。 テキストファイルの特定の行を削除したいんですが、わかりませんでした。 例えば、a.txtに以下のような情報が入っていた場合、 aaa bbb ccccc dd eee このテキストファイルの2行目、つまり、「bbb」だけ消す というのがやりたいんですが…。 どなたか教えてくださいませんか?
あと、特定の行だけ編集するというのもやりたいのですが、 わからなかったです。上の例でいうと「bbb」を 「abc」に変えるというのがしたいんですが、こちらも教えてください。 ヨロシクお願いします。
Excel2003でMicrosoft Common Dialogを利用したいのですがコントロールツールボックスから コントロールの選択で Microsoft Common Dialog Control, version6.0を選択して シートをクリックすると、「オブジェクトを挿入できません。」と言われてしまいます… どなたかこの問題と同じ境遇になった方はいますでしょうか?
125 :
溝田 千壽喜 :04/09/25 11:11:59
>>122 よし!
VBのプロが教えてしんぜよう。
まず、a.txtの内容全てを配列に格納する。
a.txtを削除する。
新しくa.txtを作成して、上の礼でいくとif文などで、bbb
の部分をはじいて、他の部分をa.txtに書き込む。
以上!
別にa.txtの内容を入れておくのは配列じゃなくとも一時的にb.txt等を
作成しても良い。
(データの件数が膨大な場合)
>>123 ランダムモードなら、簡単なんだが・・・、
多分シーケンサルモードでの話でしょ?
だとしたら、
>>122 のような方法しかありませんな。
>125 ありがとうございます。 質問がちょっと悪かったみたいです。 if文などでbbbをはじくというのがありますが、 その方法がむしろわからなくて難儀していました。 教えていただけませんか? あと編集方法の方はランダムモードでも構わないです。 簡単みたいなのでちょっと自分で調べてみます。
>>120 ん?
相性を考えてADOなの?
ORACLEの用意したoo4oがいいって話しじゃなく
VBとoo4oの相性??
129 :
デフォルトの名無しさん :04/09/25 15:38:32
すいません、質問させて下さい。 複数のフォームのプロパティを一括して変更するにはどうしたら良いでしょうか? フォーム1つ1つ変更していくには数が多すぎて困っております…
フォームを引数として、関数に渡す! ByRefで! 例えば GetForm(Form1) public sub GetForm(ByRef F as Form) with F .Width .Left end Sub ああメンドクサくなってきた。 大体分かったやろ!
131 :
デフォルトの名無しさん :04/09/25 20:42:36
string型変数sに入っている文字列0を 数字0として認識したいのですが、どうしたらいいですか? 最初からinteger型の変数を宣言することはできないのですが、 何か方法はありませんか? 最終的にはs=s+1のような計算ができればいいのですが。
>>131 >最初からinteger型の変数を宣言することはできない
意味不明。
Val(),CLng(),CInt()などどいった型キャスト(型の変換)の関数はいくつかありますがVBの場合は暗黙のキャストが行われます。
一行で済ませたいなら、S = CStr(CLng(S) + 1)
>132 どうもありがとうございました。 できました。
>>130 レスありがとうございます。
参考にして頑張ってみます。
136 :
デフォルトの名無しさん :04/09/25 21:58:46
>>130 参照型をわざわざByRefで渡すってところがVB厨。
参照型と参照渡しを混同しているとみた(笑
君のキャラ、ギャグのつもりでやってるのかもしれないが
馬鹿が馬鹿のフリをするのは正直ちっとも笑えない。
禿げオヤジになった加藤茶が禿げカツラかぶっても笑えないように。
>>136 だったら、コレクション使う方法とか教えてやれよ・・・
>134 ・・・ここ別に笑うところじゃないですよ。 >136 え? どうゆうこと? 省略したら、ByRefになるから省略しろってこと? それともByRefでしか渡せないとか?
>>139 自分で理解するために、ByValで渡して挙動を勉強すれば?
またヘンなヤシが涌いてきたなぁ。 でも答えるのもバカらしい様な幼稚な質問に率先して答えてくれるから、 上手く利用すればスレの皆も助かってイインジャネーノ? 厨は厨を制す(w
>>129 VBの外から、テキストファイルの一括置換という手もある。
143 :
デフォルトの名無しさん :04/09/25 23:39:22
初心者です。 ちょっとしたソフトを作ってみようと思っているのですが、 なにぶんよくわからずに作っているので、ご指導願います。 今まで、ACCESSでよくわからないデータベースにアクセスしていました。 そのときにACCESSのテーブルは地球のようなアイコンになっていて、それを開こうとすると ID および PASSを求められます。 VB でDAO3.6を使ってそのデータベースにアクセスするときに まず、ACCESSにある地球のようなアイコンを指定して、 Set DB = DBEngine.Workspaces(0).OpenDatabase(データベースのアドレス) Set RS = DB.OpenRecordset(TableName, dbOpenDynaset) だけでは駄目なのでしょうか?
144 :
デフォルトの名無しさん :04/09/25 23:42:55
↑補足ですが、 上記の場合に、勝手にID およびパスワードを求める画面が出てきてくれるのか もしくは、プログラム上でなんらかこちらで記述してあげる必要があるのでしょうか、
つっこみしてるほうが痛いってのがなんとも・・・ このスレ、もう駄目かもしれんね。
>>溝田 千壽喜 これ実行してみ そしてから 参照渡し・値渡し・参照型 を勉強し直せ Private Sub Sub1(ByVal F As Form, ByVal S As String) F.Caption = F.Caption & " / 引数が ByVal です" S = S & " / 引数が ByVal です" End Sub Private Sub Sub2(ByRef F As Form, ByRef S As String) F.Caption = F.Caption & " / 引数が ByRef です" S = S & " / 引数が ByRef です" End Sub Private Sub Form_Load() Dim dStr As String Me.Caption = "Test " dStr = "Test " Call Sub1(Me, dStr) Call Sub2(Me, dStr) Me.AutoRedraw = True Me.Print dStr Me.AutoRedraw = False End Sub
147 :
97 :04/09/26 03:59:49
自己解決しました。
>>103 人に教えてもらうと、自分で調べるより遥かに早く問題が解決することがあります。
今回のファイルを開く問題は入門書等を見て行ったのですが、
思うようにファイルが開けず、原因を探すために自分で色々とプログラムを変更して
結果の違いから原因を探そうとしたのですが、分からなかったから聞くことにしました。
入門書やヘルプなんかですべての細かい原因を網羅することは不可能だと思います。
答えてくれないのに偉そうな態度するのはムカつきます。
答えた上で偉そうな態度してください。
>>147 みんな自力で調べたりしてできるようになったんだよ。
お前が低レベルなだけ。
まず自称初心者は自分で調べる方法がわかってないよね。 理解力以前の問題として、何が判って無いか判っていない。 問題分析ができていないと。
>147 名前:97[sage] 投稿日:04/09/26 03:59:49 >自己解決しました。 > なんじゃそりゃ・・・何をどう考え違いしてたかくらい書けよ。 答えは101に書いたろが 本当にヘルプを丁寧に追跡したのか? >人に教えてもらうと、自分で調べるより遥かに早く問題が解決することがあります。 「要するに、問題を自分で解決する能力のない奴は永遠にプログラムなんて 書けない時代になっている。」 理解できてるか?
151 :
デフォルトの名無しさん :04/09/26 13:56:45
VB以外に、アプリケーションを作成できる言語を知っていますか?
C#等で作ったXML WebサービスをVB6から使うことは出来ますか? WSDLファイルを参照する例はあったのですが VS2003に付いてくる WSDL.EXEだと.NET系の言語用のWSDLファイルが作成されるだけで ヘルプを見る限りVB6用は無理っぽいのですが... SOAP Toolkit2.0のWSDLジェネレーターで作れるのかな?
>153 使える。そもそもWSDLはW3Cで規格化されている。 そもそも、SOAPの規格はある程度統一されているので、 理屈ではどんな言語でも関係なく共通に使える。 サービス提供元をWebSphere Application Server5.0(Java)で 作成した物をVB6.0 + SOAP Tool Kit2.0や、VB.NET 2003で 利用する事も問題なく可能。(実際に確認) 逆が上手く動作しなかったりしたがなー。 ちなみに、VB.NET 2003で作成したWeb Serviceを VB6.0 + SOAP Tool Kit 2.0 or 3.0で作成したアプリから 利用できる事も確認しているから、出来ないと言うなよ。
>>154 情報ありがとうございました。
WSDLファイルの作成はDISCOコマンドだったんですね。
DISCOコマンドでWSDLを作成し、クライアントプログラムからの
呼び出しに成功しました。
156 :
デフォルトの名無しさん :04/09/26 17:45:14
真面目に質問です!! 自分はこれからVBはじめようか迷ってます。 というのも自分はdirectXのdirectplayを使ったアプリケーションの ロビー制御などをしたいのですが、 はたしてVBでどの程度のことができるのかが心配なんです。 VBではどれくらいdirectXを扱えるんでしょうか? なんか変な質問してるかもしれませんが いじめずかつ放置せずにお願いします。
157 :
デフォルトの名無しさん :04/09/26 17:46:26
VB本体や書籍の値段を考えると見切り発車というわけにはいかないんです。 お願いします!
お金が気になるなら素直に、 C# or VB.NET + DirectXにすりゃいいじゃん。 ただなんだし。
書籍も買う必要なし。Webから詳しい説明書(MSDNライブラリ)が落とせる。
160 :
デフォルトの名無しさん :04/09/26 17:57:51
>>158 .NETならすぐできるんですか?
>>159 そうなんですか。
MSDNって慣れないとわかりづらくないですか?
ListItemsコレクションのAddメソッドで疑問があります。 object.Add(index, key, text, icon, smallIcon) の、keyってどんな風に使うんですか?
>>156 未経験者がVBでそれやるのは時間の無駄といっても過言ではないと思う。
終りを迎えようとしている言語など使わずに、素直にC#やC++なんかを使ったほうがいいと思う。
情報も集めやすいしね。
163 :
デフォルトの名無しさん :04/09/26 18:03:59
>>162 C#ってそういうマニアックなのは資料が少ない気がするんですがどうなんでしょう
結局C++のほうがいいんでしょうか
>>163 C#についてはあまり知らん。スマソ。
C++は使っている人多いし、最新の情報おっかけてるとC++使ったサンプル等に
たどり着くから、おいらはC++のほうをおすすめしたい。
>>150 101はやってみたけどうまくいかんかった。
というか意味がよう分からんかった。
マルチラインのテキストからパスとってきたのがいかんかったのでは無いかなと思ってる。
改行入ってるからね。関係ないかもしれんがね。
コモンダイアログボックス使う奴にしてパスとってくるようにしたら、普通に出来たので解決した。
>問題を自分で解決する能力のない奴は永遠にプログラムなんて書けない時代
なんでそういう話が出てくるんだ?支離滅裂の暴論ですな。
入門書片手にプログラム始めて、入門書しか手元に無い奴は分からないこと多くて当たり前だろ。
学校で習ったり、周りに詳しい人がいたりで成長する人も多い。
聞きゃはえぇんだよ。違うか?
しばらく考えて分かんなかったら聞いといて自分でも調べんだよ。それが効率的、合理的。
VBが始めてでも簡単にアプリケーション作れるってうたってるとこが俺みたいな奴増やしてるんだろうな。
そういう奴が嫌いならこんなとこでプログラムの質問にご丁寧に答えるのはやめときなさいってこった。
>>161 object.Add( n, "hoge" ) としておくと、
object.Item( n ) だけでなく
object.Item( "hoge" ) でも引っ張ってこれる。
俺の場合は、ファイル名を Add するときに
key にもファイル名を指定する、
という使い方をしたことがあるよ。
>>146 うん、うん、実行してみた。
あれぇ!!!?
FormはByValで渡しても関数内で変更された内容が反映されるんですね。
>そしてから 参照渡し・値渡し・参照型 を勉強し直せ
ええっと・・・。
参照渡しってのが、ByRefの事でしょ、値渡しってのは、ByValの事で、
参照型ってなんですか?
>>166 なるほど。
.Tagみたいなものか。
いろいろ応用できそうですね。
ありがd
溝田うざ。
>165 結局何がまずかったのか?どうすれば良かったのか? といった検証はやってないんだな。 > 聞きゃはえぇんだよ。違うか? 残念だが違う。 聞いたものってのは自力で調べるのと比較すると 身に付きにくい。結局その都度聞くことになるから 効率的ではない。 もちろんおまえさんが後1時間で作れと言われた プログラムならまぁ仕方ないが。 どっちにせよ今回程度の簡単な内容で 「人に聞いた方が早い」という判断しかできなかった ってところが既にやばいと思う。 試してたらすぐに答えの出る内容だったんだから。
>>溝田 千壽喜 参照型 は Object型 の事 Object型の変数には 実体(インスタンス)の参照が入るのは知っていると思う。 引数にObject型を指定すると 当然 参照が入ってくる。 ByValで参照のコピーを渡しても 参照先が一緒なんで ByVal でも ByRef でも同じ結果になってまう。 (ただしプロシージャの中で参照が変えられなかった時の話) >FormはByValで渡しても関数内で変更された内容が反映されるんですね。 Formだけでは無い。 Object型は全て。
>>170 あなた様には簡単な問題だったので、
こっちも初心者かつ質問する身でありながらでかい態度にでたのは誠に申し訳ありませんでした。
しかし、プログラムってぇのはどんな簡単なミス。例えば「.]が一個抜けてただけでも、
原因探すのにデバッグたらなんたらすごい時間かかるときもある。
考え方が根本的に違うときもある。最初の頃はそういう間違えの状況判断するのは難しいだろう。
もちろん苦労して、間違えていたポイントと原因を追究するのが早くなっていくのであろうが、
人に聞いといて自分でも調べとくのが早いことはまちがいない。
まぁ例えるなら家庭教師つけると勉強がスムーズにいくようなもんだ。
あんたさんがどんだけ「おまえは低レベルだ」と訴えても、
そこんとこ議論してるつもりないので話がまったく成り立ってないのでどうしようもない。
ということで、もう俺はこんなどうでもいい言い合いから離脱する。
世話かけましたね。すみませんでした。
ほしかったのは無料家庭教師、と。
いや。タダで言う通りにプログラム作ってくれる人だろ。最終的には。
176 :
デフォルトの名無しさん :04/09/27 15:25:59
どのようにすれば、貼り付けてある コントロールが なくなるのか 教えてください。 なくなるというのは、そのコントロールをアクセスしようとすると エラーとなること。
全く最近の質問は、質問する上での基本的な情報すら伝えられていない。
5W1Hは最低でも入れてくれ。
>>176 は何をやったらそうなった位書かないと、余りに漠然としすぎ。
178 :
デフォルトの名無しさん :04/09/27 16:53:44
よく読んで欲しいな(w 何をやったら、そうなるのかを質問しているのだが。
じゃあ、無くした人に聞けば? 無くした人があなたじゃなくても、そのひとにどういう操作を行ったとか、 大体どのような処理の辺りが怪しいとかは判るでしょ?
180 :
デフォルトの名無しさん :04/09/27 17:16:45
どうしてなくなるのかまったくわからないので、それが わかるためのヒントとして 聞いてるのだ。 どうすれば、なくせるのか? 答えてくれるならば、これだけに 絞って 答えて欲しい。
まず、本当になくなったの? 何で確認したのか? 何のコントロールで発生してるのか? エラーは何を出力してるか?(オブジェクトまたはWithブロックが云々?)
>>180 OSが壊れてる。
参照設定しているocx等が何らかの理由で消えている(か壊れている)。
インストーラーにアプリケーションで使用するコントロールを指定していない。
183 :
デフォルトの名無しさん :04/09/27 18:06:11
>>182 なるほど。
その内容に関しては、当てはまるのは なさそうです。
1.複数のマシンで 発生する。
→OSが壊れてるとは、判断しがたい。
2.OCXを利用しているが、コントロール配列で、1から5まで使ってて その1が 消えてしまうてので
これも 原因とは なりにくそう。
どれが原因か、さっぱしわからないので、なりそうな可能性を あげてもらえると
絞込みができやすいので 助かります。
コントロール配列を用いてるので、Set で 別の変数にそのコントロールを
定義して用いてるのが、原因の一つかな? と思うのですが、Set文で コントロールが
消えたりするのでしょうか?
>>183 その消えているといってる箇所だけど。
元のコントロール配列を参照してる部分でエラーなの?
それとも、その別の変数にアクセス時にエラーなの?
なんつうか、単純に勘違いしてないか?コントロールが消えてると思い込んでるけど、
単に自分のバグでその別の変数に何もセットせずにとか、クリアした状態で関数を読んでいるとか。
相手するなって
>>183 なんでそんな偉そうなんだろ。。。
182さんにお礼の一文でもかけ、池沼。
俺172だから仕方ないでしょ。 かんべんしてください。
スクリーンキャプチャを行い、画像をJPG保存するソフトを作りたいのですが キャプチャ側で参考になるサンプルが見つかりません。 キャプチャの方法は、PrintScreenを押す物以外でお願いします。
しつこいぞ
191 :
デフォルトの名無しさん :04/09/27 22:13:40
WinXP+VB6での画像処理について教えてください。 3つのPaintBoxを準備し、各々A,B,Cとします。 A、Cにはビットマップファイルをロードしておきます。 BにはAからPaintPictureで画像を表示させます。 Cには、BからPaintPictureで画像を上書きしてやりたいのですが 実行時エラー481、ピクチャが不正ですと表示されてしまいます。 回避方法をご存じでしたら、教えてください。
>>191 PictureプロパティとImageプロパティの違いを理解してる?
193 :
デフォルトの名無しさん :04/09/27 22:46:11
>>192 あんまりわかってません。
ヘルプに従うと、pictureでもimageでも良さそうなのですが、実際はimageでしかエラーを回避できないようですね。
取りあえず、不正じゃなくなりました。ありがとうございました。
でも、なんでなのか、よくわかりません…
>>193 PaintPictureはどっちもでも良いよ。
PictureでもImageでもPaintPictureは成功してるっしょ?
ただAとCのPictureには物が入ってるけど
BのPictureは何も入ってないからエラーになる訳。
195 :
デフォルトの名無しさん :04/09/27 23:20:11
>>194 えと、PaintPicture picture2.image 0 , 0ならOKなのですが
PaintPicture picture2.pictureだとダメなようです。
最初は、ご指摘の通り、「なにも入ってないから、なんかのプロパティが設定できて無くてダメなのかなー」と思っていたのですが
pictureをimageに変更してみると、うまくいきました。
>>195 横レスだけど、
>>191 のレスをきちんと読んで理解する努力すれば。
対処療法的にいくらやっても、最後に詰まるよ。
197 :
デフォルトの名無しさん :04/09/27 23:50:39
あ、ついでなのですが。 PictureBoxは、デザイン時にしか大きさを設定できないのでしょうか?
>>197 ヘルプぐらいみて、プロパティをいじってから書き込んでるか?
199 :
デフォルトの名無しさん :04/09/28 00:05:44
>>198 一応見ています。ですが、よくわからないんです。残念ながら。
まあ
>>190 あたりからの続きだろうけど、あんたプログラム向いてないよ。
読んで、判らなければ試せばいいじゃん。
幅、高さのプロパティ値を適当に変えてみれば?
VB6での帳票印刷の定番って やっぱりクリスタルレポートですか? 高くて・・・
>>202 まあ、よく使ってるとは聞くな。クリスタルレポートは。
Developer Editionは10万切ってるわけだが、これで高いんなら他のやつも高くて買えないような気がする。
VBにはDataReport付属してたはずだから、それを検討してみたら?
>>191 これでやってみ
Set Picture2.Picture = Picture1.Picture
Picture3.PaintPicture Picture2.Picture, 0, 0
上のじゃ説明になってないような気がするな・・・ そのあたりオブジェクトとポインタとかの考え方が裏にあるから 誰かに説明してもらった方がいいよ 俺も昔つまずいてぼろぼろになったことあるし
それは PaintPicture で表示している画像は PictureBox.Picture に保存されないからだね。
試しに SavePicture で保存してみると判るかと。
>>191 の様にするなら PaintPicture を使うよりAPI関数の BltBit() を使うと良いと思う。
VBはVCと違って メモリに何が確保してあるかってのを、はしょっちゃうからなぁ ヘルプにものってなかったりするしな
208 :
デフォルトの名無しさん :04/09/28 14:41:05
VBやりこめば多少はVCやる上での糧になりますか
なるんじゃない? 言語的にはオブジェクト指向(継承を除く)を知ることができるし。 IEのプラグインとか作るときに必要なActiveXを 冗長なコードなしで記述できるから本質に絞って勉強できるし。 あくまでやりこめばね。
VC6は・・・。 BCBかVC.netのペタ貼りじゃないと面白くない。 昔のVCはどこがVisualなのかと小一時間・・・。
213 :
デフォルトの名無しさん :04/09/28 14:49:41
CommonDialogのファイルを開くや保存のダイアログで、 「ファイルの種類」の下に「文字コード」等のドロップダウンを付けたいのですが、 どの様にすればいいのでしょうか?
>>32 StrTmp="1234567"
StrTmp2=""
StrTmp2=Mid(StrTmp,1,5) & "." & Mid(StrTmp,6,2)
とかぁ
Msgbox Str((val(StrTmp) * 0.01))
216 :
デフォルトの名無しさん :04/09/28 15:31:58
>>209 いきなりVCは一冊でこれだっていうよう本がなさそうなので いろんな本買う余裕のない自分には無理です。
217 :
デフォルトの名無しさん :04/09/28 15:41:52
今までACCESS(VBA)でプログラムを作成していたのですが、今回VB6での 作業をする事になりました。 VB6ではACCESSのように単票形式のFormというのは作れないのでしょうか ?
222 :
デフォルトの名無しさん :04/09/28 16:56:27
>>218 単票形式に近い形でやりたい場合には、どのようなやり方でやっているんです
か?
>>219 是非教えてください。
223 :
デフォルトの名無しさん :04/09/28 17:07:19
>>222 Dataコントロールをおいて、画面にTextなどを配置して、
配置したコントロールのDataSource、DataMemberなどを設定してあげれば結構いい線はいくと思う。
224 :
デフォルトの名無しさん :04/09/28 17:34:07
226 :
デフォルトの名無しさん :04/09/29 01:48:16
どなたかすいません。 リストビューの ListItemのサブアイテムに画像を追加したいのですが可能でしょうか。 Set obItem = ListView1.ListItems.Add() obItem.Text = "一列目" obItem.SubItems(1) = ここに画像を追加したい。 ようするにやりたいことは、 エクスプローラの右側の各ファイルのサイズを、 グラフとして表示する。 と、いうようなことをやりたいのですが。 当方VB6.0です。
>>226 一般的にはオーナードローを使うはずですわよ
228 :
デフォルトの名無しさん :04/09/29 02:44:03
すみません Do Loop文の問題なんですけれど Private Sub Disp() Dim rs As Recordset Dim Str As String Str = "SELECT * FROM T_ID" _ & " WHERE I = '" & txtUser & "'" _ & " AND P = '" & txtPass & "'" Set rs = dbWork.OpenRecordset(Str, dbOpenDynaset) If Not rs.EOF Then If rs![I] = Me.txtUser.Text And _ rs![P] = Me.txtPass.Text Then LoginSucceeded = True End If MsgBox "ログオン" rs.MoveNext Me.Hide If LoginSucceeded = False MsgBox "パスワードが正しくありません。もう一度入力してください !" End If rs.Close End If End Sub 終了してしまいます 。。 適切な置き場所がわかりません、、、 お願いします
Me.Hide
>>228 なんて声をかければいいかわからんが頑張れ。
もし職業PGだったら転職も考えれ。
231 :
デフォルトの名無しさん :04/09/29 07:14:49
PGなんていつかは転職するんだから さっさとやめれ
人間なんていつかは死ぬんだから さっさとしね
233 :
デフォルトの名無しさん :04/09/29 09:07:06
Me.Hide If LoginSucceeded = False ここの if って これだけで動くのか?
一つ質問させて下さい。 ズバリ、Visual Basic では割り込み処理は出来ますか?
VBに出来ないことなどない、動くかは別
237 :
デフォルトの名無しさん :04/09/29 13:17:36
イベント内の割り込み処理は、日常茶飯事
238 :
デフォルトの名無しさん :04/09/29 18:32:41
ていうか、「割り込み処理」って言葉はどういう意味で使っているのだろうか? 通常のWindowsプログラミングでは割り込み処理って概念はないと思うんだけど。
10ms毎に割り込みかけて、モーター駆動するとか?
/⌒ヽ / ´_ゝ`)すいません、ちょっと割り込みますよ・・・ | / | /| | // | | U .U
タスクマネージャーなどでプログラムの状態などが見えると思いますが(実行中とか応答なしとか) このタスクマネージャーの状態を把握する関数はありますでしょうか? もしあるようでしたら教えていただきたいと思います。
プログラムが「応答なし」かどうかを判断したいということ? WaitForInputIdle がタイムアウトになったら「応答なし」、ではどう?
vbってC言語のexit(0)みたいなメソッドってあるのでしょうか?
どういう意味? End文では役不足ならExitProcess関数を呼ぶのは?
いやたいしたことないんですが、例えば以下のようなことをしたい場合です。 Sub A() Call B Call C End Sub Sub B() if なんちゃら <強制終了> end if End Sub if文の中にExit Subってやっても関数Bを抜けるだけですよね?(関数Cが呼び出される) プログラム自体を終了させたいなぁって思ってて。 ExitProcessで実装できるのでしょうか?
>>245 できるよ。
あと、APIの名前でググるくらいはやってみれ。
248 :
デフォルトの名無しさん :04/09/30 00:26:47
便じょり質問です。
Excelのマクロとかで
>>245 みたいなことをやろうとしてExitProcessを利用すると
Excelが閉じてしまうんですけど閉じさせない方法ってあるのでしょうか?
エラーをうまく使ってごにょごにょ
>>249 そっかぁ。自分でやるしかないのか・・・
どうもでした。
VBから特定のプログラムを起動したいのですが それはどの関数で出来ますか? 例えばデスクトップにあるプログラムを起動する等です。
252 :
デフォルトの名無しさん :04/09/30 00:41:37
ググるなど自助努力もしないで質問する馬鹿がいますが、
それはどの面下げて出来ますか?
例えば
>>251 のような奴です。
あなたはググればわかるのかも知れませんが
ググってわからなかったので質問したということも十分ありうる
まぁそういうと
>>252 とかは
その程度も検索してわからないんなら辞めろ
とかいいそうだけどな
ここは質問板だ
質問に答える気がないなら無視すりゃいいだろ
いやわかるだろう普通、もしかしてブラインドタッチもまだできないとか?
おれはできねぇ。
盲目打ちもできねぇのか。プ
ブラインドタッチできない人=ドリアン ブラインドタッチできる人=ベジータ
259 :
溝田 千壽喜 :04/09/30 09:12:56
>>251 それはな!
Shell関数てぇのを使うんだ!
例えばこんな感じだ!
Ret=Shell("C:\WINDOWS\MizotaTensai.EXE",1)
ググルとか以前の問題として、ヘルプは読め。
261 :
デフォルトの名無しさん :04/09/30 09:44:44
shellだ。
262 :
デフォルトの名無しさん :04/09/30 10:30:19
(汎用的に)小数点1桁の数を取り扱うのに 10倍してLong型 Currency型 皆様ならどちらを使いますか?
速さでlong 精度でcurrency
264 :
デフォルトの名無しさん :04/09/30 10:52:14
265 :
デフォルトの名無しさん :04/09/30 12:42:19
そんなもん適材適所としかいえないと思うが。。
>>263 精度でもLongしかありえんと思うんだが。。
ていうか、Longで精度の問題って意味わかんない。
除算はどうなるって?そういう時は必要な精度の一桁余分にとって
四捨五入すればいい。それでも断然Currencyより早いはず。
>>263-265 ありがとうございます
値の表示もあるということを書いていませんでしたスマソ
そんなわけで浮動小数点は誤差が出て自分にはうまく扱えません
長整数型は当然ながら保持に10倍、還元に1/10が必要で面倒だしミスりやすいのがどうも
高速演算でもしない限り通貨型がよいかなと思っているのですが
複数の値を持つクラスをコレクションで大量に保持する場合が多く
また今作っているのは比較も多用しておりちょっと気がかりです
適材適所はごもっともですが独学の素人なんで定石というか
一般的に二者択一でどっちかなぁと思いまして
他にもご意見がありましたら拝見したいです
なんだが、きょうびの環境で速度とかメモリに問題が出るとは思えないが。
10年以上前のテクかも。 実数と整数の速度差は誤差の範囲の希ガス。 巨大なループの中なら話は別だけど。
>>266 長整数型 (Long) 4 バイト -2,147,483,648 〜 2,147,483,647
通貨型 (Currency) 8 バイト -922,337,203,685,477.5808 〜 922,337,203,685,477.5807
値が範囲内である事が確実で消費メモリや速度が気になるならLong型にすれば良い。
ミスが出るのがイヤなら気の済むまでデバッグすれば良い。
面倒だと思うならCurrency型にすれば良い。
値が範囲内である事が確実で消費メモリや速度が気になりますがミスはイヤですし面倒なのも嫌です
>>270 は世界面倒臭がり王決定戦で予選落ちするタイプ
>>267-271 ありがとうございます
パフォーマンスを気にすることなく好きなほう使うのが定石
と解釈しました
入力(10倍)と出力(1/10倍表示)の関数作るだけじゃん。 あとは掛け算と割り算の位取りくらい。 どんなミスがありうるのか。
VB6sp6でIEやExplorerのツールバー書けますか?
>>273 Currencyで行えば多分問題のないことを、わざわざへんにやる必要なし。
VB6sp6でポート上を流れる通信を見ることはできますか? 例えばwww.yahoo.co.jpを見たときにポート80を流れるデータを テキストに表示するといったことなのですが可能ですか?
ポート上とか言ってる段階で、もう少し通信の基礎を勉強したほうがよいと思った。
>>276 Winsockでプロキシサーバ立てれば、似たようなのはできるけど、ソフト単位で設定が必要になる。
Proxomitron(あってる?)の類。
あとは、winpcapかな。
印刷関係で質問させて下さい。 for Cnt=0 to 9999 printer.print "あいうえお" next printer.enddoc で印刷処理を実行後、印刷を途中でキャンセルしたい場合 どうすれば良いでしょうか? Printer.KillDoc というそれらしき物があったのですが、 うまく行きません。
FTPの鯖アップ処理で困っています。 FtpPutFileを使用して、ファイルのアップは出来るのですが、フォルダ (ディレクトリ?)を指定して、フォルダとその中身ごとアップする方法 が見つかりません。 開発環境はWin98 SE/VB6.0 + SP5 です。 ユーザ環境も、これに準じます。 どうか、宜しく御願い致します。
>>282 Dirとかで自分で回せばOKじゃないの?
フォルダ辿ったり、それを向こうに作ったりも、典型的な再帰でできるし。
フォルダ構成や、その内容が固定では無いので、どうなっても良い様に Topのフォルダから一気にUPしたかったのです。 (ユーザが作成したHPをUPするアプリなので、HP・画像ファイルの数や、 フォルダ構成が固定にならないと言うかしてくれない) MSDN等を一通り調べてみましたが、やはり単一ファイルしか出来ないので しょうか?FtpPutFolderとか、そんな感じの関数は無いのでしょうか? >283 仰る通りなのですが、処理を回す分、時間も長くなるのがネックでして・・。
285 :
デフォルトの名無しさん :04/10/01 17:36:34
>>284 OSのFTPコマンドのMPUTにしても、内部的には回してるだけのはず。
プログラムがフォルダ・ファイルリストを辿る時間と、ファイル転送にかかる時間を考えれば、
プログラムで回したところで大差ないと思うけど。
FTPプロトコル自身は、複数のファイル転送はサポートしていません。
それを使うツール側(上記説明ではWinのFTPコマンド)が実装してるだけです。
ttp://www.atmarkit.co.jp/fnetwork/rensai/netpro10/netpro01.html VBのFTPコントロールは使ったことないから良くはわからんけど、なければ無いんでしょう。
やり方として、Shellで一括転送のバッチを呼ぶっていう手段はあります。
バッチ自体も毎回自分でファイルを作成してしまえば、ある程度は動的になるし。
但し、エラーの取り方が難しいです。(コマンドをリダイレクトして、そのファイル内で判断とか)
VBで作られたプログラムの中って見れますか? 逆アセンブルとかになると思うんですが VBで逆アセンブルとか出来るんでしょうか? 検索してるとVB3とかVB4の時は出来ていたというのを発見したのですが VB6系で逆アセンブル出来るものでしょうか?
>>286 あなたのレベルの人が逆アセンブルして何か面白いの?
>>266 すぐDLLに入るから解りづらいしつまらない
VBの本買いました! これからバシバシ勉強していくんでみんな応援よろしくです
買った本はVB.NETというオチ?
>282 おおむね>285の言うとおりだと思うけど、FFFTPやNextFTPなりの ログが取れるFTPクライアントソフトを実際に使ってみると複数ファイル転送時の 動きとかが実感出来るのでいいかも。
>>295 一番上ってどこのよ?w
「Visual Studio 6.0 Service Pack 5 日本語」っての落として
解凍は適当なフォルダでよろし。別にイタリア語版でも俺はこまらんがな。
あとは解凍されたファイルを見てみ。インストール方法かいてるから。
それから一応言っとくがSP6があるぞ。
はじめてSPの事しったんだけど 入れなきゃ駄目?
駄目。SP無しばバグ有り。
まだSP5でやってるんだけどSP6入れないと駄目?
印刷関係で質問させて下さい。 for Cnt=0 to 9999 printer.print "あいうえお" next printer.enddoc で印刷処理を実行後、印刷を途中でキャンセルしたい場合 どうすれば良いでしょうか? Printer.KillDoc というそれらしき物があったのですが、 うまく行きません。
302 :
デフォルトの名無しさん :04/10/02 12:07:37
>>286 VBは逆汗できないと思う
俺もVB4とかまでは海外の逆汗ツールで出来たけど
VB6とかで逆汗出来たというのは聞いた事がない
>>302 P-codeコンパイルだと海外ツールで逆汗できるけど
ネイティブコードだとすぐdllに入るので難しいらしい
となんかの本で読んだキガス
ネイティブコードなら普通の逆アセンブラで 逆アセンブルできます。
for Cnt=0 to 9999 if キャンセルされているか? then Printer.KillDoc exit for endif printer.print "あいうえお" next こんなかんじ
VB6のSP6ってどこで落とすの? マイコーソフトみてもVSしかないよ
308 :
デフォルトの名無しさん :04/10/02 17:22:21
予約ってどういう意味ですか
309 :
デフォルトの名無しさん :04/10/02 17:23:06
キーワードは予約されています という意味についてです
311 :
デフォルトの名無しさん :04/10/02 17:31:30
さんきゅう キーワードは予約語なんでお前らは変数関数につかえねーよ って意味でつね
やっとSP5をインスコできたよ。。 なんでこんな面倒なの?
SP6があるのに、あえてSP5を入れる理由、聞いてみたいよ
>>314 SP6の実績が上がってからでも遅くは無いから。
SP5は結構長い間活躍した枯れた技術、安定版。
それで問題がない環境ならば、SP5でもOKじゃないですか?
SP6で追加されたFIXと天秤だな オレは最初から6入れるが。 5から6にする時にまた検証するくらいなら、はなっから6入れるわ。
つーかSP6ないんだけど。 落とし先のURLキボンヌ
>>320 なんでもゲイツのせいにするのは、
なんでもナベツネのせいにする野球ファン、
なんでも小泉のせいにする野党なみに無責任で無能の証明です。
みんな普通にしってるし、捜せば5分でみつかるし。
VB5のSP3はもう落とせないのですか?
SP6入れてる人〜 ノシ
コンボボックスで選択したテーブルの内容を、 リストビューを使って読み出したいのですがわかりません。 流れとしては、 @指定したテーブルを開く ↓ Aテーブルの列の項目を読み出し、リストビューにセットする。 ↓ Bテーブルの行の項目を読み出し、リストビューにセットする。 ↓ CEOFになるまでBの繰り返し。 A、Bが全くわかりません。 ご教授お願いします。
テーブルの列を読み出す方法と、 読み出した値をリストビューにセットする方法を調べればいいのでぁないでしょうか。
>>325 愚痴モード〜
せめてミドルウェア何使ってるのかぐらい書けよな。
「新宿いきたいんだけど分かりません。ご教授下さい」って聞かれて
答えられる?今どこにいるのかも聞かないで。
あとどこまで調べたの?
少しでも調べたなら「この言葉が分からない」とか
「何にどういうパラメタ与えればあたえればいいのか」とか
「ここのサンプルのこの部分の意味がわからない」とかって聞くよな。
つーか、恥ずかしくねぇ?
すいません質問です。 上の方で話題になっていたSP6をインストしようと思ったんですが SP6をDLし、実行したさいに展開先を聞かれます。 それは問題ないんですが、この展開したファイル群はセットアップ後に 消しても良いのでしょうか?
331 :
デフォルトの名無しさん :04/10/03 05:27:50
すみませんちょっと質問です VBでデータベースを作ろうと思うのですが accessなくても作れますか
>>331 カンマ区切りのcsvとかなら出来ないこともないが
>>325 Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim rc As ADODB.Recordset
Dim i As Long
Dim j As Long
Set cnn = New ADODB.Connection
Set cat = New ADOX.Catalog
Set rc = New ADODB.Recordset
cnn.ConnectionString = "(接続文字列)"
cnn.Open
rc.ActiveConnection = cnn
cat.ActiveConnection = cnn
For i = 0 To cat.Tables.Count - 1
If cat.Tables.Item(i).Type = "TABLE" Then
'テーブルとフィールドリスト
Debug.Print "TableName="; cat.Tables.Item(i).Name; " Type=";
Debug.Print cat.Tables.Item(i).Type
For j = 0 To cat.Tables.Item(i).Columns.Count - 1
Debug.Print " FieldName="; cat.Tables.Item(i).Columns(j).Name
Next j
続き
'データ
rc.Open "SELECT * FROM " & cat.Tables.Item(i).Name
Do Until rc.EOF
Debug.Print " DATA =";
For j = 0 To cat.Tables.Item(i).Columns.Count - 1
Debug.Print rc.Fields(j).Value; ",";
Next j
Debug.Print
rc.MoveNext
Loop
rc.Close
End If
Next
Set rc = Nothing
Set cat = Nothing
cnn.Close
Set cnn = Nothing
これでフィールドとデータは見れるはず。(意図と合ってるか分からないけど)
あと、
>>327 さんの言ってるように状況が分からないと答えようが無い
(意図を予想するのに手間がかかって答える気にならない)ですよ。
>>331 バージョンぐらい書け、あとDB周りの場合はエディションも、
DBエンジンとしてJetは使えるから、Access無くてもMDBは生成、読み書きできる。
今はMSDEがただで配布されてるから、それを使えば結構なシステムは出来る。
>>331 アドインでビジュアルデーターマネージャーって無い?
これってあるのはエンプラだけ?
>>305 ん?それで出来る?
printer.print
だけでは印刷出来ないですよね?
printer.EndDocまで入れないと。
Printer.KillDocって印刷を強制終了するもではないんですか?
>>337 ビジュアルデータマネージャが付属しているのは、
Professional Edition および Enterprise Edition です。
Learning や Control Creation Edition には付いていません。
(RISC Edition は見た事無いので不明)
Professional/Enterprise の場合は、サンプルディレクトリの下に
VisData のソース コードがあるので、それをコンパイルすればOK。
ただ、DAO 3.5xを使ったソースなので、Jet 3.5x系のファイル
(Access 97製のmdbに相当)までしか作れません。Jet 4.0系
(Access 2000以降のmdb)に対応させるなら、参照設定を
DAO 3.6 に差し替える必要があったかと。
>>339 ありがとうございます。
もう回答ないかと思ってました。
342 :
デフォルトの名無しさん :04/10/04 11:28:15
印刷処理で、Printerメソッド使ってるんだが、印刷をキャンセルできない。 Printer.KillDocは印刷をキャンセルする命令じゃないのか?
343 :
デフォルトの名無しさん :04/10/04 11:40:05
VBで おすすめな ドキュメント作成ツールは 何でしょうか? 理由も教えてね。
ホットドック めじゃーだから、コメント記述等にそれほど負担がかからないから。
345 :
デフォルトの名無しさん :04/10/04 13:17:51
フリーなもので なんかいいものないかなぁ?
347 :
デフォルトの名無しさん :04/10/04 13:54:51
プっ 作るのも探すのも めんどくさいやつに そんなこと言っても無駄だ。 おまえが作れ。
最初からフリーが望みなら書けよ。 全然前提が変わるんだからさ。 で、Vectorぐらいは探したのか?そこに無ければ多分ないよ。
349 :
デフォルトの名無しさん :04/10/04 14:02:41
345は、フリーでいいものはないか、聞いてるだけだと思うが? つまり、最初からだろw
351 :
デフォルトの名無しさん :04/10/04 14:35:25
みんな同一人物だったりして(w
ああそうだよ。全部お前だ。
353 :
デフォルトの名無しさん :04/10/04 15:11:23
みんなヒマなのね。
354 :
デフォルトの名無しさん :04/10/04 20:13:48
初心者な質問ですみませんが教えてください。 何らかの形で取得した3000バイトのテキスト型データを以下のコードで.datファイルに書き込みを行うと データの途中で勝手に改行(4行に)して書き込まれてしまいます。 元データと同じ1行で書き込みたいのですが、どうすれば解決できるでしょうか。 Dim intFileNum As Integer Dim strDatFilePath As String Dim strBuff As String intFileNum = FreeFile strDatFilePath = App.Path & "\Test.dat" Do strBuff = (…3000バイトのテキスト型) Open strDatFilePath For Append As #intFileNum Print #intFileNum, strBuff; Close #intFileNum Loop
質問なんですが 【問題】 【○】 【×】 【正解・不正解】 *【△問中の正解数】 こういったプログラムを作ろうと勉強を始めたんですが 本を読んでても中々難しそうな気がします。 問題数は大体100問以内で作りたいんですが こういったプログラムはVBやり始めたばかりの素人では どれくらいの年月がかかりますでしょうか? 出来るだけ早く作りたいんですが無謀でしょうか。
わかりづらいので書き直します。 【問題】 ←text使用して問題をランダムに表示 【○】 【×】 ←ボタンを使用して○か×を選ぶ 【正解・不正解】 ← labelを使用して正解か不正解か表示する *【△問中の正解数】 ←問題数が50問なら 「50問中の○問正解」等と表示する *これは難しそうなので実装は見送ろうと思ってます。
教材は 図解でわかるVisualBasic入門 荒瀬遥 著 日本実業出版社です。定価1800円(ブックオフで900円でしたがサービス券も使ったので 600円でした)
そうか。がんばれよ。
359は別人です。 プログラムコードを教えて貰いたいのではなく おおよそ何ヶ月くらいで完成できるか教えてほしいですm(__)m
362 :
デフォルトの名無しさん :04/10/04 20:57:43
>>361 ここの解答者のレベルなら30分あれば時間があまるくらいだ。
だが、いくら教えてもできないやつはできないし、できるやつはすぐできる。
お前が何ヶ月かかるかなんて知った事では無い
>>361 depends on your effort :)
365 :
デフォルトの名無しさん :04/10/04 20:59:14
357は変人です。
>>361 簡単なプログラムだから、未経験な俺なら一ヶ月で作れたはず。
だいたい個人差があるんだから、わからんよ。
本みながら、しこしこプログラムしかないって。
一番時間がかかるのは 問題を作る事だな
>>361 プログラムのプの字も知らない小学生がやったとして1ヶ月。
大人だったら1週間。
中学高校大学の何れかで触ったことのある人なら1日。
VBをやったこと無いプログラマなら1時間。
VBプログラマなら20分。
問題100問を記述する時間を抜きにして。
あと、1日2時間勉強したとして。
369 :
sage :04/10/04 21:06:54
>>361 ペッティングのペの字も知らない小学生がやったとして1ヶ月。
大人だったら1週間。
満員電車風俗の何れかで触ったことのある人なら1日。
>>369 今年に入って見たレスで一番つまらない文章だ
('A`)
372 :
デフォルトの名無しさん :04/10/04 21:10:23
>>370 お前がレスするまでは確かに一番だったな。
| | | 人 | (_ ) | (__)::: \ (-д-)::::: ウンコも色々大変なんだよ (| |):::: (γ /::::::: し \::: \ \
変な質問してすいませんでした。 大変参考になりました このままがんばってみます。 ありがとうございました。
おまえらVBで最強のタブブラウザ作ってやるからまっとけ
8086、68000、C、C++、Director、Flash、Delphi、PHPとやってきた古株技術屋なんですが、 VBをやることになりました。 基礎知識とかどーでもいいんで、 とにかくVBの特性を知りたい! 多言語との比較してメリット・デメリットを知りたい! みたいなサイトは無いものでしょうか? VBで検索すると「はじめての・・・」とかに当たってしまってどうにもorz 言語ならではのクセ、とか、独特のコーディング形式とかが知りたいんですが、 とにかく時間がない仕事なのでorz プレッシャーが・・・ VBをやってまずハマるポイントが知りたいのです。 皆様のお手を煩わせることなく、 そういった情報が知れるURLなどをお教えいただければ幸いです。
もう日本にプログラマなんていらないんだよな、実際w
ハマるポイントもなにも、何をする予定なのかを言ってくれないと。
そんだけ経験あるならさっさと取り掛かった方が早いじゃね?
>>377 感触が一番近いのはDelphiだろうね。
メリット・デメリットなんて見方によって違うよね。
ハマる所もみんなハマるなら直されてるし。
っていうか簡単にいえるんなら、すぐ検索で見つけられる。
簡単に言えないからないんだよね。
早速の御回答ありがとうございます。 依頼されている内容は旧アプリケーション型システムの再更新です。 従来あるシステムを再検討して、更に新たな仕様をのっけてくれというものでして。 ネット対応とかDB追加とかそういうものは一切ありません。 現在、他の案件に追われておりまして、このVBの件に関してはまだ触れられても いない状況でして・・・情けない状況大変申し訳ありません。 ですが押し付けられた納期ゆえ正直猛烈な恐怖感でして・・・orz どの言語にも「クセ」はあるものですし、言語毎にフォームの扱いも違ったりしますから、 そういった「ハマる」ものを聞かせていただければ幸いと思い、 質問させていただきました。
配列の初期化がマヌケな方法でしか出来ないとか Variant型で大きい整数を計算するとひどい目に遭うとか
>>383 ああっ、そういう情報です。ありがとうございます。
あとは、インタフェースがらみの問題情報とかです。
必要なライブラリを、手動でその言語デフォルトのフォルダに入れなきゃならないとか、
そういう言語固有の情報があれば、大変助かります。
>>354 下記のようなコードで試して見ましたが、300000バイトのファイルが
作成されるだけで、改行が含まれる事はありませんでしたよ。
Private Sub Form_Load()
Dim intFileNum As Integer
Dim strDatFilePath As String
Dim strBuff As String
strBuff = String(3000, "*")
strDatFilePath = "C:\Test.dat"
intFileNum = FreeFile()
Dim L As Long
For L = 0 To 100
Open strDatFilePath For Append As #intFileNum
Print #intFileNum, strBuff;
Close #intFileNum
Next
End Sub
VB6でメール送信の処理を書くのって MAPIですか? 普通にSMTPで送信するような コンポーネントはないでしょうか?
>>389 標準だとないはず。
売り物ならグレープシティーにある。
>>389 標準だとMAPIかCDOかな。
基本的にはどっちも使いにくいけど
どっちが新しかったっけ?
簡単なランチャーなら5分で作れそうだな
>389 日立東日本ソリューションズのInternet Post for ActivePlatform。 BASPは、自分で使うために作りましたって感じでメソッドが美しくないし、 どうも整理されていない印象が強い。 きちんと作られた商品とフリー製品との違いと言ってしまえばそれまでだし、 美しくないだけで使えない訳ではないので好きにする。 ちなみにMAPIは対応メーラーが入っていない環境では使えない。
>>386 ありがとうございます!
いくつか見てみましたが、これは役に立ちそうです。
有益な情報、感謝いたします。
397 :
354 :04/10/06 00:30:25
>>385 レスありがとうございます。
これまで私は作成された.datファイルの内容をNotepadで開いて見ておりまして、
色々試してみたところ、ただ単にNotepadが3000バイトのレコードを1列で表示することが
できないだけだということを理解しました。
大変失礼を致しました…。
>>385 あちゃ。For L = 1 To 100 と書いたつもりだったのだけど。
これじゃ、300000バイトではなく、303000バイトだなぁ。
>>397 WinXPのメモ帳の場合、1論理行は1024文字(≠1024バイト)までみたい。
>>394 ユーザが多いほうがいいことも多いし
そこはどうなの?
400 :
デフォルトの名無しさん :04/10/06 12:14:40
6.0なのですが、 読み取り専用属性を解除するにはどうしたらいいでしょうか?
>>400 Get/SetFileAttributes
>>401 Get/SetAttr こっちでいいんじゃない?
Microsoft Calendar Control 9.0 をフォームに張ったプログラムを作りましたが、開発機では正常ですが、 他のPCでは、Calendar Control上に日付等の文字が一切表示されないという現象が出ます。 mscal.ocx はシステムフォルダにコピーしており、 開発機・インストール機と同一Ver.であることは確認済みです。 原因と対策についてご存知の方が居られましたら、お教えください。よろしくおねがいします。 開発言語 Visual Studio 6.0 SP6 + Visual Studio Installer 1.1
コピーしただけとか・・・ VSI使ってるから大丈夫か
>>403 Microsoft Calendar Control 9.0って
再配布は許可されてないじゃなかったっけ?
>399 ユーザーが多い = 良いと言う図式は必ず成立する物ではないし、 Internet Post for ActivePlatformは登場してからの時間が長いので、 すっかり枯れていて安定性は抜群だがね。 ポルトガル語で記述されたメールを受信しても問題無いし、○KIの 変なグループウェアから送信されたメールでもOK。 安定性と信頼性が同じ位なら、サポートや使い勝手の良さを比較して どうこうで決めれば良いだけだと思うが。
すいません、本当に初心的な質問なのですが… 自分はVisualStudio.NET2003を使ってるんですが、 VBで新規のプロジェクトを作成しようとすると、 ノートン先生が「悪質なスクリプトを検出しました」と表示して、 強制終了されてしまうんです… devenv.exeというファイルが原因と出てるんですが、なにやらさっぱり… どうすればいいのかどなたか教えてくだされ…_| ̄|○
2chもWindowsも初心者って感じだな
ノーdきりゃええやん電話やし
414 :
sage :04/10/07 09:13:14
WindowXP SP2 を入れると何か不具合があるのでしょうか?
あればあるし、なければないし。 あんたのアプリの構成もわならないで答えられっこないし、判っても答える内容じゃない。 全ては自己責任ってMSも書いてますよ。
417 :
デフォルトの名無しさん :04/10/07 10:28:58
>>410 ここは .NETじゃなくて VB6ぐらいまでの VBについて質問するスレなのだ。
418 :
デフォルトの名無しさん :04/10/07 14:34:45
すみません ウィンドウ間での変数の渡し方で教えてください。 子のフォーム(frmChild)で モジュール変数(xxx)を定義しておいて 親に書くコードはこんな感じで問題ないのでしょうか? 一応動いたのですが心配で。 '子にパラメータを渡して開くとき '----------------- Load frmChild frmChild.xxx = "親からのパラメータ" frmChild.Show vbModal '----------------- '子が閉じられたときに結果を受け取るとき '----------------- msgbox frmChild.xxx = "子の処理結果" UnLoad frmChild '-----------------
OKですよ。 モジュール変数って表現でよかったかは不明ですが、 子側のじぇねらるにぱぶりっくな変数を作ればそれで受け渡しは出来ます。 注意点は、子側がLOADされていないはずの状態でその変数にアクセスしないことでしょうか? ぬるぽが出ないでVBでは子がロードされてしまうはずです。 同じ考えでフォームの関数にもアクセスできるから、その辺りを理解できるとグローバル変数が一気に減るよ。
>418 値を渡すというだけならそれでオケ。 だけど、もう一歩進んでプロパティとして実装しとくと吉かと思われ。
>>419-420 ありがとうございます
今までグローバル変数を使ってたので
これで便利&すっきりしそうです
子が閉じられた事を親が検知するのはできているのだろうか。 等といらぬ心配をしてみるテスト。
>>422 418を指してるなら、Showの後ろに何が付いているかを目をかっぽじって見てみるべきかと。
なるほどいらぬ心配であった。切腹。
425 :
デフォルトの名無しさん :04/10/07 15:52:24
繰り返し処理を用いて、九九の表を表示しなさい。という宿題が出ました ソースを教えてちょんまげ
>>419 たまたま見たスレだけど、初めて知った
勉強になった
>>427 VBのFormってのがクラスだということを理解できると、綺麗に書けますよ。
自作構造体の受け渡しが確か出来なかったの致命傷だったと思うけど、それ以外はグローバルはほとんど不要になる。
429 :
デフォルトの名無しさん :04/10/07 16:38:00
>>425 dim a as integer
dim b as integer
for a=1 to 9
for b=1 to 9
debug.print a & "×" & b & "=" & a*b
next b
next a
430 :
デフォルトの名無しさん :04/10/07 16:44:58
>>429 きちんと型変換とかしていないし、宿題の回答としては駄目ですね。
>>428 構造体がだめなんですね
それは結構致命的ですね
親で一覧データを取得して
子は表示だけってのは難しいってことですよね
それを前提に
子で取得するような仕組みにすればいいのか。
>>431 暫くVB6やってないから、正確じゃないかもしれないですよ。
でも、一覧を表示するならば、その表示する側がやるべきでしょうね。
おやからは絞込み条件を渡すとか。
複数の箇所で検索があるなら、それはモジュールに記述すればいいし。
モジュールだったら構造体配列の受け渡しOKだから。
田代ネ申降臨記念hage
>431 プロシージャをFriendで宣言すれば構造体渡しもでけるよ
>>419 > 注意点は、子側がLOADされていないはずの状態でその変数にアクセスしないことでしょうか?
> ぬるぽが出ないでVBでは子がロードされてしまうはずです。
ロードされていない状態で変数(プロパティ)にアクセスしても「ロード」はされない。
「ロード」とはウインドウ(コントロール含む)の初期化と考えるとわかりやすい。
ウインドウに関係しないことをやっても「ロード」はされない。
ウインドウに関係すること(frmChild.captionなどのフォームのプロパティや フォーム上のテキストボックス等)にアクセスすると「ロード」される。
なのでこれも動作的にはまったく問題ない。(フォーム名と変数名がともにfrmChildの場合) '子にパラメータを渡して開くとき '----------------- frmChild.xxx = "親からのパラメータ" 'ロードされない(frmChild_Loadは発生しない) frmChild.Show vbModal 'ロードされる '----------------- '子が閉じられたときに結果を受け取るとき '----------------- msgbox frmChild.xxx = "子の処理結果" UnLoad frmChild '----------------- まあ、UnLoad と対照的にするために Load を書くのもいいと思うけど。 ちなみに UnLoad frmChild 実行後も frmChild.xxx は生きている。 こうすると同じ値が表示される。 msgbox frmChild.xxx = "子の処理結果" UnLoad frmChild msgbox frmChild.xxx = "子の処理結果" frmChild を完全に初期化(メモリから完全に消去)するには UnLoad frmChild の後に Set frmChild = Nothing が必要 ただし、これをやっても他が frmChild を参照していると初期化されない。 どこからも参照されなくなったときに frmChild が完全に初期化される。 さあ、ややこしくなってきましたw まあクラスとインスタンスの生成(メモリ上への作成)とロード(ウインドウの初期化)の 違いとそれが暗黙に行われる/行われない条件に気をつけようと。
>>422 > 子が閉じられた事を親が検知するのはできているのだろうか。
> 等といらぬ心配をしてみるテスト。
この場合はvbModalがついているから関係ないけど、vbModelessであっても可能。
親が子フォームの Unload イベントをモニタすればいい。具体的にはこんな感じ。
Unloadでキャンセルされたときに注意が必要な気がするが、
まあキャンセル関連は全部QueryUnloadでやれば良し。
'frmParent
Private WithEvents frmChildMonitor As Form
Private Sub Command1_Click()
Set frmChildMonitor = frmChild
Load frmChild
frmChildMonitor.Show
End Sub
Private Sub frmChildMonitor_Unload(Cancel As Integer)
MsgBox "frmChild Unload"
Set frmChildMonitor = Nothing
End Sub
439 :
デフォルトの名無しさん :04/10/07 19:57:38
ここを見落としていて、c++質問スレに質問してしまったので こちらでさせていただきます。 VB6.0でラベルをフォームに配置するときに、メニューバーで配置するのではなく、 コードを使って座標などを指定して配置したいのですが、どのようにすればいいのでしょうか・・? また、lineメソッドなどで書いた図形が、他のアプリと重なった時に消えないようにするには どうすればいいのでしょうか。 どなたかお願いします。
>> 431 > 構造体がだめなんですね > それは結構致命的ですね クラスにすればいい。 > 親で一覧データを取得して > 子は表示だけってのは難しいってことですよね 特にこのようなデータが多くなる可能性がある場合、 構造体は値型なので値をすべて送ることになりパフォーマンスが悪くなる。 クラスだとポインタだけしか送られないので特にこの場合はクラスの方が適切。 データベース関連で言えば親でレコードセットを取得して、 Dim rs as New ADODB.Recordset rs.Open "SELECT * FROM table" Set frmChild.rs = rs frmChild.Show frmChild側で自分のrsプロパティを参照して・・・なんてのもあり。
>>432 モジュールに書いちゃうと
ちょっと見通しが悪くなりますよね。汎用性とか。。
>>434 やっとことない。
やってみますー
>>437 ロードする前から使えるってことは
最初からインスタンスが存在してるってことですか?
>>438 子のイベント監視なんてできるんだ
知らなかったです
>>440 勉強になりました
かなり混乱してます
いろいろやってみますー
ありがとうございましたーー
フォーム関連でややこしくしているのが暗黙で作成されたりロードされたりすることと フォーム(クラス)名と同じ名前の変数が自動的に作成されるところだね。 クラスがなんであるかは知らないならまあ勉強してもらうとして、 フォームモジュールごとにグローバル変数が宣言されてしまう。 たとえばfrmChildというフォームモジュールを作ったら、見えない所に Public frmChild As New frmChild という宣言がされてしまう。 > ロードする前から使えるってことは > 最初からインスタンスが存在してるってことですか? 最初はインスタンスは存在しないけど、先の見えない変数のNew宣言によって 「frmChild変数」にアクセスすると「frmChildクラス」のインスタンスが自動的に作成される。 (ロードされるとは限らない。ロードされるのはウインドウ関連のものにアクセスした場合) ロードとはウインドウ関連の初期化のことであり、アンロードもウインドウ関連の削除のことなので アンロードしてもインスタンスはそのまま。(ウインドウ関連でない)自作のプロパティはそのまま残っている。
> かなり混乱してます ごめんねー。フォームとかインスタンスとかロードとか ちゃんと書くと本一冊にはならないまでも雑誌の特集分にはなるんで。 MSDNにもちゃんと書いてあるのでそれ見てください。
444 :
デフォルトの名無しさん :04/10/07 20:55:49
ビットマップファイルを使って、PictureBoxに絵をロードして、そこにLineなどで線を引いているのですがちょっと困っています。 今までは640×480ピクセルの絵だけだったのですが、1800×480のビットマップファイルについても取り扱わなくてはならなくなりました。 1024×768ピクセルのモニタでやっているのですが、そのサイズ以上にはFormもPictureBoxも大きくできないらしいのです。 モニタより大きな画像に線を引いたり絵を貼り付けたりするには、どうすれば良いのでしょうか。 よろしくお願いします。
スクロールバー付けれ。
446 :
デフォルトの名無しさん :04/10/07 21:12:40
>>445 ありがとうございます。
ヘルプのリファレンスのPictureBox、Pictureオブジェクトの説明を見ても良くわからなかったのですが
プログラミングマニュアルの中にありました。
ヘルプの参照方法がどうもよくわからないですね。
つーかクラスってなんにつかえばいいかわからん 趣味で4年やってるが1度も使ったことない
>>447 > 趣味で4年やってるが1度も使ったことない
いや。使っているはずだぞ。
テキストボックスやラベルもクラスの一種だ。
まあ、他の言語を使ったとしてもそれだけじゃクラスの本質は理解できん。 たとえその言語がクラスしか存在しない言語だったとしても。
そうなのか… せっかく学生だからSpoke買おうかなあ…
C言語でクラスを理解するのはVBでクラスを理解するよりも効率が悪い。 つーか、C言語にクラス無いし。
なんにせよ、プログラムするならC言語くらい知っておけよって感じだな
VBしかできないなんて奴なんて、ほとんどいないだろ
つうか質問すれだからもう終わり。
Dim a As Integer Dim b As Integer Dim strLine As String For a = 1 To 9 strLine = vbNullString For b = 1 To 9 strLine = strLine & Right(Space(2) & Format$(a * b, "##0"), 3) Next b If a = 1 Then Debug.Print Space(1) & "|" & strLine Debug.Print String(30, "-") End If Debug.Print CStr(a) & "|" & strLine Next a
460 :
名無しさん@お腹いっぱい。 :04/10/09 10:45:15
指定したwebをブラウザからはアクセスできないようにする常駐型簡易 フィルタリングソフトは作れますか?ブラウザはIE6.0,使用できるOS はWin2000,WinXPを想定しています。この種の完全なフリーソフト版 はありませんでした。
IEを監視して、特定のサイトが表示されていたら強制的に閉じることは出来る。
'Microsoft Internet Controls'を参照設定
Private Sub Timer1_Timer()
Dim sw As New SHDocVw.ShellWindows
Dim i As InternetExplorer
For Each i In sw
'Debug.Print i.LocationURL
'Debug.Print i.Document.Title
If i.LocationURL Like "
http://*.2ch.net/* " Then
i.Quit
End If
Next i
End Sub
VB6 やりたい事 Long型変数の下位2バイトを取り出したい Dim val1 As Long Dim val2 As Long ・ ・ ・ val2 = val1 And &HFFFF これでできません。なぜ?
>>462 val2 = val1 And &HFFFF&
でもだめかい?
>>463 できますた
サンクス
最後の & はどうゆう意味ですか?
466 :
デフォルトの名無しさん :04/10/09 12:30:07
>>465 いや、こういことって解説してある本もサイトも意外と少ないから
自分で調べるの大変だと思うよ。
まあ、型宣言文字(
>>464 )自体はよくよくMSDN調べれば分ると思うんだけど。
でもどうしてそれが必要なのかまではなかなかね。
signedとunsigned?
468 :
名無しさん@お腹いっぱい。 :04/10/09 13:20:44
>461 ありがとうございます。 さっきから結構調べていたんだけどこんなに早く回答が 頂けるとは。本当にありがとう! で、このサンプルをもとに特定WEBが表示されたら www.yahoo.co.jpに強制的に飛ばせるようにしますた。
>466 型宣言文字かぁ、懐かすぃなぁ A$:文字列型 B%:整数型 C!:単精度浮動小数点数型 D#:倍精度浮動小数点数型 E&:長整数型 確かにVB6のヘルプ見ても初心者にはわかり辛い
今回の場合、&FFFFはIntegerとなり&hFFFF = -1となる Val2 And -1 つまり Val2 And &hFFFFFFFFと計算されるため、狙った計算結果にはならない
みんなサンクス 最後の&を付けないと符号付きの2バイト整数とみなされて それを勝手に符号付き4バイト整数に変換してくれてるわけね・・・ 有難迷惑な話です・・・
>>472 &HFFFFを勝手に65535に変えるほうが有難迷惑だろ
どんな言語もそうだが。
475 :
蜂蜜豆 :04/10/09 16:42:59
Private Sub DataGrid1_KeyPress(KeyAscii As Integer) Dim col Dim no Dim jigyosho no = DataGrid1.Columns(0) col = DataGrid1.Columns(1) jigyosho = DataGrid1.Columns(2) If KeyAscii = vbKeyReturn Then 'Enterキー判定 Form4![得意先会社名] = col Form4![得意先コード] = no Form4![得意先_事業所] = jigyosho End Select Unload me End If End Sub
476 :
蜂蜜豆です。上のはごめんなさい。 :04/10/09 16:54:30
皆さんお願い致します。 VB6+SQLサーバー ”現在の行は使用できません”とエラーメッセージの後に、 VBのプログラム自体が落ちてしまいます。 実現したいことは、DateGridに表示されている行の中から、該当する行を反転させ ENTERボタン押下でその行のセル(1行目)(Columns)を変数として 別フォーム(Form1)の会社コードというテキストボックスに、表示させたいです。 ENTERではなくて、クリックなら問題なく動作するのですが・・・ 宜しくお願い致します。 Private Sub DataGrid1_KeyPress(KeyAscii As Integer) Dim no no = DataGrid1.Columns(0) If KeyAscii = vbKeyReturn Then 'Enterキー判定 Form1![会社コード] = no End Select Unload me End If End Sub
477 :
デフォルトの名無しさん :04/10/09 17:01:57
>ENTERではなくて、クリックなら問題なく動作するのですが そういうことなら、たぶんIfのブロックの中にKeyAscii = 0 入れてやれば いいんじゃないの?
バイナリデータ暗号化するフリーのコンポーネントってないですか?
なるほど、その手がありましたか。 気が付きませんでした。。
481 :
蜂蜜豆 :04/10/09 22:19:49
>>477 ありがとう。
If KeyAscii = 0 Then 'Enterキー判定
ってことかな。 今試したけどやっぱり VBごと強制的に
落ちます。 デバッグならわかるんだけど、落ちるってのは
VBのバグなのかな?
>>481 If KeyAscii = vbKeyReturn Then KeyAscii = 0
VBのバグより、まずは自分を疑え
483 :
蜂蜜豆 :04/10/09 22:31:26
>>482 さん。 ありがとうございます。
こういうことですね。
VBが落ちることはなくなりました。
しかし”現在の行は使用できません”とエラーメッセージ
は直りません。
Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
Dim no
no = DataGrid1.Columns(0)
If KeyAscii = vbKeyReturn Then 'Enterキー判定
KeyAscii = 0
Form1![会社コード] = no
Unload me
End If
End Sub
485 :
蜂蜜豆 :04/10/09 22:45:37
>>482 さん。 ありがとうございます。
自分を疑って色々修正していたら、うまくいきました。
ありがとうございましたl!!
>>486 おバカな原因を晒すのもどうかと思われ。
尻たいよパパン
ActiveReport 2.0 でADOのデータコントロールをOracle8.1.7のDBに 接続したいのですが、ConnectionStringの書き方が判りません。Oracleの ユーザーID、パスワード、ホスト文字列を何に割り当てるのか、その他の パラメータはどう書くのか、どなたか作った事がある方、さっとここに 貼り付けられるならお願いします。VB6.0 SP無し、4、5です。
>>490 MSDNライブラリーより
"Provider=MSDAORA;Data Source=serverName;User ID=userName; Password=userPassword;"
492 :
デフォルトの名無しさん :04/10/10 11:40:58
WebBrowser上で表示されるコンテキストメニューの 「前に戻る」「次に進む」が選択されたことや 「Alt」+「←」や「Backspace」が押されたことを判定するにはどうすれば良いでしょうか。
493 :
デフォルトの名無しさん :04/10/10 11:43:27
>>491 仮眠してまして遅くなりましたが情報感謝!です。でも書き忘れてました、
できればプロパイダはMSDAORAじゃなくてOracleのを使いたいんです。
Provider=OraOLEDBとでも書けばいいんですかね? 色々試してみます。
なんかVB上からActiveReportのデータコントロールに直接レコードセット
ぶち込んでもできそうな気がしてきましたが....
Dimって何の略? Define i am?
>>494 既にOracleと接続できてるのなら、ActiveReportsに直接レコードセット渡せばOK。
>>498 ありがとうございます。ただVB側がoo4oだからか、レコードセット渡しは
エラーになりました。なにかもう少し方法があるかもしれませんが、
.ConnectionString= "Provider=OraOLEDB.Oracle;Data Source=ホスト文字列〜
でうまくいきそうなので取り敢えずこちらで試していきます。
501 :
デフォルトの名無しさん :04/10/10 23:43:08
複数列、複数行の一覧を表示して その中の1行を選択させる場合、 どのコントロールを使うのは定番でしょうか?
>501 ListViewじゃないかと思うが、そんなん状況によるからシラネ。
手っ取り早く勉強用ソフト作りたいんですけど 問題→○or×→問題→〜 のソースください。お願いです
ウチモお願い
>>503 作りたいなら自分でソース書けよな・・・どんな思考回路してんだ?
ヒントだけでもお願いします
>>507 Sub Benkyou
If MsgBox("問題") = vbSeikai Then
MsgBox "○"
Else
MsgBox "×"
End If
End Sub
リストビューって行毎の色って変えれないですよね? せめてデータのない行くらいは別の色にしたいんだけど無理?
データのない行に別の色を割り当てればよい
>>511 できるんですか!?
ぜひ教えてください
全体の文字色と背景色しか設定できないと思ってました。
でもデータのない行に別の色を設定するために
行を追加するっていうのも微妙な感じはしますね。
スクロールバーがでてしまったり
初期表示後に行を追加したり削除するのが面倒そう。
データのない行が選択できてしまったりとか?
>>513 「ListView 行の色」でぐぐったら1番目
515 :
デフォルトの名無しさん :04/10/11 15:43:42
現在、VB6(SP6)+Win2000でソフトを作っているのですが 通常、1つのフォームモジュールを作成すると Form1.frm と Form1.frx の2つのファイルで構成されますよね? ソフトを作り始めて半年ほどになるのですが 最近新たに追加したフォームモジュールには『拡張子.frx』のファイルが無いのです。 過去にも同じような事象がありましたが、ソフトの動作にはまったく問題ありません。 が、何か不安で…。 .frxファイルが作成される基準は何なのでしょうか? 知っている方、どうか教えて下さい。
フォームにコーディング部分があるかどうかじゃねぇ?
>>515 たとえば、テキストボックスのtext欄に何か入れるとその情報が入ってる
>>516 ,
>>517 レスありがとうございます。
まだ確認していませんが.frxファイルが無くても
何ら問題は無いということですか(^^)
('A`)
>>514 ありがとうございます!
でも
ばぐりそうなのでやめときます〜〜
522 :
デフォルトの名無しさん :04/10/11 22:36:14
MSCommを使用してプログラムを組もうとしています。 テストを兼ねて、シンプルなプログラムを組んだのですが OnCommイベントが、呼ばれないのです。 ポートモニタソフトを使って監視してやると、データの送信はしてますし 送信データの内容を変更してテストしても機器の動作はしました。 OnCommイベントが発生させるための方法ってあるのでしょうか?
523 :
デフォルトの名無しさん :04/10/11 22:42:23
>>522 決して煽りじゃないよ。
その文章タイピングしている時間をMSDNみる時間に当てていれば
十分に解決する問題と思われる。
>>515 frmは、基本的にテキストデータです。
(メモ帳で開いてみてください)
それに対して、frxはバイナリデータを保持しています。
画像データや、「改行を含む文字列」などですね。
バイナリデータが含まれていなければ、frmはできません。
>>525 あ、最後逆。
バイナリが含まれていなければ、frmしかできません。
frmには、frxのどの位置にデータが含まれているかが
書かれています。
というか、ヘルプにも解説がありますよん。
》 バイナリ データ ファイルは、フォームと同じディレクトリに
》 保存されます。バイナリ データ ファイルのファイル名は、
》 フォームのファイル名と同じで、拡張子を .frx に
》 置き換えたものになります。バイナリ データ ファイルは、
》 Visual Basic でフォームを読み込むと同時に読み込まれます。
》 バイナリ データが含まれるフォームをほかのプロジェクトで
》 使う場合は、そのプロジェクトでもフォーム モジュール
》 ファイル (.frm) とバイナリ データ ファイル (.frx) の両方が
》 必要となります。
アイコンを指定してもfrxは作られる。
530 :
デフォルトの名無しさん :04/10/12 09:33:20
発音としては、がっちゃんの鳴き声みたいな漢字かな? ぐっぷぐーる。
関数名を選択して なにかのキーを押すとその関数に飛ぶのって なんでしたっけ? 教えてくだせーーー
>>531 右クリックメニューに思いっきり書いてあるからそれぐらい見ろ。
533 :
デフォルトの名無しさん :04/10/12 10:50:46
教えてください。 VBのLIKE演算子って 数字が複数個みたいな判定はできない? [0-9]* だと先頭が数字でうしろは なんでもいいことになりますよね
>>533 [0-9][0-9][0-9][0-9]
####
VB6.0を使用していますが、質問があります。 バイナリ形式のファイルを作成する際に、 どうも2Gバイト以上のファイルが作成できないようです。 どのようにすれば、2Gバイト以上のファイルが作成できるでしょうか? こちらの環境はWindowsXPでHDDは80GバイトNTFSです。 よろしくお願いします。
>>534 それだと4桁固定じゃない?
数字だけなら
if hoge like "*[!0-9]*" then
msgbox "数字でない"
end if
でできると思う
前のほうが任意の数の数字で後ろが任意の桁数のアルファベット
みたいなのは無理と思う。
>>535 APIの CreateFile ReadFile WriteFile SetFilePointerでできると思うけど・・・
オレは試してないからレポート希望
539 :
デフォルトの名無しさん :04/10/12 21:30:35
教えてください 親からvbModalで開いたウィンドウで 最小化ボタンを押して最小化し タスクバーでそのタスクをクリックすると 親がクリックなどできない状態で表示され 子のほうは画面左下に最小化した状態で表示されるのですが これを開くことはできないでしょうか?
ここってあんまり教えてくれないよね
よく例としてhogeとかって出るけど ヌルポみたいに意味があるんですか?
>>539 開くとは、親から?
Modalだと親が子を待っているんだから、
子が終わらないと親は何も操作できないよ
543 :
デフォルトの名無しさん :04/10/12 22:54:41
522です。
>>523 >>524 すいません。機器の側での設定&初歩的な設定ミスをしてました。
本当にすいません。m(_ _)m
そしてありがとうございました。
>>238 ありがとうございます。APIは今までやったことなかったですが
これを機会に挑戦してみます。
>>542 そうなりますよね。
なので
親でなく子を開きたいのです。
最小化する直前の状態、
つまり親の上に子がでてる状態になってほしいのですが
子は最小化(画面左下)になってしまいます。
それをダブルクリックすれば開けますが
2段階の操作がわずらわしいので。
方法はありませんでしょうか?
妥当です。
548 :
デフォルトの名無しさん :04/10/13 13:48:41
ここってあんまりレポートくれないよね
SelectionMode.MultiSimpleにしたListBoxで、 Itemを複数選択し一度に削除する為以下を実行しましたがエラーになります。 For i = 0 To Me.ListBox.SelectedItems.Count - 1 Me.ListBox.Items.Remove(Me.ListBox.SelectedItems(i)) Next i 上記を Me.ListBox.Items.Remove(Me.ListBox.SelectedItems(i)) だけにすると、1番上のItemは削除されるのですが、 Forで連続して削除することは出来ないのでしょうか。 宜しくお願いします。
↑誤爆しました、すみません。
ここってあんまりエラーメッセージ書いてくれないよね
>>550 そりゃあ削除した時点で番号ずれるからな
下から逆に消した方が良くない?
このスレ、見てると糞プログラマーばっかりなのが良く分る
そして保守
558 :
デフォルトの名無しさん :04/10/14 14:58:48
VB初心者の者ですが、教えてください。 デザイン時のフォームにMicrosoft Calender Control 8.0を貼ろうとすると、 強制終了してしまいます。 仕事場での環境ではうまくいったのですが。。。 【強制終了の環境】 OS:Windows2000 SP3 デバッガ:VB6.0 SPなし
559 :
デフォルトの名無しさん :04/10/14 15:02:30
SP6でも入れてくらはい。
560 :
デフォルトの名無しさん :04/10/14 15:09:10
おぉ!レスありがとです! SP6がでてるのですか? 5だとばかり。。 入れてみます!!
561 :
デフォルトの名無しさん :04/10/14 15:28:21
562 :
デフォルトの名無しさん :04/10/14 16:28:01
使わなくなった文字列型の変数って 空文字を代入したほうがいいの?
564 :
デフォルトの名無しさん :04/10/14 17:17:18
使わなくなったものは 何を入れても関係ないはず。 普通は 放置。
その変数が長寿で、メモリの無駄と思うほどでかいやつなら考えるがな
566 :
デフォルトの名無しさん :04/10/14 17:49:08
っていうか 一時的な変数は、ローカル変数にしろよなっ。
>>563-566 どうも
つまり必要ない、と解釈しました
>>565 空き分のメモリはちゃんと開放されるってコト?
昨今のマシンじゃ考慮する必要もないけど
一応知識として知っておきたくって
すいません。質問です。 VB6で印刷処理をしたいのですが 余白の設定のやり方がいまいちよくわかりません。 どなたか教えてもらえないでしょうか。
VSってなんでこんな重いンですか
>571のPCスペックが低いから
athlon2500+の1GMBメモリだけど? 別に低くはないでしょ
まあ、起動が重いだけだがね。
エ、AMDだってーーーーーーーっ?
VB6.0で、今日はじめてブレークポイントを使ってみたのですが、 設定したブレークポイントは保存できないんでしょうか?
>>576 代用として、
Debug.Assert False
579 :
デフォルトの名無しさん :04/10/15 15:45:28
>>577 >>579 ありがとうございました。大変助かりました。
Debugがオブジェクトだなんて、100年経ってもわからなかったと思います。
>>578 申し訳ありません。説明不足でした。
余白を多く出力するのではなく
余白を少なくし、用紙の端から出力したいと思っています。
余白は可能な限り、0に近づけたいと思います。
どうかよろしくお願いします。
>>581 Private Const PHYSICALOFFSETX = 112
Private Const PHYSICALOFFSETY = 113
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Sub test()
With Printer
Debug.Print GetDeviceCaps(.hDC, PHYSICALOFFSETX) * .TwipsPerPixelX '上余白
Debug.Print GetDeviceCaps(.hDC, PHYSICALOFFSETY) * .TwipsPerPixelY '下余白
End With
End Sub
583 :
デフォルトの名無しさん :04/10/15 21:57:35
始めまして、質問よろしくお願いします。 大学で少しプログラムをやっていた事もあり 今日いきなり上からプログラムを組んでくれと言われその内容が 「RS232Cの磁気カードリーダーから社員の情報を読むプログラム」 らしいのですが、VBでそういった事はできますでしょうか?また方法が 分かる方いらっしゃったら教えてください。一応言語はVB,C++,JAVA が多少できる程度です。
585 :
デフォルトの名無しさん :04/10/15 23:59:00
VB6がどうしてもインストールできません・・・(TT) なぜでしょうか。。。。 コンポーネントの検索してるところで応答しなくなります。 OSはXPPRO SP1 普通にウィンドウズアップデートはかけてます。 最新のランタイムはインストールしました、HD領域はまだ沢山残ってます、 無駄なことですが、7月の時点までシステムの復元したりしました。 検索してて、XPのアップデートがかかってるとインストールできないとかいう のを読んだのですが・・・。 アップデートを無効にするなんて、再インストール以外、無理ですもんね・・・。
587 :
デフォルトの名無しさん :04/10/16 00:02:46
ねえねえ、何でVBなんて過去のツール使ってるの? バカみたいですよ?www 恥ずかしくないの?キモヲタだから?ねぇねぇ
少なくともプロの発言ではないな
>>588 (´‘c_,‘` )プッ
プロだってダサッ クサッ wwww
アンカーくらい使えよド素人が(´ー`)y−~~
>587 ねえねえ、何で半角なんて過去の文字使ってるの? バカみたいですよ?www 恥ずかしくないの?アオニタだから?ねぇねぇ
>>591 いや〜2chのやつらってすぐ釣れるから飽きないぜwwwwwwwwwwwwww
>587
後付釣り宣言する愉快な厨房がいるスレはここですか?
クライアントで適当な一時ファイルを使いたいんだけど そういう用途のディレクトリパスを取得するような 便利なコマンドはありませんか? 理想としてはユーザごとの C:\Documents and Settings\hoge\Local Settings\Temp みたいなディレクトリなのですが
>>597-598 ありがとうございますーー
今回はAPIでなく
教えていただいたEnviron$を使わせていただきます
しかしユーザtempの下って汚いですね
tmpなのにアンインストールしたアプリのものまであるし
なぜかexeもあるし(Yahooメッセ関連)
再起動時にtmpやtempの中消すツールあるよ
教えてください uboundを使うと 配列数が0のときにエラーになるので 関数で覆って0でも配列数を返す関数を作ったのですが Public Function GetArrayCnt(aaa) As Long On Error GoTo ErrorHandle GetArrayCnt= UBound(aaa) + 1 Exit Function ErrorHandle: GetArrayCnt= 0 Exit Function End Function ユーザ定義型の配列変数を渡すとエラーになります このような関数はつくれないのでしょうか?
#質問先がここでいいのかわからないのですが、 webbrowserコントロールを使っていてるアプリケーションで、 javascriptやflash等でウィンドウを閉じるようなwebページで ウィンドウを閉じられないようにする方法はありますでしょうか。 あるいは、ウィンドウを閉じられてしまった状態になっていることを知る方法や webbrowserコントロールを再度使用可能な状態にするには方法はありますでしょうか。 webを閉じる時に発生するイベントもなさそうで、何か手があるのか分からないのです。
>>601 動的配列を定義するときに要素数1つ分で初期化しておけば?
dim a(0)
redim a(使いたいだけ)
>>603 やっぱりこれが簡単ですよね
BASICだからと割り切って1から使うようにします
ありがとうございました
WindowClosingでした
606 :
デフォルトの名無しさん :04/10/17 20:23:11
次のような配列があるとします Type T name As String Syakkin As Long End Type Dim Aiful() as T ' 適当に随時Redim Aiful(0).name = "Sen Masao" Aiful(0).Syakkin = 500 Aiful(1).name = "Haga Kenji" Aiful(1).Syakkin = 1000 Aiful(2).name = "Sen Masao" Aiful(2).Syakkin = 300 これをnameで集計してRedimしたいのですがどうすればいいでしょうか? ' 代入するんじゃなくて上から下の結果を出したい Aiful(0).name = "Sen Masao" Aiful(0).Syakkin = 800 Aiful(1).name = "Haga Kenji" Aiful(1).Syakkin = 1000 という風に配列の要素数を2(0から1)にして合計したいんです。 何か知恵を貸してください。 #配列の順番はnameでソートされているとは限らず、いくつ要素があるかもわかりません
DBを使っているとか、インデックステーブルを別に持ってるとか じゃないなら頭からケツまでループで回して行く以外あるまい?
>>606 何気に面白い(w Fujita Makotoも忘れずに。
マジレスすると、まず人を表すクラス"cShakkinnOh"を作る。
クラスのメンバはとりあえずnameプロパティとその人の借金の残高を表す
Syakkinnプロパティ、そして借金の残高を増やすIncShakkinnメソッドと
減らすDecShakkinnメソッド。
そしてその型のメンバのインスタンスを構造体Tのメンバにすればいい。
nameメンバの代わりにね。
個別の取引が発生した際には、取引を表すAiful配列に記録すると供に、
対応するcShakkinnOhのインスタンスのIncShakkinnまたはDecShakkinn
メソッドをコールする。
cShakkinnOhクラスのインスタンスのコレクションか配列を作っておけば、
いちいちそのつど合計しなくてもインデックスiが指示するインスタンスの
Syakkinnプロパティにアクセスしてその人の残高が分る。
いまいちな説明ですまないけどあとは自分の脳で補完してね。
>>606 Scripting.Dictionaryオブジェクトを使え
>>609 偉そうに命令口調で言うわりには素っ頓狂なアドバイスのような気が。。
>601 Friend
すいませんGW_OWNER = 4って何の意味があるんでしょうか? サンプルから丸々削って起動しても何の異常も無かったのですが
613 :
デフォルトの名無しさん :04/10/18 21:10:00
VBスクリプトでこれを走らせると、Redimの行で、 「インデックスが有効範囲にありません。」って言われます。 なんでれすか? Dim array() Dim row, col For row = 1 to 10 For col = 1 to 20 Redim preserve array(row, col) array(row, col) = row & ":" & col Next Next
>>613 なぜそんなMSDNみれば一分で解決するようなことを
わざわざタイプしてまで人に聞く?
寂しがり屋さんなのかい君は。だったら実況板とかラウンジとか
行った方がいいと思うよ。
615 :
デフォルトの名無しさん :04/10/18 22:03:41
>>613 MSDNを見てみたよ。
preserveを使うと、最後の次元しか変更できないってこと?
>>612 使ってない定数は削除しても大丈夫だよ。
# 基本の手前みたいな話は本には載って無いんだろうなぁ
>615 そうだね。簡単だから構造体でも使えば? あと、ココはVBスレなのでVBScriptはどうか知らんが 変数名の「Array」は予約語なので気持ち悪い。
618 :
デフォルトの名無しさん :04/10/19 16:42:27
現在VB6.0SP6にて作成したプログラムが数時間動いて オーバーフローして終了してしまうバグをつぶしてるのですが・・・ オーバーフローしている変数を特定できずに困っております。 それでお聞きしたいのが on error goto を使用してエラーを吐き出している変数を特定できないのでしょうか? もしくは行番号(どっかで見た記憶はあるんですが・・・)をエラー時に表示する方法を お教えください。 宜しくお願い致します。
620 :
デフォルトの名無しさん :04/10/19 17:33:31
>>618 面倒だが 変数をセットしたあとに
Debug.print 変数名
で 変数を 出すしかないな。
っていうか Exeならば ファイルに出力させればいい。
が、ファイルに出力するので 新たなバグを出さないように。
デバック時にOn Errorを切ればいいだけでは
622 :
デフォルトの名無しさん :04/10/19 17:55:35
>>619-621 ありがとうございます〜m(_ _)m
参考に頑張ります〜
ありがとうございました。
モーダルフォームを表示中に別の処理を動かす、 またはそれと同じような効果を実現する方法ってどうやるのでしょう。 感じとしては、「処理中 キャンセルする?」 見たいなメッセージを出しつつ裏で処理させるようなものを作りたいのですが win32apiにあるのかしら?
Timerコントロール デバッグ時には動かないので注意
>>623 別の処理ってやつの中でDoEventsするとボタン押せるようになるよ。
thaks! やってみます
>>601 初期化されていない配列は、UBoundするとエラーになりますが、
初期化された空の配列ならば、UBound(LBound)が利用できますよ。
Dim S() As String: S = Split("")
Dim B() As Byte: B = ""
Dim O() As Object: VarType O
Dim V() As Variant: V = Array()
Debug.Print LBound(S), UBound(S)
Debug.Print LBound(B), UBound(B)
Debug.Print LBound(O), UBound(O)
Debug.Print LBound(V), UBound(V)
で、本題。
601さんが作成された関数は、既定の型(通常はVariant)を
受け取るようになっていますよね。
確かに、Variant型には配列を格納できるのですが、
そこにユーザー定義型を渡す場合には、
『ユーザー定義型が、クラスモジュールにて宣言されていて、
かつ、クラスのInstancingがPrivate以外に設定されている』
という条件を満たさなければいけません。
>>601 でもって、代替案。
案1)
>>627 の最後に書いたように、ユーザー定義型をパブリックで定義する。
案2) 最初のインデックスを使わない事で逃げてしまう。(
>>603-604 ですね)
案3) 最初に、空の配列を作ってしまう。
案3については、たとえばこんな感じで。
Option Explicit
Private Type Hoge
X As Long
Y As Long
End Type
Private Declare Function SafeArrayAllocDescriptor Lib "oleaut32" (ByVal cDims As Long, ByRef ppsaOut() As Any) As Long
Private Function GetEmptyHogeArray() As Hoge()
SafeArrayAllocDescriptor 1, GetEmptyHogeArray
End Function
Private Sub Form_Load()
Dim X() As Hoge
X = GetEmptyHogeArray()
Debug.Print LBound(X), UBound(X)
End Sub
629 :
デフォルトの名無しさん :04/10/20 13:29:34
タスクトレイに アイコンを入れて タスクバーに 何も出さないようにするには どうしたらいいのでしょうか?
>>629 1.APIでごいごい。サンプルは結構転がってるからグーグル様にお尋ねを。
2.グレープシチーに多分あるから買う。
631 :
デフォルトの名無しさん :04/10/20 13:56:59
632 :
デフォルトの名無しさん :04/10/20 13:58:44
フリーで使えそうな アイコンが落ちているところを 教えてください。
634 :
デフォルトの名無しさん :04/10/20 16:35:52
おかげさまでタスクトレイにアイコンを表示することは できたんですが そのアイコンを クリックしたりダブルクリックした時のイベントが わかりません。 どのようにすれば クリックや ダブルクリックの割り込みを受け取ることができるのでしょうか?
636 :
デフォルトの名無しさん :04/10/20 16:40:29
文字列をXORで暗号化するにはどうしたらいいんですか?
640 :
デフォルトの名無しさん :04/10/20 17:51:52
utf-8のテキストファイルを 読み込むと 文字化けします。 なおすには どうしたらいいのでしょうか?
>>636 その考えだから
>>634 みたいな再質問がでるんだよ。
グーグルで調べて、無駄だと思っても周辺もまあまあ見ておく。
そうすれば、ちょと脇の質問が発生しても、聞く前に心当たりが出来ていく。
最近の開発、基礎知識は必要だけど、個々の技術なんて全部を完全に覚えられないからね。
グーグル様へのお祈りの仕方と、そのあたりから導き出される知識の連想が全て。
>>640 WideCharToMultiByte, MultiByteToWideChar
Win98以上だったかな
>640 バイト型配列に読み込んで、StrConv。
>640 >643 自己レスだが、StrConv使わんで、バイト型配列をそのまま文字列型に 代入すれば良いか・・・ (UNICODEだしな)
645 :
デフォルトの名無しさん :04/10/20 20:33:51
1〜100までの奇数だけの和を求めるプログラムお願いします(×_×)
>>645 for i = 0 to 100
if i and 1 = 1 then
total = total + i
next i
647 :
デフォルトの名無しさん :04/10/20 21:07:12
646さん ありがとうございます!でも入力したらエラーがでちゃいました。 超初心者なもんですいません
>>647 いや Nextの前の行にEnd Ifが無いだけなんだが。そのくらい言うまでも無いかなと思ったのに。
エラー出た時はエラーを正確に書くのがマナーだ
しまた。 If (i And 1) = 1 Then だ。訂正。
650 :
デフォルトの名無しさん :04/10/20 21:16:14
すいません。今後気おつけます! 今度はEnd Ifに対応するIfブロックがありませんと表示されちゃいました
651 :
デフォルトの名無しさん :04/10/20 21:17:54
度々ありがとうございます!またよろしくお願いします!!
652 :
デフォルトの名無しさん :04/10/20 21:31:49
649さん 訂正されたのを実行したり EndIfに対応するIfブロックがありませんと表示されちゃいました
>>652 Private Sub Form_Load()
Dim i As Integer
Dim total As Integer
For i = 0 To 100
If (i And 1) = 1 Then
total = total + i
End If
Next i
Debug.Print total
End Sub
654 :
デフォルトの名無しさん :04/10/20 21:45:44
653さん ありがとうございます。 今度はエラーの表示は出なくなったんですけど 実行しても何も反応が無く奇数の和が表示されません。 いろいろとすいません
>>654 MsgBox total
をEnd Subの前に入れろ
お前、目の前にいたら殴ってるぞ
st = "暗号化する文章" strkey = Asc("1") '鍵 '暗号化 Do While st <> "" '暗号化する文字列を入れた変数(st)が空になるまでループする code = Asc(st) code = code Xor strkey stb = stb + Chr(code) st = Mid(st, 2) '暗号化した文字を消す Loop '暗号化した文字列はstbに代入される '復号化 Do While stb <> "" '今度は、暗号化した文字列を入れた変数(stb)が空になるまでループする code = Asc(stb) stb = Mid(stb, 2) code = code Xor strkey st = st + Chr(code) Loop '復号化した文字列はstに代入される ↑ 作ってみたところ、こんな感じになりました。 鍵が「1」の時はまともに動くのですが、それ以外にすると無茶苦茶になってしまいます。 何がおかしいんでしょうか・・・
658 :
デフォルトの名無しさん :04/10/20 21:57:10
655さん すいません!本当にありがとうございました!!
>>656 String使ってないか?
Byteで処理しないと何をされても文句言えないぞ
>>659 すみません、意味がよく分かりません。
もう少し詳しくお願いします。
>>660 説明がめんどくさいからコードで。
Dim s() As Byte
Dim i As Integer
s = StrConv(Text1.Text, vbFromUnicode)
Label1.Caption = ""
Label2.Caption = ""
For i = 0 To UBound(s)
Label1.Caption = Label1.Caption & " " & Hex(s(i))
Next i
For i = 0 To UBound(s)
s(i) = s(i) Xor &HFF
Label2.Caption = Label2.Caption & " " & Hex(s(i))
Next i
Byteから文字に戻すのは、またxorかけて Label3.Caption = StrConv(s, vbUnicode) のような感じ。
ここの質問者って自分の理解を超えると消えちゃうよねー
ヘルプ読みながらなんとか解読しました。 親切にありがとうございました。
>>644 VB6で使われているUnicodeは、UCS-2です。
UTF-16ならばそのまま読めますが、UTF-8だと変換が必要かと。
で、文字コードの変換という事であれば、ADODB.Streamオブジェクトが
利用できます。(Charsetプロパティで任意の文字コードを指定できます)
Private Sub Form_Load()
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Open
.LoadFromFile "C:\UTF8.TXT"
Label1.Caption = .ReadText()
.Close
End With
End Sub
666 :
デフォルトの名無しさん :04/10/21 11:41:52
コレクションに任意のキーがあるかどうかを知りたいのだが 要素の総当たり及びエラー判定以外のうまい方法教えて
Collection.Item(キー名)をやってエラーになったらキー無し
668 :
デフォルトの名無しさん :04/10/21 11:55:18
>>665 ありがとうございます。
試してみます。
>>667 どうも
しかし二行目をよく読んでほしかった
>>669 確かにメソッドが用意されとるね
しかしインデックスはないようなだ
もっと扱ってみんとよくわからんがいろいろ使い道ありそうだ
どうも
lineメソッドで書いた線の色を反転させるにはどうすればいいのでしょうか。 例えば line(0,10)-(50,50),qbcolor(0) としたあとに、この線の色を反転させたいのですが・・・
>>671 DrawMode VbXorPen QBColor(15)
でだめか?
ここってできたかどうかの報告すらしない人多いよねー
ヒントだけで良いので教えてくださいませ。 1. VB6で作成中にメールアドレスを取得したくなりました。(欲しいのは名前→メアド) 2. 色々ググって、LDAPでいけそうなので、サンプルを真似て動かしました。 3. 名前や部署などは取れるのですが、IADsUser の EmailAddress、ADO を利用した mail 共に空値です。 4. しかしながら、Outlook でメールを作成する際には、しっかりメアドが取れます。(LDAPを利用している) 4.の結果からすると、参照できるはずなので、もしかしてマッピング?と思い、Outlookの設定を色々 探し回ったのですが、発見できませんでした。 # 例えば、通常なら mail → 表示メアド のところ、 foo → 表示メアド に設定を変えているのでは?という意味です。 2chに(真面目に)書き込むのが初めてなので、至らない点もあるかと思いますが、宜しくお願いします。 【追記】 ・ツールを利用して調べる場合は、なるべく標準的なソフトが嬉しいです。 (そこはフリーソフトなどを入れることができないので)
質問には答えられないが、他人のツールからアドレス読み取られるのって嫌だなーって思った。
テキストファイルの行数を知るには? 便利なものがないなら、 Scripting.FileSystemObject.OpenTextFile AtEndOfStreamまでループを回して数える にしようかと思いますが、どうでしょう?
便利なものは無い
ありがとう。 ではループで行きます。
>675 対象のPCで複数のメアドを使ってたら?メーラがOLじゃなかったら? 複数の他メーラを使い分けてたら?WEBメーラの場合は? 分かる範囲のメアド格納レジストリやINIファイルから取得するのが シンプルで良いんでない?取得先に優先順番を付けて最初に取得 できたメアドだけにしておくとかさ。
681 :
デフォルトの名無しさん :04/10/22 21:10:34
十進割り算で小数点以下の切捨て、切り上げ、四捨五入を桁数を指定できるようにしたんですが、 うまくいきません。アドバイスをお願いします '***************************************************************** ' 割り算 ' 少数丸め位置[ 1=第1位 2=第2位 3=第3位、以外は第四位] ' 丸め[G_切り捨て,G_四捨五入,G_切り上げを使用する、以外は切り捨て] '***************************************************************** Public Function 割り算(ByVal 分子 As Variant, ByVal 分母 As Variant, Optional ByVal 少数丸め位置 As Integer = 0, Optional ByVal 丸め As Integer = G_切り捨て) As Variant Dim 最大v As Variant Dim 補正v As Variant Dim 調整v As Variant Dim 少数v As Variant Dim 結果v As Variant 最大v = CDec("1000000000000000") 補正v = CDec("10000") If VarType(分子) = vbDecimal Then 分子 = 分子 - Fix(分子 / 最大v) * 最大v: 分子 = CDec(Fix(分子 * 補正v) / 補正v) Else 分子 = CDec(0) If VarType(分母) = vbDecimal Then 分母 = 分母 - Fix(分母 / 最大v) * 最大v: 分母 = CDec(Fix(分母 * 補正v) / 補正v) Else 分母 = CDec(0) If 少数丸め位置 < 1 Or 少数丸め位置 > 4 Then 少数丸め位置 = 4 少数v = CDec((10 ^ (少数丸め位置 + 1)) / 10) Select Case 丸め Case G_四捨五入: 調整v = CDec(0.5) Case G_切り上げ: 調整v = CDec(0.9999) Case Else: 調整v = CDec(0) End Select If 分子 = 0 Or 分母 = 0 Then 割り算 = CDec(0) Else 結果v = CDec(Fix(((分子 * 少数v) / 分母) + (調整v))) 結果v = CDec(結果v / 少数v) 割り算 = CDec(結果v - Fix(結果v / 最大v) * 最大v) End If End Function
何がどううまくいかないのかも言わない奴にアドバイスなんかしません。
とりあえず、全角で命名するのはどうかと思うよ
>>681 新手の嫌がらせ?
マジでやってるならある意味神。
>>682 しないんじゃなくて出来ないくせに(笑
できないからしないんだよw
687 :
デフォルトの名無しさん :04/10/22 22:12:59
>>685 嫌がらせなんてとんでもないです。ただこの関数を繰り返し使うと
なぜか想定したより大きい値が出るので悩んでいます。
利息とかの計算で、十進数で誤差が出ないように作ったんですが。
レスありがとうございます。
>>676 なんとなく気持ち悪いのは分かります。ただ今回は社内で公開されているのを利用するので。
>>680 >>対象のPCで複数のメアドを使ってたら?メーラがOLじゃなかったら?
>>複数の他メーラを使い分けてたら?WEBメーラの場合は?
詳細は省いてしまったので、あれなのですが
社内なのでOLが確実に導入されていて、なおかつメアドは1つと保証されています。
# 仮に増えても属性が追加されるだけ?と甘い考えをしています
>>分かる範囲のメアド格納レジストリやINIファイルから取得するのが
>>シンプルで良いんでない?取得先に優先順番を付けて最初に取得
>>できたメアドだけにしておくとかさ。
最初はそのように考えたのですが、アクティブ・ディレクトリならノーメンテじゃん!
と思い立ち、現在に至っている次第です。
(重複しますが)状況を整理しますと
・OLは社内の全端末に導入されていて、名前からメアドをアクティブディレクトリ経由で取得できる
・自アプリからメアドを取得したいが何故か(ADSI2.5、ADO経由ともに)空値である
・メアドが直感的では無い場合も有りえるので、名前などから検索したい
(もちろん必要な都度OLを利用するのも手ですが、それはそれで...)
・人の入れ替わりが結構発生するようなので、なるべくユーザに設定させたい(つまり楽をしたい)
・環境はVB6、Win2000。ただし現在の環境に新たなソフトの導入は不可(たぶん自作はOK)
というところでしょうか。
自分でも Web や書籍等をあたってみますが、なにか情報がございましたら宜しくお願いします。
>>687 煽りで言うんじゃないけど、こんな酷い処理は初めて見たよ。
もしかしたら、俺の知らないアカデミックな世界にケチ付けてるかもしれんので怖いが。
桁上げ=10^丸め位置
丸め=5 '丸め=9 '丸め=0
丸める前=Fix((分子*桁上げ)/分母+丸め)
結果=(丸める前 - (丸める前 mod 10)) / 桁上げ
では駄目か?
あとDecimalって無限小数の問題って無いんだっけ?
ん、違うな。 だめだこりゃ。
691 :
デフォルトの名無しさん :04/10/23 01:09:32
「モジュールレベルでの Dim 宣言は、Public と解釈されてしまいます。」 という説明を見かけたのですが,そうなのでしょうか?
>>691 ???何これ
そうなのでしょうか?って意味わかんない。。
♪もしかしたら もしかしたらそうなのかしら?
>691 あんたの「説明を見かけた」というサイトに以下の但し書きは無かったか? 『※記述されている内容やサンプルコードなどが常に正しいという保証はありません。 これだけを鵜呑みにしないでください。内容に間違いなどあれば、遠慮なくご指摘ください。』 ・・そう。つまり間違ってるんだよ。安心したか? 指摘してやりたいんだろ?してあげれば?高木さんに。
VB6.0 SP4,Win95,98,NT,2000,Xpの環境で、 コモンダイアログのファイル入出力で、既定で開くフォルダを マイドキュメントにしたいのですが、何かい方法はありませんか? 今は取り敢えずレジストリの HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders のPerdonalからマイドキュメントのフルパスを取得して与えてるのですが、 何かもっと簡単に設定できんのかと思ってます。 ちなみに今WinXpのマシンが無いので、上のレジストリキーがWinXpにもあるか 判らないのですがありますよね?
>>694 >のPerdonalからマイドキュメントのフルパスを取得して与えてるのですが、
はPersonalの間違いでしたすいません。
>694 SHGetSpecialFolderLocation が使い易くて汎用性も良い方ではある。 Meを除くWin95〜XPまで基本的に利用可能。条件にもあってるし。 > ちなみに今WinXpのマシンが無いので、上のレジストリキーが > WinXpにもあるか 判らないのですがありますよね? あるよ。
× 汎用性は良い ○ 汎用性は高い に訂正。
>>700 >初期のWindows 95では(マイドキュメントの)フォルダパスは返されません
ちょっと覚えてないんだけど、そのサイトをみると初期のWindows 95には
マイ ドキュメントの概念がないみたいに読みとれるけど?
フォルダ自体が無いならどうやっても取れないよね
>>701 確かに...実はWin95の試験環境も今手元になかったので、あれから
腐って放置してあったPII350MHzのマシンにWin95入れようとしてるの
ですが、Win95CDは見つかったのに起動FDDがないので先に進めない。
Win95のセットアップなんて確実に7年はやってないから記憶が...
今作ってるシステムでの要求仕様は保存先は既定はマイドキュメントという
だけなので、マイドキュメントなければC:\でも構わないのかなとも思うん
ですが、確認しようにも休みだし...
>ちょっと覚えてないんだけど、そのサイトをみると初期のWindows 95には
>マイ ドキュメントの概念がないみたいに読みとれるけど?
そこのサイトを更に読むとIE4以上が入っているかどうかが鍵になりそう
ですね。
>>古いWindowsで、なお且つ最新のInternet Exploreの様なシェルを
>>更新するプログラムがインストールされていない場合、マイ ドキュメント
>>の概念がありません。
マイドキュメントやお気に入りなどの特殊フォルダは、Windowsのshell32.dllが扱っているので、 95の場合はIE4をインストールしてshell32.dllをアップデートしないとダメです。 デスクトップのアップデートコンポーネントっていうやつ。
>>703 ありがとうございます。
Win95 4.00.950 B インストールして確認しました。\My Documents無いですね。
>>694 で書いたレジストリキーや代替できそうなキーも無いです。レジストリ参照
に使ってるadvapi32.dllはあるみたいです。
おそらくIE4をインストールするような変更を客先マシンにすることは禁止される
と思うので
>>694 で書いたレジストリキーを参照してエラーなら"c:\"返す形に
するかシステムの初期設定で保存先フォルダを指定して.iniファイルにでも
残すか検討して客先に判断を仰ぎます。ありがとうございました。
技術的内容ではないのですが、VBに関して質問させていただきたい 内容があります。 VB6.0以前の開発環境は、現在でも入手可能でしょうか? VB6.0で書かれたソフト資産(ソースのみ)があり、これを引き継いで 開発を行うために、開発環境の入手が必要となっています。 ご存じでしたらお教えいただけると助かります。 また、もしスレ違いの場合は、妥当なスレをご紹介、誘導いただけると 幸いです。
>>706 早速の情報ありがとうございます。
中古で入手という方法もあるのですね。
>705 MSDNの会員になれば、Subscriber Downloadで入手可能。 会員の種別によって入手できる版が変わるし、どの版も入手できない 会員種別もあるので、会員になる場合は種別と入手できる版を 良く確認する。 ただし、VB6.0までで、VB5.0以前はダウンロード出来たかどうか・・・ 以前はVB4.0もあったんだが、最近は見ていないので。
>>708 情報ありがとうございます。
ちゃんとしたライセンスで開発環境入手するには、
この方法が良さそうですね。
どのサブスプリクションレベルでどの版が入手できるのか
MSのWEBに記載が見つからなかったので、週明けにでもMSに
問い合わせてみます。
MSのWEBの説明見ていくと、MSDNの会員になるのに、Visual
Studioのアップグレード版パッケージを購入するのが最安
コースになりそうですね。。。。
VB6.0使いたいだけなのに出費としては結構かかりそう、、、
710 :
デフォルトの名無しさん :04/10/24 01:49:12
SHELLで起動しているプログラムが、正常終了したものか強制終了 されたものかを判別するにはどうしたら良いですか?
711 :
デフォルトの名無しさん :04/10/24 01:58:58
VBを勉強したいんですが良いフリーソフト教えてください。
ディストリビューションウィザードが出せなくなりましたが、 sp6を入れたことと関係あるのかしら?
>>ディストリビューションウィザードが出せなくなりましたが、 これは勘違いで最初からインストールし忘れだったかもしれません。(^_^;) これとは別に Microsoft VBScript Regular Expressions 5.5を参照設定し、 RegExpを使ったプロジェクトを作ると、 依存関係に"3"というファイルがでてきますが、 無視していいのかしら。
>>711 MS Officeを持っているならVBAが付属している。
Office2kならVBAのバージョンは6だが他は知らない。
Officeを持っていないのならVB5 ControlCreationEditionを探せ
>>699 最初の頃はOLの機能を使うつもりでいたのですが、セキュリティ・ダイアログが
バシバシ出てきて、すぐに萎えてしまいました。
でも(英語は苦手ですが)教えて頂いたサイトによると、回避する方法もあるよう
なので、折衝案として一考の余地がありますね。
ユーザに負担を強いる、あるいはLDAPで悩みまくるとは異なるアプローチとして
試してみたいと思います。
情報&アドバイスありがとうございました。
また何かありましたら相談させて頂きますので、宜しくお願いします>ALL
716 :
デフォルトの名無しさん :04/10/25 09:43:55
うむ
717 :
デフォルトの名無しさん :04/10/25 13:31:37
すいません。 かなり頭を悩ませていて、皆様のお力をお貸しください。 開発環境 VB6.0 SP6 Windows2k バッファ処理についてなのですが、 処理途中でバッファが飛んでしまうようなプログラムになってしまいました。 Public Buff(0 to 1000) as String '基本バッファ Public WBuff(0 to 1000) as String '送信バッファ Public Buff_Count as Integer Public Buff_Flg as Boolean Public ia as Integer Public ib as Integer 〜〜処理0〜〜 Buff(Buff_Count) = data '処理0により作成されたデータを格納 Buff_Count = Buff_Count + 1 'カウントUP ※上記2行の処理は複数回行われることもある。 処理0終了後処理1に移る。
718 :
717 :04/10/25 13:32:02
〜〜処理1〜〜'BuffをWbuffに移す ib = 0 Buff_Flg = False For ia = 0 To 1000'Wbuffの中身が空か確かめる If Wbuff(ia) <> "" Then Buff_Flg = True '中身があればTrueに End If Next If Buff_Flg = False Then 'Wbuffの中身が無ければ下記処理を実行 For ia = 0 To 1000 'Buffの中身が無ければ処理0をに戻る為 If Buff(ia) = "" Then Exit For Else wbuff_loop: If Wbuff(ib) = "" Then 'Wbuffの中身がなければBuffの中身を移す Wbuff(ib) = Buff(ia) Buff(ia) = "" Buff_Count = 0 ib = ib + 1 Else'有れば無くなるのを待つ。※書いてると矛盾してそうな気が・・・ ib = ib + 1 GoTo wbuff_loop End If End If Next End If 処理0に戻る
719 :
717 :04/10/25 13:32:27
〜〜処理2〜〜 'この処理はTimer(VBのコンポーネントではないです。)で '5msごとに定期的に開始されます。 Dim i As Integer For i = 0 To 1000 If Wbuff(i) = "" Then Exit Sub Else send Wbuff(i) 'ここで外部出力にデータを渡してます。 Wbuff(i) = "" End If Next たぶんですが、バッファの同期100%取ってないので バグが出てるのだとおもうのですが、 この解決方法をお教えください。 宜しくお願い致します。
画像ファイルについて教えてください。 PictureBoxに画像を読み込む場合、画像が大きい場合は 一部しか表示されません。 縮小して表示させるにはどうしたら良いのでしょうか?
721 :
717 :04/10/25 13:34:27
…TABがなくなってる…orz 読みづらくてすいません…orz
>>717 StringじゃなくてByteじゃないのか?
724 :
初心者 :04/10/25 14:01:58
VBでなくてもいいのかもしれませんが、VBぐらいしか使えませんので ここで質問します。かなり初心者ですが、よろしこです。 管理者でしか実行できないようなコマンドを一般ユーザーに実行させ たいと考えています。 具体的にはユーザー名とパスワードを入力させるダイアログ開かせて、 その権限で何かコマンドを実行するという感じです。 今考えているのは、VBScriptなんかでよく使うような、 Active Directoryのあるグループから、特定のユーザーを削除する ようなものです。 VBScriptだとこのような操作は、Windowsに怒られてしまいますので ダイアログを開かせて別のユーザー権限として実行したいと考えて います。 よろしくお願いします。
>>724 言語以前の問題として、ユーザーと権限に関してのWindowsのきちんとした知識を身につけて、
その上で関連するAPIの仕様を見ないと駄目。
半端な知識でそれらが作れるならば、セキュリティーって何?ってことですから。
>>717 イヤミに聞こえるかも知れないけど、
バッファ処理だのバッファが飛ぶだの「オレサマ用語」で説明を省略されても
どんな問題が起こってるのかさっぱりわかりません。
他人の視点にたって、他人が理解できるように過不足なく分を推敲する。
何かを説明する文章の基本でしょ。
オマエモナー
いいから早く答えろよ下民ども
わからないなら口挟むなよVB厨風情が。
>>735 わからないなら口挟むなよRUBY厨風情が。
717 読む気がしない。 まずは最小の再現ケースにしてくれ。
>>717 眺めただけだけど
処理2が割り込むのが原因だろうから、
これを排他的に処理するようにしたら?
739 :
デフォルトの名無しさん :04/10/26 00:48:05
布団がふっ飛んだ
終わったなこのスレ
VBのヘルプって 該当するキーワードに載せてF1を押すと ヘルプの該当するページが表示されますが 同じようにとあるボタンを押すと それに関するページを直接表示するような HTMLのヘルプって作れるのでしょうか? そういうツールがVSにあったりしますか?
.NETの普及とともにこのスレも過疎化が進んでるね。
>726 説明が少なくてすみません、 利用するのは管理者なので、セキュリティ的なハードルは無しになります。 確かにAPIのこととかよく分かってないので、もうちょっと勉強すべきですね。 >734 なるほど、この方法をうまく使うといけそうですね。 こんなコマンドがあるの知りませんでした、さっそくやってみます。 ありがとうございます。
747 :
717 :04/10/27 13:51:44
>>746 >>738 さんの
アドバイスのように排他的処理に変更して耐久テスト稼動中です。
今のところ問題は起きてないようです。
もし、このような処理には
こんな処理方法あるよ、と別の方法でもアドバイス頂けますと
今後の開発の参考になりますので
ご存知でしたらお教えください。
聞くこと漠然としすぎだろ? 最初の書き込みもそうだが、他人に伝える努力とか、求めるものを明確にする部分を磨け。
>>748 にさんせい、プログラム以前に何を伝えるのかw
いやいや、それ以前に
>>717 Forの中でGotoでループさせてるのはどうかと・・・・(;´Д`)
何かトラブルでデータがしばらく来ない場合とちょっと危険なかほり・・・
goto文には驚いたなあ・・・・
やっぱBasicの基本だね。Goto! 若い人には新鮮味があるのかもね。 ヌルポ
確かに「gotoは使うべからず」と単純に思い込めるオメデタイお方はgoto使わないほうがいい。 goto使うなってのはFoolproofなんだけど、それがわからないならね。
やってることがGOTOなのに無理やりwhileとかあるよね do while(1) if hoge then exit do ・・・ if hoge then exit do ・・・ if hoge then exit do exit do loop
755 :
デフォルトの名無しさん :04/10/29 13:59:38
フォームのアンロードについて教えて下さい↑ プロジェクトに(Form1)と(Form2)の2つのフォームがあるツールを作っています。 (Form1)に配置したコンボボックスの"Click"イベントでリストを選択した時に (Form2)をロードした後に(Form1)をアンロードしたいんです。 (Form2)の"Load"イベントで 'unload Form1' と記述すると、"現在アンロードできません" と表示されエラーになります。ヘルプで調べたところ、Comboboxの"Click"イベントでは 'unload ○○'の記述は使えないことがわかりました。 (Form1)をアンロードできなくて困ってます。(Form1)をアンロードしないで画面表示だけ 消すことはできるのですが・・・。 どなたか教えていただけないでしょうか!?
>755 「 Form1.hide 」にすれば?
757 :
デフォルトの名無しさん :04/10/29 14:20:06
>756 返信ありがとうございます! フォームを8個使っていまして、アンロードしないと全てのフォームをロードした時 に270MBくらいメモリを使ってしまうんです・・・。Win'98でアプリ動かしてい たらメモリが足りなくなって終了してしまいました。 フォームの表示を消すだけでなく、アンロードしてメモリを解放したいんです。
>757 >2つのフォームがあるツールを作っています。 話 が 違 う じ ゃ な い か
759 :
デフォルトの名無しさん :04/10/29 14:25:03
>>757 Form2が アクティブになった時点
もしくは タイマーを用いて 少し経った時点で
unload form1
としてやればいい。
760 :
デフォルトの名無しさん :04/10/29 14:27:35
>758 Form1→Form2をロード Form3→Form7をロード こういう意味であえて"2つ"と書きました。すいません! Form1〜Form8の全てにコンボボックスを配置していて、 どの Form にも切り替えられるようにしたいんです。
>760 しょうがないな。 んじゃ、「 Form_Activate 」で、「 unload Form1 」とすれば?
メモリを使いすぎないプログラムにする方向で考えてもらいたいものだ
まぁ、各フォームごとに、手分けして制作でもしてるんだろうさ。 でないと、いくらなんでも、そんな作りにはならん。
>>755 このモジュール(標準モジュールとしてmodTimerUnload、
クラスモジュールとしてclsTimerUnload)を組み込むだけで
あら不思議。フォームを何も修正しなくてもUnloadできるようになります!
気まぐれで作ってみた。まあ基本は
>>759 といっしょ。
メモリ(オブジェクト?)リークしないように短いタイミングで
複数実行されても大丈夫なのように作ったつもりだけど動作保証はしません。
ちゃんとコード読める人推奨。
これ使ってUnloadを2147483648回以上やると落ちる。
回避するにはkeyの生成方法でも工夫して(日付使うとか隠し関数のObjPtrを利用するとか)
'modTimerUnload
Option Explicit
Private TimerUnloads As New Collection
Private TimerUnloadsCount As Long
Public Sub Unload(ByVal frm As Form)
Dim tu As clsTimerUnload
Dim key As String
key = "key" & TimerUnloadsCount
TimerUnloadsCount = TimerUnloadsCount + 1
Set tu = New clsTimerUnload
tu.Unload frm, TimerUnloads, key
TimerUnloads.Add tu, key
End Sub
'clsTimerUnload Option Explicit Private WithEvents m_timer As Timer Private m_frm As Form Private m_tus As Collection Private m_key As String Private Sub m_timer_Timer() VB.Unload m_frm m_tus.Remove m_key Set m_timer = Nothing Set m_frm = Nothing Set m_tus = Nothing End Sub Public Sub Unload(ByVal frm As Form, ByVal tus As Collection, ByVal key As String) Set m_timer = frm.Controls.Add("VB.Timer", "TimerUnload" & key) m_timer.Interval = 1 m_timer.Enabled = True Set m_frm = frm Set m_tus = tus m_key = key End Sub
おまけ。 ユーザーコントロールを使うと同時に複数実行した場合 (オブジェクトが複数生成された場合)でも ちゃんと動く&オブジェクトの管理を任せられるのでもっとシンプルに作れる。 ただし、使用しないActiveXコントロールについての情報を 削除できなかったりするので不便な点もある。
つうか、何を表示なりしたらそれだけメモリー消費できるんだ? 画像とかか?
>764 >ちゃんとコード読める人推奨。 たぶん、760には無理だと思ふ...
ユーザーコントロール版。ついでに作ってみた。ソースはこんだけ。
ただし、使用しないActiveXコントロールについての情報を削除しない
(もしくはどこかのフォームにダミーとして貼り付ける)こと。
ユーザーコントロールにはtimerを貼り付け、ユーザーコントロール自体のプロパティは
リソースを消費しないように無駄なプロパティを変更したほうがいい。
HasDCをFalse、InvisibleAtRuntimeをTrueにしたほうが良いと思うが
具体的にどこを変えたほうが良いかは調べるのが面倒なので省略。
ソースコード内のProject1は実際のプロジェクトのオブジェクト名にすること。
プログラムで取得するにはどうしたらいいんだろう・・・?
app.EXENameはEXEの名前だし、app.Titleはアプリケーションのタイトルだし。
>>768 まあ気にするな。初心者を中傷したって面白くないでしょ。
これは、こんなこともできるというサンプルさ。
'modTimerUnload
Option Explicit
Public Sub Unload(ByVal frm As Form)
frm.Controls.Add "Project1.ucTimerUnload", "TimerUnload"
End Sub
'ucTimerUnload
Option Explicit
Private Sub Timer1_Timer()
VB.Unload Extender.Parent
End Sub
Private Sub UserControl_Initialize()
Timer1.Interval = 1
Timer1.Enabled = True
End Sub
>769 優しいな。今日何かイイコトあったんだろ? 最初はみんなそうやって優しいのだが、教えて君の殆どは聞くだけ 聞いてうまくいけばそのレポートとか、感想さえもレスしてこないので 役にたったのか釣られただけなのか、何にも分からないまま終わる。 「漏れが作ったサンプルは何だったんだ?」 ・・・これを繰り返していくうちに、まともな回答者は去っていく。。。
> 優しいな。今日何かイイコトあったんだろ? 残念ながら特に無いw 別に最初っからレスは期待していないし、回答したつもりも無く、 自分のために単に作ってみたかっただけだよん。 すべてのフォームにタイマーおきまくりなんてのが量産されるの想像したら 気持ち悪かったんで。実際昔そういうのみたことあるし。 当時はそれを改善する方法すら思いつかなかったけど、 今の俺ならこんなこと簡単に出来るぜって。ってゆーか自己顕示? それじゃあ皆さん、どつかれさん。
772 :
755 :04/10/29 16:45:19
ダメでした・・・ >764 モジュールを組みこんで動作させたらCPU使用率が100%に。 >767 言葉が足りなかったです。 OSや他の常駐プログラムを含めたメモリ使用量です。 >768 読めないです^^;
>771 >自己顕示 分かった。でも何だかんだ言っても、エライな、藻前。
>>772 どこかで無限ループしているか、フォームをアンロードしたあとに
ロードしているとかしているんだろう。もちろんこのモジュールにバグがある可能性もある。
modTimerUnloadのUnloadをTimerUnloadに変えてみるとか
フォームのUnloadの次あたりにExit Subでも入れてみればうまくいくかもね。
スマートでない方法をするのならフォームにタイマーおいてComboBoxのclickで
タイマーを有効にしてtimerイベントでUnload。他にもっといい方法があるかも知れんけど。
どの方法を使うか、勉強してやっていること理解してデバッグするか
お好きにどうぞ。まあがんばって。
775 :
デフォルトの名無しさん :04/10/29 18:34:11
質問よろしいでしょうか? string型の変数に 数字、アルファベット以外の文字が含まれているかどうかを チェックしたいのですが いい方法はありますでしょうか? やはり一文字目からチェックするしかないのでしょうか? 文字列の形式は10桁固定で はじめの3桁がアルファベット 後が数字となります どなたかご教授ください 環境は WinXP VB6 SP6 です
VBってコンパイルできるようになったのは幾つのバージョンからなんですか? 最初の頃は出来なかったらしいですが。
>>777 VB4はPしか無かったなぁ。
VB5からじゃね?
>>772 こんな風にクラスにするほうが俺はお勧めだと思う。
基本的なアイデアは764氏と同じだけど。
'cCloseMeクラス
Private WithEvents mTimer As Timer
Private mTargerForm As Form
Public Sub CloseMe()
Set mTimer = mTargerForm.Controls.Add("VB.Timer", "mTimer")
With mTimer
.Enabled = True
.Interval = 10
End With
End Sub
Public Property Let TargetForm(Frm As Form)
Set mTargerForm = Frm
End Property
Private Sub mTimer_Timer()
Unload mTargerForm
End Sub
で、自殺させたいフォームの宣言部で
Private mCloseMe As New cCloseMe
でインスタンス生成しておいて、(生成するタイミングは自殺させる寸前でもいいけど)
自殺させたいところで
mCloseMe.TargetForm = Me
mCloseMe.CloseMe
とする。
>>779 それでも全然問題ないんだけどね。
Unloadをオーバーライド(機能的にはぜんぜん違うけど)っぽいことをやって
フォームをまったく修正することなく改良することが出来るという設計なんで。
781 :
デフォルトの名無しさん :04/10/30 11:09:54
初心者にきびしいスレと分かって質問します。 変数の定義をするとき,DimとPrivateに違いはあるのですか。
うん。
DimとPrivateを並列に比べるのもどうかと思うが
>783 ウマイ!座布団一枚( ・ω・)つ≒
Dim Sub Command1_Click End Sub
786 :
デフォルトの名無しさん :04/10/30 14:50:27
質問です。 フリーズしてしまったプログラムを別のプログラムから強制終了させたいのですが、 VBではどうやればいいのでしょうか。 フリーズしてしまってますからAlt+F4などをSendKeyしても受け付けないのです。 VC++ではTerminateProcessというAPIがあるのですが、 これを使ったらできるでしょうか? プロセスハンドルってどうやって取得したらいいんでしょう?
質問です。 書き始めが「質問です。」って人はかなりの割合で同一人物のような気がするんだけど 間違いですか? ググッた方がよほど早いことをわざわざ質問するところとか、 「VC++ではTerminateProcessというAPIがある」みたいなすっとこどっこいな勘違いとか こういう人がそんなにいるとは思えないんですが。
789 :
デフォルトの名無しさん :04/10/30 19:48:17
非アクティブでフォームを開くするにはどうしたらよいでしょうか? 事前に、hideしておいて、SetWindowsPos(SWP_NOACTIVATE)で開いてやっても、 非アクティブになってしまう時と、アクティブになってしまう時と、動作がまちまちなんです。 確実に非アクティブで開ける方法はあるのでしょうか?
>>747 ヨカッタネー。
俺っていいセンスしてるなー。
書けない言語でも、ソースレビュー大得意。
791 :
デフォルトの名無しさん :04/10/30 21:32:07
>>789 他のウィンドウをアクティブにするとか。
792 :
デフォルトの名無しさん :04/10/31 15:32:55
タイ語を使うソフトをつくりたいのですが、 タイ語を表示することができません。 どうしたらできますでしょうか。。 よろしくお願いします。 m(_ _)m
>792 タイに行け
なんでヘルプに書いてある事を転載してやらにゃならんのだ
>795 面倒だからヘルプ読めよ、莫迦
質問する奴が馬鹿なら答える奴らも馬鹿ときてる。 タイ語のWindows? ハァ? 開発環境、実行環境ともタイ語のフォントが入ってりゃOK。 そんだけのことだろ。
タイ語機械語翻訳こんにゃくきぼんぬ
>>799 知り合いがタイ語翻訳ソフトを作ろうとしてるんですよ。
ベースは日本語希望です。
>>799 ハァ?
フォントだけで良いと思ってるの?この脳タリンが!
ネタか?
ほんとだよねぇ〜。(ミミ風)
とりあえずOSはNT系にして、フォントも用意する。 でもVBの内部コードは確かにUnicodeだけど タイ語と日本語の混在って簡単なのかね? 俺、VB5の頃しか知らないけど、 表示に関してはOSの言語に依存してるっぽかった。 (日本語OSだとドイツ語が、ドイツ語OSだと日本語が表示できない、etc) VB.NETだと可能なの? VC++ならできると思うけど。
VB6でもやってやれない事は無いが、 UNICODEフォントで入力したり表示したりは普通のテキストボックス使えないし 内部でも色々やったりめんどくさかった 素直にVB.NETでも覚えたほうが国際化はラクだ
>>804-806 ありがとうございました。
知り合いにこのスレを教えます。 m(_ _)m
内部的にはUNICODEなんで問題ないと思うんだけど 問題は表示と出力かな? WebBrowserコントロール使ったほうがいいのかも。
>808 >WebBrowserコントロール なるほど。ちょっと面白そうだな。
翻訳ソフトって辞書はどうするの? 全部自作?
811 :
デフォルトの名無しさん :04/11/01 10:47:07
タイ語のフォントもわからんものに、文脈解析など 難しい処理ができるわけがない。 素直に あきらめろと言え。
「翻訳ソフト」でなく、「電子辞書ソフト」なんでないの? それならダイジョウブ
VB5で、ボタンを押せば変数の文字列(日本語)をクリップボードに送り、テキストボックスに表示するプログラムを作ったんですが、 WinXPSP2で文字化けするとの指摘を受けました。 SP2を当てていない環境で作ったのですが、原因・解決策はありますでしょうか? よろしくお願いします。
815 :
デフォルトの名無しさん :04/11/01 22:26:43
通常使うプリンタをプログラムから変更するのに APIのSetDefaultPrinterを使用しているのですが たまに変更されないことがあるようです。 そんな現象があった方いませんか? VB6/SP6 WindowsXP/SP2
すみません、自己レスです Dim objWsh As Object Set objWsh = CreateObject("WScript.Network") objWsh.SetDefaultPrinter "プリンタ名" Set objWsh = Nothing でも、切り替わりました。お騒がせしました。
>>757 >フォームを8個使っていまして、アンロードしないと全てのフォームをロードした時
>に270MBくらいメモリを使ってしまうんです・・・。
教えて君ですいませんけど、一つのフォームが30Mとかの大きさって初心者の私には
信じられないんですけど、どうしてそんなに大きくなるんですか?
>>817 落ち着いてスレを読め。同じ質問を私がして、既に回答がある。
アプリの仕様メモリじゃなく、その時点でのWin全体での使用量だったはず。
それに意味があるのかとかいう野暮な突っ込みはもうすんでいるのでなし。
>>813 vb5jp.dll(だっけ?)がないんじゃない?
確かフォーム上だけで設定した文字列は化けた気がした。(dllがない場合)
フォームロード時にボタンなどに再度文字列を与えてやれば大丈夫だった気がする。
VB評価版出てますけど、パスポート認証後に原因不明のエラーが出て、 DLページにいけません。 みなさん落とせました?
824 :
デフォルトの名無しさん :04/11/02 23:05:25
日毎に作成されるCSV形式のログファイルがあり、ADOを使って データを取得し、データグリッド等に表示させようとしています。 Private cn As ADODB.Connection Private rs As ADODB.Recordset Private Sub Form_Load() 'データベースに接続 Set cn = New ADODB.Connection cn.ConnectionString = "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _ "DBQ=D:\testdata;" cn.Open End Sub Private Sub Command1_Click() Dim szSQL As String '選択クエリを作成 szSQL = "SELECT * FROM hist_20040101.txt WHERE 社員コード = '1111'" 'レコードセットを取得 Set rs = New ADODB.Recordset rs.Open szSQL, cn, adOpenStatic 'データグリッドに表示 Set DataGrid1.DataSource = rs End Sub Private Sub Form_Unload(Cancel As Integer) rs.Close cn.Close End Sub 上記を複数のログファイルにまたがって検索したいのですが、 何かうまいやり方はあるでしょうか。(UNION ALL で連結?) ちなみにログファイル数は1年分程度あります。
825 :
デフォルトの名無しさん :04/11/02 23:06:09
うわ、めちゃくちゃ見にくい。すいません・・・
ちなみに1年分UNION ALLでつなげたら、「クエリーが複雑すぎです」 となってしまいました。
* vb6sp6, winxp 色つきで輪郭のある文字列(例:文字色が赤で輪郭が黒)を出力する方法は ないでしょうか。DirectXでも無理そうですし、GDIでできるとも思えません。 専用フォントを使うというのはナシでお願いします。
フレキシブルグリッドでカラムヘッダをクリックした際に 昇順・降順を切り替えてソートさせているのですが、 ソートマーク(小さい三角)を表示させることは可能でしょうか。
>>827 昔、GetPixelで輪郭抽出したことあるけど、今のPCなら充分な速度が出そう。
APIならGetGlyphOutlineあたりかな。
そんなに正確でなくてもいいなら、一回り小さいフォントで中を抜く手もある。
>>827 BeginPath EndPath StrokePath CreateSolidBrushを使うとできる。
832 :
デフォルトの名無しさん :04/11/03 11:51:29
>>824 CSVを何かのDBに変換して、ひとつのテーブルにまとめてから検索ってのはどう?
別のフォームを開くとき、Loadで時間のかかる処理をしたいんだけど、 とりあえず画面を表示させちゃうことってできる? やっぱLoadで時間のかかる処理はやっちゃいけないのかな。
>>833 Form_ActivateでLoadの直後だけ処理を実行するようにすればいいと思う。
>834 おー、ありがとう
>834 誰か>828は分かりませんか?
>>836 オーナードロー使うのはめんどくさいから
▼や▲を入れてやればいいじゃん?
>837 それって▲が大きすぎません?
コモンダイアログでディレクトリの選択ってできる?
できません
>840 そか。DirListBoxで作ればいっか
SHBrowseForFolder 使ったほうがよくないか?
843 :
デフォルトの名無しさん :04/11/03 19:40:09
VB6.0でフォーム上のコントロールのタブ移動順序って どうやって変えるの?
>>843 それは知らなかったけど、exeにも暗号化されて埋め込まれてるらしい。
>845 そか。VCみたいな機能はないんだ。残念。
>>847 1個ずらせば残りは自動的にずれるけど。
フリーソフトもあるし。
>849 いや、伝わってますけど。
>851 どう読んだら噛み合ってないように見えたんだ?
>850 >851 >853 釣られてるな。。。 (゚Д゚)ハッ 俺もか。
>847 移動順の最終のコントロールをクリック →TabIndexに0入れる →移動順がその前のコントロールをクリック →TabIndexに0入れる ・・・を延々と繰り返していくと楽にできるよ。 アドインは使いにくかった。
Microsoft Text Driver (*.tst; *.csv) を使ってCSVファイルから CSVファイルに INSERT INTO 〜 SELECT でデータを抽出して 書き込みたい、抽出元と書き込み先のCSVファイルが 別々のフォルダでも可能でしょうか。
>858 むちゃくちゃな日本語ですいません。
861 :
デフォルトの名無しさん :04/11/05 11:34:33
こんにちは。vb6.0使用者です。 PictureBoxの画像を爆発というか、見た目的にばらばらに崩壊させるにはどうい う手法を使えばいいでしょうか? 画面上で爆弾のアイコンを使い、それが爆発してPictureBoxの画をばらばらにす るような感じのソフトを作りたいです。 もしくは巨大な拳で画中央を打つと真ん中が窪んだように大きく画が歪むような ものを作りたいと考えています。 参考になるサイトか、手法をご存知の方がいましたらアドバイスをお願いします。
>860 他の方、お願いします。
>>862 ほかの人だが、そんなの5分でためせるじゃん。
ここで私が出来ないって回答したら、仕事の報告として不可って上に報告するの?
もっと試した上で技術的なことを聞くならあれだけど、その程度は試せよ。
>>860 まずは試す。話はそれからだ。回答待ってる10分の間に試せるだろ
>>861 3D使えるなら3Dで画像を細かくポリゴン分割してパーティクル飛ばして
PictureBoxにレンダリングするのが楽だと思う
DirectX使いたくなければGL あるいは自作3Dライブラリで
2Dで処理するのもそんな面倒じゃない
とりあえず三角か四角の小さなDIBに分割し場所を動かしながらBltする
速度はAPIじゃ遅いけど耐えうるLvにはできると思う
爆発系なら爆発の中心から少しずつ遠ざかるように座標を変えればOK
>ここで私が出来ないって回答したら、仕事の報告として不可って上に報告するの? いやー最近そういう報告の仕方するヤシまじで多い。 学校の宿題でもコピペで済ましてるから卒業してからもそのノリで来やがる。 ツマラン学生送り出して来んなよと小一時間。
>>862 親切だから回答しよう
862には出来ないでFA
>863 誰が仕事だと?
>863-866 同一IPからの連続書き込みはご遠慮ください。
>863 質問の意図がまったく分かっていないようで・・・ 誰も分からないみたいなので他あたります。
>860 違うフォルダ上のCSVファイルと聞いて、同一DB内の 別のテーブルにデータ移すだけだろ、試せよバカ、と 思った君はバカ。
>>870 そういうことか。質問の意味がやっと分かった。
普通に考えるとできないんじゃないの?
ちょっと今試す環境がないのであれだけど。
>872 その前にお前は質問の意味をちゃんと理解しているか? >870-871の意味は分かってるか?
>872 試してできないから聞いてるんでしょ。
>873 とりあえず872(通称同一IP君)は放置しろ。 872はトリップ付けてくれると助かる。 NG指定するから。
>>873 何をムキになってるのかわからないな。
質問者か?
>>858 おまえは
>>824 か?
テキストファイル名をフルパスで指定すればできるかもね。
自分で試してレポートよろしく。
結局この件は誰も解決できなかったってこと。 さあ次の質問いってみよう。
>878 できません。
>877 質問者じゃないけど。理解してるかしてないかで言うとどっち? してないんだとしか思えないけど。
>871が正解。
>878 質問の意味が分かった人なら「試せば分かる」じゃなくて 「できない」と言えるはず。
今の状況。 質問者はおそらく初心者だろうがそれに似合わず高度な ことを質問していて、回答者は質問が高度であることに 全く気付かずとんちんかんなことを書いている。 正解は「できない」です。
すみません。質問です エクスプローラーでワードファイルとかにマウスを当てると 作成者とかコメントの情報がでてきますよね。(ストリームって言うんですか?) これをVBで変更したいんですけど方法しりませんか? 方法があればVBじゃなくてもいいです。 いろいろ検索してみたけど、 参照する方法は出てきても、変更する方法が出てこないんです よろしくお願いします。 環境はwin2kとxpです。
>>888 自分の著作物を変更する事も著作権を侵害になるですか?
>>888 ファイルのプロパティ自体を変更するならば、著作権の侵害に当る可能性もあるが、
単純に表示されるポップアップを偽装というか差し替えるだけなら技術的な問題じゃないのかな?
まあ、できるかどうかしらんし、そもそもそういうOSの挙動を変えるのは難儀だろうからパス。
>>892 なんか今日はこういう餓鬼ばかりだな。
できるできないはしらないけどさ、とりあえずSPYかなんかでそのときにどういうメッセージが飛んで
それをフックできるか調べてみればいいんじゃないの?
>>893 自覚が無いようだが
客観的に見て、餓鬼はお前のほうだよ
やってみたけどできるじゃねーか。
>896 ププッ。絶対ソースは載せないんだろうな。
訳 897 ソースお願いいたします。 898 早くしてください、納期が・・・。 つうかさ同じ奴だろ?897と898って。 大体、この質問者の特徴って、 ・返信は時間をおいて2連。 ・わかんないなら云々と逆切れ。
>>897 >>898 おまたせ
Private cn As ADODB.Connection
Private Sub Form_Load()
'データベースに接続
Set cn = New ADODB.Connection
cn.ConnectionString = "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=D:\testdata;"
cn.Open
End Sub
Private Sub Command1_Click()
Dim szSQL As String
szSQL = "INSERT INTO D:\test2\test.csv SELECT * FROM D:\testdata\nullpo.csv'"
cn.Execute szSQL
MsgBox "登録しました"
End Sub
Private Sub Form_Unload(Cancel As Integer)
cn.Close
End Sub
注1、test.csvを用意すること。
注2、nullpo.csvとtest.csvの1行目に同一の見出しをつけること。
>900 うわ、見事にはずしてる。
>900 なんでnullpo.csvまでフルパスなんだよ。へたくそ
>903 いえ、ありがとうございました。
つうか、スレの無駄な消費になるから2連投のレスはやめろ。
>905 どれとどれ?
>>905 妄想の激しい奴だ。
精神科へ行って来い。
>900 パスの中にスペースが入る場合は無理ですか?
>>908 パス自体をシングルかダブルクォートで括ってみるとか試してみては?
そんなの基本です
>900 もしかしてドライブが別の場合は無理ですか?
>909 いえ、試してダメだったので何か方法があるのか質問している次第です。
>>912 だったら最初に書け。質問の基本がなっていない。
何を試行して、どう駄目だったと書けよ。
あんたの環境をみんなが見れてるわけじゃないんだから。
>913 はい
>913 どこに環境依存の話が?
>913 つまりお前は分かりもしないのに知ったかぶって 答えたということね。
>>915 環境って表現がこのスレじゃ拙かったね。
>>912 さんの今やっていることとかそういうのを含めて、みんなが見えてるわけじゃないんだよ。ってこと。
>>914 結構
>>912 のような返答って頭にくるので注意してくださいね。
質問しておいて、そんなの試したよ!って言われたらそりゃーおこるで。
>>917 答えが間違っていたからといって、逆切れはみっともない。
>917 あっそう
>>917 自分の恥を他人のせいにすりかえるのはよくありませんね
>>918 誰が答えを書いた?試してみれば?と書いただけだよ。
このスレに入ってからこういう茶々入れる奴が粘着してるから、スレの議論がなくなってるよ。
>917 というかですね、この方法は使い物にならないことが 確認できたのでもう別の方法を試して既に解決済み なので、もういいです。 結局このスレは役に立ちませんでした。 別のMLにマルチポストしてましたが、そちらでは 非常にいいアドバイスがもらえました。
>>921 答え書く気が無いのなら邪魔だから消えてくれないかな。
本当に迷惑だ。
>923 その件はダメ元で荒らし板に報告してみます。
887です。 自分で作ってるファイルなんで著作権の問題はないです。 一応、命名規約があるんでファイル名が記号+連番なんです。 ファイルがたくさんあるので、中身を探すのがダイヘンで・・・ 内容はテキストなんです。ワードではないんですよ。 中にタイトル部分があるんでそれを概要に登録してれば、探すの楽になると思って エクスプローラーだと変更可能みたいだけど、いちいちやってられないし だからプログラムで一括でやれればと思ったのですが・・・ 有効な情報はないでしょうか? 改めてお願いします。
>926 ないでしょ。ここのレベルじゃ。
>>925 今後続くような警告する、ということみたいね。
まあもういなくなったからいいか。
入れ食いで人気急上昇という釣堀はココですか?
>930 違います。
タイマーコントロールについて質問です。 1秒に1回、Timerイベント内で処理を走らせているのですが 処理に時間がかかった場合、前回のイベント発生時から時間がずれて Timerイベントが発生してしまいます。 イベント内の処理は1秒以内で終了するとして、正確に1秒毎に 処理を行うには どのように対処するのが良いのでしょうか?
>>932 タイマーコントロールを使って正確に定期的に割り込んでもらうのは無理です。
ポーリングするか、細かくタイマで前回の秒数と比べてくれ
>>932 Windowsのタイマー自体が「最低nミリ秒」まつってだけだからね。
自分でループして時間を管理するのが一番正確だろうけどそれですら保証はできない。
>>933 ,934
レスどうもです。
そうですか、自分でループすると何もしていないDoEventsだけ
なのにCPU負荷が100%になってしまうので避けたかったのですが
やはりループして管理することにします。
通じてる?
突然、基本的な質問かもしれないですが、VB6.0のアプリケーション自体は、 もう入手出来ないのでしょうか。もしも、入手出来るのならば、どうやれば、 入手出来るのかを教えていただけますか。
>939 死んでいいよ
はぁ?
>>939 と887 はどんな関連性があるのか、誰か教えてくれないか?
プログラマー以前に常識が分らんのが多いな、たとえば、非アルタイむOS にリアルタイムを期待するとか
>>928 それは見つけて読みましたが、それだけではわからないんですよ
Main unnamed streamって奴が表示されているらしいのですが
登録とか編集できるのはその下の名前ありの奴だけ見たいなんですよ。
他にないでしょうか?
946 :
デフォルトの名無しさん :04/11/06 17:23:23
予め画像とかを使ってHTML形式のtemplate.eml(宛先や件名は空)を作っておいて、 プログラムがメールを送信する際に、そのtemplate.emlに送信者、宛先や件名を 入れて送信したいのです。つまり、1つの〜.emlを使いまわして、複数の人に 背景は同じだけど、本文は異なるメールを送りたいのです。 VB6.0で実現する方法が教えていただければ幸いです。
>944 お前の文章の方が常識ないぞ。 このスレレベル低すぎるから次スレはなしね。
どうしてもレベル低いことにしようとしている奴必死すぎ。 やべっ。つられちゃったw
>948 過去スレは知らんがこのスレ頭から読んでみ。
>>954 煽り厨であるお前が一番レベルが低いことがわかった。
>955 意味が分かる部分がないのですが。
957 :
デフォルトの名無しさん :04/11/08 07:45:08
Windows XP SP1 VB6.0 SP6 という環境でActiveXコントロールを作成しました このActiveXファイル(CABファイル)をサーバに置いて自動でダウンロードさせようとしたところ Windows XPのマシンでは通常通りダウンロードされ実行できるのですが Windows2000の場合ダウンロードが行われません どのような原因が考えられるでしょうか ご教授ください
ActiveXを圧縮してCABファイルにしたの? なんのサーバーで何を使ってダウンロードしたかわかんないけど、 ダウンロードが出来ないってことはサーバーの設定じゃないの? たぶんVBとは関係ない。
>>949 、他の方々
ありがとうございます。
サンプルソースがありましたので試してみるとタイトルやコメント、作成者の変更が出来ました。
まだ詳しくは調べてないですけど、なんかうまくいきそうです。
有益な情報ありがとうございました。
960 :
デフォルトの名無しさん :04/11/10 14:17:14
どうしても解決できなかったので、質問したいのですが、 データを読み込み、リストボックスにリストし、 そのデータを編集後、再び同じ形式で保存する。 という手順で、vb4を使っていて, A,B A',B' という感じのリストなのですが、 A=0〜255で可変(BYTE) B=可変整数(INT) において、 LIST.LIST(i)=で読み込み,保存しようとすると、 INT型で書き込むと,AB(例25530)となり(,は省略なので)、 VAL型で書き込むと,"A,B,"(例"255,30")(文字列は""で囲まれるので) となり、もとの形A,B(例255,30)で保存できません どのようにしたら、同じ形式で保存できますか? よろしくお願いします。
そもそも、リストボックスで編集ってどういう行為を指しているんだ? それと、文書がだらだら繋がりすぎて、読みにくい。 (って書くと、また答えだけ書けばいいんだよっていう既知外が沸いてくるんだろうね。) INT型、VAL型って何?Int関数とVal関数を言ってるの? それともInteger型とValiant型を指してるの?
>>962 わかってないなら書き込まなきゃいいのに
>>961 これで答えが見つからなかったら,
リストボックスからグリッドコントロールにでも変えようかと考えているところです。
>>962 行の追加と削除程度で,
1行目 A,B,C,D
2行目 A',B',C',D'
3行目 A,B,C'D'
などという行があって
2行目を削除して、4行目を追加という程度なのですが、
エクセルに返すことがわけあってできないので、
そのような形にしあMした。
integerとvariantです。
文章を短く簡潔に書こうと思ったんですが,表現力不足で
変な略とかしてて読みにくいのは申し訳ないです。
>>964 表示・操作させるデータと、実際のファイル操作を別にすればOKじゃないですか?
表示・操作結果を、単なる行番号の順序として保持する。
(元ファイルの行番号はListBoxのItexDataにでも覚えさせておく)
で、保存ボタンか何か押されたときにその行番号順でファイルを編集する。
ファイル自体は行単位でStringの配列にでも読み込んで、その配列を上記リストの結果に当て込んで、
編集先ファイルに書き込めばOKでは?
そうすれば、あなたが問題にしているデータ変換は使わないから。
>>963 こういうやり取りのできない、答えだけ厨は黙ってろ。
>>965 的外れな答えばかりして楽しい?
少し考えて答えろよ
ListはStringしか扱えないから"255,30"で入ってるのは当たり前 Splitで分けてやれば255や30も分かれる
>>966 これを的外れと思うあたりが実務経験の薄さかと。
元質問者の要求は、各データの変換ではなく、ファイル内の行の入替、削除ですよ。
行内のデータをいじるのは、求められている仕様から考えれば不要な操作なので、
そんなことは極力しないほうが、バグが少ないプログラムが組めるよ。
わざわざデータをリストボックスに表示した上、その表示データを拾ってファイルに書く必要がないです。
必要なのは、行の入替・削除した結果の行並び順だけ。
>>968 実務経験豊富と言う割には頓珍漢な事ばかり言うよな、お前。
コテハンにしてくれないか?
データの追加もあるんですね。 現状、その追加行のデータってどのように入力させていますか? 入替のみでなく、データの追加入力まであるのであれば、スプレッド系のコントロールの購入を検討したほうが良いかも。 ただ、元がVB4なので中々もう売ってるものがないかな。
>>970 現在はAddItemを使って追加しています。
listboxのデータの","から前後を分割して読み取れば,
data1+","+data2で元の形に戻せるのではないか?など、
さまざま考えて、方法を探っていたのですが,
解決に結びつかないのでした。
>>972 VB4ですよ。なのでお約束の処理を。改行規制あるので分割です
>>972 VB4ですよ。なのでお約束の処理を
Public Function GetToken(BaseString As String, fieldNum As Integer) As String
' BaseString 切出し元の文字列
' FieldNum FieldNum番めを獲得する。
Dim Num As Integer 'カウンタ
Dim NewComma As Integer '次のカンマの位置
Dim LastComma As Integer '検索開始点
LastComma = 0
Num = 1
Do
NewComma = InStr(LastComma + 1, BaseString, ",")
If NewComma = 0 Then
If Num = fieldNum Then
GetToken = Trim(Mid(BaseString, LastComma + 1))
Exit Function
Else
GetToken = ""
Exit Function
End If
Else If Num = fieldNum Then GetToken = Trim(Mid(BaseString, LastComma + 1, NewComma - LastComma - 1)) Exit Function Else Num = Num + 1 LastComma = NewComma End If End If Loop End Function
>963=966=969 ┌─────────┐ │ 基地外警報!!! | │ 基地外警報!! | └―――──――――┘ ヽ(´ー`)ノ ( へ) く
>975 >963は相手にしない方がいいよ。 そいつ、俺がこの前クビにした「自称。オールマイティ・プログラマ」だから(プ
釣れたw
↑必死だな(w
>>973 ありがとうございます。
まだ素人ですので、読んだだけでは理解し切れませんが、
マニュアル片手に読み解いてみたいと思います。
Debug.Print Chr(-29469) Debug.Print Chr(-27938) Debug.Print Chr(-32024) Debug.Print Chr(-28439) Debug.Print Chr(-29506) Debug.Print Chr(-30285)
>>963 は嫌なことでもあったんだろう
かわいそうな奴
>>973 さきほどやっとのことで解決いたしました。
途中
DAT_A = GETTOKEN(BASESTRING,1)
DAT_B = GETTOKEN(BASESTRING,2)
WRITE #1, DAT_A & "," & DAT_B
なんてあほなことをして、""がついて焦りましたが,
WRITE #1, DAT_A, DAT_B
で無事""なしで保存することができました。ありがとうございました。
983 :
デフォルトの名無しさん :04/11/11 18:41:15
vsPrinterを使ってForm上のPictureBoxをダイレクトに印刷しようとしているの ですが上手くいきません。 サイズ・色もForm上のPictureBoxに合わせたかったのですが、 vsPrinter.Picture = Picture1.Picture こうすると色は白黒の2色になってしまい、サイズはForm上より大きくなってしま いました。以前は1度.bmpで保存してからLoadPictureで読み込んで使用していた のですが、わざわざ1度保存しなくてもダイレクトに印刷できるようにしたいと思 っています。是非アドバイスを下さい。
>>983 コントロールの開発元に問い合わせて下さい
985 :
デフォルトの名無しさん :04/11/11 21:54:12
987 :
985 :04/11/11 23:17:43
ワロタ 事細かに書いているのに分からんのなら諦めるしかない
989
990