アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロに関して
A列に15桁の数値が5万件以上あります。
2と6で始まる数値だけ14桁になっています。

2と6で始まる数値を先頭に0を付加するようにマクロで実施したいです。

よろしくおねがいいたします。

質問者からの補足コメント

  • 5万件以上あるので処理を早く出来ると助かります

      補足日時:2019/07/29 14:14

A 回答 (5件)

マクロは必要ないと思うんだ。


どうしても値として処理をする必要があるなら、自分ならTEXT関数で書式を指定して数値を文字列に直してその結果を「値」として元の数字の位置にコピーした後関数を削除しちゃいますね。
=TEXT(A1,"000000000000000")
こんな感じ。
※ 指定した書式の意味を確認してください。

でもって、A1セルを選択して、
 Ctrl+↓
でデータの最後のセルへ飛び、その右のB列のセルを選択後、
 Shift+Ctrl+↑
でA1セルまでの範囲を選択し、
 Ctrl+D
でA1セルを選択範囲内に複製する。
B列を選択してコピーを行い、A列に対して「値」として貼り付けを行う。
最後にもう一度B列選択してB列を削除、または数式を削除。

・・・
表示だけの話ならA列に対して「セルの表示形式」で15桁に満たない桁を「0」で埋めるような書式(TEXT関数でも同じ書式を指定する)を設定しちゃいます。


・・・余談・・・

このように範囲を素早く移動したり、値を複製する手段を知っていれば、マクロは不要なんですね。
    • good
    • 0

文字列になっていいと解釈して、コレ。



Sub zero2()
Application.ScreenUpdating = False
x = Cells(Rows.Count, 1).End(xlUp).Row
Columns("A:A").AutoFilter
ActiveSheet.Range("$A$1:$A$" & x).AutoFilter Field:=1, Criteria1:= _
"<100000000000000", Operator:=xlAnd
For i = 1 To x
If Left(Cells(i, 1), 1) = 2 Or Left(Cells(i, 1), 1) = 6 Then Cells(i, 1) = "'0" & Cells(i, 1)
Next
Selection.AutoFilter
Application.ScreenUpdating = True
End Sub
    • good
    • 0

補足見ましたが、0つけて文字列になってもいいの?


数値として表示上0があればいいの?

ココ、無料依頼サイトじゃないんだから、そういうとこ補足しましょうよ。
    • good
    • 0

'2と6で始まる数値の頭に0をつける即席マクロ


Sub zero()
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Left(Cells(i, 1), 1) = 2 Or Left(Cells(i, 1), 1) = 6 Then Cells(i, 1) = "'0" & Cells(i, 1)
Next
End Sub
    • good
    • 0

もともとが"数値"として入っていて、「0」をつけてしまうと文字列になってしまいますがそれで構わないのでしょうか?



表示上で0が付いているだけで良いのであれば、セルの書式のユーザー定義書式で可能です。
15桁の数値として、15桁に足りないものは頭に0をつけます。
「マクロに関して A列に15桁の数値が5万」の回答画像1
    • good
    • 0

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