ここから本文です

下記のコードの意味の意味がわからなくなってしまいました。 教えていただけない...

kur********さん

2020/2/1210:29:31

下記のコードの意味の意味がわからなくなってしまいました。
教えていただけないでしょうか。


Range("E1:E" & Range("B65536").End(xlUp).Row). _
Offset(0, -1).DataSeries Step:=1
----
Sub renban()
Sheets("マスタ").Select
Range("D1") = 1 '番号の振り直しの開始セル
Range("E1:E" & Range("B65536").End(xlUp).Row). _
Offset(0, -1).DataSeries Step:=1
End Sub
----

閲覧数:
110
回答数:
1

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2020/2/1210:57:25

Range("E1:E" & Range("B65536").End(xlUp).Row). _
Offset(0, -1).DataSeries Step:=1


B列のデータ入力済みが10行分あったとしたら

Range("B65536").End(xlUp).Row
でB列のデータ入力済みの最終行を求める。
(ここで、10行の10が求まる)
続いて
Range("E1:E" &
で求めた最終行と連結させて
Range("E1:E10)
とする。

さらに、
Offset(0, -1)
オフセットで、行は移動無し(0)で列を左に一つ移動(-1)した列を指定し

.DataSeries
で、連続する値を指定して

Step:=1
で増加は1ずつを指定。

まとめると
Range("E1:E" & Range("B65536").End(xlUp).Row). _
Offset(0, -1).DataSeries Step:=1
は、B列の入力済み行まで、D1から下にD1の値を元にして+1ずつさせてセルに入力する。

命令の実行後は
D1が10だとすると
D1~D10に10~20の値が入力された状態になる。
質問の命令の場合は、
Range("D1") = 1 '番号の振り直しの開始セル
とありますので、


簡単な説明文にすると、質問内容の命令すべてで
・D列にD1から下に、1から始まる連番を、B列の文字入力の行まで入力する
という式になります。


ただし、エクセル2003までの命令になります。
2007以降は最終行が65536ではなく1048576になります。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる