- ベストアンサー
エクセルマクロで指定したセルの値を表示変更し転記
- エクセルマクロを使用して、指定したセルの値を表示変更し、別のセルに転記したいです。
- セルのA列には「20101117」という書式があります。B列にはセルの値を「11/27」と表示したいです。
- A列にデータがある行まで繰り返し処理を行いたいですが、現在のコードではうまく動作しません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>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
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 関数だけでできそうですが・・・ 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
お礼
セルの表示は 11/17 になりました。 ですが セルにカーソルをあててfxのところに表示される値は 2010/11/27 でした。 これだとこのファイルを別システムに放り込むときに まずいのです。 セルの値も 11/17 でないとまずいのです。 お手数をかけて申し訳有りません。 どうもありがとうございました。
- NMZ1985
- ベストアンサー率30% (41/136)
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の値を加工するようしました。
お礼
申し訳ありません。 作成後のファイルを別システムにインポートするのですが セルの値が ’11/17 となっているのが原因で取り込めないようです。 どうもありがとうございました。
お礼
セルの表示も、セルの値も 11/17 となり、目標達成です。 どうもありがとうございました。