web-dev-qa-db-ja.com

セルの内容に応じて行の高さを調整するにはどうすればよいですか?

1列200行以上のテーブルがあります。内容に応じて、これらの行の高さを調整したいと思います。

たとえば、セルの文字数が10文字未満の場合、行は25ピクセルである必要があり、セルの文字数が10文字以上の場合、行は50ピクセルである必要があります。

これらの写真は私がやりたいことを説明するかもしれません:

before

after

2
zarqos.os

これはあなたの不明確な質問に基づいています! 動的オプション も投稿しました

Option Explicit
Sub ChangeRowsColsInPixels()
  Dim r As Range

  For Each r In ActiveSheet.UsedRange

    Dim length As Integer
    length = Len(r.Value)
    If length > 0 Then
        If length < 10 Then     
            r.RowHeight = 25
        End If

        If length >= 10 Then
            r.RowHeight = 50
        End If
    End If

  Next r

End Sub

MS OfficeにVBAを追加するにはどうすればよいですか?

セル内のテキストの配置については質問しませんでしたが、できる限りmiddle alignこれで十分だと思います

また、文字数が10〜20の場合は、何もしたくないようです。

enter image description here

enter image description here

そしてミドルアラインで

enter image description here

1
Dave

他の投稿の2番目の解決策 として、これはより動的なアプローチを提供します。これは、文字数に基づいて高さが更新される場所です(これは上限/最大値について適切にテストされていません)したがって、長い文字列/値が大きいと、例外がスローされる可能性が高いため、Excel 2010の制限に近いと思われるハードコードされた制限を追加しました)

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim r As Range
  Dim defaultHeight As Integer
  defaultHeight = 25

  Dim maxHeight As Integer
  maxHeight = 399

  For Each r In ActiveSheet.UsedRange

    Dim length As Integer
    length = Len(r.Value)
    If length > 0 Then
        Dim heightToUse As Double
        heightToUse = defaultHeight + length
        If (heightToUse > maxHeight) Then
            r.RowHeight = maxHeight
        Else
            r.RowHeight = heightToUse
        End If
    End If

  Next r

End Sub

新しい値を入力すると起動して再計算されるため、必ず特定のワークシートに追加してください。

MS OfficeにVBAを追加するにはどうすればよいですか?


enter image description here

後(Middle Alignリボンの[配置]タブ)

enter image description here

0
Dave