advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 296 for 差し込み印刷 (0.002 sec.)
[[20221101202422]]
#score: 8241
@digest: 1726de4641c0c59cc9838f9fbf8448e4
@id: 92691
@mdate: 2022-11-02T00:57:40Z
@size: 5466
@type: text/plain
#keywords: copykaisuu (50119), ー基 (38796), wsprint (32493), tgrng (32352), 日…… (24234), 点. (20803), 男生 (15497), xlpasteallmergingconditionalformats (15497), rgrows (14996), 女生 (14647), 中男 (9518), 田女 (9344), 基点 (9288), 定回 (8059), wsdata (7845), ド単 (7500), 松田 (5476), 数コ (4734), 刷シ (4505), 枚目 (3255), 生年 (2952), ド1 (2933), し込 (2573), ー() (2416), printpreview (1974), ド2 (1961), 回数 (1886), …… (1790), 差し (1657), レコ (1633), 学習 (1622), xlcelltypevisible (1590)
『sheet1のデータを35行おきに1行ずつ、sheet2[P列]に転記する』(まるたん)
はじめまして。VBA初心者です。 ここ最近、業務効率化のためにVBAに取り組み始めましたが、今回どうしても分からなくなってしまったため、お尋ねします。 <前提条件> ・sheet1(wsData) A〜X列、A2から1行ごとに氏名などのデータが入力されている。これが1レコード単位となる。 データは可変するが、最大200程度(A200まで)。 ・sheet2(wsPrint)に設定した印刷シート(A2:M35)あり。この印刷シートは上書き出来ず、書式を下に連続しなければならない。 例)A2:M35 ⇒ A36:M36 ⇒ A71:M71 ・上記の印刷シートに対し、差し込みコードによる連続印刷は出来る。wsPrintの「A1」にDataのレコードが1枚ずつ差し込まれるようになっている(コード1)。 ・書式そのものをコピーし、1枚目の書式下へ追加するコードは他サイトを参考に出来た(コード2)。 <要望・問題点> ・コード1ではwsPrint A1に差し込まれるが、下の書式と連続させたいため、A1に差し込まれるのは避けたい。 印刷に影響のないP列から差し込みたいが、【r.Copy.Range("P1")】とした場合、「実行時エラー1004:コピー領域〜」が発生し、実行できない。 ⇒ただのレコード単位差し込みであれば、【P1】差し込みは可能。 ・以下の例のようにデータの参照先も同時に移動しているので、データをst2 1枚目用:P1〜AM1、2枚目:P36〜AM36のように35ないし36行おきに1行ずつ飛ばしたい。 <問題のシート> st1=wsData A2 B2 C2 X2 1 田中 男 生年月日 …… ●● 2 松田 女 生年月日 …… △△ st2=wsPrint 1枚目 P1 Q1 R1 AM1 1 田中 男 生年月日 …… ●● st2 コピー書式2枚目 P36 Q36 R36 AM36 2 松田 女 生年月日 …… △△⇒これが出来ない。 <コード1:差し込み> Public Function オートフィルター基点() As Range ' Set オートフィルター基点 = wsData.Range("A1") End Function Public Sub 差し込み印刷_指定() Dim r As Variant With wsData If .AutoFilterMode = True Then オートフィルター基点.AutoFilter ' If .Cells(.Rows.Count, 1).End(xlUp).Row <> 1 Then オートフィルター基点.AutoFilter 1, 1 ' With オートフィルター基点.CurrentRegion For Each r In .Offset(1, 1).Resize(.Rows.Count - 1, Columns.Count - 1).SpecialCells(xlCellTypeVisible).Rows ' With wsPrint r.Copy .Range("A1") .PrintPreview ' End With Next r End With If .AutoFilterMode = True Then オートフィルター基点.AutoFilter End With End Sub <コード2:書式の指定回数コピー> Sub 書式の指定回数コピー() Dim TgRng As Range ' Dim rgRows As Long Dim CopyKaisuu As Long Dim cot As Long Set TgRng = Range("A1:M35") ' rgRows = TgRng.Rows.Count CopyKaisuu = Application.InputBox("コピーする回数を入力して下さい", Type:=1) If (TgRng.Rows.Count + 1) * (CopyKaisuu + 1) < Rows.Count Then TgRng.Copy Application.ScreenUpdating = False For cot = 1 To CopyKaisuu With TgRng.Offset((rgRows + 1) * cot, 0) .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteFormulas .PasteSpecial -Paste:=xlPasteAllMergingConditionalFormats End With Next Application.CutCopyMode = False TgRng(1).Activate Application.ScreenUpdating = True End If Set TgRng = Nothing End Sub いろんなサイトや掲示板を頼りに、なんとか書式のコピーまではたどり着きましたが、肝心のデータ転記が一向に出来ません。 勉強不足であり、ご質問に上手く答えられないかもしれませんが、どうか、よい方法をご教授ください。 長々と失礼いたしました。 何卒よろしくお願いいたします。 < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- なにがやりたくて何ができてないのか全然わかりません ループ中で貼り付け先を変えればいいんですよね? i=0 ' カウンタ For Each r In .Offset(1, 1).Resize(.Rows.Count - 1, Columns.Count - 1).SpecialCells(xlCellTypeVisible).Rows With wsPrint r.Copy .Cells(i*36+1,"P") ' ←とかすればいいのでは? .PrintPreview ' i=i+1 End With Next r あと、かすかに分かる書式のコピーですが、 これでよくないですか? Sub 書式の指定回数コピー() Dim TgRng As Range ' Set TgRng = Range("A1:M36") ' 下に1行多くとる CopyKaisuu = Application.InputBox("コピーする回数を入力して下さい", Type:=1) With TgRng .Copy .Resize(.Rows.Count * CopyKaisuu ).PasteSpecial xlPasteAllMergingConditionalFormats End With End Sub CopyKaisuu はフィルタされた行数で自動で求められるような気がしますが (´・ω・`) 2022/11/02(水) 00:27:44 ---- 個人的な考えですが、 VBA初学者にとって、コピペのメソッドは、その後の学習で 混乱しませんか? 非常に便利なものではありますが、 VBAにとって重要な、オブジェクトの概念を阻害しているような 気がするんですよ。 多くの方は、数式含めセルの値が欲しい訳で、罫線や書式丸ごとは、 頻繁に必要としないと思います。 値であれば、 Range("A1").Value = Range("B1").Value のような記述で値を代入できます。 値を消す場合でも、 Range("A1").ClearContents より、 Range("A1").Value = "" の方が、直感的に理解し易いと思うんですね。 この辺を理解すれば、その後の学習に控えている 配列の習得のし易さにも影響すると思うんですよね。 (tkit) 2022/11/02(水) 09:57:40 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/202211/20221101202422.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97048 documents and 608239 words.

訪問者:カウンタValid HTML 4.01 Transitional