• ベストアンサー

セルとセルの文字列を結合について

   A     B       C 1       2008/1/2   0:00:00 2       2008/1/2   0:15:00 3       2008/1/2   0:30:00 4       2008/1/2   0:45:00 5       2008/1/2   1:00:00 6       2008/1/2   1:15:00 ↓     A          B       C 1 2008/1/2 0:00   2008/1/2   0:00 2 2008/1/2 0:15   2008/1/2   0:15 3 2008/1/2 0:30   2008/1/2   0:30 4 2008/1/2 0:45   2008/1/2   0:45 5 2008/1/2 1:00   2008/1/2   1:00 6 2008/1/2 1:15   2008/1/2   1:15 といった感じにA列に Bの日付とCの時刻を半角スペースを挟んで 入力させたいのですが Excel上で以下の関数を使って手動でやると =CONCATENATE("2008/1/1"," ",0:15) 2008/1/1 0:00 と表示されるが マクロでの記述上では上手くいかない。 For i = 1 To 10 Range("A1,A10") = CONCATENATE(Cells(i, 2), Cells(i, 3)) Next ↑書き方としてはやっぱり間違ってる? 何かいい書き方ってないでしょうか・・? お手数おかけいたしますがよろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

B列の日付、C列の時刻はいずれも日付型(シリアル値:セルの書式を標準にしたときに表示される値)で入力されていますか? だとするとVBAでは For i = 1 To 10  Cells(i, 1).Value = Format(Cells(i, 2), "yyyy/m/d") & _                Format(Cells(i, 3), "hh:mm:ss") Next i でよいと思います。ただしこのときのA列は「文字列」になります。

pou1986
質問者

お礼

ありがとうございます そのまま上記のマクロを追加してみたら正常に動作しました。

その他の回答 (2)

  • YSNR-HRN
  • ベストアンサー率36% (40/111)
回答No.3

ANo.1 をマクロに置き換えます。 ツール>マクロ>新しいマクロの記録で記録スタート    ↓ やりたいことをやってみる。    ↓ 記録終了    ↓ 記録されたコードを確認する Range("A1:A6").Select Selection.FormulaR1C1 = "=RC[1]+RC[2]"    ↓ 不要な部分等を修正する Range("A1:A6").FormulaR1C1 = "=RC[1]+RC[2]" となります

pou1986
質問者

お礼

試してはみましたが やってみたいことを入れると処理具合が不調になってしまいましたが 試してるうちに動作確認できました お手数おかけしましてありがとうございました

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆マクロはさておき A1=B1+C1 ★で、 2008/1/2 0:00 になります ★もしもこのように表示されなければ、表示形式を、 yyyy/m/d h:mm としてください

pou1986
質問者

お礼

そうですね Excel版だとそれで動きました マクロもいじってて追加してるうちにできたのでありがとうございましたw