• ベストアンサー

先頭の改行だけ要らない

セルに適当な値が入っていて、そのセルの値を改行で区切ってつなぎ合わせて 一つの変数に納めてmsgboxで表示させる際、 一番最初の値の前にも改行が付いてしまうのですが、 これってどうやったら避けれますか? ---------- a b c ---------- こういう結果になってしまいます。 ---------- a b c ---------- こういう結果にしたいです。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.6

どうしてもFor~Nextの中に全て入れたいなら、Ifを追加する手も。 Sub test() Dim tmp As String Dim i As Long   For i = 1 To 3     If tmp <> "" Then       tmp = tmp & vbCrLf     End If     tmp = tmp & Cells(i, 1)   Next   Debug.Print tmp End Sub まぁつまり、変数tmpが空じゃなかったら改行を結合してから、次のセルの中身を結合する、 最初のセルを結合するタイミングでは変数tmpは空なのでIfを通らない、と言うことです。 あ、変数tmpをString型で宣言したのは単なる趣味です。 あまり気になさらないでください。

ltbdvhrtxiuw
質問者

お礼

ありがとうございます。

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

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

MsgBoxでの表示を MsgBox Range("A1") & Chr(10) & Range("A2") & Chr(10) & Range("A3") のようにすることで表示画面の中央に並ぶようになっているので最初に改行があるのではないでしょう。 例えばA5セルまでの表示の場合でも上下の空白部分は同じで表示されますね。

ltbdvhrtxiuw
質問者

お礼

ありがとうございます。

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

1 行目だけ分ければ解決。 tmp = Cells(1, 1) For i = 2 To 3 tmp = tmp & vbCrLf & Cells(i, 1) Next i 勿論 3 行目だけ分けるのでもオッケー。 For i = 1 To 2 tmp = tmp & Cells(i, 1) & vbCrLf Next i tmp = tmp & Cells(3, 1)

ltbdvhrtxiuw
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.3

素人考えから申しますと、 For i = 1 To 3 tmp = tmp & vbCrLf & Cells(i, 1) Next i=1の時にCrLfと"a"が出る i=2の時にCrLfと"b"が出る i=3の時にCrLfと"c"が出る ようですので、 tmp = tmp & Cells(i, 1) & vbCrLf 違うかなぁ

ltbdvhrtxiuw
質問者

お礼

ありがとうございます。

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

sub macro1()  dim i, s  for i = 1 to 3   s = vblf & cells(i, "A")  next i  s = mid(s, 2, 999)  msgbox s end sub みたいな。

ltbdvhrtxiuw
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

どのような関数でどのように表示していますか?

ltbdvhrtxiuw
質問者

お礼

ごめんなさい>< コード転記するの忘れてました。 これです↓ Sub test() Dim tmp As Variant Dim i As Long For i = 1 To 3 tmp = tmp & vbCrLf & Cells(i, 1) Next Debug.Print tmp End Sub 再度ご回答よろしくお願いします。

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

関連するQ&A

  • EXCELでセル内に改行を入れる数式を教えて

    2つのセルに入れている内容(テキスト)を1つのセル内に改行で区切って入れたい。 1つのセルの内容の後に改行を入れ、そのあとに2つ目のセルの内容を表示するようにしたいのですが、この改行の入れ方を教えてください。手で入れる場合にはAlt+Enterで入りますが、これを数式で入れたい。 例えば、A1セル:ABC、B1セル:123があるとき、C1セル=A1&B1で、C1はABC123となりますが、これを  ABC 123 と改行した形にしたいのですが、その数式表現を教えてください。

  • VBAで変数に改行を格納した場合

    セルA1に あああ いいい と入れて、 VBAで Dim str As String str = Range("a1") と言うコードを記述して、ステップモードでstrにカーソルを充てると あああいいい と、変数が格納されるのですが、 変数の値は改行されては表示されないのですか? うぃっちウインドウで監視すると、若干空白があるように感じます。 でも私はよくF8で変数にカーソルを充てて今の値を見るのですが 変数に改行があるかどうかは、この方法ではわからないということですか?

  • セル内改行

    A1セルに A B1セルに B とデータが入っていて C1セルに A      B というようにセル内改行をする関数は無いでしょうか

  • セル内での改行 (エクセル)

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

  • エクセルVBA 変数Aと変数Bの組み合わせに対応する値を返すコード

    ワークシート上に次の表があり,この表をもとにして,変数A(0~4)と変数B(0~4)の組み合わせに対応するC列の値を返すコードは,どう書いたらよいでしょうか。  例えば,変数Aのセルに●(4),変数Bのセルに▲(0)と入力したら,値のセルに■(5)と表示させたいのです。  どなたか教えていただけませんか。 A列  B列  C列  4   0   5  3   1   4  3   0   5  2   2   3  2   1   4  2   0   4  1   3   2  1   2   2  1   1   3  1   0   3  0   4   1  0   3   1  0   2   2  0   1   3  0   0   3 変数A:● 変数B:▲ 値:■

  • EXCELで改行しながら文字表示

    セルB1に  「12345678(改行)ABCDEFGH(改行)abcdefgh(改行)09876543」 と表示させたいです。(文字列は例) 半角8文字単位で改行 表示させる元データは、  セルB5=C5&D5&E5&F5     C5=12345678(文字列)     D5=ABCDEFGH(文字列)     E5=ABCDEFGH(文字列)     F5=09876543(文字列)   各々文字列が入力されないこともあります。  (文字が無ければ前詰めですが、できるだけ8文字単位にしたいので   半角スペースを入れたりします。) C5からF5を入力することにより、カーソルをB5にもっていくと 結果としてB1に表示させるというものです。 文字列は*5行のセルだけでなく、8000行くらいあります。 欲をいえば、カーソルがある行のセルB*を表示させることが できればベストです。 (例えば、F4000にカーソルがあれば、B4000の文字を表示する) 宜しくお願いします。

  • 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 上記のコードを実行すると、すべて改行できますが、 どれが正しい、一般的な改行のコードなのでしょうか? どれも正解だとは思いますが、 企業でプログラムを作る際、 どの改行のコードを使うのか知りたいです。 よろしくお願い致します。

  • perlの内容なのですがこれで合っていますでしょうか?

    print 関数は文字列や数値だけでなく、変数を指定してその値を表示することもできます。 $a=1; 1を$aに代入する。 print $a; 変数$aの値を表示させる。 $a=2; 変数$aに2を代入する。 $b=3; 変数$bに3を代入する。 print "変数\$aに変数\$bを代入\n"; 「変数$aに変数$bを代入」という文字を表示させて改行する。 $a=$b; 変数$bの値を変数$aに代入する。 print "\$a="; 「$a=」を表示させる。 print $a; 変数$aの値を表示させる。 print ",\$b="; 「,$b=」を表示させる。 print $b; 変数$bの値を表示させる。 print "\n"; 改行を表示させる。 実行結果は↓↓↓↓↓↓↓ 変数$aに変数$bを代入 $a=3,$b=3 変数の書き方 文は ; で区切るが、1行に並べることも可能。 $a=2; $b=3; ↓ $a=2; $b=3; 複数の変数に、同時に値を代入することも可能。 $a=2; $b=2; ↓ $a=$b=2;

    • ベストアンサー
    • Perl
  • 1.ショートカットキー;セル内で改行 2.DATEIF関数が使えない!

    こんばんは。2つ質問が有ります。宜しくお願いします。 1.ショートカットキーについて セル内で改行するショートカットキーは、本を読んだのですが、 Ctrl+Alt もしくは Shift+Alt とあったのですが、セル内で改行できません。 セル内改行のショートカットキーを教えてください。 (OSはwindowsです) 2.DATEIF関数が使えない!    A      B       C 1 2000/01/01  2001/12/31  =DATEIF(A1,B1) 上記のようにC1に関数を入力したのですが、エラー表示になってしまいます。セルの書式設定を見ると、A1もB1もC1も、「日付」が選択されていて、表示形式も「西暦/月(2桁)/日(2桁)」になっています。 ちなみに、全て半角で入力しています。なぜエラーになるのでしょうか?

  • 【Excel】セルの改行処理について

    下記について質問します。 関数、マクロどちらでも結構ですので、どのようにすれば実現できるかご教授ください。 各セルA1~D1にそれぞれA~Dが入っているとします。 → A1=A、B1=B、C1=C、D1=D そして、 E1にはA1~D1を結合させ、改行した状態で表示させます。 表示例: A B C D 本題: E1セルをメモ帳にコピー&ペースしたとき、上記の表示例のように縦にABCDとペーストされるようにするのはどのようにしたらよいでしょうか? ※改行タグも無しで。 よろしくお願い致します。

印刷で赤色が出ない
このQ&Aのポイント
  • EPSON製品の印刷で赤色が出ない問題について解決方法をご紹介します。
  • 赤色のインクが出力されないEPSON製品のトラブルシューティング方法をご紹介します。
  • 赤色の印刷が正常に行われないEPSON製品の原因と対処法について詳しく解説します。
回答を見る

専門家に質問してみよう