トップページ⇒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。
0529 NGNG
>>526
リストボックスで代用すればいいよ。同時スクロールはAPI使うけども。
API使えないんなら、やめとき。
0530デフォルトの名無しさんNGNG
こんな時間に即レスサンクスコ。・゚・(ノД`)・゚・。

>>527
おぉなるほど!
…って残念ながら無理でつ
業務系アプリだしそんな許可おりないのさ。
なんとかVB6で…((((((^_^;)

>>528
ん〜結局は選択した時点でそのボックスがどのデータを指しているかを
知りたいのです。
Grid1画面分で表示できる件数ならなんとかなるけど、それ以上の件数で
スクロールバーで上下させられるとどうしようもなくてΣ(゚Д゚;≡;゚Д゚)アワアワ

FlexGridには「今表示しているデータの範囲」を知る手段が無いですよね?。
0531続いて526NGNG
>>529
なんつーかナイスアイデア!
かなりの手間になりそうですが、仕様決まってるから仕方ないか…
0532デフォルトの名無しさんNGNG
>>516 , >525
Dim vbs As Object
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement "aaa=1"
vbs.ExecuteStatement "bbb=2"
vbs.ExecuteStatement "ccc=3"
Label1.Caption = vbs.eval("aaa + bbb")
Label2.Caption = vbs.eval("aaa + ccc")
'過去ログから引っ張り出してきた、、、
0533デフォルトの名無しさんNGNG
追記するほどでもないけど
vbs.ExecuteStatement "aaa=" & CStr(a)
などで動的に数値は変えられるし、
Microsoft Script Control 1.0 の方を使っても作りやすいかも。
#Win95でうごいたっけかな、コレ
0534デフォルトの名無しさんNGNG
>>408
ありがとうございました。また質問ですが、RDBとは?なんでしょうか?
ヘルプを見てみましたがよくわかりませんでした。よろしければ教えてくだ
さい。
あと、WINSOCKでlistenメソッドで接続待ちをしていれば、特にイン
ターネットに接続する処理などをしなくても接続する事ができるのでしょう
か?
0535デフォルトの名無しさんNGNG
質問です。アウトプロセスで呼び出したactivex.exeの方から呼び出し元の
関数や変数を使うにはどうすればよいのでしょう?教えて!!
0536デフォルトの名無しさんNGNG
>>534
1 RDB Relational Data Base
2 試してみればいいだけの話でわ?
0537デフォルトの名無しさんNGNG
>>535
インターフェースを用意する。
0538デフォルトの名無しさんNGNG
Right関数ではまっているのですが

strTmp = "あ1い"
strTmp = StrConv(strTmp,vbFromUnicode)

strTmpEven = LenB(strTmp,3)
strChar = Right(strTmpEven,1)

この場合にstrCharに1文字読み込んで
最後が全角文字か判定したいのですが
strCharに"1"が入ってきません
Right関数をしようした場合の1文字ってのは
文字コード変換しても2バイト分取られるものなんですか?

環境はVB6,win2000です。

0539デフォルトの名無しさんNGNG
> strTmpEven = LenB(strTmp,3)

(゚Д゚)ハァ?
0540デフォルトの名無しさんNGNG
>>538
なんかものすごい勘違いが含まれてる気がするがw

  Debug.Print LenB(StrConv("A",vbFromUnicode))
  Debug.Print LenB(StrConv("あ",vbFromUnicode))

この違いを考えてみれ。
0541デフォルトの名無しさんNGNG
>>537
インターフェイスを用意するというのがよく分かりません。できれば
具体的に教えて頂けるとうれしいです。
0542デフォルトの名無しさんNGNG
>>538
やりたい事は
LenB(Right("あ1い", 1))
だけちゃうのん?
0543デフォルトの名無しさんNGNG
>>542
LenB(Right("あ1い2", 1))
0544538NGNG
>>539
>>540
>>542

激しくタイプミスでした

strTmp = "あ1い"
strTmp = StrConv(strTmp,vbFromUnicode)

strTmpEven = LeftB(strTmp,3)
strChar = Right(strTmpEven,1)

だった

0545デフォルトの名無しさんNGNG
>>544
あんた本当に >>540 見てる?
0546デフォルトの名無しさんNGNG
>>544 は仕様説明が十分でない
「二文字目」を取りたいなら "あ1い" -> "1", "abcde" -> "b"
strChar = Mid(strTmp,2,1)
「SJIS3バイト目」を取りたいなら "あ1い" -> "1", "abcde" -> "c"
strChar = StrConv(MidB(StrConv(strtmp, vbFromUnicode), 3, 1), vbUnicode)
0547デフォルトの名無しさんNGNG
>>546
あんた >>538 見てる?
0548デフォルトの名無しさんNGNG
海栗 <> 筋
0549デフォルトの名無しさんNGNG
>>548
あんたぬるぽ?
0550538NGNG
こういう問題なんだけど?

dim hoge as String

hoge = "aあ"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字なので"あ"を取得しLenBに渡す
'結果は2


hoge = "あa"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字なので"a"を取得しLenBに渡すのかと思ったら
'Rightは"a"を返さず2バイト返している
'結果は2

hoge = "a"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字しか無いからか"a"を取得しLenBに渡している
'結果は1

ていうことなんだけど
0551デフォルトの名無しさんNGNG
>>550
もしかして、Right が SJIS を考慮してくれると思ってるの?
Right は Unicode を想定してるから強制的に終端 2 byte を返すよ。
最後の例で 1 になってるのは、単にもともと Right にかける前の文字列長が
1 byte だから。
0552デフォルトの名無しさんNGNG
>>541
こんな感じ。

'----呼出元 Module1
Public TEST2B As String

Public Sub Main()
 Dim TEST3 As New Class2
 TEST2B = "ヅら"
 Set TEST3.C1 = New Class1
 TEST3.TEST
End Sub

Public Sub TEST1B()
 MsgBox "ふが!!"
End Sub

0553デフォルトの名無しさんNGNG

'----呼出元 Class1
Public Sub TEST1()
 Module1.TEST1B
End Sub
Public Property Get TEST2()
 TEST2 = Module1.TEST2B
End Property


'----呼出先 Class2
Public C1 As Object

Public Sub TEST()
 C1.TEST1
 MsgBox C1.TEST2
End Sub

普通は呼出元の値→呼出先のオブジェクトのプロパティに設定
呼出元のプロシージャ呼出→呼出先のイベントに反応とかする方が自然かな。
0554551NGNG
補足。

> 最後の例で 1 になってるのは、単にもともと Right にかける前の文字列長が
> 1 byte だから。

つまり、Len(Right("123", 5)) が 5 ではなく 3 になるのと同じ事。
0555550NGNG
>>551
あー文字コード変換しようが
Rightは1文字 = 2byteで処理するってことね

一度Unicodeに戻してからRightして
帰って来た値をsjisにしてLenBしたら出来たよ
サンクス
0556デフォルトの名無しさんNGNG
> 一度Unicodeに戻してからRightして

激しく意味ねー
>>540 はどうなったんだよ
0557デフォルトの名無しさんNGNG
ascとかじゃダメなんでしょかね
0558デフォルトの名無しさんNGNG
ニガサンヨ♪
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>549
0559550NGNG
>>556
  Debug.Print LenB(StrConv("A",vbFromUnicode))
  Debug.Print LenB(StrConv("あ",vbFromUnicode))
が1と2を返すのは最初から解ってるんだよ

SJISでRight関数使っても正確に1文字取れない
RightBではバイトで取得する、オレはバイト単位では受け取りたくない

Unicodeに戻さないとRightは正常に動作しない仕様になっている
SJISの状態で1文字取得できる関数が有ったら教えてくれ
0560デフォルトの名無しさんNGNG
>>559
????
asc(Right(str, 1))
が0〜255なら半角
それ以外なら全角じゃないの?
#半角全角という分け方もアレだが。
0561デフォルトの名無しさんNGNG
>>559
>   Debug.Print LenB(StrConv("A",vbFromUnicode))
>   Debug.Print LenB(StrConv("あ",vbFromUnicode))
> が1と2を返すのは最初から解ってるんだよ

なら最初から書け。

> SJISの状態で1文字取得できる関数が有ったら教えてくれ

文字列を SJIS で持っていなければならない状況というのがわからんのだが・・・。

しかし、「関数」 だの 「教えてくれ」 だの言うあたり、自分で調べたり作ったりする
つもりは全く無いのね。

1 バイト目が &H81 〜 &H9F または &HE0 〜 &HFC
2 バイト目が &H40 〜 &H7E または &H80 〜 &HFC
これで判定しなさい。
0562デフォルトの名無しさんNGNG
文字列をSJISメインで扱いたいならByte型配列に入れればよい。
0563550NGNG
>>561
> なら最初から書け。

的はずれな質問して何怒ってるの?

>文字列を SJIS で持っていなければならない状況というのがわからんのだが・・・。
バカかおまえは?
"dD"とか全角半角混在してる文字列からバイトで取得するのにどうやってUnicodeで取得するんだ?
Debug.print LenB("あ")
Debug.print LenB("A")
として違う値が取れるのか?

> しかし、「関数」 だの 「教えてくれ」 だの言うあたり、自分で調べたり作ったりする
> つもりは全く無いのね。

お前は共通に有ったりしても自分で関数を作るのか?
用意されている物があればそれを使うのが普通

もう解決してるからおまえは書かなくていいよ(ワラ
0564550NGNG
>>560
ASCをつかってもいいんですけど
そのRightが正しく1文字を返さないんですよSJISだと
0565デフォルトの名無しさんNGNG
春ですなあ
0566デフォルトの名無しさんNGNG
>>564
申し訳ないが、ascを使って正しく一文字返さないコードをだしてくれないでしょうか?
0567デフォルトの名無しさんNGNG
正直、550 が何に癇癪起こしてるのかわかんねー。
551 も書かなきゃ良かった。
0568デフォルトの名無しさんNGNG
>>563
> > なら最初から書け。
>
> 的はずれな質問して何怒ってるの?

そりゃ怒るでしょ。
ひょっとしてあんた、礼儀を知らないヒッキーさんですか?
0569デフォルトの名無しさんNGNG
ぬるぽキタ━━━━━(゚∀゚)━━━━━!!!!
0570デフォルトの名無しさんNGNG
>>566
>>544 を見れば、何でこんなアフォな話になったかわかる。
0571デフォルトの名無しさんNGNG
以下のようなソースで優先度を上げてプログラムを実行したいのですが

Declare Function GetCurrentThread Lib "kernel32" () As Long
Declare Function GetThreadPriority Lib "kernel32" (ByVal hThread As Long) As Long
Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
Public Const THREAD_PRIORITY_HIGHEST = 2

ソース
Dim Get_TH As Long
Dim Get_PR As Long
Dim Set_TH As Long
Dim Set_PR As Long
Dim Set_RC As Long

Get_TH = GetCurrentThread
Get_PR = GetThreadPriority(Get_TH)
Set_TH = Get_TH
Set_PR = THREAD_PRIORITY_HIGHEST
Set_RC = SetThreadPriority(Set_TH, Set_PR)

実行後、タスクマネージャみても上がってないょ(´・ω・`)

MSDN見ると
Windows NT: このハンドルは、THREAD_SET_INFORMATION アクセスを持っていなければなりません。

って書いてあるんだけど、これに関して調べても見つからないょ・・・

解かる人いませんか?
0572571NGNG
あ、環境はWin2000(SP2)+VB6(SP5)です。
0573デフォルトの名無しさんNGNG
>>571
スレッドを作るときに設定できるアクセス権の話?
既に存在するスレッドのアクセス権を変更できるかは知らんけど。
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
積算と論理積は同じモノではないような気が
■ このスレッドは過去ログ倉庫に格納されています