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

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

■ このスレッドは過去ログ倉庫に格納されています
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
0072デフォルトの名無しさんNGNG
>>69
その配列を private で使用しているフォームのunload時に、
set frmXXX = Nothing
とすればそのfrm内の配列は開放される。
逆にこれを入れないとform内の全ての保持値がメモリに残ったままになっているので
(VBアプリを終了するともちろん解放されるが)
保持しておく必要がないなら入れるべきだろう。
0073デフォルトの名無しさんNGNG
>>66
WinAPI使うたびに思うんだけど、なんでもっと便利関数にしないのかな。

TaskBarAutoHide(TRUE);

みたいなAPIを用意してくれればいいのに。
0074 NGNG
追記
フレームみたいに 二つのリストボックスの大きさを調整したいんです。
007574NGNG
追記は 71に対してです。
0076デフォルトの名無しさんNGNG
>>72
プ
0077デフォルトの名無しさんNGNG
VB.Netでつくったアプリは、
Win98以下は対応にならないんですか?
0078デフォルトの名無しさんNGNG
>>72
勝手に仕様を作るな
0079デフォルトの名無しさんNGNG
>>71 >>74 >>75
何をやりたいのか意味不明です。

>画面を作るときに、
もしやデザイン時に、って事?

>リストボックスの大きさをFORMの大きさにより変更したいのですが、
普通に変更すればいいんじゃ・・・

>標準でそのようなコントロールは、あるのでしょうか?教えてください。
どのようなコントロールかわからないので答えられないです。

>フレームみたいに 二つのリストボックスの大きさを調整したいんです。
フレームもリストボックスもサイズ変更の仕方は同じでは。
0080デフォルトの名無しさんNGNG
>>78
じゃあどういう仕様だよ。
教えれ.
0081デフォルトの名無しさんNGNG
>>72 >>80
Unload時にNothingを代入しても配列は解放されていませんが何か?
ヒント Main関数のDim〜の行をコメントアウトすると解放されるけどね。

<Module1>
Sub Main()
  Dim Form1 As New Form1
  Form1.Show vbModal
  MsgBox Form1.arraysize
End Sub

<Form1>
Private m_a() As Long
Public Property Get arraysize() As Long
  On Error Resume Next
  arraysize = UBound(m_a)
End Property

Private Sub Form_Load()
  ReDim m_a(100)
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Set Form1 = Nothing
End Sub
0082デフォルトの名無しさんNGNG
誰か教えてください…
マウスの右クリックとctrlキーの使用が禁止されているアプリケーションから、
テキストデータをコピーするプログラムを作成中です。
しかし、上記の禁止事項の為に、クリップボードの中にテキストデータを持ってくることが
出来ません。
コピーを行いたいテキストを反転させる事までは可能です。

使用言語はVB6.0とVC++6。0です。
0083デフォルトの名無しさんNGNG
上記の禁止事項に引っかからずにクリップボードの中にテキストデータを持ってくるような仕組みを作りなされ。
0084 NGNG
>>79

エクスプローラーとかで フォルダが出てる部分とファイルが出てる部分がありますよね。
そのフォルダのフレームの大きさとファイルのフレームの大きさは、
両方の真中にある区切りで調整できます。
また、エクスプロラー自体の大きさを変えても、
フォルダやファイルの部分の大きさが変わります。

こういうのをやりたいのですが、その真中の区切りみたいなのは
何かコントロールでできないかと いうことです。
0085デフォルトの名無しさんNGNG
>>84
アプリケーションウィザードで、エクスプローラースタイルのを
作ってみてコード見てみ。やってること分かるから。
0086デフォルトの名無しさんNGNG
>>84
真中の区切りというのは左右のコントロールの境い目という事ですね。理解しました。
左のコントロールのWidthプロパティ、右のコントロールのLeft及びWidthプロパティを調節すればOKです。

ちなみに「フレーム」というと通常VB組み込みのフレームコントロールの事を指すと思います。
混同するので>>74>>84のような意味では使わない方がよろしいかと。
0087デフォルトの名無しさんNGNG
あぅ
008882ですNGNG
>>83
教えて貰えませんか?
0089デフォルトの名無しさんNGNG
Split 関数のデリミタに2個以上の文字を指定する事は可能ですか?
1個ずつ指定した Split 関数を何回か呼ばないとダメかな?
0090デフォルトの名無しさんNGNG
誰か教えてちょー。
画像をクリックしたりして移動させたり特定の場所にくると吸い付いたり
その他の場所だと元にもどたっりするようなソリティアみたいな感じの・・
009183NGNG
>88
教えるもなにも、仕様の問題だから何ともいえないよ・・・
パッと思いつく方法としては、テキストを選択すると、その周辺にコピーボタンが表示されるとか。
Officeみたいな奴ね。
0092デフォルトの名無しさんNGNG
>>91
他のアプリケーションって書いてあるだろ。ちゃんと読んでやれよ。
0093デフォルトの名無しさんNGNG
Shift+Deleteの切り取りを使えるならそれ
0094NGNG
>>89 一方の区切り文字をReplaceでもう一方の区切り文字に置き換えてからSplit
009583NGNG
>92
取得元が他のアプリだと何か不都合でもあるの?
どっかのパッケージで中身が一切さわれません、ってならともかく。
009689NGNG
>>94
おおっ! かしこい!
そんなやり方があったんだ。感謝。
0097デフォルトの名無しさんNGNG
>>95
だからどっかのパッケージで中身が一切さわれないんだろ。
0098デフォルトの名無しさんNGNG
プロージャ内で
Dim str as String
などと宣言しておいてからにまったく使用していなければ、
コンパイル時にこの str の領域をわざわざ確保しないようにしてくれますか?
009982ですNGNG
ええと、ctrlキーまたはshiftキーを押下げ、または
右クリックをすると、「そのキーは使えません」、
と言ったメッセージボックスが出るようになっていて、
コピーをすることが出来ません。今のところ、
clipboard.settext screen.activecontroll.seltext
でやってみようと思って居るのですけど、このままでは動かないみたいです。
フォーカスがあっていないみたいなのですが、それに関する記述が
必要なのでしょうか?
0100NGNG
>>82 = 99
著作者がコピーさせたくないと思ってるであろうものをコピーしようとするのはどうなんでしょう・・・
てのは置いといて、パッと思いつくのは
そのアプリが使用しているデータファイルを直接読み込んでそのアプリの機能も統合したソフトを作る(w
0101デフォルトの名無しさんNGNG
>ええと、ctrlキーまたはshiftキーを押下げ、または
>右クリックをすると、「そのキーは使えません」、
>と言ったメッセージボックスが出る

そのてのキーを無効にするってんならともかく、いちいちメッセージ出すあたり
そのへんの糞シェアウエア並みの仕様だなw
0102デフォルトの名無しさんNGNG
>>101 別に普通の仕様じゃん。
0103デフォルトの名無しさんNGNG
配列はEraceで消すんだよ
0104デフォルトの名無しさんNGNG
× Erace
○ Erase
0105デフォルトの名無しさんNGNG
37なんですが。
誰か教えて。。
0106デフォルトの名無しさんNGNG
>>105
ヘルプみろ
010737NGNG
とっくにみてますよぉ。
0108デフォルトの名無しさんNGNG
>>107
リストボックス特有のイベントになにがあるか言えるか?
それを全部試せ。
0109デフォルトの名無しさんNGNG
>>107
ListView_ItemClickかな。
罠があった気がするけど。
0110デフォルトの名無しさんNGNG
>>81
> Unload時にNothingを代入しても配列は解放されていませんが何か?

ったく、VB 厨はいつまでたっても進歩しないな。
お前が、Form1 の Form_Unload() で代入している、Form1 は Module1 の Form1 じゃねーぞ、ヴァカ。
011181NGNG
>>110
わかってるよ。お前は文章も読めないのか? 勝手に三行目を消すな。
0112ヴァカはお前NGNG
>>110
( ´,_ゝ`)プッ
011366NGNG
>>73
そうするとAPIの数が数十倍に膨れ上がる罠。
0114デフォルトの名無しさんNGNG
>>77
>VB.Netでつくったアプリは、
>Win98以下は対応にならないんですか?

Win98は対応している。Win95が対象外。
0115デフォルトの名無しさんNGNG
>>82
その糞ソフトの名前晒せ
0116デフォルトの名無しさんNGNG
BorderStyleを可変や固定-実線にすると、
タスクバーに切り替えボタンが表示されますよね?
BorderStyleをなしにしてそのボタンを表示させたいのですが、
どうしたらいいでしょうか?
0117デフォルトの名無しさんNGNG
>>111
> わかってるよ。お前は文章も読めないのか? 勝手に三行目を消すな。

真からヴァカだな。大体、VB 厨の >>81 が Set Form1 = New Form1 なんてことするから、わからなくなるんだよ。
Set FormX = New Form1 とかしてみれ、ヴォケ。
念のために言っとくけど、その下もちゃんと修正するんだぞ。その行だけ変えて、ププッとか書いてくるなよ。
(Form1 の Form_Unlaod の中をどう修正するのかが、楽しみだよ。)
0118デフォルトの名無しさんNGNG
>>117
お前>>72読んでないだろ。だから文章読めないって言われるんだ。
>>81>>72に対する皮肉。わざと問題のある例をだしてるんだよ。
日本語から勉強しなおして来い。
0119デフォルトの名無しさんNGNG
> その行だけ変えて、ププッとか書いてくるなよ。

( ´,_ゝ`) ププッ
0120118NGNG
皮肉というより問題定義と言った方がいいな。
0121デフォルトの名無しさんNGNG
> 真からヴァカだな。大体、VB 厨の >>81
仲間割れですか?
0122デフォルトの名無しさんNGNG
>>121
ヴァカは仲間ではありません。
0123デフォルトの名無しさんNGNG
ていうか、Unload時にちゃんと = Nothing しても、
そのフォーム以外からの参照されるコーディングがあれば
= Nothing
の記述の時点では実は解放されていないだけ。
他から参照されるコーディングがなければちゃんと解放されてる。

formsコレクションでどういう場合にフォームが残っているか確認してみそ。
0124123じゃないけどNGNG
UnloadでSet FormX = NothingなんてしなくてもFormsコレクションを含め
参照しているものがなくなればフォーム内の配列なんかは自然と解放される。

自分のフォームがたまたまグローバルなFormXで作成されているときはUnload時に
グローバルな参照を解放することによりその時点でフォームが削除されるけど、
自分のフォームがグローバルなFormXじゃない時にグローバルなFormXにNothingを
代入するのは意味ない。むしろ関係ないものをNothingしているからバグといってもいい。

Set FormX = Nothingで万事解決みたいな言い方をするのはよくわかってない奴の言うことさ。
0125デフォルトの名無しさんNGNG
>>72
1つ賢くなったね
012637NGNG
ItemCheckだとそれらしい感じだけど
選択数を増やしていくのは問題ないけど減らしていくときイベントが起きないです。
あと、なんか選択している数分イベントが起きてしまいます。
MouseMoveでやろうとしたら、なんかドラッグしても最初しかイベントが起きなかったです
0127デフォルトの名無しさんNGNG
VB.NETについて質問させてください。

.NET FrameworkのCLR上で動作する.NETアプリケーションでは、
VB6.0まではレジストリに記録していたパラメータを「メタデータ」
なるものに記録することで、レジストリの操作が不要になったと本で
読みました。これは、どのような手法によって実現するのでしょうか。
例えば、ウィンドウの位置や大きさなどを、レジストリに頼らずに
起動時などに読み込みたいのです。基本的な記述方法を教えて
いただけるとありがたいです。よろしくお願いします。
0128デフォルトの名無しさんNGNG
>>126
とりあえず、Timerと組み合わせて誤魔化せ。漏れはそうした。
012937NGNG
Timerはさけたいなぁ
0130NGNG
>>129
要はやりたい事がListViewの仕様と合ってないんでしょ。
なら違うコントロール探すか、無ければ作るか、
または他のもので代用するか、やりたい事をある程度妥協するか。
0131nobukitiNGNG
画面を常に最前面に表示ってSetWindowPos使うしかないんでしたっけ?
プロパティちょちょっといじってできませんでしたっけ?
0132NGNG
>>130補足
B表形式のコントロールを使うに0.7票 Cに0.3票
0133nobukitiNGNG
答えろオラ
0134nobukitiNGNG
>>133は僕ではありません。
0135デフォルトの名無しさんNGNG
自分で調べろオラ
0136 NGNG
>>98

先頭に ' をつけとけば 大丈夫(w
0137デフォルトの名無しさんNGNG
>>131
何故SetWindowPosじゃダメなの
0138135NGNG
>>135は僕ではありません。
0139デフォルトの名無しさんNGNG
∧             ∧
       /.::ヽ           /.:: ヽ
      /.::: ヽ          /.:::: ヽ
      /.:::  ヽ         /.::::  ヽ     このスレは一体
     /.::::::.  ヽ,,,,,,,,,,,,,,,,,,,,,,,,,,,/.::::::::.  ヽ
    /.:::::::::::                 ヽ       何なのですか         
    /.:::::::::   /        ヽ     ヽ
   /.:::::::   / ‐・‐     ‐・‐\     ヽ
   ヽ.::::::       .::::            /
    ヽ.:::::      .:::::            /
     ヽ.::::     \__/      /
      ヽ.::::      \/       /
       \.:::::            /
0140デフォルトの名無しさんNGNG
>139
その耳のズレは一体何なのですか?
0141135NGNG
frm_呼び先.Show 1, frm_次画面

で最前面表示できるべヨ?
0142135NGNG
>>141
これ僕です。
0143デフォルトの名無しさんNGNG
自分がつくってるソフトにいつのまにか
Microsoft Data Formatting Object Library( MSSTDFMT.DLL)
に参照設定がついてしました

ランタイムにはこれがはいってないものもあるらしくつかわないで済むなら
使いたくないのですが どのようなものに必要とするのでしょうか?
また参照設定をはずしても問題なさそうなのでそのままコンパイルしましたが
環境によって MSSTDFMT.DLL がないとエラーがでて起動しませんでした
0144デフォルトの名無しさんNGNG
前なったことがあるけど普通に切った。なんとも無い。
0145nobukiti NGNG
ちんこ
0146 NGNG
VBで作ったActiveXのDLLなんですが、VBでは使用するとちゃんと
DLL内でイベントを発生するんですが、ExcelのVBAで用いると
イベントが 発生しません。
どうしてか どなたか わかりますでしょうか?
0147デフォルトの名無しさんNGNG
質問させてくださいませ。
chck_cntの値が◆の時点で消えちゃうんだけど、
原因は何なんですかね?こんな現象初めてで、
困ってます。。。

function checkbox()
   dim iDatLoop
   dim iDatArray
   dim chck_cnt
   chck_cnt = 0
   Response.Write chck_cnt▲
   iDatArray=session.Contents("GHERLST_Dat")
   for iDatLoop = 0 to session.Contents("GHERLST_Cnt")-1
      if request("ErrSend" & iDatLoop)="1" then
         iDatArray(iDatLoop,0)=1
         chck_cnt = chck_cnt + 1
         Response.Write chck_cnt◆
      else
         iDatArray(iDatLoop,0)=0
      end if
   next
   Response.Write chck_cnt○
   session.Contents("GHERLST_Dat")=iDatArray
   checkbox=chck_cnt
end function
0148デフォルトの名無しさんNGNG
取り敢えずLongとか型宣言しろ
0149147NGNG
ASPなんですが・・・。
0150デフォルトの名無しさんNGNG
「消えちゃう」ってスゲェよ。
次はハトが出そうだなヲイw
0151nobukitiNGNG
>>147
?さんの登場を待て。
彼ならなんとかしてくれる
0152デフォルトの名無しさんNGNG
ずびばぜん、
フォーム上でExcelのワークシートを表示したいのですが、
どういう方法で実現できるのでしょうか。。

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("hogehoge.xls")
Set xlSheet = xlBook.Worksheets("Sheet1")
xlApp.Visible = True

↑これだと、Excelが起動してシートがひょうじされますが、
そうでなくて、フォーム上にグリッドのように表示したいのです。
全ての値をグリッドに放り込むしかないのでしょうか??
0153146NGNG
解決しました。
エクセル側での入力ミスでした〜〜

宣言した時に設定したオブジェクト名が 間違えてました。
0154NGNG
>>147
消えちゃう、でなくてゼロになるとかNullになるとか具体的に言う癖付けたほうがいいかも。

で、こんな感じになってないかな?
Option Explicit
Dim flg As Boolean

Sub a()
  Dim cnt As Long
  cnt = 0
  If flg = 0 Then
    cnt = cnt + 1
    b cnt
  End If
  MsgBox cnt
End Sub

Sub b(cnt As Long)
  flg = 1
  a
End Sub
0155147NGNG
>>154
自己解決しますた(*´д`*)

IISの環境にデバッガが導入されてなかったから
見つけ出すのに苦労しました(*´д`*)

session.Contents("GHERLST_Dat")に代入する
変数のRedim時に値の入ってない変数を使ってた(*´д`*)
変えたの誰だよ!って感じです(*´д`*)
0156 NGNG
ODBC経由(DAO3.6)で AccessのMDBを使用しています。

この時、このMDBに含まれるテーブル名をすべて 取得するには
どうしたらいいのでしょうか?
015737NGNG
う〜ん、そうか。
実現できないわけはない気がするけど。
0158 NGNG
ListBoxで リストに加えた文字列がリストボックスから はみ出すほど長い
場合、下に スクロールバーとか出ればいいなと思うのですが、出せないでしょうか?

また、このようなコントロールは ありますでしょうか?
015937NGNG
>>158
わしが今悩んでるListView使えばいいんでないかいな?
0160教えて!!NGNG
ACEESSでフォームを開く時に最大化するモジュールを教えて!!
0161デフォルトの名無しさんNGNG
>>158
SendMessage分かる?
ListBoxに「横スクロールバー表示しろやゴルァ!!」ってSendMessageすれば表示されるよ。
0162156NGNG
156の続き

オラクルで テーブル名を取得する場合、
select * from tab;
とかやります。
こういうの ないでしょうか?
0163nobukitiNGNG
>>162
これちゃうのン?
http://www.google.co.jp/search?q=cache:Gj89wtoK65AC:www.accessclub.org/samplefile/samplefile_69.htm+ACCESS+%E5%85%A8%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E5%90%8D&hl=ja&ie=UTF-8
0164ぽん太NGNG
>>162
http://www.google.co.jp/search?q=cache:w1Mfjkp9pZoC:keep-on.com/~excelyou/1999lng4/199911/99110152.txt+ACCESS+%E5%85%A8%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E5%90%8D&hl=ja&ie=UTF-8
0165nobukiti NGNG
ぽん太氏ね
0166158NGNG
>>161
おおっ できた!
さんきゅ〜〜

http://www2.synapse.ne.jp/waka/Tequ02.htm
0167162NGNG
>>162

ADODB.ConnectionとADODB.Recordset を使っては 可能でしょうか?
0168デフォルトの名無しさんNGNG
Windows2000とかXPだと、確か英語版のランタイムがインストールされていましたよね?
ときどき文字化けしますってメールとかくるので、英語版のランタイムが入っていたら
「日本語版にしろやゴルァ」ってメッセージをだしたいのですが、
どうやったら判断できるでしょうか?
表示先ですけど、MsgBoxなら化けないですよね?
0169デフォルトの名無しさんNGNG
教えてください。
フレキシブルグリッドコントロールってMAX何行まで逝けるんですか?
12501行目に行を追加しようとするとあぼーんしてしまいす。
0170のの太NGNG
12500件も一度に表示させる必要あるの?
表示件数の上限を超えましたとかメッセージだして
アプリ側で表示件数制御させたら?
0171デフォルトの名無しさんNGNG
>>167
SELECT MSysObjects.Name FROM MsysObjects where type=1;
で出来ると思います。
■ このスレッドは過去ログ倉庫に格納されています