- 締切済み
連続になってないオートフィル
連続になってないオートフィルのやりかたなのですが、 a1に1という値があって、その下に7個セルをあけて2を入力し、 次は、2の下に8個あけて3を入力し、次は9個セルをあけて4を入力し、それからは、もとにもどり、7個あけて5、8個あけて6・・・・7→8→9の順番で、というのをオートフィル的にやりたいのですが、何かやる方法はありますでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
No.3です! 何度もごめんなさい。 No.1さんとNo.4さんの回答を読んで、もう一度質問を読み返してみました。 大きな勘違いをしていました。 7~9行飛びの繰り返しではなく、1行ずつ増えての表示でしたので 私の方法は全て無視してください。 どうも失礼しました。m(__)m
- xls88
- ベストアンサー率56% (669/1189)
回答番号:No.3 tom04さんのコードに 連続番号間のセル数が、7→8→9→7→8→9の繰り返し を勝手に入れてみました。 Dim i As Integer Range("A1") = 1 Do i = i + 1 Range("A65536").End(xlUp).Offset(7 + i).Select Selection = Range("A65536").End(xlUp).Value + 1 If i = 3 Then i = 0 Loop Until Range("A65536").End(xlUp).Value = 1000 Selectしなくてもよいのなら、下記のように纏められます。 Dim v As Long Dim i As Integer Range("A1").Value = 1 Do i = i + 1 With Range("A65536").End(xlUp) v = .Value .Offset(7 + i).Value = v + 1 End With If i = 3 Then i = 0 Loop Until v + 1 = 1000
- tom04
- ベストアンサー率49% (2537/5117)
No.2です。 簡単なVBAだと こんな感じですかね? Sub test() Do Until Range("A65536") Range("A1") = 1 Range("A65536").End(xlUp).Offset(7 + Range("A65536").End(xlUp).Value).Select Selection = Range("A65536").End(xlUp).Value + 1 Loop End Sub 何度も失礼しました。m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! かなり強引な方法になりますが・・・ 当方使用のExcel2003の場合です。 ↓の画像のように何列か作業用の列を使っています。 まず、E列は 1行目に「1」を入力、E2セルに =E1+7+ROW(A1) という数式を入れオートフィルで下へコピーします。 A1セルには「1」を入力、A1セルをアクティブにして メニュー → 編集 → フィル → 連続データの作成 → 範囲は「列」・停止値は仮に「1000」としておきます。 (1000行目までのデータを作るためですので、必要な行数をここで設定します。) → OK B1セルに =IF(COUNTIF(E:E,A1),A1,"") C1セルに =IF(B1="","",COUNT($B$1:B1)) として、B1・C1セルを範囲指定し、C1セルのフィルハンドルでダブルクリックします。 最後にC列全てを範囲指定 → コピー → A1(どこの列でもOK)セルをアクティブにします → 右クリック → 形式を選択して貼り付け → 「値」にチェックを入れOK 最後に不要になった全ての列を削除して完了です。 以上、かなり手間がかかりますが 参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m
- xls88
- ベストアンサー率56% (669/1189)
マクロでは駄目ですか? Dim x As Long Dim i As Long For i = 1 To 100 With Range("A1") Select Case i Mod 3 Case 1 And i >= 2: x = x + 10 Case 2 And i >= 2: x = x + 8 Case 0 And i >= 2: x = x + 9 End Select .Offset(x).Value = i End With Next i