- ベストアンサー
エクセル VBA 飛ぶセルの自動連番のつけ方
エクセル VBA で添付画像のように1枚に30までの自動連番、 セルに1~150と入力すれば自動採番で5枚印刷できるような VBAをご教示下さい。 番号は001のような3ケタの場合でお願いします。
- tasukoceo
- お礼率49% (145/295)
- Visual Basic
- 回答数5
- ありがとう数1
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
さらにさらにごめんなさい。 先に示したコードでも動作しますが、 気がかりな記述になっているところがあるので、再掲示します。 Option Explicit Sub sample3() Dim wkL As Integer Dim wkC As Integer Dim wkSH As Worksheet Dim wkNum As Integer Set wkSH = ThisWorkbook.Sheets(1) wkNum = wkSH.Cells(1, 3).Value Do For wkC = 1 To 3 For wkL = 1 To 10 With wkSH.Cells(wkL * 3, wkC * 3) .NumberFormatLocal = "@" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Value = Format(wkNum, "000") End With wkNum = wkNum + 1 Next wkL Next wkC wkSH.PrintOut If wkNum > wkSH.Cells(1, 5).Value Then Exit Do Loop End Sub
その他の回答 (4)
- HohoPapa
- ベストアンサー率65% (454/691)
ナンバーリングする部分を中央印字させているようなので それを加味して再掲示します。 印刷範囲、行高、行幅、背景色、デザインなどの設定は済んでいて、 VBAでやりたいことはナンバーリングと印刷指示だという理解でいいですね? また、番号の範囲(C1~E1:ナンバーリングする数)は 30の整数倍という条件で良ければ 次のようなコードとなりましょう。 Option Explicit Sub sample2() Dim wkL As Integer Dim wkC As Integer Dim wkSH As Sheet1 Dim wkNum As Integer Set wkSH = ThisWorkbook.Sheets(1) wkNum = wkSH.Cells(1, 3).Value Do For wkC = 1 To 3 For wkL = 1 To 10 With wkSH.Cells(wkL * 3, wkC * 3) .NumberFormatLocal = "@" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Value = Format(wkNum, "000") End With wkNum = wkNum + 1 Next wkL Next wkC wkSH.PrintOut If wkNum > wkSH.Cells(1, 5).Value Then Exit Do Loop End Sub
- HohoPapa
- ベストアンサー率65% (454/691)
印刷範囲、行高、行幅、背景色、デザインなどの設定は済んでいて、 VBAでやりたいことはナンバーリングと印刷指示だという理解でいいですね? また、番号の範囲(C1~E1:ナンバーリングする数)は 30の整数倍という条件で良ければ 次のようなコードとなりましょう。 Option Explicit Sub sample1() Dim wkL As Integer Dim wkC As Integer Dim wkSH As Sheet1 Dim wkNum As Integer Set wkSH = ThisWorkbook.Sheets(1) wkNum = wkSH.Cells(1, 3).Value Do For wkC = 1 To 3 For wkL = 1 To 10 wkSH.Cells(wkL * 3, wkC * 3).Value = "'" & Format(wkNum, "000") wkNum = wkNum + 1 Next wkL Next wkC wkSH.PrintOut If wkNum > wkSH.Cells(1, 5).Value Then Exit Do Loop End Sub
- SI299792
- ベストアンサー率48% (714/1476)
これ、150枚分シートを作って、1ページ30枚になるように調整して、印刷の範囲指定だけをマクロでやったほうがよくないですか。 サイズ等は調整して下さい。 但し、範囲指定でやっているので、1~1を指定しても、1~3が出ます。 PrintOutのコメントを外せば、印刷もされます。
- imogasi
- ベストアンサー率27% (4737/17068)
割引券部分を 標準モジュールに Sub test02() Range("A2:A51") = "割引券" Range("D2:D51") = "割引券" Range("G2:G51") = "割引券" End Sub 1ステートメントでもできるかもしれないが、テスト時間がないので。 ーーー 番号部分を標準モジュールに Sub test01() For j = 1 To 3 For i = 2 To 51 Cells(i, (j - 1) * 3 + 3) = (j - 1) * 50 + i - 1 Next i Next j End Sub でやってみて、どうですか。A,B列のセル結合と中央揃えは、VBAでもできるが、手動でやってください。質問のメイン課題ではないだろうから。 ーー Cells(i, (j - 1) * 3 + 3) = の(j - 1) * 3 + 3の部分は中学校で学ぶ、数列を代数式で表す訓練の結果です。これは3,6、9列を表したいためこうした。列レイアウトを変えるならこの式を考え直してください。
関連するQ&A
- Excel VBAで結合セルに連番を振っていくには?
Microsoft Excel 2003での質問です。 表を作成しました。 結合セルが複数ある1列に(セル数はまちまち・複数の列には非結合)、連番を振っていく作業をしています。 これをVBAを使って自動化したいのです。 列に連番がすでに入力されている最終行の下のセル(つまりこれから連番が入る空白セル)を選択、 範囲指定し(セル数はまちまちなのでこれは手作業)、 セルを結合させるまではできたのですが、 この結合させたセルに、[(一つ上の結合セル)+(1)]の値を入力させるにはどうプログラムしたらよいでしょうか? わかりにくい説明で恐縮ですが、どなたかご教示ください。
- ベストアンサー
- オフィス系ソフト
- EXCEL マクロ・VBA 自動で連番を振る
EXCELのマクロ・VBAについて質問です。 例えば、B列にデータを入力すると、入力した行まで自動的にA列に連番が入力されるようにしたいのですが、どういった方法があるでしょうか。 マクロやVBAについてはこれから勉強をしようと思っている素人ですので、コードとその解説をいただけると助かります。
- 締切済み
- その他(プログラミング・開発)
- 自動採番について
初心者です。 Access2000で銀行管理DBを作っています。 (1)テーブルを入金用と出金用それぞれに作成 (2)データ入力用フォームもそれぞれに作成します。 入力にあたって入力番号を自動採番にしたいと考えてますが、番号の構成は数値10桁で、"年" + "月" + "連番"の組み合わせにしたいのです。例:2003070001 入金用と出金用それぞれ別に入力番号をつけます。 これを実現するために「採番テーブル」を別に作成しなければいけないようですが、 (1)採番テーブルの定義の方法 (2)入力フォームで自動採番するためのVBA記述の方法 についてアドバイスいただけないでしょうか? よろしくお願いします。
- ベストアンサー
- その他(データベース)
- エクセルVBA・一定の条件でセルを選択したい
エクセルVBA・一定の条件でセルを選択したい 添付した画像で、毎日、社員番号等が入力されます。 D列の内線番号は空白の場合もありますがA、B、C列は必ず入力されます。 添付画像だと「A1:D5」という具合に選択したいのです。 考え方としては、A列の*行に入力された場合は、「A1:D*」を選択するという具合になるかと思います。 私の目的は、セル範囲を選択したあと、並べ替えたいと考えています。 この並べ替えは自動記録でできそうです。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- VBAを使用し、自動でシートごとに連番を入れる方法
Excel2003のVBAを使用し、自動でシートごとに連番を入れる方法を教えて下さい。 P0911~ P0950までとか番号が自由に設定出来て、尚且つ、最初の番号に入っているエクセルデータが最後の番号まで同じ内容で導入されているのが望ましいです。 どなたか、ご教示頂けると大変助かります。
- ベストアンサー
- Visual Basic
- エクセル 自動で連番ができない
連番で数字が入力してあるセルがあり、 最後の数字が入力されているセルの右下にあわせ、 自動で連番の続きを出そうとしたのですが、 同じ数字が続くばかりです。 どこか設定を変える場所があるのでしょうか。 よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- エクセルシートの塗りつぶしをVBAでやるには?
エクセルのセル塗りつぶしについて(VBA) いつもお世話になっています。 エクセルシートで、任意のセルに数値を入力したとき、入力したセルから右側に向けて、その数値分、自動で塗りつぶすようにしたいのですが、どのようにすれば良いのでしょうか? 色は何でも構いません。 画像添付します。
- 締切済み
- Visual Basic
- エクセルのセル塗りつぶしについて(VBA)
いつもお世話になっています。 エクセルシートで、任意のセルに数値を入力したとき、入力したセルから右側に向けて、その数値分、自動で塗りつぶすようにしたいのですが、どのようにすれば良いのでしょうか? 色は何でも構いません。 画像添付します。
- 締切済み
- Visual Basic
- エクセル シート追加時にセルに自動連番を入力。
エクセルで顧客リストを作成しています。 シートを追加する方法でページを増やしていこうと考えて いるのですが、シートを追加すると会員No.と設けたセルに 自動で番号が連番で入力されるように設定したいです。 スタートの番号は00100から始めたいのですが。 宜しくお願い致します。
- 締切済み
- その他(プログラミング・開発)
お礼
早々のご回答ありがとうございました。 ばっちり起動しました(^O^) 色々と勉強させて頂き大変感謝しております。!(^^)!