- ベストアンサー
セルが何行なのかをVBAで取得したい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ワークシート関数でも同じ方法で計算できますが、 sub macro1() dim buf as variant buf = range("A1").value msgbox len(buf) - len(replace(buf, vblf, "")) + 1 & "行です" end sub のような考え方でもできます。
その他の回答 (2)
- kamikami30
- ベストアンサー率24% (812/3335)
まず、正しくは セル内に何行の文字列が入っているか? です。 行数と聞いて私がまず思い付いたのは、改行コードの数を数えること。 ここまでは質問者さんと同じです。 ここでさらに、私は以下のパターンがあることを考えました。 改行を便宜上↓と書きます。 どのパターンも見た目には3行です。 パターン1 a↓ b↓ c パターン2 a↓ b↓ c↓ パターン3 a↓ b↓ c↓ ↓ パターン4 ↓ a↓ b↓ c パターン5 ↓ a↓ b↓ c↓ ↓ スペースのみの行がある場合の判断基準なども考慮すべきですがらとりあえず、この辺でよしとします。 上記のパターンでは、見事に改行の個数が違うわけです。 この全てのパターンを共通の書式とするには、文字列の前後にある改行を取り除くと良いと考えました。 そうすると、各行の間に改行があることになるので、改行の個数は常に行数マイナス1ですね。 あとは説明するまでもないと思います。
- t-aka
- ベストアンサー率36% (114/314)
例えばこんな感じではどうでしょうか・・・。 Dim r As Range Set r = Cells(1, 1) Dim splitCell() As String splitCell() = Split(r, Chr(&HA)) MsgBox "行数は " & UBound(splitCell) + 1 & "です"
お礼
ありがとうございます。
お礼
ありがとうございます。