• ベストアンサー

エクセルマクロで

お世話になります。 エクセルにて、選択した列のセルに年・月・通し番号(201107001) と入力するにはどういうマクロになるでしょうか? また次の行では201107002となります。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

連番を記入したいセル範囲を選んで実行する。 sub macro1()  with selection  .cells(1) = format(date, "yyyymm") * 1000 + 1  .dataseries type:=xllinear, step:=1  .numberformat = "0"  end with end sub

OKBob
質問者

補足

素早い回答ありがとうございます。助かります。 可能であれば範囲選択でなく、その都度でお願いしたいです。 もちろん列の変更はなく、下へ続いています。 左側セルの入力を終える度に入れたいのです。 気が向きましたらお願いします。 初級者なものでお手数お掛けします。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

ご質問は >選択した列のセルに年・月・通し番号(201107001)と入力する です。思いつきで全然違うことを「ついでに聞いちゃで」で追加しないでください。 そもそもいったい「どこのセルからどこのセルまで」に連番を記入したいのかとか,元のご相談も追加ご質問もさっぱり不明のまんまです。 たとえばやりたかったのは「選択列に連番を入れたい」なのに,「左側セルの入力」とかしてたら選択してたセルなんて全然どっかに行っちゃいますよ。 また思いつき追加なモノだから,いったいどういう状況での利用を考えているのかもますます曖昧です。 何もない所に1番から連番を入れ始めたい(当初ご質問)のと,既にある連番の続き番号を記入したい(追加質問)では,やることもマクロもまるで違います。 具体的なヤリタイ事を整理して,新しいご相談としてキチンと投稿し直して下さい。

OKBob
質問者

お礼

だいぶ時間が経ってしまいましたが、大変申し訳ありませんでした。 あの後、お二人の回答を基に(まだまだ未熟ですが)完成させました。 昼過ぎまでに完成させたかったのでお力をお借りしたのですが 半端な事をしてしまい大変申し訳なく思っています。 本来の要求は"入力した値の右に日付入り通し番号"だったのですが 下記のままでは月の初日に必ずfirst1の実行が必要な未完成です。 手が回らずこのままで使っているのですが、またの機会にもお力を お貸し戴ければと思います。ありがとうございました。 Sub first1() Range("H300").End(Direction:=xlUp).Select ActiveCell.Offset(1, 0).Select With Selection .Cells(1) = Format(Date, "yyyymm") * 10000 + 1 End With End Sub Sub second2() Range("H300").End(Direction:=xlUp).Select NUM = Selection.Value NUM = NUM + 1 Selection.Offset(1).Select Selection.Value = NUM End Sub

  • FEX2053
  • ベストアンサー率37% (7991/21373)
回答No.2

こんなの? SUB TOOSHIBANGOU() NUM = Selection.value NUM = NUM + 1 Selection.offset(1).select Selection.Value = NUM END SUB 最後に番号を入れたセルにカーソルを合わせて実行すると、次のセルを選択してからそこに+1した数値が入る。

OKBob
質問者

お礼

だいぶ時間が経ってしまいましたが、大変申し訳ありませんでした。 あの後、お二人の回答を基に(まだまだ未熟ですが)完成させました。 昼過ぎまでに完成させたかったのでお力をお借りしたのですが 半端な事をしてしまい大変申し訳なく思っています。 本来の要求は"入力した値の右に日付入り通し番号"だったのですが 下記のままでは月の初日に必ずfirst1の実行が必要な未完成です。 手が回らずこのままで使っているのですが、またの機会にもお力を お貸し戴ければと思います。ありがとうございました。 Sub first1() Range("H300").End(Direction:=xlUp).Select ActiveCell.Offset(1, 0).Select With Selection .Cells(1) = Format(Date, "yyyymm") * 10000 + 1 End With End Sub Sub second2() Range("H300").End(Direction:=xlUp).Select NUM = Selection.Value NUM = NUM + 1 Selection.Offset(1).Select Selection.Value = NUM End Sub

関連するQ&A

専門家に質問してみよう