アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel 2007

セル内のテキストを折り返しています。画面上では、セル内にすべての文字が表示されていますが、印刷すると1行分程度が印刷されません。

そこで、VBAを使って、セル内の上下に1文字分程度、余白を持たせたいです。例えば、12ポイントの文字を使っている場合は、24ポイント分広げたいのです。

Sub rei30_01()
  Worksheets("Sheet1").Activate
  Rows("2:3").RowHeight = 20
  MsgBox Range("B2").RowHeight
End Sub

上のようなVBAでは、セルの高さを固定値で指定できます。しかし、固定値ではなく、それぞれのセルで「上下に1文字分」が望みです。

可能でしょうか。教えてください。お願いします。

A 回答 (3件)

文字列の先頭、および、末尾に改行を付加してしまうのが、簡単かと思います。



セルの値を変えたくないのであれば、書式設定で付加することも可能です。
こんな感じで・・・。

Rows("2:3").NumberFormatLocal = ";;;" & Chr(10) & "G/標準" & Chr(10)
    • good
    • 1

こんにちは


>固定値ではなく、それぞれのセルで「上下に1文字分」が望みです。
範囲はB2:B3でいいのでしょうか・・

Sub test_0()
'+サイズ(フォント基準)
Const plusRowHeight As Single = 2
'フォント対象範囲
Const targetRange As String = "B2:B3"
Dim r As Range
For Each r In Range(targetRange)
r.EntireRow.AutoFit
If r.Value <> "" Then
r.RowHeight = r.RowHeight + r.font.Size * plus_RowHeight
End If
Next
End Sub

対象範囲のセル高さを一旦AutoFitします
使用されている(取得できる)フォントサイズを定数plus_RowHeightでかけて行の高さにプラスしています
定数2を1にすれば上下0.5フォントサイズ分、1.5なら0.75分と言う具合です
セルの高さ方向書式設定を中央揃えにする必要があるかも知れません
    • good
    • 1

先に折り返してある行の高さを取得してから、行の高さを


+24すればよいのでは。

Sub rei30_01改()
Dim i As Integer
Dim r As Double
 Worksheets("Sheet1").Activate
 For i = 2 To 3
  r = Rows(i).RowHeight
  Rows(i).RowHeight = r + 24
  MsgBox Rows(i).RowHeight
 Next
End Sub
「Excel VBAで、行の高さを、上下1」の回答画像1
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています