[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セル内の数だけ セルを縦にコピーする方法 』(marbin ジュニア)
例
| A | B | C |
むさし君|君代ちゃん|2|
むさし君|千里ちゃん|4|
あきら君|弘子ちゃん|1|
と言うデータがあるとします。
末端の数だけ最初の二つのセルをコピーする機能がほしいです。
むさし君|君代ちゃん|
むさし君|君代ちゃん|
むさし君|千里ちゃん|
むさし君|千里ちゃん|
むさし君|千里ちゃん|
むさし君|千里ちゃん|
あきら君|弘子ちゃん|
もしくは
むさし君|君代ちゃん|1|
むさし君|君代ちゃん|2|
むさし君|千里ちゃん|1|
むさし君|千里ちゃん|2|
むさし君|千里ちゃん|3|
むさし君|千里ちゃん|4|
あきら君|弘子ちゃん|1|
その数だけID番号になるように自動に入力してくれる
機能もできたら持たせたいです。
わかりにくい説明で申し訳ございませんが
なにとぞご教授お願いします。m(__)m
以前に、類似問題を関数でやった人が居た覚えがあるのですが、忘れました。 安易とは思いましたが、マクロでやるならこんな感じかな。という一例です。 ご参考まで・・・ (検証不十分な自信アリ。精査されたし)
Sub test() Dim Ary1() As Variant, Ary2() As Variant Dim r As Long, Ra As Range Dim i As Long, j As Long Dim x As Long, y As Long
Const FROM_RANGE As String = "A1:C4" '← 読み込みデータ範囲を指定 Const TO_HEAD As String = "F2" '← 出力先の先頭セルを指定
Set Ra = Range(FROM_RANGE) Ary1 = Ra.Value j = 1 For r = 1 To Ra.Rows.Count i = i + Ary1(r, 3) ReDim Preserve Ary2(1 To 3, 1 To i) y = 0 For x = j To i y = y + 1 Ary2(1, x) = Ary1(r, 1) Ary2(2, x) = Ary1(r, 2) Ary2(3, x) = y Next j = i + 1 Next Set Ra = Range(TO_HEAD) Ra.Resize(i, 3) = Application.Transpose(Ary2) End Sub
(白茶)
これかな〜。 [[20081028232828]]『行展開について』(rooo) [[20071109141738]]?『n個コピーするには?』(つかけん)
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.