前のログ 次のログ

No.1550 教えて下さい  投稿者:sakusaku [00/10/03(火)20:57分] http://www1.plala.or.jp/sakumoto/pidb/

こんにちは

ALTのキーコードの件ではお世話になりました
この度、Linuxでダイアルアップルータを作り、Windowsクライアントから
使っていますが、Linuxのダイアルアップソフト(ppxp)の接続・切断を
クライアント側から制御できない物かと考えていました
考えたところ何とかできる方法を見つけたのですが、手数が多くなるため
何とか自動化できない物かと思っています
以下に接続・切断の手順を記します
−接続−
1.TELNETを開く(c:\windows\telnet.exe)
2.メニュー 接続(C) をクリック
3.プルダウンメニュー リモートシステム(R) をクリック
4.接続ダイアログが開くので 接続(C) をクリック
5.login: と表示されるので sakusaku [enter] と入力
6.Password: と表示されるので XXXX(パスワード)[enter] と入力
7.$ と表示されるので su [enter] と入力
8.Password: と表示されるので  XXXX(パスワード)[enter] と入力
9.# と表示されるので ppxp plala [enter] と入力
10.ppxp> と表示されるので connect[enter] と入力
−切断−
11.PPXP> と表示されるので disconnect [enter] と入力
12.TELNETを閉じる

以上が手順となっています

そこで、次のようなものを作ってみました
Private Sub Command1_Click()

'TELNETを実行(1)
Shell "c:\windows\telnet.exe", 1

'connect(2)(3)(4)
SendKeys "%" & Chr(67) & Chr(82) & Chr(13)

'login(5)
SendKeys "sakusaku" & Chr(13)

'待ち
Dim t1 As Date
Dim t2 As Date
t1 = Now
Do
t2 = Now
If t1 + TimeSerial(0, 0, 5) <= t2 Then Exit Do
Loop

'パスワード
SendKeys "sakusaku" & Chr(13)

End Sub

ここで、問題が発生します
login:sakusakuはOKなのですが、次の
password:の前に2つ目のsakusakuが入ってしまい、ログインできません
そこで、password:と表示されるまでの間、待ちを入れたく、上記の方法を採りましたが
この方法ですと、command1をクリックした後に5秒の待ちが入り、上手くありません
どうやら、先にLOOPが実行されてしまっているようです
空のLOOPを作ったり、SLEEPなども試しましたが、失敗しました
login:sakusakuとpassword:の間に待ちを入れるにはどうしたらいいのでしょうか?
サーバーからの返事を待って動かせれば一番いいのですが、そんなことは難しそうなので
できそうにありません
教えてください

No.1549 アドレス帖の読み込み  投稿者:SA [00/10/02(月)18:13分]

VB6.0からメールのアドレス帖の読み込みの方法を知りたいです。


No.1548 >ALTキー追加  投稿者:ぱんかれ [00/9/30(土)23:52分]

keyDownなど、それに直接msgboxを造ると、出現が止まらなくなる恐れがあるので、

printでフォームに書き出しちゃうか、label等に出力しましょう。

No.1547 >ALTキーコード  投稿者:ぱんかれ [00/9/30(土)23:47分]

もし、VCをお持ちなら、Dinput.hのものと同じだった気がします。

不安であれば、実際に押したキーをmsgboxかなにかで画面に表示させる
簡単な実験をするのがいいですね。

DIK_LMENUが右ALTで&h38、DIK_RMENUが左ALTで&hB8 です。
キーボードの特性により、たまに違うコードが入ることが確認されてます。
それから、モノによっては(ノートなど)ALTが1こしかないキーボードも
在るかと思うので、汎用的に造るなら気をつけてください。

No.1546 Altキーのキーコード  投稿者:sakusaku [00/9/30(土)23:37分] http://www1.plala.or.jp/sakumoto/pidb/

はじめまして

Sendkeysを使ってAltキーを押させたいのですが
Altキーのキーコード(キャラクターコード)が解りません
教えて下さい

No.1545 タスクバーもどき  投稿者:ぱんかれ [00/9/30(土)22:07分]

アプリケーション(デスクトップ)ツールバーとかいうのを

実現したいと思っています。イメージとしては、ツールバーを
もう1本つくるというか、代表的なアプリケーションで言えば、
ICQ(これは左右端ですが)、ライブドアの広告、などです。

SHAppBarMessageというAPIを使えば実現できそうだ、という
ところまで行ったのですが、その先で躓いてしまいました。
もしご存知の方いらっしゃいあmしたら、よろしくご教授ください。

よろしくおねがいします。


No.1544 re:VB2.0について   投稿者:くりちゃん [00/9/30(土)19:55分] http://homepage1.nifty.com/kurichan/

あや さんへ。

 VB2.0ですか、懐かしいですね。
 立体感を表現したいということであれば、Lineメソッドを駆使する方法がありますね。
 (Lineの色を明るい影の色、濃い影の色に設定して)

No.1543 くりちゃんさんへ  投稿者:YO [00/9/30(土)18:12分]

すごく基本的なものだったのに気がつきました。

本当にありがとうございました

No.1542 Re:EXCELお化け消えました。  投稿者:みゃお [00/9/30(土)17:24分]

>ところで、Object変数がサブルーチンをぬけても

>消滅しないのは、なぜですか?

経験上残ることがわかっているだけで、理屈はわかりません。

>それとも消滅はしてて、
>"."を付け忘れ新しいオブジェクトが作られたのでしょうか?

私もそのように想像しています。

No.1541 re:テキストボックスについて  投稿者:くりちゃん [00/9/30(土)15:33分] http://homepage1.nifty.com/kurichan/

YO さんへ。

テキストボックスの"MultiLineプロパティ"を"True"に設定すると、初期設定できるようになります。

※YOさんの開発環境のバージョンが紹介されていないので、私の開発環境VB6.0(SP4.0)での場合のお話です。

No.1540 テキストボックスについて  投稿者:YO [00/9/30(土)14:22分]

テキストボックスに2行の文字を表示したい場合、

Text1.Text = "1行目" & vbCrLf & "2行目"
とコードに書きこめばよいのですが、
プロパティで初期設定しておきたい場合の方法を教えてください。
 

No.1539 SetUPファイル実行  投稿者:匿名 [00/9/29(金)20:20分]

こんばんは。

初めて投稿します。
VBとExcelのOLEオートメーションを
行っています。
SetUpファイルを作成して
自分のマシンではアプリを実行できるのですが
他のマシンから実行すると
ActiveXコンポーネントはオブジェクトを作成できません。
とメッセージが出てしまいます。
どうしたらよいのでしょう?
何方かご指導お願いします。
ちなみに
GetObjectを使ってExcelを参照しています。

No.1538 EXCELお化け消えました。  投稿者:匿名 [00/9/29(金)14:49分]

みゃおさんありがとうございました。

EXCELお化け消えました。
なんとも恥ずかしいミスでした。
ところで、Object変数がサブルーチンをぬけても
消滅しないのは、なぜですか?
それとも消滅はしてて、
"."を付け忘れ新しいオブジェクトが作られたのでしょうか?
う〜ん、よく分からない。
面倒じゃなかったら教えてください。

No.1537 Re:リッチテキストについて・・・  投稿者:ゆう(U) [00/9/29(金)0:13分]

コードに問題があるのでは?


Loadで増やしたコントロールはUnloadで消去可能です、
添え字等で何らかのミスをしているのでしょう。

リッチテキストボックスコントロール以外で、
同様のLoad/Unloadを行ってみてください。
※タブコントロールに無関係で動作確認も
 して見てください

No.1536 Re:一定時間の取得  投稿者:ゆう(U) [00/9/28(木)23:46分]

Timer コントロールは一定間隔でイベントを発生しますが、

イベント発生時にコードが実行(ループ等)されている場合
イベントをスキップしてしまいます。
※これを利用すると、タイマーイベントを全てスキップ
 させることも可能です。

ですから、Timerイベントで数分を数える等は行わない方が
良いです。
※1分を3回スキップされるとそれだけで3分以上の
 計測誤差が発生します

Timerイベントは数百ミリ秒で発生させ、イベント内で
何秒経過しているかを計算する方が誤差が少なくなります。

サンプル)
Timerコントロール1個(Timer1)
コマンドボタン2個(Command1,Command2)
テキストボックス3個(Text1,Text2,Text3)
Option Explicit
Private Sub Command1_Click()
Const intTimer = 10

Timer1.Tag = intTimer
Timer1.Enabled = True

Text1.Text = Format$(Time, "hh:nn:ss")
Text1.Tag = Format$(DateAdd("s", intTimer, Time), "hh:nn:ss")

Command1.Enabled = False
Command2.Enabled = True
End Sub
Private Sub Command2_Click()
Text1.Tag = Format$(DateAdd("s", CLng(Timer1.Tag), Time), "hh:nn:ss")
Timer1.Enabled = Not Timer1.Enabled
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""

Command1.Caption = "スタート"
Command2.Caption = "停止・再開"
Command2.Enabled = False
Timer1.Enabled = False
Timer1.Interval = 300
End Sub
Private Sub Timer1_Timer()
Timer1.Tag = DateDiff("s", Time, CDate(Text1.Tag))
Text2.Text = "残 " & Timer1.Tag & "秒"

If CLng(Timer1.Tag) <= 0 Then
Text3.Text = Format$(Time, "hh:nn:ss")
Timer1.Enabled = False
Command1.Enabled = True
Command2.Enabled = False
Text2.Text = "時間です"
End If
End Sub
※Timer1.Tagで残り時間を・・・
 Text1.Tagでタイマー起動時を・・・

 秒単位で計算してますので、最大約1.2秒の誤差が発生する
 場合があります(スキップが発生しない場合でも)
 10.9秒の10秒後は20.0秒なので・・・


●これで問題が解決したなら、質問を掲載した掲示板全てに
 「解決しました」等を載せた方が良いです。
 ※当然、そこの主催者の決めたルールに従ってです・・・

No.1535 リッチテキストについて・・・  投稿者:しゅん [00/9/28(木)22:11分]

誰か教えて下さい。お願いします。


フォームにTabStripを配置し、そのTabStripに
LoadでRichText(N)を配置します。で、
Tabstrip.Tabs.Add ' ' "xxx"
という感じでタブを増やすたびにRichText(N)も
Loadし増やすのですが、逆にタブを減らす時に
タブはRemoveで消せるのですがRichText(N)の
消し方が分かりません。Unload RichText(N)と
いうやり方をしたのですが閉じたN部分を再度
Loadするとエラーになってしまいます。何か良い
方法があったら教えて下さい。

No.1534 SQLって  投稿者:kon [00/9/28(木)20:27分]

はじめまして!

早速ですが、

VBでのSQl文の使い方を教えてください。

補足ですがMSaccessのシステムを移行しているのですが、
特に注意しなければならない点をご存じの方いらっしゃいますか?

No.1533 一定時間をしりたい  投稿者:とも [00/9/28(木)19:41分]

みなさまがたにはお手数をおかけいたします


現在時間の取得でいい方法がないかなやんでいます

Private Sub Command1_Click()
Text1.Text = Format(Time, "hh:mm:ss")
Timer1.Interval = 10000
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
If Timer1.Enabled = True Then
Timer1.Enabled = False
Else
Timer1.Enabled = True
Text2.Text = Format(Time, "hh:mm:ss")
End If
End Sub

Private Sub Timer1_Timer()
Text3.Text = Format(Time, "hh:mm:ss")
Timer1.Enabled = False
End Sub

で、ボタン1で今の時間を取得してボタン2でタイマーを一時停止させているわけなのですが
再度ボタン2を実行してTimerイベントを実行させようとすると
ボタン2で一度EnableをFalseにしてしまったためいままでの時間をクリアしてしまい
再度ボタン2を押したとこから10秒後にイベントがきてしまいます
これをどうにかして、前の時間をおぼえていて(たとえば5秒すぎたなら5秒) のこり(この場合なら5秒)後にイベントをおこそうとおもっているのですがいい方法はないのでしょうか

No.1532 指数表示  投稿者:アルマカン [00/9/28(木)15:22分]

みなさん、はじめまして。

例えばプログラムの計算式中で10e2と入力したとき
改行すると勝手に100となります。
計算結果もテキストボックスにsingle型で○○e5という
出力にさせたいのですが指数表示はされません。
10e5を期待したら100000が表示されます。
どなたか、テキストボックスへの出力時に指数表示
させる方法をご存知の方はご教授ください。

No.1531 RE:オブジェクトが消えない  投稿者:みゃお [00/9/28(木)15:19分]

あと、ここのWorksheetsの前

>Do While Worksheets("Qry_ForXls").Range("A" & CStr(i)) <> Empty

No.1530 RE:オブジェクトが消えない  投稿者:みゃお [00/9/28(木)15:17分]

ここのDestinationの後のにも付けました?

> '"Qry_ForXls"シートからWord差込印刷フィールド名を"Qry_MkWord"へコピー
> .Worksheets("Qry_ForXls").Range("A1:BL1").Copy _
> Destination:=Worksheets("Qry_MkWord").Range("A1:BL1")

No.1529 RE:オブジェクトが消えない  投稿者:匿名 [00/9/28(木)14:49分]

みゃおさんありがとうございます。

.を付けたのですが消えませんでした。
う〜ん、何ででしょう?

No.1528 VB2.0について  投稿者:あや [00/9/28(木)11:29分]

VB2.0を使ってフォームを作成したいのですが、プロパティの中にAppearanceがなく、

立体的なものを作ることができません。2.0にそのような機能はないのでしょうか?
あと、フォントサイズが24までしか無いのですが、それ以上大きな文字で作成することは出来ないのでしょうか

No.1527 Re:バイナリファイルについて  投稿者:ゆう(U) [00/9/28(木)7:40分]

ちなみに結合ですが・・・


順次Putしていけば、1つの変数に結合してから
Putするよりメモリは楽になります。

※1つのファイルサイズが小さいと、アクセス回数
 (Putでの)が多くなり速度低下が起きますが・・・

No.1526 Re:バイナリファイルについて  投稿者:ゆう(U) [00/9/27(水)22:14分]

バイト型配列をString型に代入すると、MidB・InStrBなど

B付きの関数が使用できます。
※逆も可能です
 strTemp = bytArray
bytArray = strTemp
 など・・・

動作確認してみてください。

サンプル)
FORZA さんのコードを、ちょっとだけ
アレンジしてみました。

Option Explicit
Private Const FD_SIZE As Long = 1457664 'FDのサイズ(512*2847)
Private Sub Command1_Click()
Dim InFile As String '元ファイル名
Dim OutFile As String '出力ファイル名(拡張子の前まで)
Dim InDisc As String '出力ファイル拡張子
Dim Seq As Long '出力ファイルシーケンスMax

InFile = "TEST\ORG.BMP"
OutFile = "TEST\TEST"
InDisc = "tmp"

MousePointer = vbHourglass
Seq = Fpart(InFile, InDisc, OutFile, FD_SIZE)
MousePointer = vbNormal
MsgBox "分割ファイル数 " & CStr(Seq + 1) & "個"
Command1.Tag = CStr(Seq)
End Sub
Private Sub Command2_Click()
Dim InFile As String '結合元ファイル名(シーケンスの前まで)
Dim OutFile As String '出力ファイル名
Dim InDisc As String '結合元ファイル拡張子
Dim Seq As Long '結合元ファイルシーケンスMax

InFile = "TEST\TEST"
OutFile = "TEST\TEST.BMP"
InDisc = "tmp"
Seq = CLng(Command1.Tag)

MousePointer = vbHourglass
Call Fcomb(InFile, InDisc, OutFile, Seq)
MousePointer = vbNormal

End Sub
Private Function Fpart(ByRef pInFile As String, _
ByRef pInDisc As String, _
ByRef pOutFile As String, _
ByVal pSize As Long) As Long
'====================================================================================
'分解
'====================================================================================
Dim BufOrg() As Byte '元ファイル用バッファー
Dim strBuffer As String '    〃
Dim BufTemp() As Byte '分割ファイル用バッファー
Dim OrgSize As Long '元ファイルのサイズ
Dim i As Long 'ループカウンター
Dim intFileNumber As Integer 'ファイル番号

'ファイル番号の取得
intFileNumber = FreeFile

'元ファイルの読込み
Open pInFile For Binary As #intFileNumber
OrgSize = LOF(intFileNumber)
ReDim BufOrg(0 To OrgSize - 1)
Get #intFileNumber, , BufOrg
Close #intFileNumber
strBuffer = BufOrg
Erase BufOrg

'分割ファイル作成保存
Do Until (i + 1) * pSize > OrgSize
'バッファーコピー
Erase BufTemp
BufTemp = MidB(strBuffer, i * pSize + 1, pSize)

'分割ファイル作成
Open pOutFile & Right$("000" & CStr(i), 3) & "." & pInDisc For Binary As #intFileNumber
Put #intFileNumber, , BufTemp
Close #intFileNumber

i = i + 1
Loop

'残り分割ファイル作成
If OrgSize > (i * pSize) Then
If i = 0 Then
MsgBox "分割の必要がありません。"
i = -1
Else
BufTemp = MidB(strBuffer, (i * pSize) + 1, OrgSize - (i * pSize))
Open pOutFile & Right$("000" & CStr(i), 3) & "." & pInDisc For Binary As #intFileNumber
Put #intFileNumber, , BufTemp
Close #intFileNumber
End If
End If

Fpart = i
End Function
Private Sub Fcomb(ByRef pInFile As String, _
ByRef pInDisc As String, _
ByRef pOutFile As String, _
ByVal pSeq As Long)
'====================================================================================
'結合
'====================================================================================
Dim strBuffer As String '出力ファイル用バッファー
Dim BufTemp() As Byte '結合元ファイル用バッファー
Dim strTemp As String ' 〃
Dim FileTemp As String '結合元ファイル名
Dim i As Long 'ループカウンター
Dim intFileNumber As Integer 'ファイル番号

intFileNumber = FreeFile
For i = 0 To pSeq
'元ファイル名の作成
FileTemp = pInFile & Right$("000" & CStr(i), 3) & "." & pInDisc

'元ファイル読込み
Open FileTemp For Binary As #intFileNumber
ReDim BufTemp(0 To LOF(intFileNumber) - 1)
Get #intFileNumber, , BufTemp
Close #intFileNumber
strTemp = BufTemp
Erase BufTemp

'バッファーコピー
strBuffer = strBuffer & strTemp
Next

'結合ファイル作成
BufTemp = strBuffer
Open pOutFile For Binary As #intFileNumber
Put #intFileNumber, , BufTemp
Close #intFileNumber
End Sub

No.1525 Re:オブジェクトが消えない・・・。  投稿者:みゃお [00/9/27(水)10:50分]

.Worksheets.Add Before:=Worksheets("Qry_ForXls"), Count:=1

の行で、Before:=のあとのWorksheetsの前にもピリオドを付ける。

No.1524 オブジェクトが消えない・・・。  投稿者:匿名 [00/9/26(火)18:17分]

以下のコードでオブジェクトが消えてくれません。

画面上にはエクセルを見せたくないので、裏で動かしていますが、
Quitしてもメモリ上に残ってしまいます。
どうしたらいいのでしょう?

Set XlsObj = CreateObject("EXCEl.Application")
With XlsObj
'"WrkFile.xls"OPEN
.Workbooks.Open FileName:=StrPath
With .Workbooks("WrkFile.xls")
'作業用のシートを追加し、名前を"Qry_MkWord"にする
.Worksheets.Add Before:=Worksheets("Qry_ForXls"), Count:=1
.Worksheets("Sheet1").Name = "Qry_MkWord"

'"Qry_ForXls"シートからWord差込印刷フィールド名を"Qry_MkWord"へコピー
.Worksheets("Qry_ForXls").Range("A1:BL1").Copy _
Destination:=Worksheets("Qry_MkWord").Range("A1:BL1")

'印刷データを6レコードづつペアで"Qry_MkWord"へコピー
i = 2
ii = 2
Do While Worksheets("Qry_ForXls").Range("A" & CStr(i)) <> Empty
.Worksheets("Qry_ForXls").Range("A" & CStr(i) & ":BL" & CStr(i + rec)).Copy
For j = 0 To 1
.Worksheets("Qry_ForXls").Paste Destination:= _
.Worksheets("Qry_MkWord").Range("A" & CStr(ii) & ":BL" & CStr(ii + rec))
ii = ii + rec + 1
Next j
i = i + rec + 1
Loop
.Save 'savechanges:=True
.Close
End With
.Quit
End With

Set XlsObj = Nothing

No.1523 Sendkeys  投稿者:ShuGo [00/9/26(火)15:28分]

VBスクリプトでSendKeysは使えないのでしょうか?

VBスクリプトにてEnterキーを押した時、textboxの
TAB移動を試みているのですがうまくいきません。
どなたかご存知ならばぜひ教えてください。
よろしくお願いします。

No.1522 RE:Format  投稿者:匿名 [00/9/25(月)13:06分]

すみません。

書き忘れです。
DBはAccess2000
VB6.0
OS Win2000です。

No.1521 RE:Format関数  投稿者:匿名 [00/9/25(月)12:03分]

花チャンさんありがとうございました。

ところで追加なんですが。
$をつけないFormat関数で日付の書式を決め、その値をDBの日付型に登録する際
DBにおこられないんですが。
これはVBが勝手に日付型に変えてるんでしょうか?
普通ならストリングの値を日付型に入れると怒られちゃいますよね。
何ででしょう。

No.1520 oo4oの更新・追加  投稿者:saya [00/9/25(月)9:51分]

はじめましてsayaです。

oo4oをつかってアプリケーションを作っているのですが、
SELECT文は美味く動作しているのですがUPDATEとINSERTがうまく行きません。 カーソルがセットされていませんと出てしまいます。
恥ずかしながら、コードを載せてみます。


dim strSQL as string

strSQL = "UPDATE テーブル名 SET 列名='ほげほげ' "
W_log (vbCrLf & "***日付=" & Date & " 時間=" & Time & " 事業名SQL***" & vbCrLf & strSQL)
Set oraDb = GoraDB.CreateDynaset(strSQL, 0&)


No.1519 ありがとうございます  投稿者:Re:バイナリファイルについて [00/9/22(金)17:42分]

FORZAさん ありがとうございます

わざわざ 作っていただいてほんとに感謝してます
わかりやすく REM文がたくさん書いてあったのですぐ理解できました

ほんとうに ありがとうございました

No.1518 グリッドコントロールについて  投稿者:chie [00/9/22(金)11:29分]

はじめまして。

現在、VB6.0(SP4)で開発を行っています。

グリッドコントロールで下記A.B.Cのような仕様を実現したいと考えています。
(現在は、MSHFlexGrid Control6.0(SP4)を使用)

A.複数行を1レコードとして認識し、表示や選択を行いたい。
B.集計用のキーを設け、キー毎に数量、金額などのSubtotal行を表示したい。
C.セル単位でのプロパティ設定を行いたい。(フォントの色指定、表示位置設定など)

実現可能なコンポーネント、設定方法などご存知でしたら教えてください。
よろしくお願いいたします。

No.1517 RE:拡張コンボボックスについて    投稿者:今回匿名 [00/9/22(金)0:37分]

> 1度目はテキストボックスとコマンドボタンとリストボックスを組み合わせて作成したのですが

> リスト部分がフォームの領域から外へは表示できませんでした。
リストボックスの親に、ポップアップウィンドウを作成するのは如何ですか? でも、面倒ですね。

> 2度目は標準コンボのリスト部分の横幅をAPIを使って広げたのですが、コンボのテキスト部分に
> コードだけを表示することが出来ませんでした。
例えば、コンボボックスのエデットボックス上に、別のテキストボックスを被せる。
というのは、ダメですか? この方が簡単と思います。

No.1516 csvファイルの読み込みについて  投稿者:きょうごく [00/9/21(木)23:23分]

はじめまして

VB6.0超初心者です。
csvファイルを取り込んで変数に格納したいのですが、
csvファイルのデータに改行や"が含まれています。
どのようにすれば良いのでしょうか?
できればその行は読み飛ばすといったロジックと
読み飛ばした行を知らせる方法があれば教えてください。
お願いします。

No.1515 Re:バイナリファイルについて  投稿者:FORZA [00/9/21(木)21:14分]

「&」というのは文字列の連結を行う演算子です。

(文字列以外に使用した場合、内部処理形式が文字列型のバリアント型に変換されます)
Left関数も同様文字列型の変数にしか使用できません。
この場合、ループでまわしながら

a(m) = b(n)

という風にやるしかないかと思います。
ちょっと漠然して分かりにくいと思います。
自分も勉強がてら、簡単な分割・結合ソフトのサンプルを作ってみましたので
参考までに解析してみて下さい。
http://homes.acmecity.com/youvegotmail/west93rd/289/Binary.lzh

何分自分も未熟者ですので
なにかおかしい点とかあったら指摘して下さい。

No.1514 改行が入っている文字列の印刷  投稿者:どるふぃん [00/9/21(木)18:27分]

こんにちわ。

PrintメソッドでTEXTBOXの内容を印刷したいのですが、
TEXTBOXを複数行入力できるようにすると、
印刷したときに2行目以降の文字列は勝手に印刷時も改行されるてしまいます。
しかも印刷用紙の一番端から印刷されるため、
せっかく苦労して考えたレイアウトにあわせて印刷ができません。
TEXTBOXの内容を変数に代入し、変数の中の改行コードがどこにあるか調べ、
一行一行印刷位置を調節したいのですが、
どなたか良い方法をご存知の方はいらっしゃいませんか?

(現在こんな形になってます)
a = TEXT1.TEXT

Printer.CurrentY = 40
Printer.CurrentX = 30
Printer.Print a

(印刷するとこんな形です)
      あいうえお
かきくけこさしすせそ
たちつてと

どうぞ宜しくお願いします。



No.1513 タイムスタンプの変更について  投稿者:ヒーター [00/9/21(木)10:20分]

はじめまして。こんにちは。

早速ですが教えて頂きたいことがあります。
VBでファイルのタイムスタンプの書き換えは出来るのでしょうか?
私はまだVBを所有しておりませんが、どうしてもやってみたい事がありまして
これから勉強していこうと考えています。
その際、ファイルの作成日や更新日の書き換えをVBで出来るのかを
知りたいと思いまして、質問させていただきました。
どなたか教えて頂けないでしょうか?
よろしくお願いします。

No.1512 RE:Format関数  投稿者:花ちゃん [00/9/21(木)9:03分]

Format() はバリアント型を返すし、Format$()は文字列型を返します。

その他、文字列を扱う関数には、$をつけた方がメモリ消費も少なく高速に処理できます。
詳しくは ここの プログラムの最適化・変数関係等を見て下さい。

No.1511 エディターを作成しようとしているんですが・・・  投稿者:匿名 [00/9/20(水)22:41分]

初めまして、いつも参考にさせていただいています。

エディターを作製するに際しての質問ですが
・リッチテキストボックスを組み込んで、
エディターを作成しようとしているんですが、
いろいろな方の作製したソフトを見るとよく
環境設定等で行間や文字間を細かく設定できるソフトを見かけます。
リッチテキストボックス、visualbasicを使用して
このような細かい設定をすることは可能でしょうか?
・また、改行やタブを可視にして表示しているソフトがありますが
これは具体的にどういったやり方で行っているのでしょうか?
もし、わかる方がいましたら教えてください。
未熟者に教えてください。

No.1510 Format関数  投稿者:匿名 [00/9/20(水)21:25分]

Format関数に'$'をつけるとなにが変わるんですか?

No.1509 Re:バイナリファイルについて  投稿者:練り山葵 [00/9/20(水)20:04分]

FORZAさん わかりやすい説明ありがとうございます

おかげで、その問題については解決できました

しかし、実は私ファイルの分割結合ソフトを作ろうと思っているのですが、ファイルを結合するときに
a = a & b '(ただしa,bはByte型)
とするとエラーが出てしまいます。
この "&" というのは文字列でしか使えないものなのでしょうか?

また、ファイルを1.44MBだけとると言うときに
a=left$(a,1.44*1024^2) '(ただしaはByte型)
としてもエラーが出てしまいます

どなたかひとつでも良いので教えてください。
お願いします

No.1508 Re:バイナリファイルについて  投稿者:FORZA [00/9/19(火)23:46分]

    Dim Temp As String


Dim Temp() As Byte


Temp = String(BFSize, " ")

Redim Temp(0 To BFSize - 1)

としてみましょう。
あとはそのままでOKです。
Redimで「0 To」としたのはベースを変更していてもいいようにです。
普通なら(BFSize - 1)だけでいいと思います。

Stringを使うとなぜファイルサイズが大きくなるかと言うと、
Stringだと文字数でとってしまいます。
だからSift-Jisのテキストとかだと全角文字が入っているとその分最後にスペースが余ってしまいます。
さらに、テキスト以外だとまともに読めません。
(テキストでも、例えばUNIXファイルのように文字コードEUC、改行コードLFだと文字化けしてしまいます。)
以上のような理由からバイナリで読書きする時はバイト型変数の配列を使うのがいいかと思います。

No.1507 バイナリファイルについて  投稿者:練り山葵 [00/9/19(火)19:23分]

バイナリ的にファイルを全て読み込むときに


Dim BFPath As String
Dim BFSize As Long
Dim AFPath As String
Dim Temp As String

BFPath = "c:\windows\デスクトップ\test.doc"
BFSize = FileLen(BFPath)
Temp = String(BFSize, " ")

Open BFPath For Binary As #1
Get #1, 1, Temp
Close #1

という風にしたのですが、何故かファイルサイズが大きくなってしまいます。
何故こうなってしまうのでしょうか?

わかる方 どうか教えてください。

No.1506 グラフタイトルを記入したい  投稿者:リカッチョ [00/9/19(火)16:23分]

「ExcelをVBから操作する」というサンプルプログラムがありますが、

同じような感じでExcelのグラグタイトルの記入をVBからしたいのですが、
どういう命令になるのでしょうか?

No.1505 拡張コンボボックスについて  投稿者:はすきー [00/9/19(火)15:18分]

拡張コンボボックスを探しています。

どのような事がしたいかと言うと、テキスト部分にはコードのみ入力。
リスト部分は”コード | 名称 ”のように表示したいのです。
何度か自分でユーザーコントロールを作成したのですがうまく行きません。
1度目はテキストボックスとコマンドボタンとリストボックスを組み合わせて作成したのですが
リスト部分がフォームの領域から外へは表示できませんでした。
標準のコンボボックスなどではフォームの外までリスト部分が表示されますよね。
2度目は標準コンボのリスト部分の横幅をAPIを使って広げたのですが、コンボのテキスト部分に
コードだけを表示することが出来ませんでした。(Clickイベントで自分自身の内容を編集してコード部分
だけを表示したらListIndexが-1になってしまいました)
市販されているコントロールでもいいですし、うまく自作できる方法でもいいので
どなたか教えて頂けないでしょうか??

No.1504 ブックマークのDBへの保存と読込み  投稿者:匿名 [00/9/19(火)9:51分]

ADODCとDataGridを使ってテーブルの中身を画面に表示しています。

DataGridをクリックした時そのレコードのブックマークをテーブルに保存し、
次回以降DataGridのカレントレコードがそのレコードになるようにしたいの
ですが、テーブルから登録されたブックマークを読み込むさいに
データ型が違うか何かの原因でエラーになります。(テーブルから読み込まないで、
実行中にブックマークを参照するとエラーは出ません。)
エラーメッセージは→・・・実行時エラー '3001'引数が間違った型、または許容範囲外
であるか、競合しています。・・・です。
ちなみにデータベースはAccess2000を使用し、ブックマークの登録先フィールドの
データ型はテキスト型です。読み込む際にはバリアント型に変換しブックマークを
参照しています。
どなたか解決策をご存知ならお願いします。

OS Win2000 , VB6.0 , Access2000

No.1503 どうもありがとうございます。  投稿者:のんの [00/9/19(火)9:42分]

早速試して、ちゃんとできるようになりました。

どうもありがとうございました。

また、お世話になることもありますので
そのときはどうぞよろしくお願い致します。

No.1502 RE:ブックの再表示  投稿者:花ちゃん [00/9/18(月)20:39分]

    保存する時に次の1行を追加してみては!

objExcelApp.Windows(1).Visible = True

No.1501 ブックの再表示  投稿者:のんの [00/9/18(月)17:05分]

はじめまして。

VB6のOLEオートメーションを使用して、Excelを操作しております。
ブックをSaveし、手動でそのブックを表示しようとすると
【ウィンドウ】−【再表示】を行わなければなりません。
これを防ぐにはどうしたらよいでしょうか?

どなたかお教えください。
よろしくお願いいたします。

前のログ 次のログ


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0