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

(*´д`*)アハァ… VB初心者質問スレ Part22

■ このスレッドは過去ログ倉庫に格納されています
0001HTML化チェック済みNGNG

  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/test/read.cgi/tech/1044028945/

VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。
0285デフォルトの名無しさんNGNG
>>284
初心者は余計。
ちゃんとディストリビューションウィザードとか使ってセットアップした?
EXEだけ持っていっても、そりゃ動かんよ。
0286デフォルトの名無しさんNGNG
マウスを無効にすることってできますか?
EnableWindowってのだとキーボードもだめになっちまう
0287デフォルトの名無しさんNGNG
>>286
サブクラス化でマウス関係のメッセージを全部握りつぶす
0288286NGNG
>>287
やっぱそれしかないのか・・・
0289デフォルトの名無しさんNGNG
>>288
それでできると思ってたなら最初から手間を惜しまずに書きんさい。
無駄な解答しなくて済むから。
0290253NGNG
>>278
わかりやすく教えて下さってありがとうございました
これでなんとか出来そうです。

本当、わざわざ長文を書いてまで説明していただいて
感謝の2文字で一杯です。
0291デフォルトの名無しさんNGNG
>>286 で
スクリーンセーバアみたいにマウスポインタ消す。じゃだめかな
0292デフォルトの名無しさんNGNG
>286

マウスを抜け
0293278NGNG
>>290
了解。
0294294NGNG
>>292
了解。
0295284NGNG
>>285

ありがとうございます!試してみます。
0296デフォルトの名無しさんNGNG
FSOでショートカット作ろうとしたらノートン反応するよ。
0297デフォルトの名無しさんNGNG
ノートンはいい迷惑だなっと
0298デフォルトの名無しさんNGNG
VB6で、クラスのPublicプロシージャの引数に構造体を使おうとしたら、

「パブリックオブジェクトモジュールで定義されたパブリックユーザー定義型に限り、
クラスモジュール内のパブリックプロシージャの引数または戻り値、
またはパブリックユーザー定義型の要素として使用することができます。」と

エラーメッセージが出てしまいました。
今は標準モジュール内にPublicで構造体を定義しているのですが、
クラス内に定義しても

「プライベートオブジェクトモジュール内ではパブリックのユーザー定義型は
定義できません」

とエラーが出てしまいます。
クラスのPublicなプロシージャの引数に構造体を使うのは無理なのでしょうか?
0299デフォルトの名無しさんNGNG
>>298
標準モジュールのOption Explicitのすぐ下あたりに記述してみ
0300デフォルトの名無しさんNGNG
>>298
ActiveXのパブリッククラスに記述してみ
0301デフォルトの名無しさんNGNG
>298
Friendキーワードを調べよ。
0302298NGNG
>>299
今現在その状態でした。
「プライベートオブジェクトモジュール内ではパブリックのユーザー定義型は
定義できません」 のエラーが出てしまいます。

>>300
プロジェクトのタイプをActiveX EXE、クラスをPublicにして、
スタートモードを独立型にしたらエラーが出なくなりました。
ありがとうございました。
0303298NGNG
>>301
プロジェクトタイプを変更しないでもFriendキーワードでもうまくいきました。
ありがとうございます。
0304304NGNG
僕のVBは♂みたいですがみなさんのはどうですか?
0305デフォルトの名無しさんNGNG
XPユーザーならやってみる価値あり

1.適当なフォルダにあるEXEファイルを右クリック→[スタート]メニューにアイコンを追加を選択
2.先ほどのEXEファイルがあるフォルダ自身の名前を変更する
3.スタートメニューを開いて上記の手順で追加したリンクを右クリック→プロパティを選択
4.無効なリンクになっているので、[変更]ボタンを押す
5.該当ファイルの変更後の正しい場所を指定する
6.・・・なにぃ!!

 感想きぼんぬ

   ※ 一人でニヤニヤした後は設定を元に戻しておきましょう
0306デフォルトの名無しさんNGNG
>>305
試すのめんどくさい。
オチだけ教えて。
0307デフォルトの名無しさんNGNG
なんかアプリが起動するとかしないとか。
0308デフォルトの名無しさんNGNG
いまさらこういうコピペをにやけながら貼ってるヤシがいるかと思うと
頭が痛くなってくるな
0309デフォルトの名無しさんNGNG
VBscriptでテキストファイルの整形や保存などをしたいのですが、
できますでしょうか?
もしできるなら参考になりそうなHPを知ってたら教えていただけないでしょうか?
0310ひきプロNGNG
>309
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/refer/lesson15.htm
こういうのはどうでしょ
0311309NGNG
>>310
ありがとうございまーす。勉強してみます。
0312デフォルトの名無しさんNGNG
>>301
友達のいないオレにどうしろと?
0313デフォルトの名無しさんNGNG
標準モジュールからフォーム内のプロシジャーへユーザー定義型を渡すとエラーが出ました。
MSDNには
「フォーム モジュールで引数をユーザー定義型として渡す場合、引数を渡されるプロシージャはプライベートである必要があります。」
とかいてあります。
この場合皆さんどうされますか?
1.ユーザー定義型をパブリックにしてしまう。
2.標準モジュールから呼ぶのをあきらめて、ユーザー定義型をフォーム内でモジュールレベルOrローカルレベルで定義し、フォーム内からそのプロシジャーを呼び出す。
3.ほかに方法があるぞこら!教えてやるよしかたねぇなぁ

どれですか?
0314デフォルトの名無しさんNGNG
>>313
クラスを使う
0315デフォルトの名無しさんNGNG
>314

な・・・なるほど・・・・。
しかしユーザー定義型は何でこういう制限があるのだろうか・・・。
ユーザー定義型の使うところがなくなる・・・。
0316デフォルトの名無しさんNGNG
>313
ちょっと前にFriendって話が出てる訳なのだが。
0317デフォルトの名無しさんNGNG
>>315
COM絡みだと思う。ユーザー定義型は特殊な型だからね。
ちなみにクラスはすべてオブジェクト型
0318デフォルトの名無しさんNGNG
>316

いや、あれはクラスにユーザー定義型が渡せないっていってるんでしょ?
私がいってるのはフォームにユーザー定義型が渡せないといってる。
MSDNに書いてある制限だ。
MSDNには
「フォーム モジュールで引数をユーザー定義型として渡す場合、引数を渡されるプロシージャはプライベートである必要があります。」
って書いてるんだぞ?
フレンド使えるなんてどこに書いてる?「フォームは一種のクラスみたいなもんだ」見たいな中途な知識でいってるんじゃないのか?
ああ?ああ?ああ?

>317

それはCの構造体とも若干違うところがあるからということでしょうか・・・。
0319デフォルトの名無しさんNGNG
> 「フォームは一種のクラスみたいなもんだ」
極普通の知識じゃん。
0320デフォルトの名無しさんNGNG
>319

そこにフォーム内のプロシジャーにユーザー定義型を渡させないという知識がないから>316の発言になる
これが中途な知識からくる>316の発言ということだろ?
文章読解能力乏しいやつがいるな。
しったか君もいるしw
とんだ大恥かいちゃったなw
0321デフォルトの名無しさんNGNG
すいませんが、質問があります。
クリスタルレポート7を使ってレポート印刷しているのですが
mdb形式のODEC接続から、SQLServerのADO接続に変更
する際、できるだけクリスタルレポート自体はさわらずに
VBのソース内で変更する方法はあるのでしょうか?

今とりあえず
  CReport1.Connect = "DSN=" & DBNAME & ";UID=" & USER & ";PWD=" & PASS

で接続はできてるようなんですが、クエリの抽出結果のレコードセットなどは
当然ながら反映されていません。
Datasourceを使ってみましたが、うまくいきませんでした。

どうすれば変更できるでしょうか?
0322デフォルトの名無しさんNGNG
>>321
レポート側変えないと無理かと。
0323309NGNG
VBscriptってlistboxやcomboxは使えないのでしょうか?
0324デフォルトの名無しさんNGNG
>>323
コンボボックスはHTMLタグでつくり、コンボボックスの内容はVBScriptで出力できる。
0325309NGNG
>>324
わかりやした。ども。
0326デフォルトの名無しさんNGNG
>>305

ここにも貼ってるのか。
↓解決法
http://pc2.2ch.net/test/read.cgi/win/1043764586/l50
0327デフォルトの名無しさんNGNG
オーナーWindowに対してModalでないメッセージボックスって作れます?

一応、APIのMessageBoxA の第1引数(HWnd)をゼロにしたら、それっぽいように
見えるのですが、なんかインチキくさくて正しいコーディングとは思えないし、
常に最前面に表示させることができず、オーナーWindow(メモ帳です)をクリック
すると背後に隠れてしまいます。
0328デフォルトの名無しさんNGNG
>>327
補足です。イメージとしては、メモ帳の「検索」画面のような感じです。
要するに、常にオーナーWindowの前面に表示されるが、表示されている
間もオーナーの操作は可能・・・。
0329デフォルトの名無しさんNGNG
Shell で"mailto:Address?Subject=Title"を呼ぶと、「通常使うメールソフト」に
宛先と標題が記入済みの状態で起動できますが、本文にもテンプレートを初期値で
設定した状態で起動することは可能でしょうか?

特定のメーラ(OEとか)限定なら、SendMessageを駆使してできそうな気もするんです
が、「どのメールソフトでも」対応できる方法が可能かどうかわかりません。

ご存知の方、コメントください。
0330デフォルトの名無しさんNGNG
>>328
独自のフォームでいいの?
それなら、
  Form2.Show , Form1
みたいな感じでok。Form2は常にForm1より前面に表示されるはず。

MsgBoxでやる方法はシラネ。
MessageBoxのhWnd=NULLで問題無しならそれでいいんじゃない?
0331ひきプロNGNG
>329
http://www5e.biglobe.ne.jp/~access_r/hp/html/html_016.html
どうでしょか?OEならできそうな予感
0332デフォルトの名無しさんNGNG
>>331,329
OEならbodyでできるね。
でも、Shellでできたっけ? APIのShellExecuteじゃないと駄目じゃない?
0333ひきプロNGNG
>>332
うちの環境ではまずShell "mailto:Address?Subject=Title"が
呼び出せませんでした藁
329さん、どうやってるんだろうか。
0334デフォルトの名無しさんNGNG
2000/XPはしらないけど
Shell "start mailto:Address?Subject=Title"
で動いたかも
0335デフォルトの名無しさんNGNG
Shell "C:\temp.txt"
でファイルは開けるわけ?
0336デフォルトの名無しさんNGNG
みんな学校でVB勉強したの?
0337あNGNG
>336
半年前から仕事場で使い出した。
こっからどう話しが展開するの?
0338デフォルトの名無しさんNGNG
>335

ひらかない
0339316NGNG
>320
たしかにMSDNには
「フォーム モジュールで引数をユーザー定義型として渡す場合、引数を渡される
プロシージャはプライベートである必要があります。」
と書いてあるが、
「Friendであってはいけません」
と書いてはいない。

で、「フォームは一種のクラスみたいなもん」ではなく、明確にクラスだよ。
当然、Friendでプロシージャを定義することも出来る。
俺が中途半端な知識で物を言っているかどうか、試してみればすぐに分かるだろうに・・・
0340335NGNG
>>338
エクスプローラでファイルをクリックするみたいにはいかないんだのぅ。
0341329NGNG
>>330
コメントありがとうございます。
自アプリではなく、外部アプリ(メモ帳)をオーナーとするメッセージボックスを
出したいのです。(しかも、事情があって、VBではなく、AccessのVBAで)

>>331-332
ありがとうございます。後で調べてみます。(結果は後日・・・)

>>334
9x系ならそれで正解。
NT系ではStartコマンドが内部コマンドなので、
Shell(Environ("ComSpec") & " /C mailto:Address?Subject=Title", vbHide)
としないといけません。
0342329NGNG
>>331-332

ブラウザの A href ........ タグからは起動できるんですが、Shellからだと、
body以下を有効なコマンドとして認識しないようです。
(メールソフトは起動するが、本文が入らない)
でも、タグで実行できるなら、何か別の方法がありそう。

土日にでもゆっくり考えて見ます。
0343デフォルトの名無しさんNGNG
質問です。
テキストボックスにH2O等の化学記号の数字を小さくし入力、
表示させる事は可能でしょうか?
簡単に出来そうで難しいのですが・・・。
0344デフォルトの名無しさんNGNG
>>343
テキストボックスだと普通は無理
小さい文字を表示できるフォントを使うか
リッチテキストあたりをつかえ
0345デフォルトの名無しさんNGNG
>>344
ありがとうございます。
0346ひきプロNGNG
>>342
一回実験的にやってみたら、332さんのおっしゃる通り
ShellExecuteを使うとbody以下も認識しましたよ。(Win2000の時)
0347329NGNG
>>346
ありがとうございます。これで解決かな?
0348デフォルトの名無しさんNGNG
>339

    ||
    ||
  ∧||∧
  ( / ⌒ヽ 
   | |   | 
   ∪ / ノ
    | ||
    ∪∪
0349デフォルトの名無しさんNGNG
で、結局フレンドって何?
0350デフォルトの名無しさんNGNG
>>349
友達。
0351デフォルトの名無しさんNGNG
>>349

ここ↓を読めばわかるかも(w

ttp://www.hyuki.com/dp/cat_Memento.html
0352デフォルトの名無しさんNGNG
VBユーザにメメントパターン。


幼児にチェーンソーを持たせるような感覚だ。
0353デフォルトの名無しさんNGNG
幼児じゃなきゃいいじゃん。
0354デフォルトの名無しさんNGNG
>>353
幼児である率は高い。
0355デフォルトの名無しさんNGNG
そしてのその原因がチェーンソーに興味を持った幼児から
説明なしにいつまでもチェーンソーを取り上げること。
ナイフはキケンだからと取りあげナイフを使えない子供を
育てる親にならないようにしよう。
0356デフォルトの名無しさんNGNG
チェーンソーは取り上げた方がいいぞ。
0357デフォルトの名無しさんNGNG
>>355
その通りだ。でも、多分腕なくなるぞ。初めはハサミから、次はカッターナイフと教え方にもいくつか方法があると思うんだ。
0358デフォルトの名無しさんNGNG
テキストで値を入れて計算したいのですが、
Text3 = Text1 + Text2
このようにすると
123 + 456 = 123456
と言うように数値を足すのではなく、文字を繋ぎ合わせる形になってしまいます。

Text3 = Text1 * 1 + Text2 * 1
このように * や / を式の中に入れれば
123 + 456 = 579
とちゃんと計算してくれるのですが、+のみでやるにはどうすればいいでしょうか?
0359デフォルトの名無しさんNGNG
>>358
「型」について勉強。
0360デフォルトの名無しさんNGNG
>>357
その通りだ。だが単に取り上げるだけじゃいつまでも使えるようにはならない。
問題があるならまず何が問題かを説明し納得させ、一番良い方法を提示するのが一番大事だ。
自分の基準で決め、結論だけを言い、それに従わせようとする奴が多すぎる。
目標は使えるようになる事だということを忘れてはならない。
0361デフォルトの名無しさんNGNG
>>360
うむ、言いたいことはよくわかる。

>説明し納得させ

しかし、ここでの問題は物の切り方を尋ねる子供にチェーンソーを提示したと言うことではないだろうか?
刃物の特性を示すにはあまりにも強力で熟練を要する道具ではないか。
0362デフォルトの名無しさんNGNG
>>360
初心者には、まずはサブクラス化を習得させるべき、という結論でよろしいでつか?(禿違
0363デフォルトの名無しさんNGNG
>>358
オレでも分かるぞ。
とりあえず本屋逝って
「バカでも分かる簡単VisualBasic」の類のテキスト買ってこい。
またはMSDNで「データ型」と引け。
0364デフォルトの名無しさんNGNG
>>361
尋ねたのが子供だとは限らない。
0365デフォルトの名無しさんNGNG
>>364
公園で遊んでいる者の大半を子供と定義してもそれほど差し支えはないだろう。
0366デフォルトの名無しさんNGNG
>339は問い詰められるべきなの?
厨房なのでわかりません。
0367デフォルトの名無しさんNGNG
>>365
VB=公園という例えはふさわしくない。
0368デフォルトの名無しさんNGNG
>>367
他に何かあるか?
0369デフォルトの名無しさんNGNG
放射性廃棄物貯蔵庫の上に作られた公園。
0370デフォルトの名無しさんNGNG
>>368
C++やJavaだとどう例えるか? それと同じだ。
0371デフォルトの名無しさんNGNG
>>370
Java:全寮制高校
それなりのコミュニティはあるものの所詮は箱庭。外部との接触は制限される。きれい事のまだまだ通用する世界。

C++:社会
何をやっても良い。しかしすべてが自己責任だ。強力だがかなりシビアな世界といえる。
0372デフォルトの名無しさんNGNG
ネタはマ板で。
0373デフォルトの名無しさんNGNG
    _, ._
  ( ゜ Д゜)
0374358NGNG
Dim X As Integer, Y As Integer, Z As Integer
X = Text1.Text
Y = Text2.Text
Z = X + Y
Text3.Text = Z

これで正しい?
もっと効率いいやり方あるかな?
0375デフォルトの名無しさんNGNG
>>362
その前に動的配列とコレクションを憶えさせれ(w
0376デフォルトの名無しさんNGNG
>>374
X = Val(Text1.Text)
Y = Val(Text2.Text)
Z = X + Y
Text3.Text = CStr(Z)

初心者のくせに効率なんか求めるな!
0377デフォルトの名無しさんNGNG
http://www.pink-angel.jp/betu/index.html
★いらっしゃいませ!!ようこそココへ★
0378デフォルトの名無しさんNGNG
>>374
それでよしかと思われます。
0379デフォルトの名無しさんNGNG
> 初心者のくせに効率なんか求めるな!
問題ないだろ。
0380358NGNG
�d
0381デフォルトの名無しさんNGNG
>>378
暗黙のキャストに慣れると、C はとうぶん出来ない。
0382デフォルトの名無しさんNGNG
Cにも暗黙のキャストはありますが何か?
0383366NGNG
誰かぁ>366ぅ
0384デフォルトの名無しさんNGNG
解答の催促するヤシうざい
■ このスレッドは過去ログ倉庫に格納されています