すみませんVBA間違っていました。
行ごとの計算ができていませんでした。
修正します。
Sub AdjustRowHeightForMergedCells()
Dim inputRange As Range
Dim cell As Range
Dim totalChars As Long
Dim rowNum As Integer
Dim factor As Double
Dim i As Integer
Dim cellValue As String ' セルの値を格納する変数
' 結合されたセルの範囲を選択してもらう
On Error Resume Next
Set inputRange = Application.InputBox("結合されたセルの範囲を選択してください:", Type:=8)
On Error GoTo 0
' 選択されたセルが空でないことを確認
If inputRange Is Nothing Then
MsgBox "セルが選択されていません。", vbExclamation
Exit Sub
End If
' 文字数を入力してもらう
totalChars = InputBox("結合されたセルの範囲に含まれる文字数を入力してください:")
' キャンセルが押された場合の処理
If totalChars = 0 Then
MsgBox "文字数の入力がキャンセルされました。", vbExclamation
Exit Sub
End If
' 行の高さを調整するファクターを入力してもらう
factor = InputBox("行の高さを調整するファクターを入力してください:")
' 各結合されたセルごとに処理を行う
For Each cell In inputRange.Rows
' 各行の最初のセルであることを確認
Set cell = cell.Cells(1)
' 結合されたセルであることを確認
If cell.MergeCells Then
' セル内の値を取得
cellValue = cell.Value
' セル内に文字が含まれているかを確認
If Len(cellValue) > 0 Then
' 行数を計算
rowNum = Application.WorksheetFunction.RoundUp(Len(cellValue) / totalChars, 0)
' 行の高さを調整
cell.Rows.RowHeight = rowNum * factor
Else
' 結合されたセル内に文字が含まれていない場合はスキップ
' MsgBox "結合されたセル内に文字が含まれていません。", vbExclamation
' Exit Sub ' 空のセルが見つかった場合、処理を終了する
End If
End If
Next cell
MsgBox "結合されたセルの行の高さを調整しました。", vbInformation
End Sub
補足
回答頂きありがとうございます。 ファイルのみで送信であれば、それで十分なのかもなのですが、プリントアウトして提出の書類で、ほぼ毎日数件作成しなければならない資料のため、自動で済むとありがたいなと思い、質問させて頂きました。 やはり、マクロで解決するのがベストのようですね。 たすかります。