
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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに
Excel(エクセル)
-
Excelで数を数える、どのようにすれば効率的でしょうか
Excel(エクセル)
-
【VBA】PDF作成のコードでコンパイルエラーになってしまいます。
Excel(エクセル)
-
-
4
エクセルで月をアルファベットに変換したい。
Excel(エクセル)
-
5
エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式
Excel(エクセル)
-
6
Excelについて
Excel(エクセル)
-
7
Excel処理について、教えて下さい。 下記表は、サンプルです。(実際には千件以上あります) A列に
Excel(エクセル)
-
8
エクセル マクロ 行や列を削除しても 常にC3セルに背景色を維持
Excel(エクセル)
-
9
CSVファイルでVBAを動かす方法
Excel(エクセル)
-
10
VLOOKUP 構造化参照について
Excel(エクセル)
-
11
Excelの数式の質問です。 A列に「redhat 8.0, centOS 7.9, python
Excel(エクセル)
-
12
エクセルの関数を教えてください。②
Excel(エクセル)
-
13
勤務表ですが、思うように出来ません。
Excel(エクセル)
-
14
いない人を抽出したい
Excel(エクセル)
-
15
ExcelのFIND関数について
Excel(エクセル)
-
16
Excelで作成しているシート(表)
Excel(エクセル)
-
17
Excelの関数
Excel(エクセル)
-
18
マクロについて教えてください 作業中のフォルダを ThisWorkbook.Path と表示しますが
Visual Basic(VBA)
-
19
エクセルで指定範囲にある名前と重複した場合に入力できないようにしたい
Excel(エクセル)
-
20
win10でexcel2003は動かないのか
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルかグーグルスプレッド...
-
エクセル 文字数 多い順 並...
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセル 同じ値を探して隣の...
-
エクセルで最初のスペースまで...
-
Excel、市から登録している住所...
-
エクセルの並び変えで、空白セ...
-
条件付き書式の適用先が変更さ...
-
「B列が日曜の場合」C列に/...
-
VBAでセル入力の数式に変数を用...
-
50人を数回、グループ分けする...
-
エクセルの関数(日数の平均の...
-
エクセルで、入力してある数字...
-
エクセルのvlookup関数でToday(...
-
エクセルの項目軸を左寄せにしたい
-
エクセル(勝手に太字になる)
-
エクセルで、列の空欄に隣の列...
-
VBAで文字列を数値に変換したい
-
Excel VBA データのない列の空...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PowerPointで表の1つの列だけ...
-
エクセルで二つの数字の小さい...
-
Excel、市から登録している住所...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセルで最初のスペースまで...
-
エクセル(勝手に太字になる)
-
エクセル関数 複数の列に文字が...
-
Excelの関数についての質問です...
-
エクセル 文字数 多い順 並...
-
エクセルで文字が混じった数字...
-
「B列が日曜の場合」C列に/...
-
VBAで文字列を数値に変換したい
-
エクセルの項目軸を左寄せにしたい
-
50人を数回、グループ分けする...
-
Excelで半角の文字を含むセルを...
-
エクセルで、列の空欄に隣の列...
-
エクセルの並び変えで、空白セ...
-
"列" (|v1, |v2, |v3, ..., |v...
-
Excelの関数(FILTER関数)につ...
おすすめ情報