アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者です。
カウントアップを使いたいのですが、連続している行ではなく、行と行が離れているのです。
そして、文字と数字の混合なのですが設定することは可能でしょうか?

例)○●…数字 △…漢字
○○△●●●●→後半の数字(●の部分)のみ増やしたい。

そして、この上記の数字はsheet2のB列に3行おきに(B2,5,8・・・)入力されるようにしたい。

そしてその数字をsheet1に下記のような順番で反映させたいのです。
D2→H2→L2→D27→H27→L27→D52→H52→L52・・・・
つまり、D列、H列、L列の順番で25行おきに反映させたいのです。
これが1500行まであります。

説明が下手ですいませんが、よろしくお願いいたします。

A 回答 (8件)

少し足りなかった


Sheet1の場合ドラッグで実現するためには
D2に○○△●●●●、D27に○○△●●●●+3を入力してから
D2:D51を選択した状態で下のドラッグでした
    • good
    • 0

#2です。



No.2の修正版。

Sub try_2()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim i As Long, j As Integer
Dim m As Long, n As Long
Dim st As String
Dim v As Variant

Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")

v = Array("D", "H", "L")
m = 2
n = 2
j = 0

For i = 1 To 180 '180回

st = Format(i, "21乙0000")
ws1.Cells(m, v(j)).Value = st
ws2.Cells(n, "B").Value = st

m = 2 + Int(i / 3) * 25
n = n + 3
j = IIf(j = 2, 0, j + 1)

Next

Set ws1 = Nothing
Set ws2 = Nothing
End Sub

こんなかな?

この回答への補足

お礼が遅くなって申し訳ありません。
上手く反映することができました。

そこでひとつ質問なのですが、今回は~~0439で終わったので、
次にこの作業を行うときは~~0440から始めたい時はどのようにすればよろしいのでしょうか??

st = Format(i, "21乙0000")
          ↑ここの数字を変えて実行してみたら、
数字の増え方が1439、2439と増えていってしまうのですが・・・

補足日時:2009/02/27 16:57
    • good
    • 0

No5でも書いたけど


3列一緒には無理だけど1列ごとなら可能
    • good
    • 0

>sheet2のB列に3行おきに(B2,5,8・・・)入力されるようにしたい。



B2に○○△●●●●を入力し、B2:B7を選択した状態で下方向にドラッグすればお望みの形式に

>D列、H列、L列の順番で25行おきに反映させたいのです。

D2に○○△●●●●を入力し、D2:D51を選択した状態で下のドラッグで
H,L列も同じ方法で(それぞれ+1、+2する必要はありますが)

計算式入れても結局フィルしなければいけないので、手順は同じ。

一応マクロも
Sub Macro1()'Sheet2用のマクロ
Range("B2").Activate
For kaunto = 1 To 180
With ActiveCell
.Value = Left("21乙0000", 7 - Len(kaunto)) & kaunto
.Offset(3).Activate
End With
Next
End Sub

Sub Macro2()'Sheet1用のマクロ
Range("D2").Select
For kaunto = 1 To 183 Step 3
With ActiveCell
.Value = Left("21乙0000", 7 - Len(kaunto)) & kaunto
.Offset(0, 4).Value = Left("21乙0000", 7 - Len(kaunto)) & kaunto + 1
.Offset(0, 8).Value = Left("21乙0000", 7 - Len(kaunto)) & kaunto + 2
.Offset(25).Activate
End With
Next
End Sub
    • good
    • 0
この回答へのお礼

なるほど、普通にドラッグすればいいんですよね!

では、sheet2はドラッグさせてそこに入力した値を
D2、H2、L2、D27、H27、L27、D52・・・という順番で
反映させることは可能でしょうか?

お手数ですが、お願いいたします。

お礼日時:2009/02/24 17:08

>上記の数字はsheet2のB列に3行おきに(B2,5,8・・・)入力されるようにしたい



数字●●●●の部分だけで良いの?
で最終行の指定はないのですか?
(そのあとの条件で25行間隔で1500行まで3列表示となっているのでカウントアップは180までって事で良いのかな?)

関数だけでもできそうな気はするけどマクロが必要なのですか?
(関数も使わずに範囲を指定してドラッグするだけでも出来るけど)

この回答への補足

関数でも可能なのですが、
カウントアップしたものをsheet2に反映させたいのですが、出来ますか?

また、必ずしも180までとは限らず、上限する可能性があります。

よろしくお願いします。

補足日時:2009/02/24 15:40
    • good
    • 0

#2です。



質問取り違えてましたので、スル~して下さい。
    • good
    • 0

Sub try()


Dim r As Range
Dim i As Long, j As Long
Dim st As String

st = "21乙"
j = 1

For i = 2 To 1500 Step 25
For Each r In Cells(i, 4).Range("A1,E1,I1")
r.Value = st & Format(j, "0000")
j = j + 1
Next
Next

End Sub

とか?
    • good
    • 0

>○○△●●●●→後半の数字(●の部分)のみ増やしたい



それぞれの文字数は固定ですか?

この回答への補足

はい、具体的にいうと21乙0001です。
そして、次のセルに21乙0002、21乙0003としていきたいのです。

補足日時:2009/02/24 13:54
    • good
    • 0

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