セル幅を調節するには?

解決


ゆい  2007-04-21 00:49:57  No: 136162

初めましてお願いします。

ツールに入ってるLogファイルを出力するとExcelファイルにデータが
いくようになってるのですが、
その後Excelファイルを開いてみるとセルの幅が狭く、
調節したいのですが今までVBAの方で作業をしていたので
エラーばかりでて何を使っていいのかよくわかっていません。

Private Sub cmdPrint_Click()    'ファイル出力ボタンを押した時
    Dim FilPath As String       '' ファイルのパス用
    Dim FileName As String
    Dim FileNbr As Integer
    Dim FileBuff As String
    Dim LogFileName As String
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    
    LogFileName = App.Path
    
    DlgCommon2.DialogTitle = "出力ファイルの選択"
    DlgCommon2.FileName = lblName.Caption & ".xls"
    DlgCommon2.Filter = "Excel゛(*.xls)|*.xls|全てのファイル(*.*)|*.*"
    
    '' ファイルダイアログボックスの表示
    DlgCommon2.ShowOpen
    FileName = DlgCommon2.FileName
    
    'ファイルが存在する場合は上書きを確認する
    If Dir(FileName) <> "" Then
        If MsgBox("ファイルを上書きしてもよろしいですか?", _
             vbExclamation + vbYesNo) = vbNo Then
            Exit Sub
        End If
    End If
    
    FileNbr = FreeFile
    Open FileName For Output As #FileNbr          'ファイルオープン
    
    Print #FileNbr, "解析ログファイル名:", LogFile
    Print #FileNbr, "ログ日付:", LogDate
    Print #FileNbr, "機器名称:", lblName.Caption
    Print #FileNbr, ""
    Print #FileNbr, "Index" & vbTab & "時刻" & vbTab & "SEND" & vbTab & "RECV"
'    Print #FileNbr, "Index" & vbTab & "時刻" & vbTab & "通信" & vbTab & "SEND" & vbTab & "RECV"
    
    For i = 0 To AIndex - 1
        FileBuff = AnaDispData(i).AnaIndex
        FileBuff = FileBuff & vbTab & AnaDispData(i).AnaTime
'        FileBuff = FileBuff & vbTab & AnaDispData(i).AnaType
        FileBuff = FileBuff & vbTab & Chr(&H22) & AnaDispData(i).AnaSend & Chr(&H22)
        FileBuff = FileBuff & vbTab & Chr(&H22) & AnaDispData(i).AnaRecv & Chr(&H22)
        Print #FileNbr, FileBuff
    Next
    
    Close #FileNbr                                'ファイルクローズ
    
Exit Sub

ErrHandler:                                         '[キャンセル]
    Exit Sub

End Sub

よろしくお願いしますm(__)m


特攻隊長まるるう  2007-04-21 03:05:40  No: 136163

ソースを見る限り、エクセルファイルは作成されていませんが、
それは分かっていますか?
作成されているのはタブ区切りのテキストファイルです。
いわゆるTSVファイルですね。
[TSVとは]
http://e-words.jp/w/TSV.html

拡張子は既定されてないものの、エクセルのファイルではないので、
(*.xls)で扱うのは良くないと思います。エクセルの保存ダイアログ
でもテキスト(タブ区切り)の拡張子は(*.txt)となっていると思います。

また、TSVファイルに列幅を記憶する機能はありませんから、TSVファイル
を作成するのが目的であれば、列幅を設定することは不可能です。

本当のエクセルファイル(.xls)に変換する、もしくはVBでファイルを
開き、その開いたファイルの列幅を変更するのならできると思います。
ただし、もしエクセルファイルに変換してしまうと、変換後のファイルを
TSVファイルとして扱うことはできません。(テキストファイルとしては
正常に読めない情報が書込まれます)

何をしたいのかが分かりませんので回答できません。
そのあたりを整理してから質問し直してください。


ゆい  2007-04-23 18:50:38  No: 136164

特攻隊長まるるうさん、返信ありがとうございます。

出力ボタンを押したらエクセルの保存ダイアログが出て、
エクセルファイルで開けれるのでエクセルファイルが
作成されているのだと思っていました。

>本当のエクセルファイル(.xls)に変換する、もしくはVBでファイルを
>開き、その開いたファイルの列幅を変更するのならできると思います。
本当のエクセルファイルに変換したいです。
幅を調節した後、エクセルのVBAで編集したいと思っているので。

よろしくお願い致します。


特攻隊長まるるう  2007-04-23 21:46:24  No: 136165

> 本当のエクセルファイルに変換したいです。
> 幅を調節した後、エクセルのVBAで編集したいと思っているので。
それだと、TSVファイルを作る意味が無いですよね?
最初から Excel オブジェクトを操作すればいいと思います。

参照設定をして、後は[Excel VBA]と同じ命令を呼び出します。
[VBレスキュー(花ちゃん)]
http://hanatyan.sakura.ne.jp/index.html
の左フレームから
[VB6.0関係]-[Excel・Word関係]
http://hanatyan.sakura.ne.jp/vbhlp/excelframe.htm
がよくまとまっていると思います。

過去ログ検索『Excel』『エクセル』などでもたくさん情報は
引っ掛かるはずです。


特攻隊長まるるう  2007-04-23 21:58:39  No: 136166

> 出力ボタンを押したらエクセルの保存ダイアログが出て、
> エクセルファイルで開けれるのでエクセルファイルが
> 作成されているのだと思っていました。
テキストファイルのほうが(必要な情報が少ない分)サイズが
小さくなります。また、既に運用されているシステムの場合、
他のプログラムがTSVファイルとして処理している場合が
あります。

上記のようにTSVファイルにする意味がある場合、本当の
エクセルファイルとして保存することにより、不具合と
なってしまいます。

TSVファイルを開いた時点で、編集側のVBAがセル幅を調整
しても良いはずですから、仕様をよく検討しておいてください。


ゆい  2007-04-24 00:12:30  No: 136167

特攻隊長まるるうさん、ありがとうございます。

いろいろ調べてTSVファイルではなくエクセルファイルでやってみます。
またわからないことがありましたらお願い致します。

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加