前のログ | 次のログ |
No.1750 MSFlexGridの入力キーについて 投稿者:People [00/12/22(金)7:59分]
花ちゃんの”MSFlexGrid関係のセルに直接データを入力する(エクセルのように)”を利用させて頂いてます
そこで、値の入ったセルをDeleteキーで削除したいのですが、Deleteキーは認識してくれません。
また、BackSpaceキーではOKなのですけど..MSFlexGrid自体で使えるキーが決まっているのでしょうか?
できれば、Deleteキーで操作したいのですが..教えて下さい。
No.1749メール送信について 投稿者:石原 [00/12/22(金)6:10分] http://www.age.ne.jp/x/kazu
始めまして、VB6でメールを送信する部分が
分からずどうすればよいのか教えてほしいので
すが条件は下記のとうりです。
・TEXTBOXにアドレスと添付ファイル名を入力。
・Outlook Express を利用しない。
・本文は入力せず添付ファイルだけを送信する。
MAPIを使用したらよいのでしょうか?
いろいろ調べたのですが分かりませんどなたか
教えていただけませんか。
宜しくお願いします。
No.1748 RE:データレポート 投稿者:ゆー太郎 [00/12/21(木)18:12分]
DataReportは「標準のプリンター」の設定に準拠するので、
標準のプリンターの用紙サイズを変更すれば良いですよ。
No.1747 データレポート 投稿者:ナオミ [00/12/20(水)9:59分]
現在データレポートの使い方で悩んでいます。
印刷Viewの画面をデータレポートで作成中なのですが、実行させてみると
レポートの幅が用紙のサイズより大きく指定されています。となり、表示
してくれません。
私の作成したレポートは、横長なので実行画面の用紙の向きを横にすれば、
可能だと思うのですが、そのような設定をすることができますか?
どなたか教えていただけますでしょうか。
よろしくおねがいします。
No.1746 Re:ドラッグ&ドロップの手法について ゆうさんへ 投稿者:Soya [00/12/20(水)9:55分]
回答 ありがとうございました。
あのAPIは ちゃんと動作しました。
後は 私がどのように使うか?です。
悪戦苦闘、思考錯誤 してみます。
ありがとうございました。
No.1745 IISのログについて 投稿者:やん [00/12/19(火)15:02分]
○期間別ログファイルの取り込みついて現在プログラムの設計を行っておりますが
どんな風にすればうまく取れるのかいまいちわかりません。
良い方法がありましたらどうか教えてください。
<新規ログ期間>
条件
・ファイルを区別すること。
・ログ期間は、毎日、毎週、毎月、ファイルサイズ限定する、しないの5パターンがある。
・パターンによって、ファイル名の付き方が異なる。
毎日:ex001219.log(exyymmdd.log)
毎週:ex001204.log(exyymmww.log)?なぜか年間の週目で取られていない。
毎月:ex0012.log(exyymm.log)
ファイルサイズ限定なし(extend1.log)
ファイルサイズ限定あり(extend1.log、extend2.log・・)
方法
1、ログファイル名からどの期間設定でのファイルなのかを区別して取り込む。
先頭2文字がex(W3C Extendファイルです)であり、3文字目が数値からはじまり、
3文字目から拡張子のピリオド前までを切り抜き、存在する日付かどうか調べる等。
・・・処理に時間がかかりそうです。
2、あらかじめ定義ファイルに取り込むファイル名を登録し区別して取り込む。
例えば、最初に定義ファイルにex001218.logと登録します。次回からは、
ex001218.logで取り込まなかったデータかもしくは、次のファイルex001219.log
を取り込むようになり、毎日形式のファイルを取り込むだけになります。
途中で期間ファイルの設定を変えても、定義ファイルの取り込みファイル名を
変更するだけで済むと思われる。
3、ログ期間の設定が毎日だったら、毎日のみと限定し他の期間でのファイルは
取り込まないように区別して取り込む。(exyymmdd.logファイルのみ有効)
これは、プログラム上で設定するのではなくIISのログ設定時に既に設定する
方法で、内容的には2と同じなんですが2の場合は、途中で期間を変更された
場合ログの取り込みがおかしくなる可能性が高いです。
ログを毎日を行っていて、途中で毎週に変更した時に毎日で作成されたファイルに
追記されていました。
12月3日ex001203.log <= 12月15日ex001203.log(3週目)
他にもっといい方法、もしくは今回の方法で問題点を指摘くださると嬉しいです。
どうかよろしくお願いします。
No.1744 Re:セットアッププログラム実行後壁紙の設定が変更される 投稿者:ゆう(U) [00/12/19(火)10:12分]
私には分かりませんが・・・
環境をOS以外にも再度詳しく調査してみてはいかが?
Win95にも初期・A・Bがあったような・・・
IEのバージョン等も(VB6ならIE4以上でしたっけ?)・・・
デスクトップカスタマイズツールや常駐ものとか・・・
「ディストリビューション ウィザード 」ということはVB6.0
ですか?
開発時のOSもWin95ですか?
最新のSPを充ててますか?
MSのサポート技術情報等で何か情報が無いかも確認してみては
いかがでしょうか?
No.1743 セットアッププログラム実行後壁紙の設定が変更される 投稿者:匿名 [00/12/19(火)0:37分]
ディストリビューションウィザードで作成したセットアッププログラムをユーザーの
全国の支店に配布しました。(全端末OSはWindows95)インストール後再起動する
と、一部の端末で以下の事象が起き、クレームがきて困っています。
元々設定していた壁紙が変更されていた。
壁紙を再設定して再起動しても壁紙の設定が元に戻らない。
アプリケーションの追加と削除で削除してもだめ。
明日以降、端末の環境などを調査(といっても電話orメール)しようと思っている
のですが、すでに疑いの声(悪意でやっている)もでており気が重いです。壁紙なん
てどうでもいいのに…
過去にこのような事象に遭遇された方や、原因、解決方法など何でもいいので思いつ
くことがある方、助けてください。
No.1742 CommonDialog表示後、Shell関数を正常に動かす方法? 投稿者:匿名 [00/12/18(月)16:10分]
[OSのVer]Windows95
[VBのVer]5.0
VB 5.0のプログラム内部で、
ファイルの種類 = mga(いま作成中のシステムでのみ使用するファイル)
保存先 = C:\my documents
を指定して、「ファイルを開く」ダイアログ表示させ、[開く]または[キャンセル]ボタン
押下後、Shell関数でVC++ 5.0のEXEをコールすると、「プロシージャの呼び出し、
または引数が不正です」というエラーが出てしまいます。
・引数に誤りがないことは確認しました。
・VC++以外のEXEは、うまく起動されます。
・ファイルの種類や保存先を指定しないと、VC++のEXEもうまく起動されます。
・OCXはMicrosfot Common Dialog Control 5.0 (SP2)を使いました。
・API関数を使ってCommonDiaolgをコールしても、上記のようなエラーになってしまいました。
・自前でファイルを開くダイアログを作成しても、同じく上記のようなエラーが起きました。
前提条件としては、
1.クライアントマシンには、VBはインストールしない。
2.プログラムサーバーにEXEをおき、ネットワークドライブを割り当てて、 クライアントからサーバーのEXEを起動する。
3.dllは、EXEと同一フォルダー下におく。
4.インストーラーで、EXE等を各マシンにセットアップすることはしない。
Common Dialogを使い、ファイルの種類や保存先を指定して、 正常に動かす方法を知っていたら、教えていただきたいのですが・・・
No.1741 Win2000のフォント 投稿者:VAN [00/12/18(月)14:04分]
下の方で書込みしました
Win2000でフォントがずれるってやつですが
Win2000のSP1をあてることによりフィックスされておりました
お騒がせしました
No.1740 Re:タイトルバー 投稿者:FORZA [00/12/18(月)13:11分]
サブクラス化、フックといった手法を用いれば可能です。
が、ここで簡単に説明するにはちょっと複雑なやり方です。<私自身100%は理解してないもんで・・・。
文化オリエントの「SpyWorksPro」という製品が手に入るのであれば、
付属のサンプルにVBだけでそれを実現しているものがあります。
必要であればそのサンプルから抜粋してソースを送りますので、<メールにて
自身で解析してみてください。
No.1739 Re: エクセルの範囲削除?? 投稿者:みゃお [00/12/18(月)11:52分]
内容が無くなっただけでは、EXCELの「最後のセル」の認識は変化しません。手作業で試しても同じはずです。
行削除を行ってください。
No.1738 Re:ドラッグ&ドロップの手法について 投稿者:ゆう(U) [00/12/16(土)14:11分]
> Form上のコントロールAをドラッグ&ドロップで任意の場所に移動させようとしています。
単に移動だけなら、この方法が簡単です。
※「hWnd プロパティ」を持つコントロールのみ
標準モジュール
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByRef lParam As Any) As Long
Public Sub sMoveObj(ByVal myhWnd As Long)
Const HTCAPTION = 2&
Const WM_NCLBUTTONDOWN = &HA1&
Dim lngResult As Long
lngResult = ReleaseCapture
lngResult = SendMessage(myhWnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&)
End Sub
Formモジュール
Private Sub ControlA_MouseDown(…)'引数内省略
If Button And vbLeftButton = vbLeftButton Then
Call sMoveObj(ControlA.hWnd)
End If
End Sub
> Formの画像の取得し なにかしらのコントロールに張り付ける方法を知りませんか?
フォーム画像のコピー等なら・・・
DCを取得して、BitBlt等で表示画像を取得できます。
標準モジュール
Private Declare Function BitBlt Lib "gdi32" _
(ByVal hDestDC As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
Private Declare Function GetWindowDC Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hWnd As Long, _
ByVal hDC As Long) As Long
Public Sub sWindowHardCopy(ByVal myControl As Object, _
ByVal OwnerObject As Object)
Const SRCCOPY = &HCC0020
Dim intScaleMode As Integer
Dim blnAutoRedraw As Boolean
Dim myDC As Long
Dim lngResult As Long
Dim lngLeft As Long, lngTop As Long
Dim lngWidth As Long, lngHeight As Long
Dim frmParent As Form
With myControl
myDC = GetWindowDC(.hWnd)
If TypeOf myControl Is Form Then
Set frmParent = myControl
ElseIf TypeOf myControl.Parent Is Form Then
Set frmParent = myControl.Parent
End If
With frmParent
intScaleMode = .ScaleMode
.ScaleMode = vbPixels
End With
lngLeft = .Left
lngTop = .Top
lngWidth = .Width
lngHeight = .Height
With OwnerObject
blnAutoRedraw = .AutoRedraw
.AutoRedraw = True
If TypeOf OwnerObject Is PictureBox Then
lngResult = BitBlt(.hDC, 0&, 0&, lngWidth, lngHeight, myDC, 0&, 0&, SRCCOPY)
Else
lngResult = BitBlt(.hDC, lngLeft, lngTop, lngWidth, lngHeight, myDC, 0&, 0&, SRCCOPY)
End If
.AutoRedraw = blnAutoRedraw
.Refresh
End With
With frmParent
.ScaleMode = intScaleMode
End With
lngResult = ReleaseDC(.hWnd, myDC)
End With
End Sub
Formモジュール
Private Sub Form_Click()
With Picture1
.AutoRedraw = True
.BorderStyle = vbBSNone
.ZOrder vbBringToFront
End With
With Me
Picture1.Move .ScaleLeft, .ScaleTop, .ScaleWidth, .ScaleHeight
End With
Call sWindowHardCopy(Me, Picture1)
End Sub
Private Sub Picture1_Click()
MsgBox "Picture1"
End Sub
ただ、このままでは若干問題(期待するものとちょっと異なる)が
おきますので・・・
※どんな現象は確かめて見て下さい
別のピクチャーボックスをコンテナーにして全てのコントロールを
載せて、その画像をコピーする感じにするとOKです。
※ソースを改善して余計な部分はコピーしない様に
する方が良いかもね
●コンボボックス
> > タブン期待する動作とは異なると思いますが・・・
やはり、ヨミ通りでしたね
> 試してみましたがCombBoxの縦はできませんでした。
期待していたのはソコでしょうね。
標準コンボボックスでのリスト部分を実行時に変更したいとか、
ドロップダウンリストの高さを変えたい等に応用できるかな?
って感じですね。
※サンプルとしては MoveWindow の方が良かったかも
ちなみに、幅はCB_SETDROPPEDWIDTHで可能です
標準モジュール となっているソースは私の仕様(環境)で
使用する分ではエラーは発生しませんが、十分にコードを
検証してから、動作確認をして御使用下さい。
No.1737 Re:コンボボックス ゆう(U)さんへ 投稿者:Soya [00/12/16(土)12:03分]
>APIを使うと・・・
>いろんなStyleで動作確認して見て下さい。
>Private Declare Function SetWindowPos Lib "user32" _
> (ByVal hWnd As Long, _
> ByVal hWndInsertAfter As Long, _
> ByVal X As Long, ByVal Y As Long, _
> ByVal cx As Long, ByVal cy As Long, _
> ByVal wFlags As Long) As Long
ご回答 ありがとうございます。
試してみましたがCombBoxの縦はできませんでした。
横は変えられるんですけどね。
TextBox,ListBox等のコントロールはOKでした。
No.1736 ドラッグ&ドロップの手法について 投稿者:Soya [00/12/16(土)11:56分]
ドラッグ&ドロップの手法について
Form上のコントロールAをドラッグ&ドロップで任意の場所に移動させようとしています。
Form上には他のコントロールも有るので そのすべてのコントロールの
ドラッグドロップイベントに 移動させるためのソースを書かねばなりません。
そこで 思いついたのが ドラッグ&ドロップ時に
FormいっぱいのコントロールBを前面に表示すれば
コントロールBのドラッグドロップイベントに書けば済みます。
・・・で 透明なコントロールを捜すと ラベルとイメージが有ったのですが
このコントロールは前面には出てくれません。
透明で前面に出るコントロールを知りませんか?
他の手段として
FormいっぱいのコントロールBに 元のFormの画像を張り付けられれば
同じ効果がえられるのですが
Formの画像の取得し なにかしらのコントロールに張り付ける方法を知りませんか?
No.1735 RE:タイトルバー 投稿者:abe [00/12/15(金)17:37分]
>abeさん
>返答ありがとうございます!
>No.1340を読み理解したのですが,タイトルバーの場合使えないんじゃないんでしょうか?
確かにですね!!
すみません。ちからになれなくて・・・。
No.1734 Re:Re:度数→ラジアン値変換について「お礼」 投稿者:IMR@かごしま [00/12/15(金)17:32分]
ゆう(U)さんありがとうございました。
期待通りの結果が出ました。
丸めするしないで結果が違っていたようです。
本当にありがとうござました。
No.1733 Re:度数→ラジアン値変換について 投稿者:ゆう(U) [00/12/15(金)15:25分]
> '円周率を出す
> PAI = 4 * ANT(1)
> '度数→ラジアンに変換
> KAKUDO = 90
> COS_KAKUDO = KAKUDO * PAI / 180
> SIN_KAKUDO = KAKUDO * PAI / 180
> COSDATA = COS(COS_KAKUDO)
> SINDATA = SIN(SIN_KAKUDO)
宣言をどの様にしているか不明ですが、特に問題に
なりそうな感じではないですね。
私はどちらかというと・・・
(度数(°)/180)×π
の方が気分的に好きですね。
> SINDATA = 1
> COSDATA = 0
> になりません。
微妙な誤差が出るものとして考えた方が良いです。
Private Sub Command1_Click()
Dim i As Long
For i = 0 To 8
Debug.Print Format(i / 4, "#0.00") & "π"
Debug.Print "Sin=" & Format$(Sin(i * Atn(1)), "#,0.000"), Sin(i * Atn(1))
Debug.Print "Cos=" & Format$(Cos(i * Atn(1)), "#,0.000"), Cos(i * Atn(1))
Next
End Sub
No.1732 度数→ラジアン値変換について 投稿者:IMR@かごしま [00/12/15(金)15:05分]
はじめまして。
VB初心者友の会の方にも投稿させていただいているのですが
現在困っているのですが、
どなたか度数をラジアン値に変換する方法をご存知の方
いらっしゃいませんか?
いろいろ調べて
'円周率を出す
PAI = 4 * ANT(1)
'度数→ラジアンに変換
KAKUDO = 90
COS_KAKUDO = KAKUDO * PAI / 180
SIN_KAKUDO = KAKUDO * PAI / 180
COSDATA = COS(COS_KAKUDO)
SINDATA = SIN(SIN_KAKUDO)
の場合、
SINDATA = 1
COSDATA = 0
になりません。
その他の角度の場合もなのですが期待した値になってくれません。
多分、度数→ラジアン値の変換が間違っていると思うのですが、
よくわかりません。
どなたかよろしくお願いします。
No.1731 エクセルの範囲削除?? 投稿者:匿名 [00/12/15(金)12:02分]
VBでエクセルファイルを扱いたいたくて、VBレスキューを参考にいろいろやっています。
で、指定行のセルの内容のみ(行削除ではないです)を削除したいのですが
With objExcelApp.Worksheets(strExcelSheet)
.Rows(2).Cells = ""
.Rows(3).Cells = ""
End With
とすると、確かにセル内はなにも無くなってるようなのですが、行数をチェックすると ちゃんとあるように認識してしまいます。
つまり3行ある場合、上記なら、2行目と3行目の内容が無くなるので、 1行だけになるはずなのですが・・・
なぜですか?
どなたか教えていただけますか?
No.1730 Re:コンボボックス 投稿者:ゆう(U) [00/12/14(木)18:28分]
> コンボボックスの縦の大きさはフォントサイズを変更するしかないと思います。
> 方法があったら私も知りたいです。
タブン期待する動作とは異なると思いますが・・・
APIを使うと・・・
いろんなStyleで動作確認して見て下さい。
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Sub Command1_Click()
Const SWP_NOMOVE = &H2&
Const SWP_NOZORDER = &H4&
Const SWP_FRAMECHANGED = &H20&
Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Dim lngResult As Long
lngResult = SetWindowPos(Combo1.hWnd, 0&, 0&, 0&, _
100, 200, _
SWP_DRAWFRAME Or _
SWP_NOZORDER Or _
SWP_NOMOVE)
End Sub
※サイズ(100,200)はお好みで・・・
No.1729 RE:タイトルバー 投稿者:青井 [00/12/14(木)17:15分]
>abeさん
返答ありがとうございます!
No.1340を読み理解したのですが,タイトルバーの場合使えないんじゃないんでしょうか?
No.1728 Winsock(ウィンソケット)の切断と再接続の方法 投稿者:Soya [00/12/14(木)9:06分]
ウィンソケットを使用して2つのパソコン間で
文字を送受信する簡単なプログラムを作っています。
切断し再接続を行うと'アドレスが使用されています'のエラーが発生します。
どうすれば良いんでしょう???
接続の仕方はHelpにも有るのですが
切断と再接続に付いては見つけられませんでした。
よろしくお願いします。
クライアント側は以下の手順で実行しています。
ウィンソケットの設定をし
Winsock.RemoteHost = "xxx.xxx.xxx.xxx" '接続先 IP アドレス
Winsock.RemotePort = 1001
接続して
Winsock.Connect
送信、受信などを行って
Winsock.SendData Send_Text.Text
Winsock.GetData strData
切断する
Winsock.Close
ここまではうまく動いていますが・・・
クローズを確認して
if Winsock.State=sckClosed then.....
再び接続すると
Winsock.Connect
'アドレスが使用されています'のエラーが発生する。
どうすれば良いんでしょう???
No.1727 RE:構造体メンバー 投稿者: みか [00/12/13(水)21:48分]
Soyaさんありがとうございます。
2番目の方法でやります。
No.1726 RE:タイトルバー 投稿者:abe [00/12/13(水)13:50分]
No.1340 のを利用するのはだめですか?
No.1725 ディストリビュションウィザードについて 投稿者:ishi [00/12/13(水)13:38分]
みなさんこんにちは!!
ディストリビュションウィザードで作成したセットアップCDで
インストールを行ったところ”MSJET40.DLL”のコピー中に
以下のメッセージが表示されました。
「システムにある一部のシステムファイルが最新でないのでセットアップを続行できません。
セットアップでこれらのファイルを更新してもよい場合は[OK]をクリックして下さい・・・・・」
OKボタンをクリック後、以下のメッセージが表示されセットアップは終わってしまいました。
C:\WINDOWS\TEMP\******.TMP(*はセットアップする度に変わります。)セットアップ元の
ファイルが読み込めません。
このファイルは組み込めませんでした。
インストール先の端末にはVB、オフィスが入っていません。
”MSJET40.DLL”をセットアップ前に検索したところどこにも見あたりません。
ただセットアップ失敗後レジストリ内で”MSJET40.DLL”を検索してみると
CHKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Explorer\Doc Find Spec MRU内に
a ""
b "rbtf101.tmp"
c "MSJET40.DLL"
d "mm"
MRUList "cdab"
が存在しました。
レジストリ内の"MSJET40.DLL"を消していいものなのかわかりませんし、
どこがいけなくてセットアップが出来ないのかもわかりません。
もしかしてインストールを行う端末自体が悪いのかもしれませんし・・・。
どなたか何か気づきましたら何でもいいんで教えていただけないでしょうか。
よろしくお願いします。
*Dao360.dllを使用するには"MSJET40.DLL"は必要ですよね?
環境 Windows98、vb6.0+SP3、Access2000
No.1724 タイトルバー 投稿者:青井 [00/12/13(水)12:32分]
タイトルバーを右クリックしたときに現れるメニューに項目を追加することは可能ですか?
よろしくお願いします。
No.1723 RE:構造体メンバー 投稿者:Soya [00/12/13(水)11:25分]
私の下記の様にしています。
1,TAB区切りであっても各フィールドのバイト数が決まっている 場合
2,TAB区切りであって 各フィールドのバイト数が決まっていない場合
の2通りの場合が有ると思います。
まず1のバイと数が決まっている場合
バイト数が固定なんだから
TABとCRLFを含んだ構造体を宣言し一気に取っしまおう・・・と言う手法
宣言部--------------
Private Type text_type
Name As String * 10 'Field1のデータ
tab1 As String * 1 'Tabコード
Adress As String * 10
tab2 As String * 1
Tel As String * 10
Crlf As String * 2 '改行コード
End Type
Private FieldData As text_type
読込部--------------
Dim FileName As String
Dim FileNo As Integer
Dim i As long
Dim RCount As long
FileName = "Book1.txt"
FileNo = FreeFile
Open FileName For Random As FileNo Len = Len(FieldData)
RCount = LOF(FileNo) / Len(FieldData)
For i = 1 To RCount
Get #FileNo, i, FieldData
Debug.Print "["; FieldData.Name; "]"
Debug.Print "["; FieldData.Adrees; "]"
Debug.Print "["; FieldData.Tel; "]"
Next i
Close FileNo
この方法の注意点(32Bit版の時?)
ファイルを読み込む時の10バイトとは 半角のバイト数を示します
'漢字'というデータは String * 4 と宣言しなければなりません。
しかしデータを取ってみると'漢字__'と入ってしまいます
と全角は1バイトとして扱われ残り2バイトにスペースが入れられます。
次に2のバイト数が決まっていない場合
Instr関数で最初のTABの位置を調査し Left関数でその位置の手前までを取得、これがデータ。
次にMid関数で取得したデータの次のデータ位置をセット。
これをTABがなくなるまで繰り返し1つづつフィールドのデータを取得する
最後に残ったのが最後のフィールドのデータ・・・という手法です。
読込部--------------
Dim FileName As String
Dim FileNo As Integer
Dim Buff As String
Dim Cu As integer
FileName = "Book1.txt"
FileNo = FreeFile
Open FileName For Random As FileNo 'ファィルがなかった場合の対処
Close FileNo '
Open FileName For Input As FileNo
Do While (EOF(FileNo) = False)
'1レコード読込
Line Input #FileNo, Buff
Cu = 0
Do While (InStr(Buff, vbTab))
Cu = Cu + 1
Select Case Cu
Case 1 'Field1のデータ
Debug.Print "Name="; Left(Buff, InStr(Buff, vbTab) - 1)
Case 2 'Field2のデータ
Debug.Print "Adress="; Left(Buff, InStr(Buff, vbTab) - 1)
End Select
'次
Buff = Mid(Buff, InStr(Buff, vbTab) + 1)
Loop
'最後のFieldのデータ
Debug.Print "Tel="; Buff
Loop
Close FileNo
------------------------------------
投稿が6:45
お仕事ですか?がんばってください。
No.1722 RE:コンボボックス 投稿者:Soya [00/12/13(水)9:35分]
コンボボックスの縦の大きさはフォントサイズを変更するしかないと思います。
方法があったら私も知りたいです。
「値の取得のみ可能」
これは 値をセットする事は出来ませんよ
結果を見る事しか出来ないプロパティですよ。
・・・と言う意味です。
No.1721 構造体メンバー 投稿者:みか [00/12/13(水)6:45分]
テキストファイルに住所情報がタブ区切りではいっています。例↓
山田 東京1−2 03-1111-1111
田中 大阪2−3 06-2222-2222
このファイルを読み、Name adress tel といった構造体の
メンバーにいれたいです。順番に情報がならんでいるのだから
タブがあったらあてはまるメンバーにいれるという処理を書けば
いいとおもうのですが、どう書けばいいでしょうか?
おしえてください。
No.1720 マウスカーソル非表示について 投稿者:こせき [00/12/12(火)17:07分]
はじめまして。
私はVBを使い初めて数日の、超初心者です。
早速ですが、VBのフォームからInternetExplorerを起動し、IE上ではマウスカーソルを
非表示にしたいのですが、マウスカーソルの非表示の仕方が分からなく、
悩んでいます。
ShowCouser(API)を使用して試みたのですが、私の使い方が悪いのか、仕様なのか分かりませんが
フォーム上ではカーソルは非表示になるのですが、IE上では、非表示になりません。
タッチパネルで使用する為、どうしても非表示にする必要がありまして。
レベルの低い質問かもしれませんが、どなたかご教授して頂ければと思います。
よろしくお願いします。
No.1719 コンボボックス 投稿者:超初心者 [00/12/12(火)16:12分]
コンボボックスを縦を大きくしたいのですが、どうすれば良いですか?
combobox1.height = 400 だと、エラーになってしまいます。
エラーの内容は”値の取得のみ可能”ということなのですが、どういうことでしょう?
教えてください。よろしくお願いします。
No.1718 Win2000でフォントが・・・ 投稿者:VAN [00/12/11(月)15:42分]
Win98&NT4.0で開発・運用していたシステムを
Win2000に移植することになり、2000上で起動してみたところ
ラベル等のフォントサイズが微妙に変わってしまいました(MSゴシック使用)
フォントファイルを調べたところ、バージョンもまったく同じで
バイナリで比較してみてもまったく違いはありませんでした
どうも2000側のシステムの表示設定が98、NT4.0とは違っているようです
なにか、原因・解決法などご存知の方がいらっしゃれば
お教えください
よろしくお願いします
No.1717 Run time error って何ですか? 投稿者:匿名 [00/12/11(月)9:59分]
exeを実行したら、Run time error '339'ていうエラーが表示されました。
どうしてこんなものが出てきたのでしょうか?
No.1716 RE:複数セルの情報をクリップボードに送る方法 投稿者:Soya [00/12/08(金)17:42分]
とりあえず解決しました。
みなさん お騒がせしました。
クリップボードへのデータはTab区切りの改行CrLfで良かったのですが
以下のようなときにヘンな事態が発生します。
VBでクリップボードにデータを落とした後
他のアプリケーションでクリップボードにデータを落とす
その後 貼り付けを行うと
メモ帳ではVBのデータが張りつけられるのに
Excelでは他のアプリケーションのデータが張りつけられる
と言う事が起きていました。
その後 VBのデータをクリップボードに落としても
Excelでは他のアプリケーションのデータが張りつけられました。
対策としてクリップボードをクリアしてコピーする手法を取ったところ
うまくいきました。
TmpS = "a1" & vbTab & "b1" & vbTab & "c1"
TmpS = TmpS & vbcrlf & "a2" & vbTab & "b2"& vbTab & "c2"
Clipboard.Clear
Clipboard.SetText TmpS, vbCFText
No.1715 Re:分割ファイルの復元 投稿者:匿名 [00/12/07(木)18:37分]
>たぶんヘッダー部分で解析しているのでしょうね・・・
>※各種の圧縮等に対応しているそうなので、
> それぞれのファイルフォーマットを熟知(調査・勉強)して
> 作成していると思われます
やっぱり自分で解析するしかないようですね。
と,'WINEX32.DLL'というソフトを見つけました。これは
拡張子判別補助用のDLLらしいです。たぶんこれがあれば大抵の
拡張子は網羅している(全432種類470パターン)と思うので
これを使わせてもらおうかと思います。
No.1714 Re:日付の表示形式について 投稿者:Soya [00/12/07(木)13:20分]
Format(0,"0")→'0'
Format(0,"#")→''
私は'01234.560'の様に"0"を表示してそろえたい時
小数点以下に"0"を表示したい時などに"0"を使用しています。
例: Format(1234.56,"0####.##0")→'01234.560'
Titiさんの例だと"0#"を使っていますが
どっちが定石なんでしょうね???
誰か知ってたら教えてください。
後は色々試してみてください
余談・・・
Helpには有りませんが
Format("123456","@@/@@/@@")→'12/34/56'
なんてのも有ります。
面白いのを見つけたら 教えてくださいね。
No.1713 Re:日付の表示形式について 投稿者:titi [00/12/07(木)10:20分]
Soyaさん、ありがとうございました。
無事、表示させることができました。
でも、数値の表示形式でよいのですね? 知りませんでした。
あと、もう1つ質問なのですが、とりあえず "00"の方を使わせてもらったのですが、
"#"って後ろに付くと、値が"0"でも消えないのですか?
こういうのだとどちらを使ってもOK!ってことなのでしょうか?
たびたびすいません。よろしくお願いします。
Format(Month(flexData),"0#")
Format(Month(flexData),"00")
No.1712 Re:日付の表示形式について 投稿者:Soya [00/12/07(木)9:56分]
Format(Month(flexData),"mm")
↑
↓
Format(Month(flexData),"0#")
Format(Month(flexData),"00")
などは いかがでしょうか?
No.1711 RE:テキストファイルを結合(マージ)する方法 投稿者:Soya [00/12/07(木)9:43分]
DOSプロンプトならば
COPY a.txt+b.txt+c.txt z.txt
と言う方法がありますが・・・・
VBから直接Dosコマンドを実行する方法を私は知りません。
・・で私はバッチファィルファイル(xxxx.BAT)を作っておいて
Shell("xxxxx.BAT")
なんて方法を使っています。
VBで組んでしまうなら
まず 下記のソースでz.txtファイルを作っておいて
open "z.txt" for output as #1 '空のファィルを作る
close #1
下記のソースを"a.txt"の部分を"b.txt","c.txt"と変更して繰り返す
open "a.txt" for input as #1 'ファィルを読込で開く
open "z.txt" for append as #2 'ファィルを追加で開く
do while(eof(#1)=false) '#1が終わるまで繰り返し
line input #1,Buff '#1のファイルを1行Buffに読込む
print #2,Buff '#2のファイルにBuffを書き込む
loop
close #1,#2 'ファィルを閉じる
Openはファイルの有無や使われているなどの状態によって
考えずに使用するとエラーが発生するので
後はマニュアルを読んでください。
No.1710 Re:日付の表示形式について 投稿者:titi [00/12/07(木)9:24分]
ゆう(U)さん、SOYAさん、回答ありがとうございます。
ちょっと説明不足だったので、補足させてもらいます。
FlexGridにある mm/dd hh:nn という表示形式のデータを分割したいのです。
Gridの下にテキストボックスを4つ作成してあります。
そこに mm dd hh nn と個別に表示させたいのですがうまくいきません。
0が表示されないのです。下のように記述しています。
よろしくお願いします。
Private Sub flexData_Click()
txtStartTime(0).SetFocus
With flexData
.Col = 0
txtStartTime(0) = Month(flexData) *Format(Month(flexData),"mm")と
txtStartTime(1) = Day(flexData) 記述したら、値が変になってしまいました。
txtStartTime(2) = Hour(flexData)
txtStartTime(3) = Minute(flexData)
End With
End Sub
No.1709 RE:日付の表示形式について 投稿者:Soya [00/12/07(木)9:03分]
ゆうさんと同じ回答ですが・・・
Format(Date,"yyyy年mm月dd日")
No.1708 Re:日付の表示形式について 投稿者:ゆう(U) [00/12/06(水)21:53分]
「Format 関数」で日付整形をするほうが良いです。
Integer型 → String型
等の自動変換(数値→文字列)では、先頭にスペースやマイナス符号が
添付されるなど、目的の変換には向きません。
詳しくはヘルプで調べなおしてみてください。
No.1707 複数セルの情報をクリップボードに送る方法? 投稿者:Soya [00/12/06(水)18:09分]
はじめまして よろしくお願いします。
FlexGridに複数セルの情報を張り付ける場合
FlexGrid.AddItem "aaa" & VbTab & "bbb" & VbTab & "ccc"
とすれば一行分が一発で書きこめますよね。
これを利用して下記の様にTab区切りの情報をクリップボードに記憶させておいて
----ClipBode.SetText "aaa" & VbTab & "bbb" & VbTab & "ccc"
記憶した情報を Excelのシートにクリップボードの
[張り付け]を使って一気に張り付けようと思うのですが
1つのセルの中にTabごと全部入ってしまいます。
何か方法をご存知有りませんか?
Excel等の複数セルの情報を[コピー]して
クリップボードに落とした内容を見ても
Tab区切りになっているようなのですが
どこがちがうのだろう????
No.1706 日付の表示形式について 投稿者:titi [00/12/06(水)17:07分]
花ちゃんさん、はじめまして、titiと申します。
VBA歴は長いのですが、VBはまだ始めて1ヶ月足らずの超初心者です。
早速質問がありまして、教えていただけると助かるのですが、よろしくお願いします。
レスキューの日付と時刻 のところで、以下のようなコードがありますよね?
Private Sub Command1_Click()
Dim YY As Integer, MM As Integer, DD As Integer
YY = Year(Date)
MM = Month(Date)
DD = Day(Date)
Text1.Text = YY & "年" & MM & "月" & DD & "日"
End Sub
'Text1.Text には "1998年7月21日" が表示される
これで、1998年07月21日と表示させることは出来ないのでしょうか?
私なりに、色々やってみたのですが、なんか上手くいきません。
お願いします。
No.1705 RE:エクセルのシート名 投稿者:匿名 [00/12/06(水)15:26分]
花ちゃん さん。レスありがとうございました。
さっそく、組み込んで試してみたいと思います。
No.1704 RE:エクセルのシート名 投稿者:花ちゃん [00/12/05(火)17:09分]
以下を試して下さい。
'エクセルのシート名の取得
For i = 1 To objExcelApp.Worksheets.Count
Debug.Print objExcelApp.Worksheets(i).Name
Next i
No.1703 Re:csvファイルの読み込み 投稿者:匿名 [00/12/05(火)16:54分]
そうなんですか?
全然詳しくないもんで、すいません。
早速、今晩にでも、試させて頂きます。
ありがとうございました。
No.1702 Re:csvファイルの読み込み 投稿者:ゆう(U) [00/12/05(火)16:28分]
あのサンプルは、VB6.0のSplit関数の代用品なんですが・・・
ですので、VB4.0(32)以降なら使えるはずです。
※特に変な関数は使用していないので
No.1701 エクセルのシート名 投稿者:匿名 [00/12/05(火)14:34分]
VBレスキューで、エクセルをVB側から操作する例が出ていました。
その中で、シート名を指定する項目がありましたが、もし、シート名がわからないファイルを開く場合は、
どうやってシート名を取得すればいいのでしょうか?
いつも"Sheet1"とは限らないと思うのですが・・・
前のログ | 次のログ |
VBレスキュー(花ちゃん)
Visual
Basic6.0 VB6.0