タイトル : 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 |