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

(*´д`*)ウッ… VB初心者質問スレ Part15

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001エロチカセブンNGNG
  Part 1 http://piza.2ch.net/tech/kako/968/968328471.html
  Part 2 http://piza.2ch.net/tech/kako/990/990793224.html
  Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
  Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
  Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
  Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
  Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
  Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
  Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
  Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
  Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
  Part12 http://pc3.2ch.net/test/read.cgi/tech/1026642565/
  Part13 http://pc3.2ch.net/test/read.cgi/tech/1029241786/l50
Win32 API関連スレ
  Win32API 質問箱 Build4
  http://pc.2ch.net/test/read.cgi/tech/1023361418/
心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
4.インストーラーなどの質問もOK。
五.下ネタもたまにならOK
0820デフォルトの名無しさんNGNG
816は何が言いたいのか?
0821デフォルトの名無しさんNGNG
>>818
んーと、そろそろアレなので解答というか…。
「vbDirectory or vbHiddon」とか。
罠があるのでgetattrしてチェックした方がいいとか、そのgetattrには罠があるとか。
こそらへん調べるといいかな。
0822デフォルトの名無しさんNGNG
>>819
大抵のことはできるでしょ。
VBの基本コンポーネントだけでAPI使用禁止、とか言われたらかなり無理が
出るけど…。
ただ、APIを大量に使い出すとVBである意味がなくなる罠。
まぁ、VBにも他の言語にも向き不向きがあるってこった。
0823デフォルトの名無しさんNGNG
>>819
OSがWindows以外で動作させる事。
つまり、最高精度でWindowsだからあんまり精度を求める処理は無理。
また、高速なスピードを要求する処理。

マルチスレッドは無理すれば何とか。
0824801NGNG
821様。レスありがとうございます。
どうやら私的にもう少しヘルプの熟読と、VisualBasic解説HPの検索が必要みたいです。
第2引数の複数選択が出来るみたいですね。
getattr関数、dir関数ともに勉強し直してきます。

ここのスレの皆様、ご教授大変ありがとうございました。
またどうしても分からないことがありましたら、
よろしくお願いいたします。
0825816NGNG
>>820
そのプログラムが属性変更して動いている最中でも
別のプロセスが動く可能性があるということですが。

これでもまだ理解できませんでしょうか?
0826デフォルトの名無しさんNGNG
排他ロックが必要か
0827デフォルトの名無しさんNGNG
ファイルリストボックスやコモンダイアログでファイルを複数選択して、同じ操作を
させたいのですが、どのような記述をすればいいでしょうか?
内容は、バイナリデータをデコードして、CSVファイルにして出力させるというものなのですが。
よろしくお願いします。
0828729NGNG
>動作中のVBアプリがタスクマネージャのアプリケーションの項目に表示されないようにしたいのですが、可能でしょうか?

自己レスです。
過去ログにShowWindowで出来るようなことが書かれていたので試してみました。
hWnd = FindWindow(vbNullString, "キャプション")
ShowWindow hWnd, SW_HIDE
で、"キャプション"に自分以外のアプリのキャプションを指定するとそのアプリはタスクマネージャに表示されなくなりました。
しかし、自分自身のキャプションを指定すると、画面上には表示されなくなるのですがタスクマネージャには相変わらず表示されていました。
これはこういうものなのでしょうか?ご存知の方教えて頂けないでしょうか。よろしくお願いします。
0829デフォルトの名無しさんNGNG
>>828
オーナーウィンドウの方を操作すればできそうだが。
0830729NGNG
>>829 さま
アドバイスありがとうございます。
オーナーウィンドウのハンドルを取得してShowWindowしたところ、願っていた動作をするようになりました。
ほんとに助かりました。やっと眠れます。
オーナーウィンドウの意味がまだよく分かっていませんが、ぼちぼち勉強していきたいと思います。
ありがとうございました。
0831デフォルトの名無しさんNGNG
>>798
むずかしいことをすれば、むずかしいこともできる。

>>811
能ある鷹はチンコを隠す
0832デフォルトの名無しさんNGNG
ちんこみたい
0833デフォルトの名無しさんNGNG
クラスに開始メソッドと停止メソッドを追加したいんですが
予約語で命名出来ません。この場合何てつけますか?

ダメな例 start stop, start end, begin end, open close
0834デフォルトの名無しさんNGNG
質問です。
ダイヤルアップ環境で、オフライン中にインターネットに接続しようとすると
ダイヤルアップのウィンドウが表示されますが、
これを画面に表示させないでWebアクセスなどを試みることは可能でしょうか?
(バックグラウンドで無理やりダイヤルアップ接続する方法とかではありません。)
繋がっていなかった場合はなんらかのエラー検出が出来る方法であればありがたいです。
どなたかご存知でしたら教えてもらえないでしょうか。よろしくお願いします。
0835デフォルトの名無しさんNGNG
ダイヤルアップのプロパティで「ダイヤルしない」にすれ。
0836デフォルトの名無しさんNGNG
>>833
start too stop, start too end, begin too end, open too close

start stoped, start ending, begin ending, open closed
0837834NGNG
>>835 さん
情報ありがとうございます。
ちょっと手元にダイヤルアップ環境がないので調べられなかったのですが、
VBアプリでそのプロパティの項目を「ダイヤルしない」に変更してしまえばよいということですかね?
で、終わったら元に戻してやればいいと。変更の仕方を調べてみます。(分かるかなぁ?)
どなたか他にも情報ありましたらよろしくお願いします。
0838デフォルトの名無しさん NGNG
>>835
丁寧な説明は大いに結構だが、肝心の>>834氏が理解できるかどうか、
甚だ疑問と思われ。
無駄な努力(猫に小判、豚に真珠に値する行為)は放棄すべし。w

・・・他のROM者にはプラスになるのかもしれないが・・・。
0839834NGNG
>>838
そこまで言う事無いでしょう?
なんなんだ?あんたは
0840デフォルトの名無しさんNGNG
「この板はプログラムを作る人のための板です。」
0841デフォルトの名無しさんNGNG
>>839
ダイアルアップ接続中かどうかを調べるAPIならいろいろあるよ
対象のOSは何?
0842デフォルトの名無しさんNGNG
>>839
コピペにマジレスカッコ(・∀・)イイ!!
って どこでみたんだったかな>>838の文章。。
0843デフォルトの名無しさんNGNG
838は コピペ

そんなこと言うなら、 838が 834が理解できるように 説明しろ。
説明できないのに 否定だけするな。
0844834NGNG
すみません、言葉が足りませんでした。
「VBアプリ」でWebアクセスなどを行う場合にダイヤルアップのウィンドウを表示させない方法を探していました。

>>840 さん
そうなんですか!
対象OSはWindows95OSR2以降、WindowsNT4ServicePack3以降のWindowsです。
(幅広くてすみません。)よろしくお願いします。
0845デフォルトの名無しさんNGNG
「このスレは初心者のためのスレです。」
ですが、とりあえず勉強してる、調査したなどの努力は みせましょうね。
0846834NGNG
まことにすみません、>>840 さんではなく>>841 さまでした。
0847834NGNG
>>845 さん
ご忠告ありがとうございます。
ダイヤルアップ関連については初めてでしたので、つい何も考えずに質問してしまいました。
これからは気をつけたいと思います。

少し調べたところRASというAPIがなにやら使えそうなので、もう少し調べてみようと思います。
0848834NGNG
ホントすいません。
0849デフォルトの名無しさんNGNG
VBScriptですが

フォームのドロップダウンリストの値を取得するには
form.name.options.value

では、ラジオボタンの値を取得する場合はどうすれば良いですか?
0850デフォルトの名無しさんNGNG
>>849
それは質問ではなく、問題ですか?
0851デフォルトの名無しさんNGNG
よろしくお願いします。

1.ListBox上で、項目が選択されていない状態で右クリックしたとき、
項目が選択されて、かつ右クリックメニューが表示されるようにするのはどうしたら言いのでしょうか。
(右クリックメニュー表示は実装しています。)

ListBoxのクリックイベントと、MouseDownのイベントどちらかに記述するのでしょうか。

MSDNで引いても、ググってもわかりませんですた。
ご教授よろしくおながいします。
0852デフォルトの名無しさんNGNG
ふつう右クリックのメニューがポップアップするのはMouseUp時だろ。
0853>>851NGNG
>>852
>>718-720
だったもんで・・・・・

すみませんね。

引き続き回答おまちしております。
0854デフォルトの名無しさんNGNG
すみません、型の違いがよくわからないので教えてください。
0855デフォルトの名無しさんNGNG
>>864
それぞれの型によって入れられる値の種類が違います。
0856デフォルトの名無しさんNGNG
ふつうWM_CONTEXTMENUが来たときだろ。
0857デフォルトの名無しさんNGNG
>>856
わざわざコンテキストメニューを出すためにサブクラス化したりするの?
0858デフォルトの名無しさんNGNG
うわVBってこんなのもできないんだ
0859デフォルトの名無しさんNGNG
>>858
何を出来ないと思っているかC言語を用いて述べよ。
0860デフォルトの名無しさんNGNG
>>833
>クラスに開始メソッドと停止メソッドを追加したいんですが
>予約語で命名出来ません。この場合何てつけますか?

旧VBの楽しいところだね。

>ダメな例 start stop, start end, begin end, open close
Prev(ious)とNextとか、ReadとWriteとかもあるね。

例えば、時間を扱うクラスとして、
StartTime、StopTimeとかにしてるよ。
オブジェクト指向的には冗長かつ邪道なネーミングだけど。
0861デフォルトの名無しさんNGNG
VBでゲームソフトを作っていて、ヘルプの所に
自分のホームページへのリンクを貼りたいのですが、
こういう場合にはどのようにすれば良いのでしょうか?
0862デフォルトの名無しさんNGNG
ShellExecute
0863デフォルトの名無しさんNGNG
>>862
ありがとうございます。調べてみたら使う事が出来ました。

もう一つお伺いしたいのですが、Labelの上にマウスカーソルが来た時、
マウスカーソルを手の形にし(ブラウザのハイパーリンクのように)、
Labelの上から離れたら元に戻したいのですが、
これはどのような処理をしたら良いのでしょうか。
Screen.MousePointer = vbなんとか でカーソルの形を変えられることは分かったのですが、
どんなイベントの所でこれを書けばいいのか分からず困っています。
0864デフォルトの名無しさんNGNG
>>863

Formのマウス ムーブのイベントで ラベルのところに x,y が 入ったら ポインタを手に変えたら
いいんじゃないのか?
それで、それ以外は、元に戻すとかする。
0865デフォルトの名無しさんNGNG
>>863
ラベルのプロパティをデザイン時に変えるだけ。
0866デフォルトの名無しさんNGNG
ああ それが 一番 カンタンだった。
label1.MousePointer = 15
とか Form Load時に やっとけ。
0867デフォルトの名無しさんNGNG
WritePrivateProfileString を使ってINIファイルに書き込むと、
空白が入ってしまいます。

回避方法を、教えてください。
0868デフォルトの名無しさんNGNG
>>867
すみません、自己解決しました。m(_ _)m
0869デフォルトの名無しさんNGNG
>>867
Nothingで書き込んで、セクションを削除してから
再度書き込む。
0870デフォルトの名無しさんNGNG
>>867
Killステートメントでファイルまるごとあぼーん。
0871超初心者かもNGNG
VisuualBasic6.0で質問です。

DoEvents以外ウィンドウズに制御を渡すってどうするんでしょうか?
DoEventsは遅い気がするので。
0872デフォルトの名無しさんNGNG
制御を渡すって、具体的に何がしたいの?
0873デフォルトの名無しさんNGNG
>>871
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
0874デフォルトの名無しさんNGNG
VBで実行中のアプリケーションがアクティブかどうかって
どうやって判断するのですか?
アクティブじゃない時は処理を中断させたいのですが。
0875デフォルトの名無しさんNGNG
>>873
85点。
0876デフォルトの名無しさんNGNG
>>874
GetForegroundWindow()
0877デフォルトの名無しさんNGNG
>>875
100点の回答を 教えてくれ。
0878デフォルトの名無しさんNGNG
>>875
教えを乞う態度とは思えん
(答えを求めておいて、結果を採点か?)
0879デフォルトの名無しさんNGNG
>>878
5/100点
0880デフォルトの名無しさんNGNG
よくVB製ソフトはダサイとか遅いとか糞とかVB製と知ったら落とすきダウンロードする気無くすとか言われてるけどどう思う?
0881デフォルトの名無しさんNGNG
>>880
お前の日本語のほうが糞だと思う
0882デフォルトの名無しさんNGNG
>>880
仕方ないと思う
0883デフォルトの名無しさんNGNG
俺の場合は(オンラインソフトね)セットアップ形式だとダウンロードしようか迷うな
いや、落とすのが決まってる場合はいいけど、Vectorでいろいろ探す場合ね。
0884デフォルトの名無しさんNGNG
(゚Д゚≡゚Д゚)
0885 ◆5VLaSsH.hA NGNG
InetでGetChunkしてるんですけど(VB6)
1024バイトごとに取得しているので丁度区切りの所に漢字が来ると
化けてしまいます。
これどうにかならないんですか?
0886 ◆5VLaSsH.hA NGNG
age
0887デフォルトの名無しさんNGNG
>>880
VB製は糞の割合がかなり高いと思う。
つまり、Vectorで同一カテゴリで手当たり次第DLして試してみる時、
VB製だとなんじゃこりゃ、というレベルのまで掲載されている可能性が高い。

しかし、そのような糞ソフトを除けば、特にVBが重いとかダサいとかいうことは無いかと。
つまりそれなりに定評があるなら言語は何だって関係ないというか。
糞が多すぎるからVB全体のイメージが糞に引っ張られるのだろうな。
0888デフォルトの名無しさんNGNG
>>885
第2引数をicByteArrayにしてバイト配列として取得し、
あとから結合するなりするといいんでないかい?
1024バイトごとにデコードしたいなら、最後の文字が2バイト文字か
どうか判別するルーチン作ってなんとかするとか。
0889デフォルトの名無しさんNGNG
>>885
もしかしてこれ?

' 最初のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
DoEvents
Do While Not bDone
DoEvents
strData = strData & vtData
DoEvents
' 次のチャンクを取得します。
vtData = Inet1.GetChunk(1024, icString)
If Len(vtData) = 0 Then
bDone = True
End If
Loop

txtData.Text = Replace$(strData, vbLf, vbCrLf)

私も今までこのまま(MSDNどおり)にやってたけど、そんなだとは気づかなかったよ。
0890デフォルトの名無しさんNGNG
>>889
あちらさんは2バイトコードなんて
地球外言語だと思ってるよ(藁
0891デフォルトの名無しさんNGNG
バイナリで取得してくっつけてStrConvすれ。
0892デフォルトの名無しさんNGNG
>>889
私なら、
Do While 1
にして、
If Len(vtData) = 0 Then Exit Do
にするけど、上記のMSDNに書いてあるやりかたの方が効率いいの?
0893デフォルトの名無しさんNGNG
>>892
If Len(vtData) = 0をWhileの条件文にしないのはなんか意味あるの?
0894デフォルトの名無しさんNGNG
>>863ですが、>>865さんのやり方で思い通りの結果が得られました。
ありがとうございました。
0895デフォルトの名無しさんNGNG
>>893
その方がよかった。
では変えます。
そうしないでMSDNではああいう記述にしているのはなにかその方が効率がよかったりするのでしょうか?
0896デフォルトの名無しさんNGNG
>>895
MSDNは見てないけど、もしも変数bDoneが
静的な変数(モジュールレベル or Static)だったら
893のコードとは意味が違ってくるわな。
0897デフォルトの名無しさんNGNG
ボタンとかを自分で作りたいと思います
とりあえずPictureコントロールにLineを描画しているんですがどうでしょうか?
もっとスマートな方法があるんでしょうか?
0898デフォルトの名無しさんNGNG
>>897
なんでそんな事したいの?
ユーザーが画面デザインの設定で見た目かえてても同じボタンになっちゃうじゃん。
そんなの不親切でしかないと思うけど・・。
0899デフォルトの名無しさんNGNG
>>898
まぁいいじゃないですか。
オリジナルデザインのソフトっていくつかあると思いますし。
0900デフォルトの名無しさんNGNG
送られてきたデータを画面に表示させる場合に
(例1)Winsock.GetData strData
Text1.Text = Text1.Text & strData & vbNewLine

(例2)Winsock.GetData strData
Picture.ForeColor = RGB(0,0,255)
Picture.Print = strData

(例3)Winsock.GetData strData
List.AddItem strData
List.ListIndex = List.CountIndex - 1 'データが下に隠れないように

出力する場所(テキストボックスなど)、出力方法、知識が足りないためか以下でや
りたいことができません。
まず、例1、例3だと送られてきたデータごとにフォントカラーが変更できない。
例1、例2ともに最後に送られてきたデータを画面内に表示させたいのです
が、古いデータがたまると、新しい行はスクロールバーで下に行かないと文
字が見れなくなる。
データごとにフォントが変更でき、最後に表示するデータがスクロールバー
で隠れることがないようにする方法教えてください。

0901デフォルトの名無しさんNGNG
だからVBのソフトはグロテスクな見た目とか言われるんだよな。
0902デフォルトの名無しさんNGNG
>>897
俺も同じような方法を使ってまつ。
0903デフォルトの名無しさんNGNG
>>897
Pictureコントロールならそのまま画像はればいいじゃん。
0904897NGNG
>>903
いえ、picture1.paintで真ん中にテキストを表示させて、
周りをラインを描画させてるんです。
あとMouseDownの時の描画とかも

と、ここまでは出来たんですが、上の動作をモジュール化させたいのですが
その辺がよくわかりません
0905DNGNG
>>900
最新の状況を表示するログのようなものならRichTextBox使って

Dim Buff As String
For i = 0 To 100
Buff = CStr(i)
Me.RichTextBox1.SelStart = 0
Me.RichTextBox1.SelText = Buff & vbCrLf
Me.RichTextBox1.SelStart = 0 '保存したテキストの選択
Me.RichTextBox1.SelLength = Len(Buff) ’同上
Me.RichTextBox1.SelFontSize = i    ’フォントサイズの変更
Next i

こんな感じでいいんじゃない?
保存も簡単だし
0906DNGNG
>>904
コントロール自作しちゃえば?
0907仕事でVB不幸者NGNG
おそろしく初心者質問だということはわかっているのですが
検索しても出てこなかったので質問させてください。

2次元配列の宣言と初期化はVBではどのように記述したらいいのでしょうか?
C言語でいうところの

int PosArray[5][5] = {
{1,2},
{2,3},
...
};

このようなものです。
0908デフォルトの名無しさんNGNG
>>907
宣言時の初期化はできません。
0909デフォルトの名無しさんNGNG
>>907
昔のbasicならdata文とかあったけどねえ。
関数作って代入させるとかかな。

sub setArray(,array, x, y, val) とかしてなかで代入。
0910DNGNG
>>909
READ〜DATAナツカシー。無くなったのが大変痛い。
&Bも使えませんねえ。
0911897NGNG
>>906
ActiveXコントロールですか?
配布時に面倒なので・・・
クラス化とかいうのやればよいのでしょうか。
クラスって一度も作ったこと無いけれども
0912デフォルトの名無しさんNGNG
>>911
その前にお前作れんのかと。
0913デフォルトの名無しさんNGNG
>>911
なぁ、自分の趣味で他人のアドバイス蹴りまくるのなら自分の力で解決すれば?
人に迷惑かけてまでやることでもあるまいて。
用語はわかってるみたいだから後は検索するだけだろ打て。
0914897NGNG
は〜いわかりますたよぶぅ〜。
0915デフォルトの名無しさんNGNG
>897
ユーザーコントロールって知ってるか?
あと氏ねよ
0916897NGNG
ああこれなら配布時問題ないのね。
ありあと〜。
0917デフォルトの名無しさんNGNG
>>860
レスありがとうございます。参考になりました。
自分の場合待ち受け開始、停止ということで
StartWaiting, StopWaiting
と名付けることにします。
0918897NGNG
>>915
言うに事欠いて
氏ねはないでしょ?
キモオタ風情がいきがりやがって。
0919エロチカセヴンNGNG
おまいら新スレ

(*´д`*)ハウァッ… VB初心者質問スレ Part16
http://pc3.2ch.net/test/read.cgi/tech/1034302532/l50
レス数が900を超えています。1000を超えると表示できなくなるよ。