痔になりやすい生活習慣とは?

連番を自動作成できるよう、マクロかVBAでも結構ですので教えてください。

例えばC1に123、D1に456、と値を入力した時に
A2以降に123~456の連番が自動作成される、という具合です。
このC1の開始番号とD1の終了番号を変更した時にも対応できるようお願いします!!

Excel2000です

このQ&Aに関連する最新のQ&A

A 回答 (7件)

Range("A2").Value = Range("B1").Value


Range("A2:A65536").DataSeries stop:=Range("C1").Value
とか。
    • good
    • 3
この回答へのお礼

うまくいきました!

ありがとうございます、大変助かりました

お礼日時:2004/01/09 17:36

#5のご回答ではエラーが出るセルが出ると思いますので


修正。
(1)A2に=C1
(2)A3のセルに=IF(ROW()<=$D$1-$C$1+2,A2+1,"")
+1でなく+2となる、1は第2行目であるA2セルから始まるため。
(3)A4以下十分下の行まで式を複写する
    • good
    • 0

・・・書き直せるものなら修正させて欲しくて泣きそうな#1です。

。。

#2が更に間違っておりますです。
lncnt ではなく lngrow でございます。(涙)

でも#3さんの方法でうまくいったようですね。よかったです。(^-^)
    • good
    • 0

とっておきめんどくさがり屋さん仕様のものを...。



連番を開始したいセル(仮にC2とする)に以下を入力。
=IF(C1+1<=$D$1,C1,"")
その下からず~っと下までは、以下を入力(コピー)。
=IF(C2+1<=$D$1,C2+1,"")

以上。
    • good
    • 0

こんにちは。

maruru01です。

関数での方法を。

A2に、

=IF(COUNT($C$1:$D$1)=2,IF($C$1>$D$1,"",IF(MAX($C$1-1,$A$1:A1)+1>$D$1,"",MAX($C$1-1,$A$1:A1)+1)),"")

と入力して、下の行へ十分な行数コピーしておきます。
    • good
    • 0

#1です。

・・・思いっきり間違えてました。

× cells(2,1).value = lngloop
○ cells(lngcnt,1).value = lngloop

です。ごめんなさい。
    • good
    • 0
この回答へのお礼

すばやい回答ありがとうございます。

#1は、1個のセルに順に数値が入力され、終了番号しか残りませんでした。
#2は、エラーが出てしまいました。。。

お礼日時:2004/01/09 17:35

dim lngLoop as long


dim lngRow as long

lngrow = 2
for lngloop = range("C1").value to range("D1").value
 cells(2,1).value = lngloop
 lngrow = lngrow + 1
next

この場で思いつきで書いたのでこのままで動く保証は致しかねますが。(笑)
イメージとしてつかんでいただければ。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで連続印刷をするマクロ

Excelでデータベース的な使い方をしています。
「データ」シートにたくさんのデータがあり,
「レポート」シートのA1セルに入力した数字に該当するデータをVLOOKUP関数で読み込んでいます。
それを連続印刷するときに,
現在は
For n = 1 To 135
Range("A1").Select
ActiveCell.FormulaR1C1 = n
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next n
End Sub
というマクロで実行させています。
(ちなみにマクロの知識がほとんどなく
「新しいマクロの記録」を利用して作ったため,ほとんど意味は分かっていませんが・・・)

このマクロでも印刷できるのですが,
このままだとデータが 1 ~ 135に固定されてしまいますよね。
実際はデータ数が変動するので,そのたびにマクロの数字を変えています。

そこで考えているのが
新たに「設定」シートを作成して
そこのiとjのセルに数字を入力することで,自動的に
マクロが n = (iに入力した数字) To (jに入力した数字)
となるようにした方が便利だと考えています。

あまりマクロについての知識がないくせに
ほんのちょっとの工夫でできるような気がして・・・
あれこれ試してみたけどできません。
できれば今のマクロを根本的に変えるのではなくて
少しの変更とか追加とかでできるようにしたいのですが可能でしょうか?

ぜひ 教えてください。よろしくお願いします。

Excelでデータベース的な使い方をしています。
「データ」シートにたくさんのデータがあり,
「レポート」シートのA1セルに入力した数字に該当するデータをVLOOKUP関数で読み込んでいます。
それを連続印刷するときに,
現在は
For n = 1 To 135
Range("A1").Select
ActiveCell.FormulaR1C1 = n
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next n
End Sub
というマクロで実行させています。
(ちなみにマクロの知識がほとんどなく
「新しいマクロの記録...続きを読む

Aベストアンサー

>そこのiとjのセルに数字を入力することで,自動的に
>マクロが n = (iに入力した数字) To (jに入力した数字)
セルが、I1とJ1セルのことだとして
For n = 1 To 135

For n= Sheets("設定").Range("I1").Value To Sheets("設定").Range("J1").Value
といった風に記述できます。
>実際はデータ数が変動する
J1セルにはCOUNTA関数などを使用してデータの数を表示させておくと便利かもしれませんね。

Qエクセルの表を複数枚印刷したときに連番をつけたい

エクセルの1枚の表を100枚印刷し、その表のシート内(AW3)に連番を打ちたいのですが、なにか簡単な方法はありますか?
今までは印刷を100枚して、ナンバーリング(ハンコ)で連番を打っていましたが、ちょっと面倒なんです。
マクロを使ったことのない初心者ですが、何かよい方法はありませんか?よろしくお願いいたします。

Aベストアンサー

#02です。
開始番号、終了番号を指定する場合はこんなマクロです。
ただし開始、終了ともに正の数でないと印刷は行いません。

Sub NumberPrint()
Dim idx As Integer
Dim frmPage, toPage
 frmPage = Application.InputBox("連番を挿入して印刷します" & Chr(13) _
     & "開始番号を入力してください", Type:=1)
 toPage = Application.InputBox("終了番号を入力してください", Type:=1)
 If frmPage > 0 And toPage >= frmPage Then
  For idx = frmPage To toPage
   Range("AW3").Value = idx
   ActiveSheet.PrintOut
  Next idx
 Else
  MsgBox "開始番号、終了番号が不適切です。印刷は行いません"
 End If
End Sub

#02です。
開始番号、終了番号を指定する場合はこんなマクロです。
ただし開始、終了ともに正の数でないと印刷は行いません。

Sub NumberPrint()
Dim idx As Integer
Dim frmPage, toPage
 frmPage = Application.InputBox("連番を挿入して印刷します" & Chr(13) _
     & "開始番号を入力してください", Type:=1)
 toPage = Application.InputBox("終了番号を入力してください", Type:=1)
 If frmPage > 0 And toPage >= frmPage Then
  For idx = frmPage To toPage
   Range("AW3...続きを読む

Qエクセルで、条件の合うものだけに連番をつけたいです。

A列に連番があります。この番号は変えることができません。
B列に、条件を満たすセルだけに別の連番をつけたいです。例えば、D列がTRUEである行が1,5,6…とあったとすれば、B1が1、B5が2、B6が3…といった具合にです。
よろしくお願いします。

Aベストアンサー

D列の適当なセルに「TRUE」と入力されているのであれば、

B1に=IF(D1,1,"")
B2に=IF(D2,COUNT(B$1:B1)+1,"")として以下コピー

ではいかがでしょうか。

Qエクセルで連番をマクロで

こんにちは いつもお世話になっています。
Windows7、エクセル2010で教えてください。

 B3から仮にB100まで文字列があるとします、空白セルはありません。
この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。
実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。
マクロ記録ではB列にデータがなくなる判断ができなくて作れません。
この作業が頻繁にあるものですからマクロができれば助かります。
よろしくお願いいたします。

Aベストアンサー

一例です。
Sub sample()
Dim i As Long
For i = 3 To Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, "B") <> "" Then Cells(i, "A") = i - 2
Next
End Sub

Qエクセルを使って名簿を連続印刷するには

名簿の名前だけを一人一人ピックアップして、A1のセルに入れて、連続して自動印刷はできますか。
使っているソフトは、EXCEL2003です。
宜しくお願いいたします。

Aベストアンサー

もう少し名簿がどのシートにどのような状態であるとか、印刷用のシートは別シートであるとか、
マクロの知識はありますとか、詳細な情報を質問に入れた方が、回答を得易いと思いますよ。

で、Sheet1のセルAに以下のように名簿が並んでるとします。

氏名(これはタイトル)
宛先 氏名1
宛先 氏名2
宛先 氏名3
宛先 氏名4
宛先 氏名5
宛先 氏名6
宛先 氏名7
宛先 氏名8
宛先 氏名9

印刷は別のシート、例えばSheet2に印刷するとした場合は以下のマクロで行えます。
なお、Sheet2の印刷範囲は仮にA1:D7の範囲としています。

Sub Pri_Name()

 Range("A2").Activate
 Do While ActiveCell.Text <> ""
  Worksheets(2).Range("A1").Value = ActiveCell.Text
  Worksheets(2).Range("A1:D7").PrintOut
  ActiveCell.Offset(1, 0).Activate
 Loop

End Sub

上記のマクロはAltキーを押しながらF11キーを押して表示されるマクロのエディタでF7キーを
押して出てきたところに貼り付けます。
印刷を実行する場合はAltキーを押しながらF8キーを押して表示されるマクロの実行指示画面で
「Sheet1.Pri_Name」が選択されている事を確認して、同画面にある「実行(R)」ボタンを押します。

もう少し名簿がどのシートにどのような状態であるとか、印刷用のシートは別シートであるとか、
マクロの知識はありますとか、詳細な情報を質問に入れた方が、回答を得易いと思いますよ。

で、Sheet1のセルAに以下のように名簿が並んでるとします。

氏名(これはタイトル)
宛先 氏名1
宛先 氏名2
宛先 氏名3
宛先 氏名4
宛先 氏名5
宛先 氏名6
宛先 氏名7
宛先 氏名8
宛先 氏名9

印刷は別のシート、例えばSheet2に印刷するとした場合は以下のマクロで行えます。
なお、Sheet2の印刷範...続きを読む

Qエクセル連番自動印刷について

マクロについてお尋ねいたします。

エクセルから印刷時に連番を自動的に印刷できるようにしたいと思いマクロを組みましたが
指定のセル(画像参照)に1を入力後、マクロを実行し印刷が始まり連番1番から50番までは自動的に印刷することに成功いたしました。
そのときに実行したモジュールの内容は下記のとおりです。
次に51番から100番まで印刷できるようにしたいと思い、
エクセルのセル内に51を入力し、モジュールの内容を書き換えマクロを実行してみましたが印刷に失敗いたしました。

Sub 印刷()

Dim no As Integer

Sheet1.Cells(3, 8) = &quot;&quot;
no = 1 ←ここを51書き換える

Do Until no &gt; 50
Sheet1.Cells(3, 8) = no
Sheet1.PrintOut
no = no + 1
Loop


End Sub

どのようにしたら51番から100番まで印刷できるかご教授いただけませんか
よろしくお願い致します。

マクロについてお尋ねいたします。

エクセルから印刷時に連番を自動的に印刷できるようにしたいと思いマクロを組みましたが
指定のセル(画像参照)に1を入力後、マクロを実行し印刷が始まり連番1番から50番までは自動的に印刷することに成功いたしました。
そのときに実行したモジュールの内容は下記のとおりです。
次に51番から100番まで印刷できるようにしたいと思い、
エクセルのセル内に51を入力し、モジュールの内容を書き換えマクロを実行してみましたが印刷に失敗いたしました。

Sub 印刷()

...続きを読む

Aベストアンサー

こんにちは!
>指定のセル(画像参照)に1を入力後・・・
とありますので、H3セルに「1」を入力し、マクロを実行されているのですよね?

それを「51」からというコトですので、H3セルに「51」を入力 → マクロ実行とすると

Sub Sample1()
Dim cnt As Long
Do Until cnt = 50 '//50まで
cnt = cnt + 1
Worksheets("Sheet1").PrintOut
With Range("H3")
.Value = .Value + 1
End With
Loop
End Sub

ではどうでしょうか?m(_ _)m

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

QExcelで複数行ずつ連番をふる方法教えてください

初心者ですが、1,2,3……と縦に連番はオートコレクトでできるのですが
3行ずつ同じ数字で連番を振りたいのですがオートコレクトをしますと
少数点の付いたりして上手くいきません。
1□□2□□3□□…… であればできるのですが。(□は空白行です。)
111222333……にしますと333の次から3.5 3.8 4.1 のように0.3ずつ
増加した数字になってしまいます。希望は111222333444555666……
にしたいのです。宜しくお願い致します。

Aベストアンサー

さっき回答した者ですが、補足です。

数字の前に「No.」などがついている場合は、
残念ながら下で私が回答した方法は使えません。

しかし、次の方法で、
「No.」等の文字を表示させることはできます。

「セルの書式設定」で「ユーザー設定」を選択し、
「種類」の欄に「"No."#」と入力すれば、
「No.1」と表示することができます。

よろしければお試しください。

Q行に連番をつけたいのですが、空白セルには番号をつけないようにしたい。

A  B
1  10
2  20
   (空白)
3   25

B列のセルに数値の入力があった場合に、A列にナンバーを連番でつけていきたいのですが、できますでしょうか?

よろしくお願いします。

Aベストアンサー

#2です。
4行目「A4以下はA2をコピーする」は「A4以下はA3をコピーする」の間違いです。
たびたびすいません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング