みなさん、こんにちは
VB初心者のKenです
みなさんにお聞きしたいことがあるんですが、
ComboBoxに、『試験科目』と『追試科目』という項目が
あるんですが、ComboBoxで、『追試科目』を選んだ時に
別のファイルからテキストを読み込んで、そのテキストに
記入してある科目表の一行をVBのTextBoxに表示したいのです。
ボタンを押した時にVBのTextBoxに表示するには、
どうしたらいいんですか?
一行だからReadLineを使うんじゃない?と、友達から言われたんですが、
ReadLineの使い方がまったくわかりません。
友達も、使い方がわからないようなので教えてください。
お願いします。
一応、自力で…
Dim objA As Object
Dim objA As Scripting.TextStream
Set objA = CreateObject("Scripting.FileSystemObject")
Set objA = objA.OpenTextFile("C:\VB\tuisi.log", 1, False)
TxtHyouji.Text = objA.ReadLine
ここまで出来ましたが、ここまでが限界のようです。
あとは何をしていいのかがさっぱりわかりません…
どうか、お願いします。
わざわざVBScriptを使わなくても…。
dim document as string
document = "改行のある読みこませたいメッセージ"
dim doc() as string
doc = split(document,vbCrLf)
これで一行ずつに区切られた文字列が配列docに入るはずなので、
適切に読み出すなりすればいいかと…。
ファイルを読みこむのなら、こんな関数を作りました。
Public Function LoadLines(FileName As String, CallBackObject As Object, Optional CallBackFunction As String = "ReadLineProc") As Boolean
'一行ずつファイルを読みこみます
'FileName…ファイル名
'CallBackObject…コールバック関数を持っているオブジェクト
'CallBackFunction…コールバック関数の名前
'戻り値…一個でもなにか読めたらTrue、ファイルが存在しない、中身がない、などの異常で読めなければFalse
'
'コールバックの関数は以下のようになります
'Public Sub ReadLineProc(FileNumber as integer,Line As String, Count As Integer,Cancel As Boolean)
'FileNumber…読みこみファイルナンバー
'Line…読み込み中の文章の、読みこみ行の文字列
'Count…その行数
'Cancel…ここをTrueにしてイベントをおえれば、読み込みを中止します
Dim Line As Integer, LineText As String, ff As Integer, Cancel As Boolean
ff = FreeFile
On Error GoTo 1
Open FileName For Input As ff
Do Until EOF(ff)
Line Input #ff, LineText
Line = Line + 1
CallByName CallBackObject, CallBackFunction, VbMethod, ff, LineText, Line, Cancel
If Cancel Then GoTo 1
LoadLines = True
Loop
1 Close ff
End Function
VBScript…というのは訂正します^^;
ただたしか、WindowsScriptingHostを使うか、
ブラウザの機能を使うかだったと思います。
前者はアンインストールされてる場合があるし、
後者はブラウザが古ければ使えない場合があります。
たかみちえさん、ありがとうございます。
そこまで教えて頂ければ充分です。
後は頑張って完成させます。
ちなみに、始めのメールでわかった人もいると
思いますが、私は追試です。
そっちの方も頑張ります…
はふぅ…