トップページ⇒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。
0574デフォルトの名無しさんNGNG
>>573
スレッドって、マルチタスクOSで言うところのスレッドのこと?
それとも、BBSのスレッドのこと??
0575デフォルトの名無しさんNGNG
>>574
お前ここにスレ立てるときアクセス権なんぞ設定したか?
まぁ、権利関係は確かに存在するか・・・。
0576デフォルトの名無しさんNGNG
>>575
釣れた(w

(^▽^)
0577デフォルトの名無しさんNGNG
>>576
釣れた(w

(^▽^)
0578デフォルトの名無しさんNGNG
>>577
釣れた(w

(^▽^)
0579デフォルトの名無しさんNGNG
        /  -‐‐‐‐‐‐‐--´´ ̄ ''''''''''''''''''''''''ー‐----、/
      /   ノ   ▲                 ヽ  ̄ ̄
     .i´    i´     ■  ∧               ヽ
     i    i      ■  .i.●i      ;::;:;:;:;       ヽ
    i     i     ■  ∨ノ   ,-、 ;:;:;/ノヾヽ    ;:;:i
    i     `、    ‐-   ー    ・ ;:;:;《 |  | )   ;:;:;:;::i
    i     ´´    -‐   ‐    ・ ;:;:;:《 |  | )   :;:;:;:;:;)
     i     i     ■  ∧ヽ  `‐´ ;:;丶ヽノノ    :;:;:;::i
     .i    i     .■  i.●i      ;:;;:;::       ;:;:;i 
     i、    i     ■  ∨                ノ
      ヽ   `ゞ   .▼                 /  _
       ヽ、    ‐‐‐‐‐‐‐‐‐‐、____,,,,,,,,,,,,,,,,,,,,,,,,,----‐‐‐ヽ
ニキータ
0580516NGNG
色々とありがとう御座いました(^▽^
スクリプトコントロールはつかったことないので、ためしてみようかとおもいます。
0581540NGNG
春だなぁ。
ま、風物詩と思えば腹も立たんか。

>>571
漏れが昔書いたソースだと

  hThread = GetCurrentThread()
  ret = SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST)

こんなんで動いてるな。

  hProcess = GetCurrentProcess()
  ret = SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS)

こーいうのも動いてる。Win2Ksp3+VB6sp5。
0582デフォルトの名無しさんNGNG
VBの DHtmlEdit コントロールで ボタンやテキストボックス などを
貼り付ける方法 ご存知の方いらっしゃいますか

また DHtmlEdit の使い方が説明されているHPも
お願いします
0583デフォルトの名無しさんNGNG
VB6からUnixTime(1970/01/01 から数えた秒数)を求めたり
日付時間を指定してそのUnixTimeを作ったりしたいのです。
2chのスレッドIDの決定もこれですよね。

単に秒数を求めればいいのではと思ったのですが
うるう年とかいろいろあってもうどうしたらいいやら、です。
0584583NGNG
訂正

VB6からUnixTime(1970/01/01 から数えた秒数)を求めたり
UnixTimeから日時時間を求めたりしたいのです。
(要は Date型<->UnixTime の相互変換関数が作りたい)
0585デフォルトの名無しさんNGNG
>>584
DateDiffで調べれ
0586583NGNG
>>585
時間差を秒で返させればいいのね?
ちょいと試してみます。激しく感謝。
0587デフォルトの名無しさんNGNG
  ∋8ノノハ.∩
   川o・-・)ノ <先生!こんなのがありました!
__/ /    /   
\(_ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
 ...|| ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/saitama/
0588デフォルトの名無しさんNGNG
>>583
time_t ですよね。
わたしならCでDLL作るかな。
0589ひきプロNGNG
>>583
'time_tから文字列へ変換
Public Function GetTimeString(time_t As Long) As String
Dim t As Long, leap As Long, year As Long, month As Long, day As Long, hour As Long, minute As Long, second As Long, s As String, i As Long
Dim m(1 To 12) As Long '各月の日付を入れる
m(1) = 31: m(2) = 28: m(3) = 31: m(4) = 30: m(5) = 31: m(6) = 30: m(7) = 31: m(8) = 31: m(9) = 30: m(10) = 31: m(11) = 30: m(12) = 31
t = time_t
leap = Int(((t / 31536000) + 1) / 4) 'うるう年でずれた日数の計算
year = ((t - leap) \ 31536000) '年の計算
year = year + 1970 '1970年から足す
day = ((t Mod 31536000) \ 86400) - leap '日の計算
hour = (t Mod 86400) \ 3600 '時間の計算
minute = (t Mod 3600) \ 60 '分の計算
second = (t Mod 60) '秒の計算
If (year Mod 4) = 0 Then '2月の日数を計算
m(2) = 29
If (year Mod 100) = 0 Then
m(2) = 28
If (year Mod 400) = 0 Then m(2) = 29
End If
End If
0590ひきプロNGNG
day = day + 1 '1月1日からの経過日数から月・日を求める
For i = 1 To 12
If day > m(i) Then
day = day - m(i)
Else
month = i
Exit For
End If
Next
hour = hour + 9 'UTCから日本の時間分足す
s = year & "年" & month & "月" & day & "日 " & hour & ":" & minute & ":" & second
GetTimeString = s
End Function
0591デフォルトの名無しさんNGNG
>>589
なんでお前はそんなクソ関数作るんだ?
?datediff("s",#1970/01/01 00:00:00#,#1970/01/02 00:00:00#)
?dateadd("s",86400,#1970/01/01 00:00:00#)
0592デフォルトの名無しさんNGNG
time_t = DateDiff("s", #1/1/1970#, dtmVB) - 32400 'JST - 9

これでいいんじゃなかったっけ。
0593ひきプロNGNG
ショック!
0594デフォルトの名無しさんNGNG
VBとはちょっと違う畑の質問になるかもしれませんが
とあるDLLの中の関数の名前一覧を知る方法ってないでしょうか?

VB用の関数仕様の資料はあるのに「その関数が入っているDLLの名前」だけが
書いてない…。
0595デフォルトの名無しさんNGNG
export されてんなら Dependency Walker とかで見れば。
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
らるち〜
 昔のワレザー必携ツール
■ このスレッドは過去ログ倉庫に格納されています