トップページ⇒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。
0202デフォルトの名無しさんNGNG
タイプライブラリって何ですか?
0203デフォルトの名無しさんNGNG
>202
ほれ。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%82%BF%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%A8%E3%81%AF
0204デフォルトの名無しさんNGNG


:::::::::::/           ヽ::::::::::::
:::::::::::|  ば  じ  き  i::::::::::::
:::::::::::.ゝ か   つ   み  ノ::::::::::: 
:::::::::::/  だ  に  は イ:::::::::::::
:::::  |  な。       ゙i  ::::::
   \_         ,,-'
――--、..,ヽ__  _,,-''
:::::::,-‐、,‐、ヽ. )ノ      _,,...- 
:::::_|/ 。|。ヽ|-i、      ∠_:::::::::
/. ` ' ● ' ニ 、     ,-、ヽ|:::::::::
ニ __l___ノ     |・ | |, -、::
/ ̄ _  | i     ゚r ー'  6 |:: ←>202
|( ̄`'  )/ / ,..    i     '-
`ー---―' / '(__ )   ヽ 、   
====( i)==::::/      ,/ニニニ
:/     ヽ:::i       /;;;;;;;;;;;;;;;;
0205名無しさんだよもん ◆ZAYX.QGihc NGNG
>>201 その方法があったのね...

フックとStrPtr思い出したんだが
過去に『TextBoxにタブが入力されたら半角スペースに変換』たる機能を作ろうとした
ペーストされた時・外部アプリからの変更も考えて フックし

�@ コールバックの引数(ペーストされる文字列のアドレス)をStringに MoveMemory
   ↓
�A String のタブを半角スペースに置換
   ↓
�B �Aの結果を�@のアドレスに入れる(StrPtrを使って)

という方法でやってみたのだが
文字列のサイズが小さいと成功し大きいと失敗(異常終了)します
違うやり方があったら教えてくれ

『入力されたら半角スペースに変換』は簡単なのだが...
0206デフォルトの名無しさんNGNG
>>205
その方法ってAPI呼び出すときに使ってるだろ。
0207デフォルトの名無しさんNGNG
Form1とForm2を持っているソフトのexeファイルを作ると、
exeファイルのアイコンがForm1のアイコンになっちゃうんだけど、
Form2のアイコンをexeに表示させるにはどうすればいいの?
エクスプローラでexeを見てみるとForm1のアイコンしかexeのアイコンとしては表示できないみたい。
0208ひきプロNGNG
EXEを作る時に
オプション → アプリケーション → アイコン
で変更
0209デフォルトの名無しさんNGNG
今更ながら、VS6(VB6だけでもいいけど)を買おうと思うんですけど、
もう入手困難?
昔の会社でVB6使ってたけど、転職した会社になかったので
(ソフトハウスではないですので当然ですが)
どーせなら、VB6を買って、アップ版のVS.NETを買おうと
思ってるので。

もし、通販できるサイトがあれば教えてくださいませ
0210207NGNG
>>208
本当にこんなことができたなんて。
すごい!すごすぎる!
0211デフォルトの名無しさんNGNG
http://store.prod-one.co.jp/ms/dept.asp?dept%5Fid=23
0212もう一度書かせて下さい。NGNG
win98でMicrosoft Windowless Controls 6.0のWL コンボ ボックスを使った
プログラムを作ったのですが、windows2000とXPで、実行しようとすると
「コンポーネントMSWLESS.OCXまたはその依存関係のひとつが適切に
登録されていません。ファイルが存在しないか、あるいは不正です。」
とエラーが出て実行できなかったらしいです。 
どうすれば解決できるでしょうか?

0213デフォルトの名無しさんNGNG
>>211
どうもありがとう!
0214デフォルトの名無しさんNGNG
VBでzipファイルを解凍するプログラムをキボンヌ
0215デフォルトの名無しさんNGNG
>>214
統合アーカイバプロジェクトに行け(´ー`)
サンプルがたくさん落ちてるぞ。

inflateまで自前で実装したいなら茨の道っていうか漏前には無理。
0216ひきプロNGNG
>>212
アプリのフォルダにMSWLESS.OCXを開発環境からコピーすれば
動くようになると思います。
>>214
http://www.google.co.jp/search?q=zip%E8%A7%A3%E5%87%8DVB&ie=UTF-8&oe=UTF-8&hl=ja&lr=
0217214NGNG
>>215-216
キミたちがクレタほんのちょっとの情報だけでオレはつくる!グヘヘ
0218214NGNG
>>217
偽者は引っ込んでください。

>>215-216
ありがとうございます。
0219デフォルトの名無しさんNGNG
ここ数日ム板にも厨房が増えたな。やっぱ春休みか。
0220デフォルトの名無しさんNGNG
質問者はなるべくトリップをつけよう!
0221デフォルトの名無しさんNGNG
化学物質だらけの世の中だから生まれつき変な人増えてもおどろくなかれ
0222214 zip ◆IKup9Hv/8E NGNG
おーう、できたぞ。
zip解凍先フォルダの指定がこのときは解凍できずになやみになやんだ。
Outdir = App.Path
だがしかし、unzip32.dllで大事なのは、解凍先フォルダの指定でフォルダ文字列の最後に\をつけることだ。
Outdir = App.Path & "\"
とすれば見事に解凍できる。
覚えておくといいぞ、これからVBでzipを扱うのに興味を持ったヤシは。
0223デフォルトの名無しさんNGNG
>>222
そのソースだとダメな場合がある(だろう)ってのを覚えておいたほうがいいぞ。
どういう場合にダメなのかは自分で考えるように。
0224214 zip ◆IKup9Hv/8E NGNG
>>223
はっきりいわないと世界中のソフトがバグをかかえたままになるぞ。
なにが悪いんだ?
0225214 zip ◆IKup9Hv/8E NGNG
>>223
Right関数使えとかいうだろうな。
0226デフォルトの名無しさんNGNG
>>224
まともなプログラマはそんなソース書かないから大丈夫だw
自分で考えろって言ってるのに2分で即レスとはすげーヤシだな。
ちなみにRight関数は”あまり”関係ない。
0227214 zip ◆IKup9Hv/8E NGNG
>>226
今のオレには考えてもなにも思い浮かばん。こたえをズバリ言ってくれ。
0228デフォルトの名無しさんNGNG
つーかな、App.Pathの仕様が腐ってるだけともいえるな。
いちいち面倒だってば。
0229214 zip ◆IKup9Hv/8E NGNG
>>228
App.path vb バグ
で検索しても情報がなかったからオレは気にせずにApp.Pathを使うことにする。
0230デフォルトの名無しさんNGNG
>>227
断る

>>228
たしかに・・・
俺は最近は手抜きして、その手の処理にはFSO使うことが多い。何かと便利だし。
0231デフォルトの名無しさんNGNG
バグと仕様の区別もつかないアフォが一匹紛れ込んでるわけだが。
0232214 zip ◆IKup9Hv/8E NGNG
けっ。FSOはノートンに実行許可を与えないと使えないぜ。ノートンが反応すればユーザはそれだけで
いいソフトにも拒否反応を示すというのは事実だ。
0233デフォルトの名無しさんNGNG
C:\ で実行すると、App.Path は C:\ になる。
C:\hoge\ で実行すると、App.Path は C:\hoge になる。

ルートで実行するやつなんかシラネ、って考えなら問題なし。
0234デフォルトの名無しさんNGNG
初心者スレだし、ヒントくらい出すか。

*い ろ ん な と こ ろ で* App.Path

以上。
0235234NGNG
>233
ぎゃふん
0236214 zip ◆IKup9Hv/8E NGNG
>>233
おれはApp.Pathの戻り値の右端に\があるかどうかを求めればいい。
という考えで上記事にRight関数の名を出したわけだから、なにげにもうこちらも解決してたってわけだな。
0237214 zip ◆IKup9Hv/8E NGNG
>>230-235
というわけでごくろうさま。
0238デフォルトの名無しさんNGNG
今日はさむいな
             ∧_∧
         .:' ': :..,, .( ´A` )  、_,..ノ⌒ヽ、,
         ゙::...::゙" (ヾ.,,三,.彡'_,,... -‐、.,, 彡
               ヽ くV > ヽ、 \   ゙"
              ヽ<iゝ  l>  )
               〉・ ・ / ./
                 / ・ ・ \イ         、
                  ∧     'i,         〈キ〉
             / 人     'i,         `'
            ,/ / /'i,     ヽ
             l' i'ヽ(  ヽ     >
           / ,|⌒l   |'i,  /
           ヽノ  l   ! レ''.              ,-、,
               |  |                く_ツ
              | .|
              _/  l
    ,.-'l           (___/
    ゝ '
0239デフォルトの名無しさんNGNG
餌を与えるのも程々にしましょう >ALL
まだ間違ってるようだが、本人納得してるようなので放置しよう・・・
0240デフォルトの名無しさんNGNG
>>214
いくつか重要な事実をおしえてくれてるね。おれは感謝してるよ。
0241デフォルトの名無しさんNGNG
Public Function AddBackSlash(Byval strPath As String) As String
If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
AddBackSlash = strPath
End Function
0242デフォルトの名無しさんNGNG
ノートンか、なるほど。
0243214 ◆IKup9Hv/8E NGNG
>>241
もう消える。
0244デフォルトの名無しさんNGNG
ジサクジエンの悪寒・・・ (´д`;)
0245デフォルトの名無しさんNGNG
>237

>238

この流れで話はおわりとおもたのに・・・・。
0246214再び ◆IKup9Hv/8E NGNG
Unzip32.dllはスペースを含んだフォルダにzipファイルがあると解凍できないようなんだが
みんなもそうだろうか?
0247214 ◆IKup9Hv/8E NGNG
そぅいえば
Unzipするときにパラメータを渡すが、パラメータはスペースで区切っていたな。
つまりパラメータ用デリミッタのスペースとフォルダ名のスペースが混ざったいると。
さてどうしたものか。
0248214 ◆IKup9Hv/8E NGNG
パラメータをダブクォで囲ってみる。
0249214 ◆IKup9Hv/8E NGNG
うまくいった。
0250212NGNG
>>216
ありがとうございます。さっそく相手にメールで送って試してもらいます。
0251214 ◆IKup9Hv/8E NGNG
App.pathの詳細とInetコントロールやその他の手段でRefererを変更する方法をキボンヌ。
0252デフォルトの名無しさんNGNG
前スレにもこんなのがいたな
同一人物か?
0253デフォルトの名無しさんNGNG
すみません。めっちゃ素人の質問させてもらいます

ある文字列○○○の右から数個目のアルファベットを
アルファベットよって任意の数字をあたえる
プログラムってどうすればいいんですか?

例
○○○○○(単語)の右から3つ目のアルファベットが
A、b、c…1
d、e、f…2
その他…3
にしたい場合


本当お手数かけてすみません
0254デフォルトの名無しさんNGNG
str = "AbCdEf"
rightOne = Left(Right(str, 3), 1)

あとはてめえでやれ。

0255デフォルトの名無しさんNGNG
(・◇・)アヤヤー
0256デフォルトの名無しさんNGNG
>>253
素直にコードにするとこうなるわけだが

Select Case Mid$("ここに対象となる文字列", 3, 1)
Case "A", "b", "c"
hoge = 1
Case "d", "e", "f"
hoge = 2
Case Else
hoge = 3
End Select
0257253NGNG
>>254
>>256
何となくわかりました。
お手数かけてすみません

本当すぐおしえていただきありがとうございました
0258デフォルトの名無しさんNGNG
>>252
性器表現と同じお方のようだ
0259デフォルトの名無しさんNGNG
イベントの意味を優しく教えて下さい。
0260デフォルトの名無しさんNGNG
>>259
トイレでブツがぼっとんすればはねかえりがある、それがイベントだ
0261デフォルトの名無しさんNGNG
>>260
余計意味がわからなくなりそうなのですが・・・。
0262デフォルトの名無しさんNGNG
Form1 が ロード された
Form1 が 表示 された
Command1 が クリック された

こういうのがイベント
0263デフォルトの名無しさん NGNG
>>260
お前が「トイレでブツがぼっとん」しても
俺には「はねかえり」を感知できない。

よってそれはイベントではない。
0264デフォルトの名無しさんNGNG
>>261
オブジェクトでクライアントに有益な事象が発生したときに、クラスからクライアントへ通知する方法のこと
0265デフォルトの名無しさんNGNG
コンピュータに何かが起こればそれはすべてイベント
0266デフォルトの名無しさんNGNG
>>262がわかりやすい
0267デフォルトの名無しさんNGNG
>>265
アキュームレータがインクリメントされるのもイベントが?
0268デフォルトの名無しさんNGNG
サイモンとガーファンクルが来る、コンサートやる。これがイベント
0269265NGNG
>>267
VB限定のイベントという意味では、VBにとってはイベントでない、といえる。
0270デフォルトの名無しさんNGNG
壁がはがれた。色を塗りなおす。これがペイント。
0271253NGNG
質問君でごめんなさい
ある単語(例えば「opendata」)という言葉から
あるアルファベット(例えば「o、a」)の数の合計を数えるプログラムってどうすればいいんですか?

本当2回もすみません!!
0272デフォルトの名無しさんNGNG
イベントってイベントドリブンの略じゃねーの?
0273デフォルトの名無しさんNGNG
>>271
あなたの近くに何十人もわかる人がいるが、回答者は、自分以外の誰かが答えるだろうと思って自分では回答を見合わせている状態なのだ。
0274デフォルトの名無しさんNGNG
>>273
本当簡単な質問ですみません
独学でプログラム作り始めたんですけど
参考書のここまでのってなく詰まってしまって…
0275273NGNG
>>274
これは必ず答えが返ってくる質問だから、長い間待ってればだいじょぶ。
目的を達成する方法が何通りもありすぎてどれにしようかみんな迷っていると。
0276デフォルトの名無しさんNGNG
>>232

>FSOはノートンに実行許可を与えないと使えないぜ。
というのは、VB6.0で作った標準EXEの中で
FSO使うのもダメですか?
それともVBSの話でしょうか?
0277232NGNG
>>276
コンパイル後のexeファイルに関しては、
exeのバイナリパターンをノートンが危険だと感じたときだけ反応する。
vbsなんかだと
Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")
FS.deletefile "aaa.txt"
これだけで警告画面が出ちゃうけど、
スクリプトでなくコンパイルしたファイルシステムオブジェクトならよっぽどのプログラム以外は反応しない。
何しろ頻繁に反応するのはノートンのオプションのスクリプト遮断機能だからコンパイルしたファイルは
DeleteFileメソッド程度では反応しない。
0278デフォルトの名無しさんNGNG
>>271
'Len関数をつかって単語の文字数を求める Len("opendata") = 8 この8を単語内の一文字ずつを比較するときのループプログラムで使う。
'o p e n d a t a
'のそれぞれの文字がoまたはaに一致するかどうかを比較する。
Dim i As Integer 'ループカウンタ
Dim n As Integer 'opendataに含まれているoとaの合計数
Dim S As String '一時的に文字を入れておく文字用変数
'Mid関数で一文字ずつ取り出していく。
'Mid("opendata",a,b)というのはopendataのa文字目からb文字取り出すという意味。
'だからMid("opendata",1,1)はopendataの1文字目から1文字だけ取り出すという意味で、1文字目から1文字目だけ取り出すとそれはoという文字になる。
'したがってS=Mid("opendata",1,1)となっているときは文字列変数Sにはoという文字が入っている。
'変数Sがoまたはaであるかどうかは
'If UCase(S)="o" or UCase(S)="a" then
'n=n+1
'End if
'のようにIF文を使って文字が同じかどうかを比較する。
'LCaseは大文字を小文字に変換する関数で、OpenDataというような大文字小文字が混じっている場合に対処する。
'大文字のAと小文字のaは違うものだからだ。
'大文字小文字の区別をつけたいときはLCace関数やUCase関数は使わないようにする。全角文字対処については省略。
For i = 1 To Len("opendata")
S = Mid("opendata", i, 1)
If LCase(S) = "o" Or LCase(S) = "a" Then
n = n + 1
End If
Next
Form1.Caption = n
'この方法のほかにInStr関数を使ったり正規表現を使ったりする方法がある。
0279276NGNG
>>277
返答どうもありがとうございます。
これで安心して寝れます。
(ちょうど最近仕事で、FSOを使ったプログラムを書いたので。)
0280277NGNG
>>279
詳細はノートン作成会社シマンテックに問い合わせないとなんともいえないけど体験的にはそんなかんじ。とにかくどういたしました。
0281105NGNG
>>188
Winsock.dllのAPIをコールする必要があるということですね。
それがわかっただけでも大収穫です。ありがとうございました。
0282278NGNG
>>271
281のプログラムは汎用性がないから、281のを多少なりとも改良すべし。
0283278 訂正NGNG
>>271
278のプログラムは汎用性がないから、278のを多少なりとも改良すべし。
0284デフォルトの名無しさんNGNG
すみません。初心者です。
VB6.0のData Reportですが自分のマシンでレポート込みのEXEを作成し
配布しようとした所別のマシン(VBはインストールされていません)で
「実行時エラー713
アプリケーション定義、またはオブジェクト定義のエラーです。」
と表示されたのですが、
Runtimeか何かをインストールしなくてはいけないのでしょうか。
すみませんが教えて頂けないでしょうか。
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キーワードを調べよ。
■ このスレッドは過去ログ倉庫に格納されています