Excel セル内の行数を取得するには?


りら  2014-01-19 01:18:02  No: 45915

ご教授ください。

Excel2007以降のバージョンで、結合セル内の行数を取得するには、
どうしたらよいでしょうか?

セルの書式設定で、
・折り返して全体を表示する
・セルを結合する
・横位置を左詰め
・縦位置を上詰め
を設定しているため、改行文字が入っていなくてセル内で
自動改行されている場合も行数をカウントしたいです。

たとえば

新宿(新宿の後に改行文字あり)
渋谷(新宿の後に改行文字あり)
私は品川にい(←改行文字なし)
ます(←セル幅に入らないために自動改行された)

は、4行とカウントしたいです。

ネットで検索したところ、下記の構文があり、改行を数えるみたいなのですが、
LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1

var
  sRange : String;

・・・省略

sRange := GetStrRange(1, 39, 1, 39);
(Length(sRange)-Length(StringReplace(sRange,CHAR(10),'', [rfReplaceAll]))+1));

としてみましたが、正しい行数を取得できませんでした。
SUBSTITUTEをStringReplaceとしたところが間違っているのでしょうか・・・

素人で申し訳ありません。
ご教授お願いします。

DelphiXEのWindows7、32bitで開発しています。
自分の環境はExcel2007ですが、2010、2012でも動くようにしたいです。

よろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加