• ベストアンサー

セルに改行があるか判定したい。

こんばんは。 A1に、 「あいう えお」 と改行が入っている場合 マクロで改行が使われているかどうかを調べることはできますか? 「Chr(10)」を使うことはなんとなくわかりますが どういう風にして判定すればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

InStr(Range("A1").Value, vbLf) の結果が0より大きいかどうかとか?

1hdthd
質問者

お礼

理由はよくわかりませんができました。 有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

そこまで判っているなら近い。 下記の関数をしっているかだけ。 P=Instr(range("A1"),Chr(10)) 見つからなければ0が返る、見つかれば何文字目かの数がが返るので、IF分で0でないかを聞けばよい。参考にInstrRevもある。 正規表現というのも話題になるが、将来勉強されたら。 ーー 関数でも出来ること =IF(ISERROR(FIND(CHAR(10),A1)),"改行なし","改行あり") ーー VBAではFindは別の処理なので、A1セルについて、セルのReplaceメソッドでCHR(10)を空白に置き換えて、置き換えた結果の文字数と、元の文字列の長さを比べて、短くなっておれば、含んでいた、という判別でも出来る

1hdthd
質問者

お礼

ありがとうございます。 正規表現についても勉強してみます。

全文を見る
すると、全ての回答が全文表示されます。
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

If InStr(ActiveCell.Value, vbLf) Then   MsgBox "改行あり" Else   MsgBox "改行なし" End If

1hdthd
質問者

お礼

有難うございます。 理想どおりになりました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelでセル内改行する方法

    セル内改行法で、改行記号ごと、他のソフト (notepad)にコピー、ペーストして編集できないものかと考えています。 昔は、A1セルにセルに、 高い山 青い海 と表示させるために、「高い山Alt+ Enterキー青い海」 http://trendy.nikkeibp.co.jp/article/tec/excel/20040310/107753/ と入力する方法を使っていたのですが、一旦A1セルの内容をテキスト(ノートパッド等)にコピーしてから再度A1セルに張り付けると 今度は、A1セルに「高い山」、A2セルに「青い海」と、A1,A2セルにまたがって入力されてしまいます。 さて、社内文書のルール上、Excelのセル内に、下記マクロで記載したようなものを書かなければならないことが多くあります。今、私は、 Sub Macro1() ' Cells(1, 1) = "高い山" & Chr(10) & "青い海" Cells(1, 2) = "" & Chr(10) & "陽気な仲間たちは" & Chr(10) & " -青い山" _ & Chr(10) & " -広い海" _ & Chr(10) & "と共に現れる。" End Sub のように裏で記載しておいて最後にマクロを消して提出してますが…。これも面倒です。 ■本題 願わくば、Excelのfx欄に、 陽気な仲間たちは<br> &nbsp -青い山<br> &nbsp - 広い海 … のように記載しておけば、セル上では、所望の表示が得られているといったことってないのでしょうか?

  • VBA セル内改行+他セルの文字をカット&ペースト

    A1セル内文字の最後部分にカーソルを持っていって、Alt+Enterを押してA1セルを2行に改行する、 B1にある値をカットして、A1の改行した部分に貼り付け というマクロを作るべく、「マクロの記録」をしてみたところ、A1のテキストがそのままマクロに書き込まれてしまって応用ができないです。 改行部分に貼り付けするにはB1セルの値はコピーではなくカットが必要だと思いますが、これも「マクロの記録」だと動作ではなくテキストそのものが書き込まれてしまい、応用が効きません。 Sub A1改行カットペースト() ' ' A1改行カットペースト Macro ' ' ActiveCell.FormulaR1C1 = "RO20-001" & Chr(10) & "" Range("B1").Select ActiveCell.FormulaR1C1 = "" Range("A1").Select ActiveCell.FormulaR1C1 = "RO20-001" & Chr(10) & "8/7到着" Range("F4").Select End Sub "RO20-001"と"8/7到着"はA1とB1の値であって、この記述ではこのマクロをループさせた時、他の全部のセルに"RO20-001"と"8/7到着"が貼りついてしまいます。 改行やテキストのカット&ペーストの「動作」はどのように記述すれば良いのでしょうか? どなたかご存じの方がいらっしゃいましたら、教えて下さい。 よろしくお願いします。

  • VBA改行について

    Sub 改行() MsgBox "a" & vbCr & "i" MsgBox "a" & Chr(13) & "i" MsgBox "a" & vbLf & "i" MsgBox "a" & Chr(10) & "i" MsgBox "a" & vbCrLf & "i" MsgBox "a" & vbNewLine & "i" MsgBox "a" & Chr(13) + Chr(10) & "i" End Sub 上記のコードを実行すると、すべて改行できますが、 どれが正しい、一般的な改行のコードなのでしょうか? どれも正解だとは思いますが、 企業でプログラムを作る際、 どの改行のコードを使うのか知りたいです。 よろしくお願い致します。

  • 改行の判定方法

    改行のみが入っているかどうかの判定が行いたいのです。 String TextData; if(TextData.equals(System.getProperty("line.separator"))){   System.out.println("改行"); } TextDataに改行だけ入っている可能性があるため、ifで判定してみたのですが、ひっかかりません。 どうやればよいのでしょうか。

    • ベストアンサー
    • Java
  • セル内での改行 (エクセル)

    セルA1とB1の文字を結合させてC1に表示させたいのですが、 この時C1セル内で改行させたいのです。 C1に式 ”=A1 & Chr(10)  & B1” と入力したみましたが、 期待どおりにはならずエラーになってしまいました。   A   B    C   あ   い   あ 1          い 2          実現する方法がありましたら、教えてください。

  • 改行について

    VBAでコードを作るにおいて 改行が必要な場合、 Sub 改行() MsgBox "1行目" & Chr(10) & "2行目" MsgBox "1行目" & Chr(13) & "2行目" MsgBox "1行目" & Chr(13) + Chr(10) & "2行目" MsgBox "1行目" & vbCr & "2行目" MsgBox "1行目" & vbLf & "2行目" MsgBox "1行目" & vbCrLf & "2行目" MsgBox "1行目" & vbNewLine & "2行目" End Sub どれを使うべきなのでしょうか? 理由も教えてください。

  • getcの改行判定

    Windowsの構文解析でgetcを使ったプログラムを作ったのですが、 改行の判定に c = getc(fp_in); if(c == '\n'); とすると、 コマンドプロンプトに「コードは効果を持たない」と言われ、 コンパイルして実行してもif文は真にならないみたいです。 改行の判定を行うには正しくはどう記述すればいいのでしょうか?

  • エクセル セル内の改行

    一つのセルの中で入力値が長くなり(110、120、130などのように)改行したいのですがどのようにしたら良いでしょうか? またセルを複写?(A4は数値を入力、B4は=A4で入力)しているとき、A4はそのまま1行で入力、B4は改行して2行で入力という風にできますか? よろしくお願いします。

  • VBAで改行コードを判定したい

    文字列の中にある改行を判定したいのですがどうすればいいのでしょうか? イメージ if mid(文字列,i,1)=改行 then 処理 end if iを加算していって1文字ずつ判定していく処理です。 改行をどう表現するのかがわかりません。 よろしくお願いします。 

  • エクセル 行数指定し一つのセルに改行込で入れる

    日本語が下手でもうしわけないです。 エクセルのマクロにて、行数指定指定したセルを別セルに 改行を含めて入れたいのです。 具体的なやりたいこととしては、 A列に不定期間隔で不定形の文字列が入力されていて、(間は空白) その文字列から文字列の行数を読み、 B列の同じ行数分のセルをひとまとまりとし、 別シートのA1に改行込みで入れる。 次のまとまりはA2に次はA3に… といった動作をさせたいです。 例. 1.A1,A6,A9に文字列があるとする。間は空白 文字列間の行数を読む (1)A1-A5 (2)A6-A8 (3)A9-最終行 2.A列で取得した行数と同じ行数をB列で指定 (1)B1-B5 (2)B6-B8 (3)B9-最終行 3.B列で指定したセルをひとまとまりとして 別シートのA1から順に改行込みで入れる (1)シート2のA1 B1(改行) B2(改行) B3(改行) B4(改行) B5(改行) (2)シート2のA2 B6(改行) B7(改行) B8(改行) (3)シート2のA3 B9(改行) ・ ・ 最終行 ####### マクロでの実現を考えているのですが、 マクロ初心者でさっぱりわかりません。 どなたか、マクロでの記述例を教えて頂けないでしょうか。 また、関数で実現できるのであれば、そちらも教えて頂きたいです。 宜しくお願いします。

このQ&Aのポイント
  • PCがデジカメ接続してもデバイス認識しない問題について解説します。
  • デバイスを接続してもPCが認識しない場合のトラブルシューティング方法をご紹介します。
  • NEC 121wareとWindowsの連携に関する問題についての解決策を解説します。
回答を見る

専門家に質問してみよう