#2です。 行の高さは1行の高さの行数倍でよいはずなので、 文字列中の改行の個数(末尾は除く)を数えれば 1行しかないと分かっている行の高さに改行の 個数を掛けて求められます。 最後の改行を抜いたのは最下段に空行ができる ことを防ぐためですが、それも必要ならば、その 処理は飛ばしてください。 プログラム例 Dim 末尾改行削除 As Object Dim 改行カウント As Object Dim 単一行の高さ As Double Function 行高算出(ByVal 文字列 As String) As Double If 改行カウント Is Nothing Then '正規表現が作成されていない場合は作成する Set 末尾改行削除 = CreateObject("VBScript.RegExp") 末尾改行削除.Global = False 末尾改行削除.Pattern = "(\r{0