
excel2010でのテンプレートを用いた転記についての質問です
リスト表という名前でA列〜J列まで項目がありA5セルよりデータ入力をしております
これらの入力したデータを別のシートにテンプレートがあるのですが
そのテンプレート表に転記をして印刷をしたいです
ただし転記時にリスト表からC列を省いてD〜I列を左に1つずらし
J列はM列に移動させたい
リスト表が15行を越えたら新しくテンプレート表をコピーし16行目から30行目まで
を転記
その繰り返しをリスト表の最終行まで転記するかんじです
このマクロの書き方をご教示下さい
リスト表:AからJ列の可変行
テンプレート表:AからM列までの15行の表
No.2ベストアンサー
- 回答日時:
No1です。
無理矢理コードにしてみるなら、雰囲気的には以下のような感じでしょうか?
詳細不明なので、シート名やセル位置は適当ですが、全体的にはこんな感じでできるかと思います。
あとは、ご自由に修正してください。
Sub Q_13461490()
Dim sh As Worksheet, rng As Range, i As Long
Set sh = Worksheets("テンプレート")
With Worksheets("リスト表")
Set rng = .Range("A5:A19")
For i = 5 To .Cells(Rows.Count, 1).End(xlUp).Row Step 15
If i > 5 Then
Set rng = rng.Offset(15)
sh.Copy after:=sh
Set sh = ActiveSheet
End If
sh.Range("A1:B15").Value = rng.Resize(, 2).Value
sh.Range("E1:J15").Value = rng.Offset(, 3).Resize(, 6).Value
sh.Range("M1:M15").Value = rng.Offset(, 9).Value
Next i
End With
End Sub
fujillin 様
返信が遅れてしまい申し訳ございません
コードを修正して無事動作させることができました
誠にありがとうございました
No.1
- 回答日時:
こんにちは
詳細が無い割には、どこがわからないのかも不明なので、大雑把な回答しかできませんが・・・
>このマクロの書き方をご教示下さい
書き方そのものがわからないのではないとは思いますが念のため。
マクロは、標準モジュールなどに直接記述して実行すれば宜しいと思います。
処理の手順はいろいろ考えられるところですが、どの方法が一番ということも無いと思いますが、以下に一例として記しておきます。
1)リスト表の最終行を取得する
必ず値のある列があれば、その列で最終行を取得すれば良いでしょう。
最終行の取得はおきまりの Cells(Rows.Count, 列).End(xlUp) でできます。
どの列にも空白の可能性がある場合は、各列の最終行の最大値を求めるか、CurrentRegionを利用するなどの方法も考えられます。
2) コピー元の初期値として、Range("A5:A19")をセット。
>A5セルよりデータ入力
とありますが、後の説明では
>16行目から30行目まで
となっているので、もしかすると"A1:A14”なのかも知れません。(こちらでは不明)
3)5行目(あるいは1行目?)から1)の最終行までStep15で以下をループ
For rw = 5 to 最終行 Step 15
ループの回数を指定するだけなので、rwは以降使いませんが、Do Whileなどでもかまいません。
3-1)A:B列、D:I列の2回に分けて転記
A:B列は「コピー元.Resize(,2)」で、D:I列は「コピー元.Offset(,3).Resize(,6)」で指定できます。
転記は、コピー(=書式も併せてコピー)であれば、Copyメソッドで
Source.Copy Desitination で可能です。
テンプレートとのことなので、書式は不要なら
Destination.Value = Source.Value で、セル範囲の値の転記が可能です。
3-2)次のループのために
コピー元が最終行を超えていなければ、
・コピー元のセル範囲を、15行分オフセット
Set コピー元 = コピー元.Offset(15)
・テンプレートシートをコピー
テンプレートシート.Copy after:=テンプレートシート
新しいコピー先(=テンプレート)をActiveSheetにセット
のような手順で、できるものと思います。
※ 不明点がわからないので、だらだらと全体的な説明を書きましたけれど、説明する文章の方がご質問の内容のコードよりも遥かに長いものになってしまいました。(笑)
※ テンプレートとあるので、テンプレート側にタイトル行や何かがあるのではと想像しますが、どうなっているのか不明ですので、そのあたりは転記先(=Destination)の位置を調整すれば良いでしょう。
(こちらは固定位置だと想像しますので)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
お店に入るために行列に並んで...
-
オートフィルターの絞込みをし...
-
【画像あり】【関数】指定した...
-
PowerPointで表の1つの列だけ...
-
エクセル(勝手に太字になる)
-
妊娠祝い もらったことある
-
Excelで、A列にある文字がB列...
-
ずらせて、ずらして
-
エクセルで、列の空欄に隣の列...
-
VBAでセル入力の数式に変数を用...
-
エクセル 時間帯の重複の有無
-
エクセルで文字が混じった数字...
-
エクセルの並び変えで、空白セ...
-
どんなスーパーでも客層の良い...
-
エクセルの表示画面(シート)...
-
エクセルのセル内の文字の一部...
-
エクセル 同じ値を探して隣の...
-
エクセル2000 列の固定って出...
-
【至急】列を挿入しようとして...
-
A列とB列を1行ごとに比較してB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
EXCELで 一桁の数値を二桁に
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
オートフィルターをかけ、#N/A...
-
エクセル 文字数 多い順 並...
-
Excel、市から登録している住所...
-
エクセルのセル内の文字の一部...
-
【画像あり】【関数】指定した...
-
エクセルの項目軸を左寄せにしたい
-
エクセルの並び変えで、空白セ...
-
妊娠祝い もらったことある
-
エクセル 同じ値を探して隣の...
-
エクセルの表から正の数、負の...
-
Excel 文字列を結合するときに...
おすすめ情報