トップページ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
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;
で出来ると思います。
0172デフォルトの名無しさんNGNG
よ〜しらんけど、表示も遅くなりそうだし、
配列で保存しておいてある程度スクロールしたら書き換えるようにするもんじゃないの?
>フレキシブルグリッド
0173分かる人お願いNGNG
花見.bmpをPicture1.pictureにセット
"a"をかく
Picture1.ScaleMode = 3
Picture1.FontSize = 100
Picture1.CurrentX = 0
Picture1.CurrentY = 0
Picture1.Print "a"

'Picture2にPicture1をコピーする
Picture2.PaintPicture Picture1, 0, 0

このときPicture2には花見.bmpだけで、
プリントした"a"が表示されません。
どうしたら"a"も表示できるか教えてください。
0174デフォルトの名無しさんNGNG
すいません、質問させて下さい。
test.mdbというMDBにTESTとTMP_TESTという2つのテーブルがあります。
(二つのテーブルはまったく同じ形です)
TESTには一件のレコードがあり、SELECT文の実行でrs_testに取得します。
rs_testに格納されたレコードをrs_test2にコピーして
TMP_TESTテーブルにINSERTを行いたいのですが、どうしたら良いのでしょう?
色々試行錯誤してみたのですが、駄目でした。
どなたかアドバイスお願いします
0175174NGNG
これがソースです。

Dim cnn As New ADODB.Connection ' ADOコネクションオブジェクト
Dim rs_test As ADODB.Recordset
Dim rs_test2 As ADODB.Recordset
Dim str_SQL As String

' 接続
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test\test.mdb;"

Set rs_test = New ADODB.Recordset
Set rs_test2 = New ADODB.Recordset

str_SQL = ""
str_SQL = "SELECT * FROM TEST"

rs_test.Open str_SQL, cnn, adOpenStatic, adLockPessimistic
rs_test2.Open "TMP_TEST", cnn, adOpenStatic, adLockPessimistic

Set rs_test2 = rs_test.Clone

rs_test2.AddNew
rs_test2.Update

rs_test.Close
rs_test2.Close

' 切断
cnn.Close
0176デフォルトの名無しさんNGNG
>>126
正直に言えよ。ホントはItemCheckじゃなくてItemClickなんだろ?
0177デフォルトの名無しさんNGNG
>>127
VB.NETネタは専用スレにお願いしまふ。
でもって、マルチポスト先でレスついてまふ。
017837NGNG
>>176
うぉ、ホントじゃん。その通りって言うかなんでItemCheckなんて書いたんだか全く分けわからんです
0179デフォルトの名無しさんNGNG
>>178
何で書いたかわからないだと? ただの誤植だろ。heとliの違いしかないからな。
間違えても当然だ。それくらいわからんのか。
018037NGNG
うむ、まぁそうではありますが。。
0181デフォルトの名無しさんNGNG
>156 (= >162)
SQLDMOでも使ってくれい。
0182NGNG
>>174
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test\test.mdb;"
cnn.Execute "insert into TMP_TEST select * from TEST"
cnn.Close
0183162NGNG
>>171

これが 一番 妥当そうですね。
http://www.zenko3.com/tips/access_system_object.html
に 詳しくかかれてました。
0184 NGNG
[Access2000]

VBからMDBへADOで接続し、
MSysObjects内のNameプロパティ値を取得しようと思ったのですが、
「MSysObjectsの読み取り権限がない」
というエラーメッセージが表示されてしまいます。
全てのオブジェクト名(テーブル、レポート、モジュール)を取得したかったのですが、
なにかよい方法はありませんか?
0185 NGNG
テーブル名一覧取得

Dim cnnDB As ADODB.Connection
Dim rstList As ADODB.Recordset

Set cnnDB = New ADODB.Connection

' 接続を開きます。
With cnnDB
.Provider = "MSDASQL"
.Open "DSN=DSN名を書く"
End With

' テーブル スキーマ行セットを開きます。
Set rstList = cnnDB.OpenSchema(adSchemaTables)

' 結果をループして、イミディエイト ウィンドウ
' に名前と種類を出力します。
With rstList
Do While Not .EOF
If .Fields("TABLE_TYPE") <> "VIEW" Then
Debug.Print .Fields("TABLE_NAME") & vbTab _
& .Fields("TABLE_TYPE")
End If
.MoveNext
Loop
End With
cnnDB.Close
Set cnnDB = Nothing
0186184NGNG
答えろオラ
0187デフォルトの名無しさんNGNG
DAOツカエ
DAO最強
DAOマンセー
0188NGNG
>>184
Dim str As String
Dim ac As Access.Application
Dim ag As Object

Set ac = New Access.Application
ac.OpenCurrentDatabase "c:\db1.mdb"
For Each ag In ac.CurrentDb.TableDefs
  str = str & ag.Name & vbNewLine
Next
For Each ag In ac.CurrentProject.AllReports
  str = str & ag.Name & vbNewLine
Next
For Each ag In ac.CurrentProject.AllModules
  str = str & ag.Name & vbNewLine
Next
MsgBox str
0189デフォルトの名無しさんNGNG
アクセスが入ってないとダメぽ?
0190NGNG
>>189 = >>184
持ってないんですか?
0191184NGNG
>>189
>>190

オフィス2000が インストールしてあります。
あと、OSは XPです。
0192デフォルトの名無しさんNGNG
DataGridの列数はどうやって増やすのですか?
プロパティ上にColumnなどのプロパティが見当たらないんです。
どなたかよろしくおねがします。
0193デフォルトの名無しさんNGNG
TWAINを使ってしてスキャナーを操作したいのですが、どうしても上手くいきません。
プレビューは出来たのですが、パソに取り込む事が出来ません。
取込する前に関数から戻ってきてしまっているみたいです。
よろしくお願いします。

また、TWAINの操作方法のサンプル等が有りましたらこちらも教えて貰いたいのですが・・・
0194うきくんNGNG
自分のPCのシステム秒が50になったときに、
実行させてる画面で、テキストボックスと
コンボボックスが消えちゃうんですけど。。。
visibleがfalseになる感覚です。

助けてください。
0195184NGNG
システム病ってなによ?
0196デフォルトの名無しさんNGNG
いまさらですが...

>>120 :118 :02/09/24 23:53
>>皮肉というより問題定義と言った方がいいな。

問題提起の間違いですか?ププ
0197 NGNG
? len("3333123")
とやると
7が表示されます。

? lenb("3333123")
とやると
14となります。

実際、バイト数は11のはずなんですが、どうしたら11と取得できるのでしょうか?
0198デフォルトの名無しさんNGNG
>>197
VBはUnicodeで文字を管理しているので半角も2バイトです。
0199デフォルトの名無しさんNGNG
>>188
どうでもいいことだが、strという変数名はいやだなあ。
0200デフォルトの名無しさんNGNG
>>197
FAQだけど
LenB(StrConv(文字列, vbFromUnicode))
0201デフォルトの名無しさんNGNG
>>197
普通は LenB(StrConv("hogeほげ",vbFromUnicode)) かな。
他に方法あったかな?
0202 NGNG
ActiveXDLL側で、そのDLLを呼び出した側のウィンドウのハンドルを
取得できるのでしょうか?
0203デフォルトの名無しさんNGNG
スタンダード版を買ってきてインストールしようとしたのですが、
最初の方のコンポーネントチェックでIE6でなと駄目と言われて
無理矢理インストールされそうになります。

2chのAAの関係でどうしても今使ってるIE5.01を残したいのですが、
IE6を入れてからIE5.01に戻すなんてことはできるのでしょうか?
ひょっとしてIE6を入れなくてもインストールできる方法があったりします?
0204デフォルトの名無しさんNGNG
>>203
VMwareで解決!
0205デフォルトの名無しさんNGNG
>>203
.NET?
0206デフォルトの名無しさんNGNG
>>204
何のことか分からないので検索してみます。

>>205
はい、VisualBasic.net Standard です 
0207デフォルトの名無しさんNGNG
>>203
.NETって事は、OSは2000かXP使うんだろ?
だったらIE6でも何もせずにフォント設定できるからAA問題なしじゃん。

仮に9x系でもズレを直すパッチってあるぞ。

つうわけで、IE6いれなされ。
0208203NGNG
え、IE6でもずれないんですか?
OSはWindows2000の英語版使ってます。
とりあえず試してみますね。
駄目だったらそれまでということで(^^;
みなさんありがとうございました。
0209みやさんNGNG
VB(Access)ではNULLと空の文字列("")って同じですか?
0210デフォルトの名無しさんNGNG
・オ・ヨ・ヘ・テ・ネ・゙・ケ・ッ、シ霹タ、ケ、、ヒ、マ、ノ、ヲ、キ、ソ、鬢、、、、ホ、ヌ、キ、遉ヲ、ォ。」
0211デフォルトの名無しさんNGNG
>>209
 「VB(Access)では」っていう書き方が気になるが
 違うものだろ 普通 <NULLと空の文字列("")

0212ふぅNGNG
VBで、FlashGetや、Irvineにあるような
分割ダウンロードを実装するにはどうしたらいい?
ちなみにもう普通のダウンロード部分は出来てるんですが・・・。
0213デフォルトの名無しさんNGNG
まず最初に普通にGET投げてContent-Lengthを得る。
その値を分割数で割り、
それぞれRangeヘッダ付けて分割数ぶんだけコネクション張りってな感じでは。
0214ふぅNGNG
>>213
あんたデキるナ?
0215デフォルトの名無しさんNGNG
サブネットマスクを得るにはどうしたらよいのでしょうか。
0216デフォルトの名無しさんNGNG
そりゃやろう思えばできるんじゃないかな。
でも既存のソフトに対抗できるクラスのものをVBで作ろうとしたら、
無謀とういうもので、やろうとは思わん。
0217ふぅNGNG
>>213
どうもです。
>Rangeヘッダ付けて分割数ぶんだけコネクション張り
ここが私が知りたかった核心部分でした。助かります。

ちなみに、こんなことしてる理由はといいますと、実は
ダウンロードツールを作ろうとしているのでは無いです。
とあるオンラインゲームを作ってるんですが、そういうのってソフト側から
自動でパッチ落としてきて適用しますよね。
そのパッチを落とすときに必要っぽいんですわ。
0218216NGNG
あ、>>214は「あんたデキるナ?」って書いてあったのか。
「あんたデキる?」って聞かれたのかとオモタ。
0219デフォルトの名無しさんNGNG
>>217
なあVB初心者スレだぜ。
0220デフォルトの名無しさんNGNG
>>219
だからなに?
0221デフォルトの名無しさんNGNG
>>220
人工無能ですか?
0222デフォルトの名無しさんNGNG
>>221
質問に答えるのを拒絶したか。答えられないなら別にそれでいいがね。
0223デフォルトの名無しさんNGNG
>>222
コマンドまたはファイル名が違います.

C:\>
0224デフォルトの名無しさんNGNG
VisualBasic6.0でクラスにMultiUseプロパティを定義してActiveXDLL
を作っています。

おもに、IIS上のASPからCreateObjectで関数を呼び出して使うた
めです。その関数は、別のWebサーバへHTTP通信をして値を取得
するという動作をします。

HTTP通信をするためにWinsockコントロールを使用しました。開発環境
(Windows2000)では動作しましたが、それをWindows2000Server上
で動かそうとするとWinsockのConnectでコケてしまうんです。

セットアップ媒体を作成したり、ocx周りの不足は散々確認したのですが
どうしても動きません。同じソースをNT4.0Server上で展開してステップ
実行して確認すると動作します。pingも通ります。他のコントロールは
使っていません。

なにか考えられることはありませんか・・・。
0225224NGNG
コケるというのは、間髪入れずに、接続エラー番号9を受信して
しまうと言うことです。
0226 NGNG
プログラムは ベテランですが VBは 最近、始めたので
初心者ですが、何か?
0227デフォルトの名無しさんNGNG
>>226
お前、ふぅ?
0228FIGHTNGNG
現在VB6.0SP5.0を使用しております。TreeViewコントロールでエクスプローラのような階層の
表示をさせております。
例)
+神奈川県
 +蒲生町
 +米五町
+東京都
 +安芸町
 +三輪町
のように上記のようなデータがあるとします。(100件ほど上記のデータが続きます)そこで検索
の画面をだして該当する場所を指定したいのです(カーソルが移る)「神奈川県」の「米五町」を指定
させた場合そこの階層が開いてわかるようにしたのです。何かよい方法はないでしょうか?
サンプルなどがあればそこのHPなども紹介して欲しいのですが・・・。
よろしくおねがいします。
0229 NGNG
>>228

町名が 複数ある場合は、どうするんだ?
0230FIGHTNGNG
>229
ユーザー側に検索させる時は、「県」と「町名」を必ず指定させます。
町名の重複はあっても県名の重複はないですよね。
0231 NGNG
県のすぐ下が町ってのも変だに。

東京は
東京都なんとか区なんとか 1−1−1
というふうに 町名がつかない場合がある。
神奈川県なんとか市なんとか町 なんとか 1−1−1
というパターンもある。
また、田舎だと
なんとか県なんとか郡なんとか町なんとか大字なんとか小字なんとか 1
とかいうのもある。
つーか
配列に 階層に入ってるもの(入れるときに)別に入れてやって
その配列で、何番目か調べて 開けばいいじゃん。

っーか TreeViewの何番目を開けってのは知らん(爆)
0232NGNG
>>230
ツリービューにノードを追加する時にキーを設定する。
キーは検索入力させるデータ("神奈川県米五町"など)と同じにする。
あとは検索画面(テキスト検索ならInputBoxでいいんじゃない)を表示して
その返り値をtre.SelectedItem = tre.Nodes("神奈川県米五町")って感じにすれば出来上がり。
0233デフォルトの名無しさんNGNG
>>228は中島みゆきオタ
0234FIGHTNGNG
>231
>232
なるほどそういう手もありますね。
早速参考にさせていただきます
ご教授ありがとうございます。
>233
えっと、中島みゆきの歌の「ファイト」ですかね?
ギリギリわかりました。ちょっとかんがえてしまいました。
結構古い歌ですね。なつかしい。ちなみにオタではありませんyo。

0235NGNG
232補足
存在しないキーを指定した場合はエラーになるのでその対応も忘れずに。
0236デフォルトの名無しさんNGNG
>>235に補足
キー文字列には罠があるので注意。勝手に文字の同一視したりする。
できればHexエンコードなどを行った方が安心。
0237NGNG
>TreeViewの何番目を開け
TreeViewを追加すると自動的に追加された順番でインデックスが付加されます。
後は同様にtre.SelectedItem = tre.Nodes(インデックス)って感じです。
0238NGNG
237訂正 TreeViewを追加→TreeViewにノードを追加
0239 NGNG
ループ処理で ListBoxにアイテムを追加しているんですが、
追加する件数が多いので、ListBoxの表面に出てる部分の数を追加した
時点で、一旦表示したいんですが、可能でしょうか?

なお、表示後、listbox1.AddItemを 続けます。
0240224NGNG
>>225の続きです・・・。

同じクラスをPrivateにしてexeを作成したら
アッサリ動作しました。ActiveXDLLではダメな
ようです・・・。
0241デフォルトの名無しさんNGNG
VB6.0でWebBrowserを使いVBのフォームの中にページを表示させるようにしました。
それでなんですが表示されたページの懸賞などの入力フォームなんかに自動入力させたいのですが
教えてください、お願いします
0242デフォルトの名無しさんNGNG
VisualBasic6での質問です。

コモンダイアログで選択した複数のファイルを、
1つずつ取り出したいのですが、うまくいきません。
実際、選択したファイル群は、

"パス ファイル名1 ファイル名2 ・・・"

のようにスペースで区切られた形で取れるのですが、
Split関数を使って以下のようにしたいのですが、だめでした。
(1番目の配列にすべて入っています・・・)

F() : 配列
Files : ファイル群

F=Split(Files," ")

Split関数の使い方の間違い、またはその他のよい方法がありましたら
お教え願います。
■ このスレッドは過去ログ倉庫に格納されています