(*´д`*)ウッ… VB初心者質問スレ Part15
■ このスレッドは過去ログ倉庫に格納されています
0001エロチカセブン
NGNGPart 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
0356デフォルトの名無しさん
NGNGVBのバージョンを明記すべき。
VB6.0以前と.NETでは、答えが全然違うものと思われ。
(つうか、VB6.0以前では、スレッド並行処理は不可能では??)
0357デフォルトの名無しさん
NGNGできることはできるがサポート外
0358355
NGNGVBのバージョンは6.0です。
0359デフォルトの名無しさん
NGNGそれをできるというのはどうかと思うが
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGそんなもんあるのか
0362デフォルトの名無しさん
NGNGMSがやってるベンダー試験のことじゃないか?
VB以外にもNT ServerとかSQL Serverとか色々有った気がする。
0363デフォルトの名無しさん
NGNGMSぼろもうけだな。
0364360
NGNGどのくらいの難易度なのか分からないんですよね・・3級だからそんなに難しくは
無いと思うけど・・・どうなんでしょう??
0365362
NGNG「VisualBasic技術者能力認定試験」っていうのがあるみたいだね。
初めて知った。難易度は知らん。
これの本試験対策講座をやってみたいのだがどうしたもんか(w
http://www.it-system-jp.com/vbkentei3.html
0366デフォルトの名無しさん
NGNGWinXP,VisualBasic6.0-SP5でリッチテキストボックスを使ったテキストエディタもどきを作っています。
タブキーを押すと出る空白の長さを標準(半角スペース8コ分?)から変えようと思っています。
で、ここの過去スレッドに書いてあった「EM_SETTABSTOPSメッセージをSendMessage APIでテキストボックスに投げる」
を試してみたところ、普通のテキストボックスだと上手く行ったのですが、リッチテキストボックスだと動作しませんでした。
しかしMSDNにはテキストボックスでもリッチテキストボックスでも動作すると書いてあったので、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/editcontrols/editcontrolreference/editcontrolmessages/em_settabstops.asp
私のコードが間違っているのかもしれませんけど。。(´Д⊂
ダメだったのでまた探したところ、同じくSendMessage APIでEM_SETPARAFORMATメッセージをリッチテキストボックスに送信して設定する方法というのが見つかりました。
ただ、肝心のパラメータの指定方法が分かりませんでした。それでいまこうして質問させていただいている次第です。
「ここはこうしたほうがいい」、「こういう方法でできる」でも結構ですので、よろしくお願いします。
長文すみませんでした。
以下その方法を使って私が書いたソースです。
0367366
NGNG'標準モジュールのコード---------------------
'-- API 定数
Public Const WM_USER = &H400 : Public Const EM_SETPARAFORMAT = (WM_USER + 71)
'-- API 関数
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'-- 構造体
Type PARAFORMAT2
cbSize As Long : dwMask As Long : wNumbering As Integer : wEffects As Integer
dxStartIndent As Long : dxRightIndent As Long : dxOffset As Long : wAlignment As Integer
cTabCount As Integer : rgxTabs(31) As Long : dySpaceBefore As Long : dySpaceAfter As Long
dyLineSpacing As Long : sStyle As Integer : bLineSpacingRule As Byte : bOutlineLevel As Byte
wShadingWeight As Integer : wShadingStyle As Integer : wNumberingStart As Integer : wNumberingStyle As Integer
wNumberingTab As Integer : wBorderSpace As Integer : wBorderWidth As Integer : wBorders As Integer
End Type
'フォームのコード---------------------------
'-- タブ幅設定
' パラメータをセット
Dim udtParaFormat As PARAFORMAT2
With udtParaFormat
.dwMask = PFM_TABSTOPS
.cTabCount = ? 'ここがわからない
.rgxTabs(0) = ? 'ここがわからない
End With
'SendMessageでメッセージを投げる
Call SendMessage(RichTextBox1.hwnd, EM_SETPARAFORMAT, 0, udtParaFormat)
RichTextBox1.Refresh
'--ここまで-------------------------------
0368デフォルトの名無しさん
NGNG一行のバイト数は不定です。
Line Inputを行分ループするしかないのかなー。
もっと高速に動作させたい。
0369デフォルトの名無しさん
NGNGなんじゃそこは。
ソースにパスワードが書いてある。
0370デフォルトの名無しさん
NGNGファイルの最初にインデックスでも持たせたら。
0371デフォルトの名無しさん
NGNG.cbSize = Len(udtParaFormat) 'これを忘れずに
.cTabCount = MAX_TAB_STOPS '=32
for x=0 to .cTabCount-1
.rgxTabs(x) = タブ幅 * (x + 1)
next
タブ幅はtwipsで指定。
ちなみにヘルプにちゃんと書いてある。
0372デフォルトの名無しさん
NGNGインデックスを持ってもこの場合は意味無くない?
0374362
NGNG誰かがここに直接アドレスを貼り付けてそこから飛んだら
不正アクセスにはならんよな。
普通ならちゃんとしたアクセス制限かけてあるはずだし。普通なら。
0375デフォルトの名無しさん
NGNGだよな。HTMLソース自体にパスワードが書いてあるものを、
ページ見たからといって不正アクセスだと言われても困る。
0376デフォルトの名無しさん
NGNGSeek ステートメント使って読みたい位置まで移動すればいいじゃん。
0377デフォルトの名無しさん
NGNGでも英語のソフトとかだと"/"のが多いですよね。
英語版Windowsで動かすとこの辺の仕様とか変わってくるのでしょうか?
0378デフォルトの名無しさん
NGNG0379355
NGNGVBでCreateThreadは使えるのでしょうか?
0380デフォルトの名無しさん
NGNGCreateThreadできることはできるのだが、スレッド内で何か操作すると
途端にアプリが落ちる(w
他モジュールやフォームをいじると落ちるんだっけかな。
よって、実際は使えない。VB6の場合ね。
VB5の場合は一応使いようによってはOKらしい。
0381355
NGNG返答ありがとうございます。
スレッドではORACLEへのストアドコールを行います。
数分返答がないようなストアドをコールします。
スレッドが処理中(ストアドコール中)にGetExitCodeThread,
ExitThread等を行うとやはりエラーとなるのでしょうか?
自分で作成したDLL内部でスレッド生成を行いたいのですが、
重い処理をしてもEXEが返答待ち(固まらない)しない事を
実現したいと思っております。
0382デフォルトの名無しさん
NGNGスレッドを使わなくてもストアドコールとかは非同期で実行できるんじゃないか?
0384デフォルトの名無しさん
NGNGVBでマルチスレッドにするならActiveX DLLにするしかないかと思います。
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/0008/com/
0385382
NGNGすまん。しらないんだ。ADOとかで非同期で実行するという引数やらなんやら
あって常識的に考えれば出来そうだなぁと思っているだけ。
今までやったこと無い。個人的にはやりたいんだがなんで要望でないかなぁ(w
0386デフォルトの名無しさん
NGNGADO をつかっているなら、 execute メソッドの options に adAsyncExecute
を指定すれば出来ると思います。
やったことないので、外してたらゴメン。
0387デフォルトの名無しさん
NGNGランダム関数で、1〜100までの乱数を発生させるのは
Int(Rnd() * 100) + 1
ですが、50〜100までの乱数が必要な場合はどの様に求めればいいのですか?
0388ふなはすです(QOO)
NGNG(VB) があるサイト教えて♪
0389デフォルトの名無しさん
NGNGおまえのレスの
> Int(Rnd() * 100) + 1
Int(Rnd() * 100) は乱数の範囲:0〜99
1 は乱数の最低値
あとは自分で考えてみ。
0390デフォルトの名無しさん
NGNGあ!
Int(Rnd() * 100) + 50
ですよね!?
どうもありがとうございました!
0391デフォルトの名無しさん
NGNG・・・自信満々で間違うなよw
ネタだよな?
焦っただけだよな?
そうだと言ってくれ!
0392デフォルトの名無しさん
NGNGえ!!
違うの…
かなり自身満々だったのに
ウチュ
0393デフォルトの名無しさん
NGNG>>389の乱数の範囲:0〜99てのを0〜50にしないとな。
0394デフォルトの名無しさん
NGNG次も自信満々で
Int(Rnd() * 50) + 50
とかやってくるんだろーなー
0395デフォルトの名無しさん
NGNGまんまと394の様にしようと思ってたよ…。
('・ε・`)ショボーン
0396デフォルトの名無しさん
NGNG+ 激しく失敗 +
Int((Rnd() + Rnd()) * 51 / 2) + 50
0397デフォルトの名無しさん
NGNG俺Rnd関数、0〜1が返ると思ってた。
0398デフォルトの名無しさん
NGNGこれが正解なんですか?
ありがとうございます。
使ってみます!
0400デフォルトの名無しさん
NGNG引数 number の値によって、Rnd 関数が返す乱数が決まります。
初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。
これは、連続する各 Rnd 関数が乱数系列の中の直前の乱数をシード値として、次の乱数を
それぞれ生成するためです。
システム タイマーから取得した新しいシード値を使って、乱数ジェネレータを初期化するには、
Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを実行してください。
任意の範囲の整数の乱数を生成するには、次の式を使ってください。
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
この式では、変数 upperbound には範囲の上限の値を指定し、変数 lowerbound には
範囲の下限の値を指定します。
0401デフォルトの名無しさん
NGNGおれならこうするな
do while true
r=int(rnd()*200)
if r>=50 and r<=100 then exit do
loop
0402デフォルトの名無しさん
NGNG+ 激しく違う +
0403デフォルトの名無しさん
NGNGどうもありがとうございます。
今、Accessでテストデータを1万件作るためのミニアプリ作成中なのです。
For i = 1 To 10000
rs.AddNew
rs("Key") = Format(Int(Rnd() * 1000) + 1)
rs.Update
Next i
↑こんな感じでにRnd()はループの中にあるのでループはあまり使いたくなくて
質問しました。でも>>394の方法で上手くいきましたけど…
間違ってるのかな??ウーン、ワカラン。
0404デフォルトの名無しさん
NGNG任意の範囲の整数の乱数を生成するには、次の式を使ってください。
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
この式では、変数 upperbound には範囲の上限の値を指定し、変数 lowerbound には
範囲の下限の値を指定します。
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGありがとうございます。
今、その方法で取組中です。
たくさんアドバイスいただけてホント感謝です。
>>405
大丈夫です!何とか理解できました(,,゚Д゚)ギリギセーフ
すいません、入社したばかりのヘタレ女性プログラマです。
どうもアリガトございました。
0407デフォルトの名無しさん
NGNG(*´д`*)
0408
NGNGこれぐらい カンタンだとレスは たくさんくるよ(w
しかも 突込みどころ 満載だったし。
0409デフォルトの名無しさん
NGNG過去スレで一応調べてみたのですが、訊かせてください。
どうかよろしくお願いします。
環境はVB7.0です。
Module1.vbに構造体を以下のように定義したのですが、
Public Structure data
{
Public x As Double
Public y As Double
}
ビルドすると、
「Public class 'Form1' の外にある Friend 型を公開できません。」
のようなコンパイルエラーが出てしまうのです。」
構造体を別モジュールで定義したくてこんなことをしているのですが、
外部Moduleで宣言されている構造体を使うには、どのようにしたら良いの
でしょうか?
0410デフォルトの名無しさん
NGNG【老若】VB.net質問スレ【男女】
http://pc3.2ch.net/test/read.cgi/tech/1025848458/l50
0411デフォルトの名無しさん
NGNGどうでほ。
0412デフォルトの名無しさん
NGNG400回くらいまでは偏るけどね。(0から9までのとき)
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGRandomizeしても同じ数値が連続したことがあった
0415409
NGNGごめんなさいわかんないっす…
(:A;)ハウー
「作成したモジュールに、フォームのインスタンスを渡す」
ってところなのでしょうか?
0416デフォルトの名無しさん
NGNG起動時間がはやいんですか?
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG100回振って、一度も同じ目が連続して出ないサイコロはイカサマです。
0420デフォルトの名無しさん
NGNGどうしてもスケジュール表(時間割)部分の作り方がわかりません。
Gridのコントロールだと時間軸の上に「10:00」というような表示ができないのでこまっています。
横が時間軸で縦にスタッフの名前でただ該当の時間がいろで塗りつぶせて
その上にお客さんの情報を書きたいのですが、
どなたかいいやり方教えていただけませんでしょうか。
よろしくお願いします。
0421デフォルトの名無しさん
NGNGVB6で動作想定環境をWIN98にして開発するのは
VBSのHPを作るようなものでしょうか?w
0422デフォルトの名無しさん
NGNGいろいろ方法がありすぎて、、、
>>421
VB6でWin98の何がおかしいのか?
.netでだったら問い詰めても良いけどね。
0423
NGNG表示部は、ラベルを貼りまくってやれ。
表示する中身を管理して 表示しまくれ。
もしくは、文化オなんとか社が出してる スプレッドを使うんだな。
0424デフォルトの名無しさん
NGNG今、ファイル名を指定してそこにあるデータを配列に落としているんですが、
これをドラッグ&ドロップが行われた時にドロップされたファイルを
配列に落とすにはどうしたらいいんでしょうか?今、使っている命令は
こんな感じです。
Open "D:\data\all.txt" For Input As #1
For i = 1 To Ypixel
For j = 1 To Xpixel
Input #1, MOT(i, j)
Next
Next
Close #1
お願いします。
0425デフォルトの名無しさん
NGNGOpen Data.Files(1) For Input As #1
...
Close #1
End Sub
但しFormのOLEDropModeプロパティを1-手動にしとく。
0426424
NGNG0427デフォルトの名無しさん
NGNGそういったOCX等使うと、msiインストーラー作るとき、
OCXやらDLLやらがたくさんアプリケーションフォルダにいれられてごっちゃになるんですがいいほうほうはないでしょうか?
0428お茶丸
NGNG有効な情報がなかなか得られません。
もしよろしかったら少しでも結構ですので作成のヒント、
関連する情報など教えていただけないでしょうか?
一方的ですみませんが何卒よろしくお願いします。
0429デフォルトの名無しさん
NGNG一方的もなにも、わけわからんぞ。
・必要と思われる機能の定義
・利用しようと思っているOS、開発環境、アプリ
ぐらいは書け。なるべく具体的に。
0430598
NGNG0431デフォルトの名無しさん
NGNGdouble型の変数の小数点以下を切り捨てたいのですが
「¥」を使うと、以下の様な場合答えが4になってしまいます。
a=3.99
b = a \ 1
何か方法はありませんか?
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGたすかりました
ありがとうございます
0434デフォルトの名無しさん
NGNGフォームを開くときに保存されていた値を読んでその値にフォームのサイズを変更しておこうとおもって、
Form_Load でiniファイルの値を読んでセットしているんですがうまくいきません。
なにか足りないことでもあるのでしょうか?
0435434
NGNG0436デフォルトの名無しさん
NGNGInt(1.15*100) ではまる罠
0437お茶丸
NGNG☆必要な機能
携帯電話とPCをUSBにて接続し、ウインドウズアプリより携帯に対し、メールを送受信したい
☆希望する動作OS
WindowsXP
☆開発環境
Microsoft VisualStudio 6.0 のVBまたはVC、VJ
☆アプリ
外部アプリは使用しない
以上です。すみません初投稿なもんで(汗)もしご存知でしたらよろしくおねがいします<(_ _)>
0438お茶丸
NGNG現状として、携帯電話になんらかのコマンドを送出すると、対応した情報
(電話帳データ等)が返ってくるのはわかっています。
どんなコマンドを送出するとメール内容が取得できるのか、またクラスやAPI
が提供されているのか、当方では力不足で調べられませんでした。
0439デフォルトの名無しさん
NGNGここは初心者の館だよ。
0440デフォルトの名無しさん
NGNGそんなの機種によって違うんじゃないの?一緒なの?
0441424
NGNGうまく取り込めました。ありがとうございました。
0442デフォルトの名無しさん
NGNGFormとかにHelpContextIDってプロパティーがありますが、この項目は従来のヘルプにしかつかえないんでしょうか?
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNGありです。
0445443
NGNG詳細に10行だけ出力して改ページしたいんですが、
どこでどういう風にすればよいのかわからないんですが・・・。
ちなみにverは8.5です。
0446445
NGNGクリスタルレポートに関してです。
0447デフォルトの名無しさん
NGNGそいうものが公開されてないのにはそれなりの理由がある。
ネタじゃなければ今後気をつけなよ。
0448デフォルトの名無しさん
NGNG手持ちのAPI Viewerにのっていないんですが・・
0449デフォルトの名無しさん
NGNG1.明細にサブレポートを使う。
2.10行印刷されるとちょうどページの縦の幅がなくなるように、ページヘッダ、ページフッタなどの高さを調節する。
3.印刷する前のレコードに、10件づつインクリメントする番号を振っておいて、それでグループ化。
など思いつきました。
0450デフォルトの名無しさん
NGNG#define MOVEFILE_WRITE_THROUGH 0x00000008
WINBASE.Hにあった。
0451448
NGNGこれってようするに8のことですよね?
0452デフォルトの名無しさん
NGNG>手持ちのAPI Viewerにのっていないんですが・・
アホを晒してはいけない....載っていない定数なんていくらでもある
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/movefileex.asp
英語が読めない場合、首を括るなり辞書を引くなりしてくれ
0454デフォルトの名無しさん
NGNG1.23456E+8
というような表示にして出力したいんですがどうしたらいいですか?
0455デフォルトの名無しさん
NGNGFormat関数で第二引数"Scientific"指定とかどうかね。
■ このスレッドは過去ログ倉庫に格納されています