tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^7: Excelの改行
投稿日: 2013/08/14(Wed) 11:14
投稿者YK
こんにちは。

> エクセルの行幅が固定しています。(印刷時、A4ページの幅です。)
ということはフォントのサイズを下げてその幅に合うまで小さくするしかないですね。
難しく考えずに作ってみました。それとこれからの設計では結合セルを使用しない
方向で進めたほうが何かと便利ですよ。
結合セルの指定は左上のセルアドレスを指定
Option Explicit

Private xlApp   As Excel.Application
Private xlBook  As Excel.Workbook
Private xlSht   As Excel.Worksheet

Private Sub Command3_Click()
    Dim strText As String
    Dim sW      As Single
    Dim i       As Long
    Dim rng     As Range
    
    'Text1の改行を vbCrLf -> vbLf にする
    strText = Replace(Text1.Text, vbCrLf, vbLf)
    
    'TEST1.xlsは作成しておく。無いとエラー
    '張り付けるエクセルをセット開いていても、いなくてもOK
    Set xlBook = GetObject("D:\Excel\Test1.xls")
    With xlBook.Parent
        .Visible = True
        .ScreenUpdating = False
    End With
    
    Set rng = xlBook.Worksheets(1).[A1] '結合セルの左上のアドレスを指定
'   セル幅のセーブ 設定値があるなら設定値 sW = 50とか
    sW = rng.ColumnWidth
'   仮のセル幅の設定
    rng.ColumnWidth = sW + 30
'   仮のフォントサイズ
    rng.Font.Size = 11
'   テキストの貼り付け
    rng.Value = strText
'   セル幅の自動設定
    rng.EntireColumn.AutoFit
    For i = rng.Font.Size To 3 Step -1
'       セル幅が規定値より小さいか
        If sW >= rng.ColumnWidth Then
'           小さかったらセルの幅を規定値に
            rng.ColumnWidth = sW
            Exit For
        Else
'           フォントサイズを一つ下げる
            rng.Font.Size = i
            rng.EntireColumn.AutoFit
        End If
    Next
    xlBook.Parent.ScreenUpdating = True
'    必要であれば保存して閉じる
'    xlBook.Save
'    xlBook.Parent.Quit
End Sub

Private Sub Form_Load()
    Me.Text1.Text = " きょう13日午前11時30分までの最高気温は、全国のトップは高知県" & vbCrLf & _
                    "四万十市江川崎で、すでに38.2℃と、ここ数日と同じようなハイペー" & vbCrLf & _
                    "スで気温が上がっている。また、高知県  四万十町で36.8℃、宮崎県西" & vbCrLf & _
                    "都市で36.7℃と、引き続き西日本を中心に猛烈な暑さとなっている。"
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。