2016-12-26 6 views
0

Excel上にツールを構築していますが、テキストがセルに収まるかどうかを確認する必要があります。セルは固定されています。私はオートフィットまたはオプションを使用できません。 事前に感謝のVBコードを教えてくださいVBテキストがセルに収まるかどうかを確認するコード

+1

の可能性のある重複した[テキストがセル内に収まる場合見分ける方法?](http://stackoverflow.com/questions/18732342/how-to-tell-if-text-fits-in-a- cell) – fuglede

+1

基本的には、テキストのLENをチェックし、最大値より大きい場合は、セルを左側にマージしますか?私たちに少しコードを見せて、最大は何ですか? –

+0

あなたは、列の幅がXポイントであることを意味します.2行目が必要となる前に、いくつの文字を合わせることができますか? (1)可変幅のフォントでは、これは文字に依存します: "W"は "|"よりもはるかに広いです。 (2) 'CheckWidth(Points、String)'のようなExcelやVBAルーチンはありません。これは、 'String'が幅' Points'の列に収まるとTrueを返すことを認識しています。 –

答えて

0

他の場所で回答しましたが、これは動作する基本的なコードです。自動サイズ調整。

Sub merger() 
Set c = ActiveSheet.Range("A:A").Find(what:="Executive Weekly Summary") 
If Not c Is Nothing Then 
startrow = c.Row + 1 
endrow = ActiveSheet.Range("A" & startrow).End(xlDown).Row - 1 
End If 
    '"A" & startrow & ":I" & endrow 
OldWidth = ActiveSheet.Range("A" & startrow & ":A" & endrow).ColumnWidth ' Save original width 

ActiveSheet.Range("A" & startrow & ":A" & endrow).EntireColumn.AutoFit 
fitwidth = ActiveSheet.Range("A:A").ColumnWidth ' Get width required to fit entire text 

ActiveSheet.Range("A" & startrow & ":A" & endrow).ColumnWidth = OldWidth ' Restore original width 

If OldWidth < fitwidth Then 
Do Until OldWidth = fitwidth 
    ActiveSheet.Range("").Merge 
    endrow = endrow + 1 

    OldWidth = ActiveSheet.Range("A" & startrow & ":A" & endrow).ColumnWidth 
ActiveSheet.Range("A" & startrow & ":A" & endrow).EntireColumn.AutoFit 
fitwidth = ActiveSheet.Range("A:A").ColumnWidth 
ActiveSheet.Range("A" & startrow & ":A" & endrow).ColumnWidth = OldWidth 
Loop 
End If 
End Sub 
関連する問題