餃子を食べるとき、何をつけますか?

データの内容をひとつのセルに改行して入れていくという
作業を自動化できないでしょうか?

「データ」シート
メモ 地点 from ~ to 線種
A1,B1,C1,D1,E1,F1に上の項目があり、
メモ、地点には文字、from ~ toには時刻(00:00)が入り、線種には
=====というような記号が入ります。("~"の列には00:00形式の時刻が入る他"~"という記号が入るときもあります)

それぞれの項目の下にデータを入力してあります。
これを「まとめ」シートに
・A~E列までをひとつのセルに改行してまとめる
・F列はその右隣にそのまま表記する

と自動でできないかと考えています。例えば、「データ」2行目に
A2 観劇
B2 日本大劇場
C2 10:00
D2 ~
E2 12:00
F2 ======
とある場合、「まとめ」シート
A2セルは
観劇
日本大劇場
10:00~12:00
と改行して入り、B2に「データ」F2の======が入るように「データ」シートのデータがなくなるまで右にずらっとつなげていくようにしたいと思っています。今手作業でやっているのですが時間がかかって・・・。
よろしくお願いします。

A 回答 (3件)

#1です。

VBAの例
Sub MACRO1()
Dim RG As Range
Dim R1, R2 As Integer
Set RG = ActiveWindow.RangeSelection
R1 = RG.Row
R2 = R1 + RG.Rows.Count - 1
For I = R1 To R2
If Cells(I, 1) = "" Then Exit For
Cells(I, 1) = Cells(I, 1) & Chr(10) & Cells(I, 2) & Chr(10) & Format(Cells(I, 3), "hh:mm") & "~" & Format(Cells(I, 5), "hh:mm")
Range(Cells(I, 2), Cells(I, 5)) = Null
Next I
End Sub
    • good
    • 0
この回答へのお礼

mshr1962さんありがとうございました。実行したところ改行してひとつのセルにまとまりました。こうやってコードをかけるとうらやましいです。悲しいことにご提示いただいた例を元に改変して利用することが今の自分の力量ではできません。もう少し待ってみると同時に自分でも改変を試みてみます。

お礼日時:2008/04/06 19:23

もう回答は出てますが、この課題の要素スキルは


(1)セル内改行は文字列の間にChr(10)を入れる(&で結合)
(2)結合は「セル値(番地)&セル値(番地)&・・」
その間に(1)のセル内改行コードが入る。
付け加えて、
(3)日付セルが日付シリアル値ならFormat函数で日付の文字列化
(4)時刻の「To]に当たるデータがない場合「~」を削除
などです。
ーー
このようにコードは判らなくても、文章に分解できるようになってください(ブレークダウン)。そうすれば質問も明確で短くなります。
例も適切なものが作れます。
    • good
    • 0

VBA使わなくても関数では駄目でしょうか?


G2=A2&CHAR(10)&B2&CHAR(10)&TEXT(C2,"hh:mm")&D2&TEXT(E2,"hh:mm")
でG2に纏められます。
この結果をコピーしてA2に形式を選択して貼り付けで値にすればいいと思いますけど。
※セルの書式設定の配置で「折り返して全体を表示」似チェックしてください。
    • good
    • 1
この回答へのお礼

ありがとうございました。実は関数による方法もやってみましたが
今後の実用面から考えるとVBAであれば尚いいと思っています。
自分でできないくせに何なんですが・・・

お礼日時:2008/04/06 13:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A