Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9996 / 13644 ツリー ←次へ | 前へ→

【24345】タックシールに連番をふるには? soramame 05/4/19(火) 22:16 質問[未読]
【24347】Re:タックシールに連番をふるには? Kein 05/4/19(火) 22:28 回答[未読]
【24348】Re:タックシールに連番をふるには? soramame 05/4/19(火) 23:49 質問[未読]
【24349】Re:タックシールに連番をふるには? ponpon 05/4/20(水) 0:25 回答[未読]
【24373】Re:タックシールに連番をふるには? soramame 05/4/20(水) 20:27 質問[未読]
【24377】Re:タックシールに連番をふるには? ponpon 05/4/20(水) 21:06 回答[未読]
【24382】Re:タックシールに連番をふるには? soramame 05/4/20(水) 21:45 質問[未読]
【24383】Re:タックシールに連番をふるには? ponpon 05/4/20(水) 21:49 発言[未読]
【24388】Re:タックシールに連番をふるには? soramame 05/4/20(水) 23:06 質問[未読]
【24389】Re:タックシールに連番をふるには? ponpon 05/4/20(水) 23:23 回答[未読]
【24390】Re:タックシールに連番をふるには? soramame 05/4/20(水) 23:52 お礼[未読]

【24345】タックシールに連番をふるには?
質問  soramame  - 05/4/19(火) 22:16 -

引用なし
パスワード
   タックシールのような縦4×横4の表(各マスは縦7行×横3列)の1行目に連番を振りたいのですが、うまくいきません。どうしたらいいのでしょうか?VBA初心者です。よろしくお願いします。

【24347】Re:タックシールに連番をふるには?
回答  Kein  - 05/4/19(火) 22:28 -

引用なし
パスワード
   A:C列のみを使う、ということでしょーか ? それなら手作業でオートフィルを使っても
出来ますが、コードにすると

Range("A1").Value = 1
Range("A8").Value = 2
Range("A1:A14").AutoFill Range("A1:A57"), xlFillValues

ぐらいで、7行おきに1〜9まで連番が振れます。

【24348】Re:タックシールに連番をふるには?
質問  soramame  - 05/4/19(火) 23:49 -

引用なし
パスワード
   ▼Kein さん:
>A:C列のみを使う、ということでしょーか ? それなら手作業でオートフィルを使っても出来ますが

Keinさん早速のお返事ありがとうございました。私の説明不足でした。連番は300ほどつけたいので、手作業ではかなり大変でした。タックラベルは縦4×横4の16枚のラベルですが、1つのラベルはセル縦7×横3からできています。その中の1行目に連番をつけたいのです。よろしくお願いします。

【24349】Re:タックシールに連番をふるには?
回答  ponpon  - 05/4/20(水) 0:25 -

引用なし
パスワード
   ▼soramame さん:
>連番は300ほどつけたいので、手作業ではかなり大変でした。タックラベルは縦4×横4の16枚のラベルですが、1つのラベルはセル縦7×横3からできています。その中の1行目に連番をつけたいのです。よろしくお願いします。

ということなら、
   1  2  3  4
   5  6  7  8
   9 10 11 12
   ・  ・  ・  ・
   ・  ・  ・  ・
というような感じでしょうか?
ならば、これではいかがでしょう。
はずしたらすみません。

Sub test()
Dim i As Long
Dim j As Long
Dim t As Long

With Worksheets("sheet1")
  t = 1
  For i = 1 To 500 Step 7
   For j = 1 To 10 Step 3
    .Cells(i, j) = t
    t = t + 1
   Next
  Next
End With

End Sub

【24373】Re:タックシールに連番をふるには?
質問  soramame  - 05/4/20(水) 20:27 -

引用なし
パスワード
   ▼ponpon さん:ありがとうございました。連番をふることができました。が、タックラベルを1シートだけで、連番を300まで振ることができませんか?また、例えば30から50というように途中の番号から連番を振りたいときはどうしたらよいでしょうか?

【24377】Re:タックシールに連番をふるには?
回答  ponpon  - 05/4/20(水) 21:06 -

引用なし
パスワード
   ▼soramame さん:
こんばんは。
>タックラベルを1シートだけで、連番を300まで振ることができませんか?

1シートというと4×4の16ですよね。
16まで振ったら、それまでのを消して、17から32まで振る・・・・ということでしょうか?


>また、例えば30から50というように途中の番号から連番を振りたいときはどうしたらよいでしょうか?
1シートなら30から46でしょ?
開始番号をエクセルにどうやって教えるかということですよね。
1行挿入して、"A1"に入力した数字から1シート分数字を振ります。
ただし、数字は、"A2"から振られます。
シートモジュールにコピペして試してください。
"A1"がわるければ、適当なセルに変更してください。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim j As Long
Dim t As Long

If Target.Count > 1 Then Exit Sub
If Application.IsNumber(Target.Value) = False Then Exit Sub
If Target.Address(0, 0) = "A1" Then
  t = Range("A1").Value
  For i = 2 To 23 Step 7
   For j = 1 To 10 Step 3
    Cells(i, j) = t
    t = t + 1
   Next
  Next
End If

End Sub

【24382】Re:タックシールに連番をふるには?
質問  soramame  - 05/4/20(水) 21:45 -

引用なし
パスワード
   ▼ponpon さん:ありがとうございました。
>1シートというと4×4の16ですよね。
>16まで振ったら、それまでのを消して、17から32まで振る・・・・ということでしょうか?

はい、差し込み印刷のような形です。

書いて頂いたマクロをコピーして貼り付けたのですが、マクロを実行しようとしてもマクロ名がでてこなくて実行できませんでした。PrivateからEnd Subまで普通にコピーして貼り付けてもだめですか?ワークシートのA1のセルには値がいれてあります。

【24383】Re:タックシールに連番をふるには?
発言  ponpon  - 05/4/20(水) 21:49 -

引用なし
パスワード
   こんばんは。
シートモジュールにですよ。
sheet1と書いているタブを右クリックして、
コードの表示で出てきたところにコピペしてください。
A1に数字を入れてエンターを押すと数字が振られます。

【24388】Re:タックシールに連番をふるには?
質問  soramame  - 05/4/20(水) 23:06 -

引用なし
パスワード
   ▼ponpon さん:せっかくご回答くださったのに理解できなくてごめんなさい。

>シートモジュールにですよ。
>sheet1と書いているタブを右クリックして、
>コードの表示で出てきたところにコピペしてください。

はい。シートモジュールに貼り付けました。
マクロ内でマクロ開始のボタンを押しても、マクロ名のダイアログボックスがでてきて、その中に使おうとしているマクロがないのです。
貼り付けたマクロに何か追記しなければなりませんか?

>A1に数字を入れてエンターを押すと数字が振られます。

A1に数字を入れてエンターを押す???
マクロ実行のボタンではないのですか?

【24389】Re:タックシールに連番をふるには?
回答  ponpon  - 05/4/20(水) 23:23 -

引用なし
パスワード
   ▼soramame さん:
>A1に数字を入れてエンターを押す???
>マクロ実行のボタンではないのですか?

はい。

Private Sub Worksheet_Change(ByVal Target As Range)は、
SheetのTarget(この場合"A1"の値)がChenngeした時のイベントで実行されます。
新しいbookのsheet1のシートモジュールにコピペして、
"A1"にすうじを入れてエンターを押すか、他のセルをセレクトしてください。
そのタイミングで実行されると思います。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim j As Long
Dim t As Long

If Target.Count > 1 Then Exit Sub
If IsNumeric(Target.Value) = False Then Exit Sub
If Target.Address(0, 0) = "A1" Then
  t = Range("A1").Value
  For i = 2 To 23 Step 7
   For j = 1 To 10 Step 3
    Cells(i, j).Value = t
    t = t + 1
   Next
  Next
End If

End Sub

【24390】Re:タックシールに連番をふるには?
お礼  soramame  - 05/4/20(水) 23:52 -

引用なし
パスワード
   ▼ponpon さん:
すごーい!できました。勉強になりました。解説もつけていただきありがとうございました。
でもって、差し込み印刷のようにするにはSelect Caseを組み合わせればいいですか?すこし日にちをください。今回のマクロも自分なりに理解したいです。無理かもしれないけどやってみます。行き詰ったらまた、投稿させてもらいます。その時はよろしくお願いします。

9996 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free