トップページ⇒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。
0596594NGNG
>>595
有難うございましたm(_ _)m

ついでにもうひとつ質問なのですが
aaa.DLL内のbbbという関数について、

標準モジュールxxxで
Public Declare Function ccc Lib "aaa" Alias "bbb" _
(ByVal 引数 As String, _
) As Long
と記述し、フォームのコードで
Ret_Stats = xxx.ccc(引数)
として呼び出しているのですが、いざ実行すると「ファイルが見つかりません。"aaa"」と
エラーが出てしまいます。
一応aaa.DLLは C:\Program Files\Microsoft Visual Studio\VB98 に放り込んであるのですが
DLLってどこか特定の場所にある必要があるんでしょうか?

0597デフォルトの名無しさんNGNG
>>596
環境変数Pathにないパスなら、Declare宣言でフルパス指定しる。

Public Declare Function ccc Lib "C:\Program Files\Microsoft Visual Studio\VB98\aaa.dll" Alias "bbb" _
(ByVal 引数 As String, _
) As Long

パスが通っているフォルダに配置されているなら、

Public Declare Function ccc Lib "aaa" Alias "bbb" _
(ByVal 引数 As String, _
) As Long

で問題なし。
0598571NGNG
>>581
お返事ありがとぅ

でも、そのソース組み込んだEXE実行しても
タスクマネージャの基本優先度は通常のままだょ・・・

も う だ め ぽ (´つω・`)
0599デフォルトの名無しさんNGNG
>>598
タスクマネージャでの優先度表示はプロセスの優先度だったよーな…。
スレッドの優先度を見たいならSpi++でも使ってみて。

プロセスの優先度がまずあって、その中でスレッドの優先度が細分化
されてる、ってな感じだったかと思う。
0600デフォルトの名無しさんNGNG
>>599
sp"y"++

>>569
ガッ
0601571NGNG
うわあーいヽ(=´∇`=)ノ、できたょ!

単に
HIGH_PRIORITY_CLASS
の初期値がダメなだけでした・・・

答えてくれた方々、本当にありがとうございました
0602デフォルトの名無しさんNGNG
以下の方法が最善かと
開発環境 → Systemディレクトリ
EXE実行 → EXEファイルと同じ場所

Declare の DLL名 のところはファイル名だけでOK
0603596NGNG
>>597,602
ありが�d。
やっぱそーだよね。
でも漏れのPCだと、それやっても
同じエラーになるんだよ…なんでだろ?
0604602NGNG
>>603

もしやそのDLL VBで作ったやつ?
VBで作ったDLLは Declare で宣言できないよ
0605デフォルトの名無しさんNGNG
>>604
なぬぅ
資料によるとVB4で作ってるらしいのだが…。
(こっちの開発PCはVB6)
「参照設定」で指定しようとしても
「指定されたファイルへの参照は登録できません」
て出るし。

てことは、八方塞がり!?
0606602NGNG
>>605
もし DLLのソースがあるのなら再度コンパイル

無かったら REGSVR32.EXE でレジストリから消してから再度登録?
REGSVR32.EXE の 使い方は Windowsディレクトリ を REGSVR32.EXE で検索して実行してみぃ

ちなにに REGSVR32.EXE は ActiveX をレジストリに登録解除するも
0607583NGNG
>>588-592
何か流れで直にソースまで出てるしっ・・・
お陰で文句付けようのない動作してます。
どうもありがとうございました。
0608デフォルトの名無しさんNGNG
すみません、質問させてください。
下のような感じで、AddDataが呼ばれるたびに
構造体の動的配列の要素数を1つ増やしてデータを入れていくということをやりたいのですが、
このままだと、u(1)から値が入るようになってしまいます。
u(0)から値を代入していくにはどのようにすれば良いのでしょうか?

Type USER
x As String
y As String
End Type

Dim u() As USER

Public Sub InitData()
'初期化
ReDim u(0) As USER
End Sub

Public Sub AddData(s1 As String,s2 As String)
ReDim Preserve u(UBound(u) + 1) As USER
u(UBound(u)).x = s1
u(UBound(u)).y = s2
End Sub

String型だと初期化のところでu=Split("")とやれば空の配列が作れると言うのを
ネット上で見たのですが、構造体の場合はどうすればよいのでしょうか?
よろしくお願いします。
0609デフォルトの名無しさんNGNG
>>608
プロシージャ内に静的変数入れて、条件分けしる。
0610デフォルトの名無しさんNGNG
ReDim u(-1 to -1) As USER

とやれば、一応空(のように見える)配列ができるぞ。
あんまし意味無いけど…。
0611デフォルトの名無しさんNGNG
visual basic は買わないと手に入らないですか?
買うならいくらぐらいですか?
0612デフォルトの名無しさんNGNG
>>610
分かっていると思うけど配列の大きさは1だね。
u(-1)としてアクセスできる。
0613608NGNG
>>609
>>610

ありがとうございます。やってみます。
0614デフォルトの名無しさんNGNG
>>608
Type USER
x As String
y As String
End Type

Dim u() As USER
Dim f As Boolean

Public Sub InitData()
'初期化
ReDim u(0) As USER
f = False
End Sub

Public Sub AddData(s1 As String, s2 As String)

If f Then
  ReDim Preserve u(UBound(u) + 1) As USER
End If
u(UBound(u)).x = s1
u(UBound(u)).y = s2
f = True
End Sub
0615デフォルトの名無しさんNGNG
>>608
構造体じゃなくてクラスにしてコレクション使うって手もあるけどな。
0616608NGNG
条件分けすることによりできました。
みなさん親切にありがとうございました。
0617デフォルトの名無しさんNGNG
>>611
買わなくても手に入る場合がある。
0618デフォルトの名無しさんNGNG
そういやCCEってまだ手に入るのかな?
0619デフォルトの名無しさんNGNG
pictureをクリックした時に音を出すにはどうしたらいいですか?
0620デフォルトの名無しさんNGNG
>>619
イベントドリブンの基礎です。
0621デフォルトの名無しさんNGNG
>617

つう(r
0622デフォルトの名無しさんNGNG
>>621
>>618のフォローが理解できないなら(略
0623デフォルトの名無しさんNGNG
>>620
なんてやつですか?
0624デフォルトの名無しさんNGNG
>>623
イベントドンブリの基礎です。
C丼( = オブジェクト指向イベントドンブリ言語)で勉強してください。
0625デフォルトの名無しさんNGNG
お聞きしたいのですが
16進数のことがいまいち分からなく

a * 256
を十六進数であらわすと
a and &hFF
でいいのでしょうか。
0626デフォルトの名無しさん NGNG
>>625
Debug.Print で、お試しあそばせ
0627デフォルトの名無しさんNGNG
hex(256)
0628ひきプロNGNG
積算と論理積は同じモノではないような気が
0629デフォルトの名無しさんNGNG
お返事ありがとうございます。
まだまだ勉強が足りないようです。
実際には以下の式を16進数であらわしたいと思っています

Int(a / 65536)

BitwiseAnd(a / &h10000, &hFFFF)

この二つはおんなじ効果でしょうか?それとも微妙に数字がかわってくると考えた方がいいでしょうか。
0630デフォルトの名無しさんNGNG
>>629
REALBasicのほうで聞いては?
0631デフォルトの名無しさんNGNG
Mac板のREALbasicスレで以前お聞きしたのち
いろいろ探っていたんですが、微妙に違うのではないかと
int()関数さえあればこんな悩まなくてすむのですが,,,
0632デフォルトの名無しさんNGNG
>>625
ぜんぜん違う。

>>629
違う。
それに、BitwiseAnd()は、VB.NETの関数だろ? スレ違いだ。
0633デフォルトの名無しさんNGNG
>>631
違うのではないかという根拠は?
0,0,0,0から255,255,255,255までの数をチェックすればわかることですが。
(from REALbasicスレより)
0634632NGNG
VB.NET じゃなくて、.NET Framework か。

>>631
C言語のビット演算について調べみたら?
0635デフォルトの名無しさんNGNG
ありがとうございます。
Cのビット関数で検索してみます。
0636デフォルトの名無しさんNGNG
失礼します。VBど素人です。
Sendkeysを使わないで「元に戻す」をできるようにするには
どのようにしたら良いでしょうか。
宜しくお願いします。
0637デフォルトの名無しさんNGNG
>>636
何を元に戻すのだ
0638デフォルトの名無しさんNGNG
Sendkeys"^z" と同じことを別の方法で出来ないかということです。
0639デフォルトの名無しさんNGNG
>>638
http://www.remus.dti.ne.jp/~y-mac/teclib/textundo.htm
0640636NGNG
>>639
ありがとうございます!
0641デフォルトの名無しさん NGNG
ずっと気になってたんだけど・・・




(*´д`*)アハァ…

↑
このつの名前なんですか?
0642デフォルトの名無しさんNGNG
>>641
あなたの脳内で命名してやって下さい。
06431 ◆ExGQrDul2E NGNG
>>641
ビスケタン
半角二次元版にビスケスレがある。
0644デフォルトの名無しさんNGNG
WindowsXPProSP1 + VB6SP5 の環境で
SHGetValue で REG_DWORD の型の値を取得すると
どんな値でも0になってしまいます。

SHSetValueは正常にセットされるのですが・・・

0645デフォルトの名無しさんNGNG
SuperTagEditorみたいな直接編集できるGridは
VBでは無いのでしょうか。

FrexGridにTextbox移動させて重ねるしかないのでしょうか。
0646デフォルトの名無しさんNGNG
>>625
a shr 8
0647デフォルトの名無しさんNGNG
>>644
データとコード吊るせ! 話しはそれからだ。
0648644NGNG
ソースです。

環境はWindowsXPProSP1 + VB6SP5
testidに数値がセットされていても0が返ってきてしまいます。
よろしくお願いします。

Private Sub DispInfo()

'レジストリから値を取得
Dim lngData As Long

lngData = 0
Call SHGetValue(HKEY_CURRENT_USER, _
"Software\test", _
"testid", _
REG_DWORD, _
ByVal lngData, Len(lngData))

If lngData <> 0 Then
debug.print lngData
End If

End Sub
06491 ◆ExGQrDul2E NGNG
>>641
アポ
0650デフォルトの名無しさんNGNG
VBスレマスコットのこいつ↓
(*´д`*)アハァ…
只今、名前募集中です。

ちなみに、こんなカスタマイズどうよ?

  v(*´д`*)b <アハァ…
0651デフォルトの名無しさんNGNG
ブビタン
0652デフォルトの名無しさんNGNG
>>650
玉造
0653デフォルトの名無しさんNGNG
ブビタンいいね!
語尾はもちろん「ブビ」で。
まだまだ募集中です。
次スレの1でお披露目といきましょうか。
0654デフォルトの名無しさんNGNG
>>653
ヴォボタン
(一部地方放送禁止)

0655デフォルトの名無しさんNGNG
>>648
Len()は文字列の長さを返す。
Long型の整数に使うのは無茶苦茶。
しかし、そんなレベルでよくAPI使うなあ。
0656デフォルトの名無しさんNGNG
>>655
…?
0657655NGNG
>>648はこんなの書いてる。
Dim lngData As Long
Len(lngData)
debug.print lngData
0658デフォルトの名無しさんNGNG
>>648
何故肝心のDLL宣言を示さない!
何故戻り値を見ない!
ポインタの意味を勉強汁!

Dim lngData As Long
Dim dwRet As Long
Dim dwType As Long
Dim cbData As Long

dwType = REG_DWORD
cbData = Len(lngData)

lngData = 0
dwRet = SHGetValue(HKEY_CURRENT_USER, _
"Software\Microsoft\Dialer", _
"Folders", _
dwType, _
lngData, cbData)
0659デフォルトの名無しさんNGNG
>>655
Len 関数

指定した文字列の文字数または >> 指定した変数に必要なバイト数 << を表す長整数型 (Long) の値を返します。
0660658NGNG
>>655 ヾ(・・;)
0661デフォルトの名無しさんNGNG
>>636
KeyPressイベントでKeyAscii=26
ま、冗談だけどな。
0662デフォルトの名無しさんNGNG
Private Sub Form_Load()
  Picture1.Circle (400, 400), 400
End Sub

ってやっても円がかけません。
どうにかして直す方法はないのでしょうか?
お願いします。
0663デフォルトの名無しさんNGNG
>>662
Private Sub Form_Load()
Picture1.AutoRedraw = True
  Picture1.Circle (400, 400), 400
End Sub
0664662NGNG
>>663
ありがとうございます!
0665デフォルトの名無しさんNGNG
UserControl オブジェクトを引数として渡すには?
渡した先で次のようなんを実行したいんだけど
UserControl.Controls.Add("VB.PictureBox", "hoge")
0666655のレベルの高さに感動した!NGNG
655のレベルの高さに感動した!
0667(T_T)NGNG
なぜ、VB製のソフトは糞だと言われるのでしょうか?
0668デフォルトの名無しさんNGNG
糞ソフトの含有率が高いから。
裾野が広いから、そのぶん糞も増えるのだな。良質/糞ソフト比がとても悪い。
色遣いがものすごいソフトは大抵VBだったりするしなぁ。
プログラム技術以前の問題がある糞も多いと思われ(苦笑
0669デフォルトの名無しさんNGNG
>>668
いや、作る奴が作るとなかなか良いもんをageてくる。
たまに両ソフトがVBで悔しい思いをするよ。

S/Nが激しく低いのは同意。なぜかボタンがでかかったりな。
0670デフォルトの名無しさんNGNG
色づかいとVBは関係ねーだろw

厨房っぽいGUIは大体VB
0671デフォルトの名無しさんNGNG
VBはプログラム界のホームページビルダーだ!
0672デフォルトの名無しさんNGNG
VBで作られてた公開されている良ソフトって何かある?
0673デフォルトの名無しさんNGNG
らるち〜
 昔のワレザー必携ツール
0674デフォルトの名無しさんNGNG
未だにらるち〜がでてくるあたりに問題の根深さがありそうな気もするな…
まぁ、VBだと気づかずに使ってるアプリもけっこうありそうだけど。
0675デフォルトの名無しさんNGNG
>673
俺も同じこと考えてた。
0676デフォルトの名無しさんNGNG
極窓
0677デフォルトの名無しさんNGNG
Winのアプリの標準仕様知らん香具師が多いでしょ、
VBしかしない連中には。
一応、Windowsにもできる限り守らなきゃならない標準仕様があるのに、
VBではいとも簡単に無視できる。
よく、無茶で勉強してないGDI作って、OSのバージョンアップの際、ボロが出るソフトって多いよな。
0678デフォルトの名無しさんNGNG
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´_ゝ`)< ふーん 、でたとえばどのソフト?
  (    )  \_____
  | | |
  (__)_)
0679デフォルトの名無しさんNGNG
>>677
VCでも簡単に無視できますが、何か?
0680デフォルトの名無しさんNGNG
>>672
Winny BBS Viewer
0681デフォルトの名無しさんNGNG
>677

>一応、Windowsにもできる限り守らなきゃならない標準仕様があるのに、

                    ,イ^i
                   ,イ::::  l
                  /::::::::   l
                 /::::::::::    {       /|
               /::::::::      `-、_  /:: {
              /:::::::::::    /       ̄  __ l
             ./:::::::::::         :::::\:::... \ i
             /:::::::::::          ::::::::::\:::: 、 {
             |:::::::::::.            :::::::::_ゝ:::  !
             |::::::::::::.       ):.`ー..____' /:::  |  そんなの勝手だろ
             .l:::::::::::::.         ヽー─フ::   /   プッ
             ヽ::::::::::. ___           ,/
               \::/`ー---‐^ヽ        /
                l:::      l         /
           _ /,--、l::::.      ノ       l
       ,--、_ノ:: `ー'::   、ミー---‐,,l        \
      ,/   :::         i ̄ ̄  |         \
     /:::::::.        l:::    l:::::::   l           \
    l:::::::::::.   l:::    !::    |:::::::   l            \
    |:::::::::l::::  l:::    |::    l:::::     l              l
    |::::::::::l:::.   }:::   l:::::,r-----    l               l
    ヽ::::::::l::::   ト:;;;;;;;/-/__...........  /
    /\::::`ー‐'  / l__l;;;;;;;;;;;/
  /   `           /
0682デフォルトの名無しさんNGNG
自分の思っている、規約にそぐわないGDIを実現するため、
用途の異なるコントロールを使うヤツ多すぎ。
0683デフォルトの名無しさんNGNG
>667
・ランタイム必須
・OCXが無いと何も出来ない
・実行速度が遅い
等々。

でも、一番大きな理由は
「厨が作ったソフトの比率が異常に高い」
って事だと思われ。
0684デフォルトの名無しさんNGNG
>>681
いや、勝手なのは勝手だけど、
GDIが糞、操作性が糞、バージョンアップにも対応できない糞ソフトを作ってるのは、
オマイみたいな香具師なんだけどな。
間違った使い方した物の、規格が変わったのをM$のせいにして無いか?
0685デフォルトの名無しさんNGNG
>規約にそぐわないGDIを実現するため、規約にそぐわないGDIを実現するため、

意味が不明です。
0686デフォルトの名無しさんNGNG


                    ,イ^i
                   ,イ::::  l
                  /::::::::   l
                 /::::::::::    {       /|
               /::::::::      `-、_  /:: {
              /:::::::::::    /       ̄  __ l
             ./:::::::::::         :::::\:::... \ i   
             /:::::::::::          ::::::::::\:::: 、 {   GDIが糞なのはセンスの問題
             |:::::::::::.            :::::::::_ゝ:::  !  センスないやつは標準仕様で作れ
             |::::::::::::.       ):.`ー..____' /:::  |  あとは>684の妄想話
             .l:::::::::::::.         ヽー─フ::   /   プッ
             ヽ::::::::::. ___           ,/
               \::/`ー---‐^ヽ        /
                l:::      l         /
           _ /,--、l::::.      ノ       l
       ,--、_ノ:: `ー'::   、ミー---‐,,l        \
      ,/   :::         i ̄ ̄  |         \
     /:::::::.        l:::    l:::::::   l           \
    l:::::::::::.   l:::    !::    |:::::::   l            \
    |:::::::::l::::  l:::    |::    l:::::     l              l
    |::::::::::l:::.   }:::   l:::::,r-----    l               l
    ヽ::::::::l::::   ト:;;;;;;;/-/__...........  /
    /\::::`ー‐'  / l__l;;;;;;;;;;;/
  /   `           /
0687デフォルトの名無しさんNGNG
>667

なんどもいわれてるが、
VBは厨房でも触れるソフトだからが最大の理由だよボケ
0688デフォルトの名無しさんNGNG
GDIってグラフィックカードを統一的に扱うためのAPIじゃないの?
コントロールかなんかと(もしくはGUIと)勘違いしてる?
0689デフォルトの名無しさんNGNG
オールAPIで行け!!
0690デフォルトの名無しさんNGNG
GDI Graphics Device Interface
GUI Graphical User Interface

0691デフォルトの名無しさんNGNG
>>690
よって


規約にそぐわないGDIを実現


は、直接グラフィックカードを叩いて独自の描画用インターフェースを実装すると言うこと。
VBユーザってすげぇじゃん!





(藁
0692デフォルトの名無しさんNGNG
先生、質問でし。
超大物開発者と自負している、人が作った業務アプリですが
システムカラーとユーザーカラーが共存しています。
ウィンドウの背景を変えると、文字が見えなくなりました。
これってVBでは当たり前の仕様でしか?
0693デフォルトの名無しさんNGNG
使いやすいインターフェースなら規約に従っていようがいまいが文句ないんだけどね。
わけわからんインターフェースにする香具師いるからね。それが、考えた末の努力の
結果ならまだしも、ただ適当にやってる香具師多すぎ。<それ漏れだ(;´Д`)
0694ASP初級者NGNG
どなたか教えて下さい(ASPの件です)。
利用者のアドレス情報を収集したいのですが、
Request.ServerVariables("REMOTE_ADDR")や
Request.ServerVariables("REMOTE_HOST")
でやってもxxx.xxx.xxx.xxxの形式で収集されるのですが、
プロバイダ情報のアドレスを収集する場合のはどうすればいいのですか?
例えば東京でOCNの人からの場合はxxxxxx.tokyo.ocn.ne.jpっていう感じの情報が欲しいのです。
サイトの荒らし対策をしていまして、プロバイダ単位の規制をしたいのです・・・。
どなたかご存じの方がいらっしゃいましたら教えて下さい。
よろしくお願いします。
0695デフォルトの名無しさんNGNG
>>692
と、言うか色カスタマイズしてる内は厨房だと最近思うようになった。
■ このスレッドは過去ログ倉庫に格納されています