前のログ | 次のログ |
No.2200 ありがとうございました。 投稿者:やまちゃん [01/5/31(木)16:55分]
花ちゃん さんへ。
早速拝見しました。
まだまだつかみがとれてないですががんばってみます。
ついこの前はGPIBを使用して制御のプログラムをくんだばっかだったのですが、今度は232Cで
大変です。
また困ったらお世話になると思いますのでよろしくおねがいします。
No.2199 RE:vb6で作成したexeが大きくなる 投稿者:ゆー太郎 [01/5/31(木)15:50分]
それだけのフォーム数と帳票なら、妥当な数字かもしれませんね。
(殆どがリソース部分なんでしょうけど。)
もし、差し支えが無いのであれば、コンパイルオプションで
「Pコードコンパイル」でコンパイルし直してみてはどうですか?
No.2198 過去ログに対して・・・ 投稿者:通りすがりの物です^^ [01/5/31(木)11:25分]
>RE:日付データから数字だけ取得 投稿者:花ちゃん [01/5/28(月)17:42分]
>Text1.Text = Year(Now) & Format(Month(Now), "00") & Format(Day(Now), "00")
>これでは、だめですか?
formatを知っておられるのなら上記よりも下記のほうが良いのでは?
例.
Text1.Text = Format(Now, "YYYYMMDD")
でしゃばってスイマセン^^;;
No.2197 BMPをIEで表示 投稿者:MEGU [01/5/31(木)11:19分]
CreateObjectでオープンさせるIEにBMPファイルを表示したいのですが
オープン時にフルパスを渡すとペイントが起動されてしまいます。
エクスプローラーからドラッグ・アンド・ドロップで表示できるのでIEからの表示も可能と
思ったのですが、ムリなのでしょうか?
No.2196 VBにてCSV->ACCESS 投稿者:KAZU [01/5/31(木)9:50分]
VB6上で、csvファイルをACCESSDBにインポートしたいのですが
一括でできる方法はないでしょうか?
教えてください。
No.2195 Re:アイコンにドロップ 投稿者:初心者S [01/5/31(木)9:11分]
♪そういうのは多分 Command$ 関数だと思います。
♪ヘルプも参照して頂くとして,以下のコードを書き込みexeにして,
♪ファイルを作ったexeのアイコンにドロップしてください。
♪
♪Private Sub Form_Load()
♪Msgbox Command$
♪End Sub
ありがとうございました。
解決しました。
No.2194 みーま さんえ 投稿者:徹 [01/5/31(木)5:32分]
☆PrintReport メソッドを使用してるのはData Report で印刷をしているのですか?
Data Reportは詳しくないのですが・・・
・レポートの幅が用紙の幅を越えていませんか?
・以前Show メソッドでプレビューを表示する際に同様のエラーが
発生しVisual Studio 6.0 Service Pack 4 で解決しました。
☆Win32 API OpenPrinter関数
すみません、NT4.0でテストプログラムを作成し、アクセス権の無いユーザーで
実行したところ正常に動作しました。
Function fncPrinteCheck(pPrinter As String, pPaperSiz As Integer) As String
Dim strPrinterName As String, udtPrinterDefaults As PRINTER_DEFAULTS
Dim lngHandle As Long, lngPrinterInf2 As Long
Dim lngPrinterInf2Len As Long, bytBuffer() As Byte
Dim udtPrinterInfo2 As PRINTER_INFO_2, udtDevMode As DEVMODE
Dim lngResult As Long, intNum As Integer
Dim bolOP As Boolean
fucPrinterOri = 0: strPrinterName = PrinterName
' アクセス権を指定
udtPrinterDefaults.DesiredAccess = PRINTER_ALL_ACCESS
' プリンターのオブジェクトハンドルを取得
lngResult = OpenPrinter(strPrinterName, lngHandle, udtPrinterDefaults)
lngPrinterInf2 = 2
lngResult = GetPrinter(lngHandle, lngPrinterInf2, ByVal vbNullString, _
0, lngPrinterInf2Len)
ReDim bytBuffer(lngPrinterInf2Len - 1)
lngResult = GetPrinter(lngHandle, lngPrinterInf2, bytBuffer(0), _
lngPrinterInf2Len, lngPrinterInf2Len)
MoveMemory udtPrinterInfo2, bytBuffer(0), Len(udtPrinterInfo2)
MoveMemory udtDevMode, ByVal udtPrinterInfo2.pDevMode, Len(udtDevMode)
With udtDevMode
'【印刷方向が指定できるときは】
If .dmFields And DM_ORIENTATION Then
.dmOrientation = Orientation: bolOP = True ' 印刷方向を指定
End If
If .dmFields And DM_PAPERSIZE And Paper <> 0 Then
.dmPaperSize = Paper: bolOP = True ' 用紙サイズを指定
End If
'【 印刷部数が指定できるときは】
If .dmFields And DM_COPIES And Copies <> 0 Then
.dmCopies = Copies: bolOP = True
End If
If bolOP = True Then
MoveMemory ByVal udtPrinterInfo2.pDevMode, udtDevMode, Len(udtDevMode)
' 印刷方向を設定
lngResult = SetPrinter(lngHandle, lngPrinterInf2, bytBuffer(0), 0)
End If
End With
lngResult = ClosePrinter(lngHandle)
End Function
◎使用API:OpenPrinter,GetPrinter,MoveMemory,SetPrinter,ClosePrinter
動作環境:VB6.0(isual Studio 6.0 Service Pack 4),NT4.0(Service Pack 4)
No.2193 vb6で作成したexeが大きくなる 投稿者:えみこ [01/5/30(水)18:55分]
ひとつのプロジェクトにフォーム数、約80とActiveRrportで作成した帳票が 葯30帳票あるプロジェクトのExeを作成すると130Mバイトぐらいに膨れてしまいます。
ソース自体の大きさは6〜7M程度で、フォームも複雑なものはなく特別に複雑な処理を しているわけではないので少し困っています。
Exeが大きくなる要因がわかれば教えて頂きたいのですが・・・
使用している環境は、WIN NT 4.0(SP6) 、VB6(エンタープライズ)SP4で
OcxとしてActiveReport1.5J、InputMan Pro 6.5J、SPREAD 3.0Jを使用しています。
ちなみにデータベースはORACLE8iでoo4oで接続を行っています。
No.2192 Re:アイコンにドロップ 投稿者:匿名 [01/5/30(水)18:13分]
そういうのは多分 Command$ 関数だと思います。
ヘルプも参照して頂くとして,以下のコードを書き込みexeにして,
ファイルを作ったexeのアイコンにドロップしてください。
Private Sub Form_Load()
Msgbox Command$
End Sub
メッセージボックスにドロップされたファイル名が表示されます。
No.2191 RE:VBでThreadを使うには?(お礼) 投稿者:Yuu [01/5/30(水)17:57分]
VB6ではCreateThreadは使えないんですか、APIビューアには出てきたので 使えるかな〜って思い、使ったらいきなりVBごと落とされ
ちゃいました。しかも、VCではデバック前にバックアップを取ってくれてたのですが、 VBだとデバック前に取ってくれないんですね。
では、これからActiveX EXEについて勉強してみます。
どうもありがとうございました〜。
No.2190 RE:VBでThreadを使うには? 投稿者:ゆー太郎 [01/5/30(水)15:56分]
VB5ならCreateThreadは使えますけど、VB6は確実に落ちますよ。
ActiveX EXE なら擬似マルチスレッド(正確にはプロセス)
っぽいのが出来ると思います。
No.2189 VBでThreadを使うには? 投稿者:Yuu [01/5/30(水)15:38分]
はじめまして、Yuuと申します
VBでThreadを使う場合には、APIのCreateThreadと、TerminateThreadを使うしかないのですか?
何か他にもやり方があったら教えてください。
No.2188 RE:NTで印刷ダイアログを使用せずにプリンター設定変更 投稿者:みーま [01/5/30(水)13:45分]
Printer.PaperSize = vbPRPSB4 で試した結果
Printer.PaperSize = vbPRPSB4
Printer.Orientation = rptOrientLandscape
Set Picture1.Picture = 印刷したいフォーム
Printer.PaintPicture Picture1.Picture, 1200, 1500
Printer.EndDoc
の場合はB4で出力可能でした。
しかし、
Printer.PaperSize = vbPRPSB4
印刷したいデータレポート名.Orientation = rptOrientLandscape
印刷したいデータレポート名.PrintReport
の場合は用紙変更がされていないようで
「レポートの幅が用紙の幅より大きく指定されています」とエラーになります。
PrintReportには有効な手段ではないのでしょうか?
たびたび申し訳ありませんがよろしくお願いします。
No.2187 RE:NTで印刷ダイアログを使用せずにプリンター設定変更 投稿者:みーま [01/5/30(水)9:53分]
徹さんありがとうございました
Printer.PaperSize = vbPRPSB4 で可能ということなので、その方法でもう少し試してみます。
>このOpenPrinterはユーザーがプリンターやプリントサーバー
>を開くための権限を備えていない場合、OpenPrinter 関数
>は失敗します、みーまさんの現象と一致します。
ということは
With udtPrinterDefaults
.DesiredAccess = PRINTER_ALL_ACCESS
End With
とやっても権限なくログインしている場合はOpenPrinter は失敗するということでしょうか?
PRINTER_ALL_ACCESSで権限があたえられるのかと思ってました。
勉強不足ですね・・・
No.2186 RE:リストボックスの内容をテキストボックスへ 投稿者:GARU [01/5/30(水)9:37分]
いつもありがとうございます。無事処理できました。
No.2185 NTで印刷ダイアログを使用せずにプリンター設定変更 投稿者:徹 [01/5/30(水)3:17分]
NTで印刷ダイアログを使用せずにプリンター設定変更をするには
花ちゃんさんの ”Printer.PaperSize = vbPRPSB4”
でアクセス権限がなくてもできます。
-------------------------------------------------------
VBでアクセス権を与えるにはの例はAPIを使用する方法です。
With udtPrinterDefaults
.DesiredAccess = PRINTER_ALL_ACCESS
End With
この後、OpenPrinterの第三パラメーターにudtPrinterDefaults
を指定します。
OpenPrinter(・・・、・・・、udtPrinterDefaults)
このOpenPrinterはユーザーがプリンターやプリントサーバー
を開くための権限を備えていない場合、OpenPrinter 関数
は失敗します、みーまさんの現象と一致します。
-------------------------------------------------------
プリンターの設定は「ドライバー」がマイクロソフト社のインター
フェースを無視していたり、プリンターサーバーが双方向通信
ができない場合、思ったとうり動作しない時があります、
注意してください。
No.2184 他のアプリケーションのデータ取得 投稿者:VB初心者 [01/5/30(水)1:47分]
マウスをクリックしたときに、その位置にある他のアプリケーションのデータ一行を VBに取り込みたいのですが、方法を教えてください。
No.2183 RE:リストボックスの内容をテキストボックスへ 投稿者:花ちゃん [01/5/29(火)20:02分]
1番最初のデータなら Text1.Text = List1.List(0)
3番目のデータなら Text1.Text = List1.List(2)
No.2182 リストボックスの内容をテキストボックスへ 投稿者:GARU [01/5/29(火)15:55分]
いつもお世話になっております。
リストボックスへドロップしたファイルのパスを表示し、そのパスを使いたいのですが、
Text1.Text=List1.textとしてもリスト内容が選択されていないのでテキストボックスに
移すことが出来ません。
何かいい方法はないでしょうか?
No.2181 NTで用紙変更 投稿者:みーま [01/5/29(火)14:57分]
「NTで印刷ダイアログを使用せずにプリンター設定変更」の続編ですが・・・
用紙変更がうまくいかないのは権限がないためらしいことが判明しました。
VBでアクセス権を与えるには以下のようにすればいいんですよね?
' プリンターアクセス権を指定
With udtPrinterDefaults
.DesiredAccess = PRINTER_ALL_ACCESS
End With
administratorでログインした場合はうまくいくのですが、
ユーザー権限で実行したいのです。
方法はないんでしょうか?
前に花ちゃんさんに教わったpapersizeはやはりうまくいきませんでした・・・残念。
No.2180 アイコンにドロップ 投稿者:初心者 S [01/5/29(火)11:52分]
はじめまして、初心者 Sです。
アイコンの状態(アプリが未起動)であるファイルをドロップして
ドロップされたファイル名を取得する方法がありましたら、
どなたか教えて下さい。
No.2179 FTPについて 投稿者:そう [01/5/29(火)11:36分]
はじめまして、私は今仕事で、FTP関係のところを作っているのですが、 わからない点がありますので、ぜひ教えて下さい。
FTP内のフォルダーが存在するかしないかを確認したいのですが、 なにぶん初めて更に時間がないときているのであっせているしたいです。
CD・LS・DIR等で試してみたのですがうまく行きませんでした。どうぞよろしくお願いします。
No.2178 どなたか教えてください(T-T) 投稿者:大ちゃん [01/5/29(火)11:18分]
ACCESSのREPORTをVBで使用する方法はないでしょうか?
一覧表をVBで作るよい方法とかありましたらぜひおしえてください。
よろしくおねがいします。
No.2177 RE:NTで印刷ダイアログを使用せずにプリンター設定変更 投稿者:みーま [01/5/29(火)10:01分]
花ちゃんさん、ありがとうございます。
早速試してみましたが、なぜか変更できませんでした。
でも、私のやり方がいけないのかもしれないので、もう少し試してみますね。
No.2176 RRe:日付データから数字だけ取得 投稿者:みさ [01/5/29(火)9:27分]
おはようございます。
花ちゃんさんありがとうございました。教えていただいた方法でばっちりでした。
基本的な関数を使えば簡単なことでしたね(苦笑)
私の場合、いつも難しく考えてしまって自分自身で首を締めてしるみたいです・・・。
まだまだ勉強不足ということで、これからもこちらを活用させていただきます。
ありがとうございました。
No.2175 RE:NTで印刷ダイアログを使用せずにプリンター設定変更 投稿者:花ちゃん [01/5/28(月)20:25分]
NTは使った事がないので試してはいませんが、ここのHPの印刷関係に書いてある
Printer オブジェクト使った方法ではだめですかね?
Printer.PaperSize = vbPRPSB4
No.2174 RE:日付データから数字だけ取得 投稿者:花ちゃん [01/5/28(月)17:42分]
Text1.Text = Year(Now) & Format(Month(Now), "00") & Format(Day(Now), "00")
これでは、だめですか?
No.2173 RRE:RE:テキストファイルに追加する方法 投稿者:花ちゃん [01/5/28(月)17:29分]
ファイルを結合したいならDOSのCOPYコマンドでできるようです。 私の知識不足でした。申し訳ありませんでした。
Shell "command.com /c copy c:\Book1 + c:\Book2.Txt c:Book1.Txt", 1
メモ帳に表示される状態のまま結合できるようです。 .Txt と .CSV とでもOK
No.2172 NTで印刷ダイアログを使用せずにプリンター設定変更 投稿者:みーま [01/5/28(月)17:26分]
NTで印刷ダイアログを使用せずにプリンター設定変更をしたいのですが何かいい方法があったら
教えていただきたいです。
APIを使用してWin98では変更するようにできたのですがNTではできません。
また、HP等で調べた結果、印刷ダイアログを表示する方法は分かったのですが
できれば自動的に用紙変更ができるようにしたいのです
たとえば・・・
帳票A B4で
帳票B A3で と言うようにプログラムで変更できるようにしたいのです
何か良い方法があったらお願いします。
No.2171 日付データから数字だけ取得 投稿者:みさ [01/5/28(月)17:14分]
2001年05月28日→20010528
というように日付データから数字だけを取得したいのですが、
変換する関数等あるのでしょうか?
日付データに変換する関数はありますが、逆の処理ができるものはないのでしょうか?
それとも、文字列を読み込んで、"年","月","日"を削除するような
コードで対応するしかないのでしょうか?
どなたか、知っている方がいらっしゃいましたらヒントを教えて下さい。
よろしくお願いします。
No.2170 REどなたか教えていただけないでしょうか 投稿者:島斎 [01/5/28(月)8:52分]
わかりました。花ちゃんさんどうもありがとうございます。
表題の件、わかりにくくてすいませんでした。m(__)m
以後気をつけます。
No.2169 RRE:RE:テキストファイルに追加する方法 投稿者:花ちゃん [01/5/26(土)22:15分]
>ファイルを出力するときに既存のテキストファイルにデータを追加する方法を知りたいです
ファイルを出力するとはどこへでしょうか?
Excel でも Word でも VB でも既存の文書に新たに追加するのは同じです
フォームにテキストボックス3個とコマンドボタンを貼付
コマンドボタンのクリックイベントに
Text1.Text=Text2.text & Text3.text と記入して試して下さい。
ここで、 Text2.Text= 既存のデータ Text3.Text= 追加したいデータ
Text1.Text を出力?すれば追加できていますよ
ただし、つなぐといっても c:\Book1.txt = c:\Book1.txt & c:\Book2.txt こんな事はできません。
中身をつなぎましょう
No.2168 RRE:RE:テキストファイルに追加する方法 投稿者:功治 [01/5/26(土)15:46分]
花ちゃんさんへ
さっそく答えていただきありがとうございました
しかし
c:\Book1.txt = c:\Book1.txt & c:\Book2.txt
このように記述するとエラーになります
よろしくお願いします
No.2167 RE:テキストファイルに追加する方法 投稿者:花ちゃん [01/5/26(土)13:47分]
新テキスト=旧テキスト & 新テキスト
サンプルを作って見てテキストボックスにでも表示して確認してみましょう。
保存する場合も同じ事です。
No.2166 テキストファイルに追加する方法 投稿者:功治 [01/5/26(土)12:10分]
ファイルを出力するときに既存のテキストファイルにデータを追加する方法を知りたいです
よろしく
No.2165 class名取得法了解。花ちゃん徹さんに深謝 投稿者:雲丹友 [01/5/26(土)11:40分]
クラス名の取得方法をさっそくご教示いただき、
たいへんありがとうございました。
確認してみました。
疑問氷解、小生の困ったプログラムも
ちゃんと動作する素振りです。
御両所に深く感謝いたします。
No.2164 ウィンドウクラスをしらべるツール 投稿者:徹 [01/5/26(土)7:17分]
クラス名をしらべるツールとしては”SPY++”があります。
このツールはVC++をインストールするとおまけとして
インストールされますがVBの場合、CD-ROMから手動で
インストールします。VB6.0の場合
CD=ROMのドライブ:\Common\Tools\VB\spy
のホルダに入っています。
spyxx.exeとOutlook Expressを起動しspyxx(SPY++)の
SearchメニューのFind WindowからWindow Searchダイアログ
ボックスを表示しFind ToolをOutlook Express画面に
ドラック&ドロップ(注意:画面上に有る、ボタン、
テキストボックス等1つ1つがウィンドウですので、
タスクバー上にドラック&ドロップしてください)
No.2163 RE:RS-232CとVB 投稿者:花ちゃん [01/5/26(土)2:04分]
実際には電話をかける位しか使った事がないので詳しくは知らないのですが、 他の方からも回答がないようですので
VB5.0ならサンプル(Vbterm.vbp)がついていますが
参考書なら 技術評論社 河西朝雄著書のVISUAL BASIC6.0(5.0)上級編 位ですかね
又、Webで ”MSCOMM”検索すると色々ありますよ
No.2162 RE:MSIMN.exeのクラス名は? 投稿者:花ちゃん [01/5/26(土)0:32分]
ここのHPのExcel & Word 関係の ”エクセルが既に起動中かどうかを調べる” の所でも紹介していますが
下記MSの [VB] ウィンドウのクラス名や属性を取得する方法 の所にサンプルがあります。
それを起動すれば現在カーソルのあるウィンドウについての下記情報が取得できます。
ウィンドウハンドル
ウィンドウテキスト
ウィンドウクラス名
ウィンドウスタイル
ウィンドウ ID 番号
親ウィンドウハンドル (適用可能な場合)
親ウィンドウテキスト (適用可能な場合)
親ウィンドウクラス名 (適用可能な場合)
モジュールファイル名
http://www.microsoft.com/japan/support/kb/articles/J046/4/37.htm
No.2161 RE:VBでIMEの制御 投稿者:雲丹友 [01/5/25(金)22:50分]
参考になるかどうかわかりませんが、
技術評論社 『VB6.0 300の技 API+COM編』
という本に、
「263 IMEの変換方式を取得する」という項目が
ありまして、
その中で、人名/地名 とか 一般 とか 話言葉優先
などのIME初期変換方式の取得が
ImmGetConversionStatusとかいうAPI? で
できるとありました。
取得だけで、設定については書いていないようでした。
なにかヒントになれば幸いです。
No.2160 MSIMN.exeのクラス名は? 投稿者:雲丹友 [01/5/25(金)22:19分]
VB困惑歴4か月の初心者です。
ベテランのかたには、
馬鹿馬鹿しい質問かもしれませんが、
吹き出さずに教えて頂ければ幸いです。
参考書の見本プログラムに、
「クラス名からウィンドウハンドルを取得」と書かれた
部分がたくさんありました。
例としてメモ帳は"Notepad" というクラス名だとありました。
小生は、Outlook ExpressをVB側から操作したいと思っています。
そのためには、Outlook Expressのクラス名を知らねばなりません。
どなたか、Outlook Express、プログラム名MSIMN.exeの
クラス名をご存知のかたがおられましたら、教えていただければ幸いです。
あるいは、一般論として、アプリケーションのクラス名を
知る方法があるのなら、それについてご教示いただくとさらに
助かります。
No.2159 RE:どなたか教えて(現在のフォルダーを変更) 投稿者:花ちゃん [01/5/25(金)20:11分]
ChDir ステートメントの使い方が間違っています。(ヘルプ参照)
>NewPath = ChDir(NewPath & "\" & ReserveFile & "\")
正しくは ChDir NewPath & "\" & ReserveFile
※ 表題は質問内容を端的に表すものにしましょう
No.2158 わかりました!!! 投稿者:KEI [01/5/25(金)18:26分]
ゆう(U)さん、わかりました!!!
ありがとうございました!!!
No.2157 どなたか教えていただけないでしょうか? 投稿者:島斎 [01/5/25(金)17:24分]
VBの初心者です。
こちらのHPを参考に、PGを作っている途中なんですけど、
起動時にパス名を読み込んであと、パス名を変更しようと
下記のように
NowPath=App.Path
----------------
NewPath = NowPath
'パス名の変更
NewPath = ChDir(NewPath & "\" & ReserveFile & "\")
プログラムしてみたのですがコンパイルエラーがでてしまい、
"Functionまたは変数が必要です"
とメッセージがでてきます。
どのように対処すればよいのかどなたか教えていただけないでしょうか?
ちなみに起動時のパスはこちらのHPに記載されていたものを引用させていただきました。
開発環境はVB6 WindowsMe
です。
よろしくお願いします。
No.2156 Re:URL 投稿者:ゆう(U) [01/5/25(金)14:59分]
「メッセージを登録する」の直後にはF5(更新)は行わないほうが良いです
※「メッセージを登録する」を繰り返します
> よくバージョン情報の個所に、URLが張ってあって、そこをクリックすると >HPにジャンプできるようになっているものを見かけます。
> そのジャンプさせる方法を教えていただきたいのですが・・・。
VB標準の機能だけなら・・・
Shell Environ("COMSPEC") & " /C Start " & _ "http://www.bcap.co.jp/hanafusa/VBdengon/vbdengon.htm", vbHide
新しくブラウザーを開いてなどの場合は、考えてみてください。
※APIを使うなら「ShellExecute」でWeb検索とか・・・
> それと、MsgBox内で改行させる方法も合わせてご教授願いたいと思います。
表示するpromptを改行させるのであれば・・・
ヘルプ(MSDNライブラリ)「MsgBox 関数」の指定項目に対する
内容を読むと分かります。
ちなみにその値はVBで定数が用意されています。
※「vbNewLine」でMSDNを「検索」してみて下さい
No.2155 URL 投稿者:KEI [01/5/25(金)13:02分]
こんにちは。いつも参考にさせていただいています。
初心者の質問ではございますが、どなたかお答えいただけないでしょうか?
よくバージョン情報の個所に、URLが張ってあって、そこをクリックすると HPにジャンプできるようになっているものを見かけます。
そのジャンプさせる方法を教えていただきたいのですが・・・。
それと、MsgBox内で改行させる方法も合わせてご教授願いたいと思います。
よろしくお願いします。
No.2154 Re:BMPからAVIを作成 投稿者:TAK [01/5/25(金)12:46分]
ゆう(U)さん、ありがとうございました。
さっそくダウンロードしていじってみました。
プログラムが複雑で難しそうですが、なんとかやってみます。
No.2153 URL 投稿者:KEI [01/5/25(金)12:43分]
こんにちは。いつも参考にさせていただいています。
初心者の質問ではございますが、どなたかお答えいただけないでしょうか?
よくバージョン情報の個所に、URLが張ってあって、そこをクリックするとHPに ジャンプできるようになっているものを見かけます。
そのジャンプさせる方法を教えていただきたいのですが・・・。
それと、MsgBox内で改行させる方法も合わせてご教授願いたいと思います。
よろしくお願いします。
No.2152 RS-232CとVB 投稿者:やまちゃん [01/5/25(金)11:53分]
こんにちは。いつも参考にさせていだだいております。
ところで、RS232Cをつかいパソコンとある機械を使い通信することになったのですが、
RS232Cの資料(VB)がないのでもしよければ何か手がかりを教えてください。
No.2151 回答のお礼 投稿者:野原うさ子 [01/5/25(金)9:15分]
花ちゃん様。回答ありがとうございました。
投稿後、思考錯誤して自分でも作ってみました。HPも見ずに質問してしまってすみませんでした。
今後もまた何かあったらどうぞよろしくお願いします。
Private Function GetBytedata(strDt As String, byteDT As Byte) As Variant
Dim l As Long
Dim strRet(1) As String
Dim x As Long
Dim y As String
Dim z As Long
For l = 1 To Len(strDt) 'Unicodeのままで文字列分ループします。最大文字列分まで。
y = Mid(strDt, l, 1) '文字列内から1文字ずつ取り出す。
'ANSI変換します。
x = LenB(StrConv(y, vbFromUnicode)) '取出した1文字がANSIコードでは何バイトになるかを調べる。
z = z + x '1文字ずつそれぞれのANSIコードのバイト数を足しこんで、
If z >= byteDT Then '指定のバイト数以上になればそこまでで終わり。
Exit For
End If
Next l
If z > byteDT Then '大きければ最後のデータが2バイトの真中。 '(規定のバイト数以上になる最後のデータが2バイトだった)
l = l - 1 '収容バイトサイズの最後のデータが2バイトデータの真中であったら、 '文字データとして意味がないので1文字分取得を減らす。
ElseIf z = byteDT Then '同じなら1バイトデータがちょうど終わったあと。
l = l 'ループと同じ文字列を取得する。
End If
strRet(0) = Left(strDt, l)
strRet(1) = Mid(strDt, l + 1)
GetBytedata = strRet
End Function
'---------------------------------------------------------------------------------------
'テスト用です
Sub test4()
Dim a As Variant
a = GetBytedata("東京都八王子市田町武蔵野市武蔵小金井1丁目7番地", 72)
Debug.Print a(0)
Debug.Print a(1)
End Sub
前のログ | 次のログ |
VBレスキュー(花ちゃん)
Visual
Basic6.0 VB6.0