[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『折り返し表示の行数を数える』(konMV)
似たような質問もありましたが,どれもちょっと違うので質問です。
ひとつの結合したセルの中で,
あああ
いいいいいいいいいい
いいいい
うううううう
というように,セル内改行しつつ,一文が長ければ折り返し表示されるようになっているものがあります。
ここで,セルの高さは変えないで,フォントサイズを調整して,高さが収まるようにしたいのです。
そこで,セル内の行数(印刷時のもの)が分かる数式,またはマクロを教えてください。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
自信度、30% ぐらいですが。かつ【印刷時のもの】ではなく、実際のセル上に表示されている行数ですが。 行数取得したいセルを選んで実行してみてください。
Sub Test() Dim stH As Double Dim myH As Double
stH = ActiveSheet.StandardHeight myH = Selection.RowHeight
MsgBox Int(myH / stH)
End Sub
(β) 2016/12/27(火) 01:41
もしかしたら実際にセルに文字入力されている行数(隠れた部分も含む)と 表示されている行数の取得ですか?
自信度はさらに下がりますが、
Sub Test2() Dim stH As Double Dim myH As Double Dim act As Double
stH = ActiveSheet.StandardHeight myH = Selection.RowHeight
Selection.Rows.AutoFit act = Selection.RowHeight Selection.RowHeight = myH
MsgBox "セル内行数: " & Int(act / stH) & vbLf & "表示されている行数: " & Int(myH / stH)
End Sub
(β) 2016/12/27(火) 01:53
しかし,Test2 ですが,値が入力してあるセルが,いくつものセルが結合してあるものだと上手く動きません。
別のセルに用意すればいいとは思うのですが,直接できれば嬉しいです。
(konMV) 2016/12/27(火) 10:25
結合セルですか!
もともと自信度30%未満とコメントしていますが、エクセルは、あくまで表計算ソフトで 文字というものへの融通性が極めて低いですからねぇ。 1セルに複数行があった場合の上端の遊びの高さ、下端の遊びの高さ、各行の間の高さ 等々、 どうなるかということがまったく公開されていませんから、推測で、こうかも、ああかも、と 皆さん、工夫というか苦労されているところだと思いますので。
いろいろトライしてみますが、他の回答者さんから、いろいろなアイデアが提示されればうれしいですね。 konMVさんも、答えを待つだけではなく、試行錯誤して見られることをおすすめします。
(β) 2016/12/27(火) 14:49
考え方一つで,あっと驚く方法が見つかるのが,面白いところですよね。
他のみなさんの考えも,是非お聞かせいただければうれしいです!
(konMV) 2016/12/27(火) 18:56
自信度変わらず、低調。
結合セル、単一セル ともに使える(と思っているのですが・・・・)
Sub Test3()
Dim stH As Double Dim myH As Double Dim my1 As Double Dim act As Double Dim o As Range
Set o = Selection(1).MergeArea stH = ActiveSheet.StandardHeight myH = o.Height my1 = o(1).Height o.UnMerge o.Cells(1).Rows(1).AutoFit act = o.Cells(1).Height o.Cells(1).RowHeight = my1 o.Merge
MsgBox "セル内行数: " & Int(act / stH) & vbLf & "表示されている行数: " & Int(myH / stH)
End Sub
(β) 2016/12/27(火) 23:06
(konMV) 2016/12/28(水) 09:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.