トップページ⇒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。
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
解答の催促するヤシうざい
0385デフォルトの名無しさんNGNG
クラスモジュールでこうすんのと

Private B As Long
Public Property Let A(ByVal C As Long)
    B = C
End Property
Public Property Get A() As Long
    A = B
End Property

こうすんの何が違うの?

Public A As Long
0386デフォルトの名無しさんNGNG
>>385
おんなじ
0387デフォルトの名無しさんNGNG
>>386
ありがと
もひとつ!>>385のように値の設定・取得だけやる分には
どっちを使ったほうがいいんでしょう?
0388デフォルトの名無しさんNGNG
>386
ヲイヲイ
0389デフォルトの名無しさんNGNG
>>387
意味よくわかんね。

>>386の補足、まったく同じじゃないね。
■クラス外からアクセスする場合
まったく同じ。

■クラス内からアクセスする場合
・Meをつけると、上も下も外部からのアクセス=プロパティ経由=クラス外からの
アクセスと同等になる。
・Meをつけない場合、上はAでアクセスするとプロパティ経由、Bでアクセスすると
メンバ変数経由。下はメンバ変数経由と同等になる。メンバ経由の方が速度は速い。
0390デフォルトの名無しさんNGNG
>>385
通常はフィールド変数はプライベートにして、プロパティでアクセスするのが基本。

同じに見えても、プログラム組んでいく上では基本が大事だと覚えるべし。
それなりに理由がある。
0391デフォルトの名無しさんNGNG
>>390
> 通常はフィールド変数はプライベートにして、プロパティでアクセスするのが基本。
それJavaの話。VBでは特にプロパティのLet、Get内でなにもしないなら
パブリック変数で十分。
0392デフォルトの名無しさんNGNG
Private B As Long
Public Property Let A(ByVal C As Long)
B = C
End Property
Public Property Get A() As Long
A = B
End Property

こうすんの何が違うの?

Public A As Long


この例の場合は結果はほぼ同じ。

Private B As Long
Public Property Let A(ByVal C As Long)
B = C
End Property

こうすることで読み取り専用プロパティが書けたり、

Private B As Long
Public Property Get A() As Long
A = GetNankaData(B)
End Property

の様にプロパティの内容をダイナミックに生成したり出来る。
0393デフォルトの名無しさんNGNG
>>391
アホがいますな。
0394デフォルトの名無しさんNGNG
(*´д`*)アハァ…
0395デフォルトの名無しさんNGNG
>>393
まぁ論理的に考えてみろって。
0396デフォルトの名無しさんNGNG
>>395
いや、お前がな。 
0397デフォルトの名無しさんNGNG
VBのお子ちゃま仕様が、
>>391のような甘ったれた厨房レベルプログラムのできる程度の人を量産している。
もし、>>391が社会人で業務でVBを使っていて、
部下にそのように教えていたとすると、最大の被害者はその部下かもな。
0398デフォルトの名無しさんNGNG
>>397
VBの仕様は関係ねーだろ。
0399デフォルトの名無しさんNGNG
    _, ._
  ( ゜ Д゜)
0400デフォルトの名無しさんNGNG
結果だけが重視される詰め込み型教育の悪影響がここにも・・・
0401デフォルトの名無しさんNGNG
俺は391の意見に賛成。もちろん
>プロパティのLet、Get内でなにもしないなら
場合ってのが前提だけどな。
無論オブジェクト指向的に間違ってるってのは分かるが、
それより実行速度や簡潔性を取りたいケースも多い。
0402デフォルトの名無しさんNGNG
しかし、>385の質問は
>「何が違うの? 」
であって、それに対し
>「同じ」
と答えるのはあきらかに間違っている。

ところで、Javaにもプロパティって考え方あるの?
0403385NGNG
皆様どーもです
いやぁ勉強になります
結論は同じじゃないけどこの場合で使うにはどっちゃでもいいようですね

皆様のカキコからこんなんも参照できますた
http://www.microsoft.com/japan/developer/library/VBCon98/vbconproperties.htm
http://www.microsoft.com/japan/developer/library/VBCon98/vbconpropertyproceduresvspublicvariables.htm
0404デフォルトの名無しさんNGNG
>>401
VB5以降は外部からのアクセスは自動でGet/Let相当の動作になったと思うが記憶違いかもしれない。
0405デフォルトの名無しさんNGNG
利便性や簡潔性だけ求めて、
仕様変更や情勢の変化が起こった際に泣きを見てる香具師が多いのも事実。
そんな香具師らは平気な顔をして
「徹夜して対処するから大丈夫。」
笑っちゃうね。最初からもう少し掘り下げて考えて作れば、徹夜する必要も無いのにね。
1日長く考えても、そのような対応を含めると、長く考える方が有利の場合が多い。
日本って馬鹿だから、そこら辺の研究考察時間を開発の工期見積に含めないよね。
正しくないとしても知ってるやり方で、早くできるのが一番偉いと勘違いしてるみたい。
0406デフォルトの名無しさんNGNG
質問です。ただいまwinsockをつかって、簡単な、サーバとクライア
ントのソフトを作っております。で、まだLAN内でしか試していないので
すが、IPアドレスを入れれば、インターネットでつながった先のパソコン
とも通信できるのでしょうか?本当にくだらない質問ですいませんがおねが
いします。
あと、ファイルに数値を保存したいのですが、その数値と同じレコードに入れ
というような風にするにはどうすればいいでしょうか?(例えば最初に1が
きたら最初の場所に、次に13が来たら13の所に、そこで5が来たら5の所
にというような風に、で、後で先頭から順に正しい順番(1,5,13)で出力したい)
アイデアお待ちしております。
0407デフォルトの名無しさんNGNG
>>405
プロパティ一つで何を熱くなってるんだおまいは?
なんか鬱憤たまってるみたいだが、そういう文句は自分の現場で言え。
0408デフォルトの名無しさんNGNG
>406
1.試してみればいいだけの話でわ?
2.素直にRDB使ったら?
0409デフォルトの名無しさんNGNG
>>405
>日本って馬鹿だから
アイタタタタ・・・
ほかのどの国で経験積んできたんだろw
0410デフォルトの名無しさんNGNG
>>402
よく知らないが、考え方は同じでアクセッサメソッドってやつでしょ。
0411デフォルトの名無しさんNGNG
>>406
基本的に繋がる。ルーターや火壁によって蹴られる可能性もあるが。

0412デフォルトの名無しさんNGNG
>>409
日本で経験積んでもちょっと回りを見回すだけで日本が馬鹿って分かりますよ。
0413デフォルトの名無しさんNGNG
それは日本がバカなのではなく、おまいの現場がDQN揃い(ry
0414デフォルトの名無しさんNGNG
>406
そのPCにPingが届くのであれば、繋がると考えてオケ。

>412
ほほぅ、ちょっと回りを見渡すだけで日本が見えるのですか。
すごい視力ですね。
0415デフォルトの名無しさんNGNG
>>412
止めとけって。
>>414みたいな視野の狭いヲサーンプログラマ(ともいえないレベル)の人間が反応するぞ。
自分たちのやってきたことを否定されてるんだから、
反応しないはずも無いが。
0416デフォルトの名無しさんNGNG
これほど露骨なジサクジエンも珍しいわけだが・・・ (´д`;)
つーか そこまで”オブジェクト指向的”であることにこだわるヤシが
VBを使ってて発狂しないのか疑問だw
結局この手のもんはトレードオフでしょ。
速度や利便性を取りたい場合もあるし、将来の拡張性のために
あえて今は必要なくても冗長に書くこともある。
使い分けのできないヤシ、どういう場合だろうとどっちかに決めつけて
融通の利かないヤシがDQN
0417デフォルトの名無しさんNGNG
>>414
Pingが届かなくてもつながる場合があるし、届いてもつながらない場合もあるぞ。
適当な事いうなよ。
0418414NGNG
>415
ほほぅ、やはり日本を語る人の視野のスケールは違いますなw

>417
いやだから、絶対繋がるとは書いてないじゃん・・・
ここでネトワクの細かい話までするのはそれこそスレ違いだし、
そんな話して>406が理解できるとは思えん。
曖昧な書き方したのは悪かったよ。
0419デフォルトの名無しさんNGNG
>>414
> ほほぅ、ちょっと回りを見渡すだけで日本が見えるのですか。
誰が見えるって? 見えるわけないだろ(藁
0420デフォルトの名無しさんNGNG
>>418
> そんな話して>406が理解できるとは思えん。
所詮あんたの思い込み。
0421デフォルトの名無しさんNGNG
>419
そうですか。じゃあ、それなのに日本を語るのは間違いでは?

>420
そうだね。たしかに私の仮定だった。
つっこみはもういいから、君が>406にしっかりと説明してあげてよ。
■ このスレッドは過去ログ倉庫に格納されています