セルの内容に応じて行の高さを調整する方法は?


2

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

たとえば、セルの文字数が10文字未満の場合、行は25ピクセルでなければならず、10文字以上の場合、行は50ピクセルでなければなりません。

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

前

後


条件付き書式設定では行の高さを変更できません。ここでの唯一のオプションはマクロを使用することです。ただし、そのようなフォーマットが必要な理由はわかりません。
マテユハス

私の実際のテーブルは、アイテムの説明を含む請求書です。説明が長すぎる場合、自動的に折り返されますが、セルにはすべてのテキストが表示されず、独自の行を使用するため、行の自動調整は使用しません高さの値。(私の悪い英語のごめん)
-zarqos.os

通信が高い細胞であるように思われるが、20個の以上の文字を持っているdoens'tので、あなたの質問は...実際には明確ではありません
デイブ

質問を編集し、2番目のステートメントは10
文字

2つのステートメント:> = 10または<10 :)
zarqos.os

回答:


1

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

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の場合、アクションを実行したくないようです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

そして、Middle Alignを使用

ここに画像の説明を入力してください


それはうまく機能しますが、マクロを入力するとこのマクロが自動的に実行される方法がありますか?ちなみに、2番目のステートメントについてエラーを犯したため、質問を決めました。
zarqos.os

はい、これを示すマクロを追加する方法に関するリンクを追加しました
デイブ

つまり、セルにデータを入力し、entreをクリックしてこのデータを検証すると、マクロが自動的に実行されます。
zarqos.os

私の2番目の投稿を見て、それはあなたが望むものを示していますsub worksheet_change
デイブ

0

私の他の投稿の2番目の解決策として、これはより動的なアプローチを提供します。これは、文字数に基づいて高さが更新される場所です(これは上限/最大値のために適切にテストされていないため、長い長い文字列で/ value、例外をスローする可能性が高いため、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を追加するにはどうすればよいですか?


ここに画像の説明を入力してください

後(Middle Alignリボンの[整列]タブで)

ここに画像の説明を入力してください


私はこのコードを試してみましたが、動作しますが、高さは入力されたテキストの長さに応じて変化することに注意してください。
zarqos.os

ええと...はい。私が2つの答えを与えたことを理解できないのですか?これは他の人にとって潜在的に有用であるため、より動的なアプローチです。また、オンザフライでの更新などの追加情報も含まれています(セル値が変更された場合)。両方の投稿のビットを使用できると確信していますか?
デイブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.