• ベストアンサー

エクセルの3行分を1行として認識させるやりかた

エクセル2010を使用しています。 エクセルの3行分を1行として認識させるやり方ありますでしょうか? (例) A1、A2、A3に入力された言葉を1行として認識させるやり方がありますでしょうか? また、認識ができたうえでのお話で、セルの位置が変わっても対応が出来ればと思っております。 ご存知の方、申し訳ありませんが、お教えいただけないでしょうか? 宜しくお願い致します。

noname#227795
noname#227795

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

このサンプルコードでは、下から上へ3行づつまとめて処理しています。 変数iは行ですが、3行セットの一番下の行をさします。 i-2は3行セットの一番下の行から2つ上=3行セットの1番上の行になります。 残りはコード中にコメントを入れましたので参照ください。 こんな感じでわかりますでしょうか? Sub Sample2()   For j = 1 to 5 '対象は1列目から5列目(A~E列)     '対象列の一番下の行から3行づつ上へと処理     For i = Cells(Rows.Count, j).End(xlUp).Row To 4 Step -3       sString = Cells(i - 2, j) & vbLf & Cells(i - 1, j) & vbLf & Cells(i, j) '3行を結合した文字列を作成       Cells(i - 2, j) = sString '作った文字列を先頭行に代入       Range(Cells(i - 1, j), Cells(i, j)).Delete Shift:=xlUp '不要な2行を削除     Next i   Next j End Sub

noname#227795
質問者

お礼

大変わかりやすいご説明をありがとうございます。 やりたいことが出来るようになりました。 本当にありがとうございます。 また、行き詰ったりしたものがありましたら、ご相談させて下さい。 今後とも宜しくお願い致します。

その他の回答 (5)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

> これを「B列」「C列」「D列」「E列」・・・ > もしようと思えば、マクロのどの部分に追加すればできるようになるのでしょうか? Cellsより、Rangeプロパティを使った方が解りやすかったでしょうか(個人的には行も列も数値で表すCellsプロパティの方が使いやすいです)。 Cellsプロパティの場合、Cells(行,列)で表します。 A列からE列までならこんな感じで行けるでしょう。 Sub Sample2()   For j = 1 to 5     For i = Cells(Rows.Count, j).End(xlUp).Row To 4 Step -3       sString = Cells(i - 2, j) & vbLf & Cells(i - 1, j) & vbLf & Cells(i, j)       Cells(i - 2, j) = sString       Range(Cells(i - 1, j), Cells(i, j)).Delete Shift:=xlUp     Next i   Next j End Sub

noname#227795
質問者

補足

大変、返事が遅くなりまして申し訳ありません。 やりたいことが出来ました。 ただ、今回であればA列からE列でできるようにお教えいただいたのですが、 「Cellsプロパティの場合、Cells(行,列)で表します。」 という事ですので、「Cells(行,列)」の部分を変えてあげれば、増やすことができるとの認識でお間違いなかったでしょうか? 実際に入れるとすれば、すべての「Cells(行,列)」の部分を変えてあげるのみで大丈夫なのでしょうか? また、「Cells(i - 2, j)」の「-2」は何をあらわした数字なのでしょうか? これもはせてお教えいただけたらと思います。 何度もご迷惑をおかけいたしまして申し訳ございません。 宜しくお願い致します。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

A2セルから始まって3行分のデータを1セルにセル内改行して入れたいって事なんでしょうかね。 で、あればマクロを使います。 標準モジュールに以下のコードを入れて実行してみてください。 Sub Sample()   For i = Cells(Rows.Count, 1).End(xlUp).Row To 4 Step -3     sString = Cells(i - 2, 1) & vbLf & Cells(i - 1, 1) & vbLf & Cells(i, 1)     Cells(i - 2, 1) = sString     Range(Cells(i - 1, 1), Cells(i, 1)).Delete Shift:=xlUp   Next i End Sub

noname#227795
質問者

補足

すごいです!!(゜ロ゜屮)屮 これを「B列」「C列」「D列」「E列」・・・ もしようと思えば、マクロのどの部分に追加すればできるようになるのでしょうか? 何度もお手数をおかけいたしまして申し訳ありません。

  • sora1515
  • ベストアンサー率58% (54/92)
回答No.3

=A1&A2&A3 かなとも思いましたがいや騙されてはいけないここは技術者向けカテだと気付き あえてc言語で読み込み構造体に入れる方法をご提案します。 http://www.din.or.jp/~wayou/confidential/mfc_excelread.html ps もし関数絡みでしたらデジタルライフ→ソフトウェア→エクセル のカテゴリもお見知りおきをどうぞ。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

「認識」?良く解りませんが、やりたいのはこういう事ですか? 結合しているC2セルの書式設定ダイアログを開き、「配置」タブ内の「折り返して全体を表示する」にチェックを付けておく。 次に、C2セルに↓ =A2&CHAR(10)&A3&CHAR(10)&A4

noname#227795
質問者

補足

ご回答ありがとうございます。 一度数式を入力させて頂きました。 3行の文字入力セルが1行の文字入力にまとめることが出来ました。 これをフィルターでなく並べ替えなどが使えるようにすることができるのでしょうか? 普通で並べ替えをしようとすると「この操作には、同じサイズの結合セルが必要です。」と出てしまいました。 並び替えをしたいのであれば、セル結合なしでの表を作成をしなければならないのでしょうか? 全く知識がないので、よくわからないことを言っているかもしれませんが、教えていただけたらと思います。 宜しくお願い致します。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

>エクセルの3行分を1行として認識させるやり方ありますでしょうか? 「1行として認識させる」とはどういう意味ですか?? A1 A2 A3 に入力された文字列を連結して別のセルに入れたいという意味??

関連するQ&A

  • エクセルの一つのセルに複数行の文字を入れる方法

    エクセルの一つのセルに複数行の文字を入れる方法を教えてください。 メモ帳などで入力したこのような文章をエクセルに挿入したいのです。 1.あいうえお   あいうえお   あいうえお そのままコピーしてエクセルに貼り付けたら 一つのセルには入らず3行分にまたがってはいりました。 セルの結合をするのかしら?と思って結合したら1行目の「1.あいうえお」が真ん中に残って 2,3行目の文字が消えてしまいました。 このような文章をこのままの状態で一つの列の一つの行(A列1行目など)に入れるには どのようにすればできるのでしょうか?

  • エクセルで、↓キイで1行下がり、↑キイで2行上がります?

    人からもらったエクセルの表で、↓キイを押すとセル位置が1行下がります。これは当たり前です。しかし、↑キイを押すと2行分一度に上がります。これをやめさせて1行分づつ上がるようにしたいのですが、どこに設定があるのでしょうか?よろしくお願いします。

  • エクセルで自動認識(?)する方法

    エクセル2003を使用してます。 決まったセルに特定の文字を入れるとそれを認識して他のセルに別の文字が出るようにしたいのですが…。 《例》 A1セルに『りんご』と入力すると A2セルに『津軽』と表示される A1セルに『メロン』と入力すると A2セルに『アンデス』と表示される エクセルはほとんど使わないので、こんなことができる式がありましたら教えてください。

  • Word>PDF>EXcel で 1行を複数行に分離する方法

    Word>PDF>EXcel で 1行を複数行に分離する方法 WordファイルをPDF経由でExcelファイルににコンバートしました。 一行(セル:A5)の行幅が大きく、A5セルに3行分が入った状態でコンバートされています。 -----------------------------  例:A5セルに    九州、博多のにわかせんべいは    とても美味しいので    みなさまにオススメします。 ------------------------------ これをA5,A6,A7の3行に分離した形式に変換したいのですが方法がありますか? つまり、   A5セル ---> 九州、博多のにわかせんべいは A6セル ---> とても美味しいので A7セル ---> みなさまにオススメします。 です。 当然行の挿入で2行分プラスして、コピペすれば体裁(整形)は整いますが 行数が多くなる手間がかかってしまいます。 なるべく手数を掛けずに整形する方法あれば教えてください。 (例では3行ですが、実は十数行に分離されたセルが多数あって整形が大変です。)

  • エクセルで数字を認識して、行をコピーして挿入するマクロ

    エクセルのマクロでこんなことは可能でしょうか? (1)あるセルに(数字)が入ったとき    (そのセルの列は固定) (2)自動的にそのセルの「行」全体をコピーして    その数字が5なら4行、1なら0行 (入力値より-1行) (3)ひとつ下の行に「コピーしたセルの挿入」で行の追加をする 例 列 A.B.C.D.E a.b.c.d.2 "a.b.c.d.2" a.b.c.d.3 "a.b.c.d.3" "a.b.c.d.3" Eの列に2とある場合下に2行-(1行)追加コピー "a.b.c.d.2"の部分。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

  • エクセルで10分ごとの時刻の表示 方法

    エクセルで表の送迎表をつくろうかと思っています B2セルに8:20: C2セルに8:30 D2セルに8:40 E2セル8:50 F2セルに9:00 G2セルに9:10 H2セルに9:20…… といったように 2行目に自動的に10分ごとの時刻を入力していく方法は あるのでしょうか?もし あればその方法をおおしえください また 1分ごとの方法も教えて頂けると助かります また その方法があったとして E2セルのみ8:49にしたい場合 その入力方法もあれば教えて頂けるとありがたいのですが…… 基本的なご質問で申し訳ありません  表のイメージとしては 2行目に時刻を10分ごとに入力し A列にお客様名 2行目のB列から時刻 B3 C4などには ドライバー名を入れたいと考えています 何とか あしたまでに 仕上げたいので アドバイス宜しくお願いいたします OSは VISTA でOFFICE2003です

  • Excelの行間隔について

    よろしくお願いします。 Excel2002です。 「折り返して全体を表示する」を使用し、1つのセル内に数行の文字を入力しています。 この時、行と行の間隔が文字の高さピッタリになっていて読みにくいのです。 「縦位置」を均等割付か両端揃えにして行の高さを高くすると行間隔が広がることはわかったのですが データの量が多く、また行によりセル内の行数がまちまちなので、各行で行の高さを調整するのは大変なのです。 何か良い方法があれば、教えてください。 お願いします。

  • [VBA]テキストボックスからエクセル反映(複数行)

    始めまして。初めて質問させて頂きます。至らない点があると思いますがよろしくお願い致します。 今テキストボックスよりエクセル(単一セル)に文字を入力するシートを作成しております。 テキストボックスで複数行入力(Enterで改行)の方法と複数行入力した文字をシート(1セル)に反映したいのですが良い方法をご存知でしたらご教授お願いします。 【やりたい事項】 テキストボックス内 (1)○は△です。(Enterで改行) (2)×は●です。 エクセルシート上(A1セルで) (1)○は△です。(ALT+Enter) (2)×は●です。 現状:MultiLineをTRUEにして右端まで文字入力すると2行目に入力可能 エクセルに反映すると「○は△です。×は●です。」と1セルで1行で表示となってます。 言葉足らずかもしれませんが、よろしくお願いします。

  • Excelでセルを2行に

    通常、Excelで1セルを2行にしたいときには、ALT + Enter を入力しますよね。 今回は、2つのセルに入っている文字列を1セルにまとめて2行に表示したいのですが… つまりA1に入ってる「OK」とB1の「Wave」をC1セルにまとめるときは  「=A1&B1」ですが、「OK」と「Wave」を2行にしたいのです。 おそらく「=A1&????&B1」という形で、????の場所にALT + Enter に相当する何かを入れるのだろうとは、思うのですが… よろしくお願いいたします。

  • エクセルで100行ほどのセルに、単語が3~10個、半角スペースで区切ら

    エクセルで100行ほどのセルに、単語が3~10個、半角スペースで区切られて入力されています。 これを一気にスペースごとに別のセルに移したいのですが。「データ」→「区切り位置」だと1行ごとに行わなければならないので…よろしくお願いします。