• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロで指定したセルの値を表示変更し転記)

エクセルマクロで指定したセルの値を表示変更し転記

このQ&Aのポイント
  • エクセルマクロを使用して、指定したセルの値を表示変更し、別のセルに転記したいです。
  • セルのA列には「20101117」という書式があります。B列にはセルの値を「11/27」と表示したいです。
  • A列にデータがある行まで繰り返し処理を行いたいですが、現在のコードではうまく動作しません。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>Cells(行, 2).Value = Mid(行, 1,5,2) &"/"& RIGHT(行, 1,2)  ⇒Cells(行, 2).NumberFormat = "@"   Cells(行, 2).Value = Mid(Cells(行, 1), 5, 2) & "/" & Right(Cells(行, 1), 2) 一例です。 Sub 日付() For 行 = 2 To Cells(Rows.Count, "A").End(xlUp).Row With Cells(行, 2) .NumberFormat = "@" .Value = Format(Cells(行, 1), "!@@/@@") End With Next End Sub

gx9wx
質問者

お礼

セルの表示も、セルの値も 11/17 となり、目標達成です。 どうもありがとうございました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 関数だけでできそうですが・・・ VBAをご希望のようなので、一例です。 A列は必ず8桁の数値だという前提で、 Sub test() Dim i As Long For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row With Cells(i, 2) .Value = Mid(Cells(i, 1), 1, 4) & "/" & Mid(Cells(i, 1), 5, 2) & _ "/" & Mid(Cells(i, 1), 7, 2) .NumberFormatLocal = "m/d" '←月日を二桁表示にしたい場合は "mm/dd" に変更 End With Next i End Sub こんな感じではどうでしょうか? 的外れならごめんなさいね。m(__)m

gx9wx
質問者

お礼

セルの表示は 11/17 になりました。 ですが セルにカーソルをあててfxのところに表示される値は 2010/11/27 でした。 これだとこのファイルを別システムに放り込むときに まずいのです。 セルの値も 11/17 でないとまずいのです。 お手数をかけて申し訳有りません。 どうもありがとうございました。

  • NMZ1985
  • ベストアンサー率30% (41/136)
回答No.2

Cells(行, 2).Value = Mid(行, 1,5,2) &"/"& RIGHT(行, 1,2) このままだと、行の数字を加工しようとしています。 Cells(行, 2).Value = "'" & Mid(Cells(行, 1).Value, 5, 2) & "/" & Right(Cells(行, 1).Value, 2) 先頭に"'"をつけて文字列として、Cells(行, 1).Valueの値を加工するようしました。

gx9wx
質問者

お礼

申し訳ありません。 作成後のファイルを別システムにインポートするのですが セルの値が ’11/17 となっているのが原因で取り込めないようです。 どうもありがとうございました。

関連するQ&A