
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を探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルの項目軸を左寄せにしたい
-
【画像あり】【関数】指定した...
-
エクセルで二つの数字の小さい...
-
エクセル(勝手に太字になる)
-
エクセルで最初のスペースまで...
-
ExcelのVBAで連番を振る。
-
Excel、市から登録している住所...
-
エクセルの並び変えで、空白セ...
-
エクセル SMALL の機能...
-
エクセルのセル内の文字の一部...
-
エクセルの関数(日数の平均の...
-
「B列が日曜の場合」C列に/...
-
エクセルで、列の空欄に隣の列...
-
オートフィルターの絞込みをし...
-
A列がない・・・A列が非表示に...
-
Excelで半角の文字を含むセルを...
-
Excel 文字列を結合するときに...
-
エクセルの列を範囲選択しての...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
EXCELで 一桁の数値を二桁に
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
オートフィルターをかけ、#N/A...
-
エクセル 文字数 多い順 並...
-
Excel、市から登録している住所...
-
エクセルのセル内の文字の一部...
-
【画像あり】【関数】指定した...
-
エクセルの項目軸を左寄せにしたい
-
エクセルの並び変えで、空白セ...
-
妊娠祝い もらったことある
-
エクセル 同じ値を探して隣の...
-
エクセルの表から正の数、負の...
-
Excel 文字列を結合するときに...
おすすめ情報