プロが教える店舗&オフィスのセキュリティ対策術

画像のようなイメージです。
AブックとBブックがあります
①Aブックのヘッダーから下の1行分のデータを取り、Bブックの対象箇所に格納(印刷範囲で分けられた箇所)
②Aブックのヘッダーから下のデータ行分Bブックに印刷範囲設定
③Aブックのヘッダーから下のデータ行分が10以上になる場合、Bブックに新シート作成し①②と同様の流れ
⇒データは続きから

データは続きからの例
Aブックのヘッダーから下のデータが25だった場合、BブックにはSheet1(10行分),Sheet2(10行分),Sheet3(5行分)作成され、それぞれ該当の箇所にデータが格納されている

「マクロについて教えてください。」の質問画像

質問者からの補足コメント

  • ムッ

    類似ですね。。
    上の回答お待ちしております。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/06/09 18:05

A 回答 (3件)

こんばんは



方法を回答をしてもほぼ無視の様ですし、何度も連呼しているようなので、「教えて」ではなくて丸投げで「作れ」ということなのかなと・・
https://oshiete.goo.ne.jp/qa/13493779.html
https://oshiete.goo.ne.jp/qa/13494191.html
https://oshiete.goo.ne.jp/qa/13494327.html

しかし、その割には漠とした質問を繰り返しているので、コードにはなりようもないのだけれど、無理矢理コード化してみるなら・・


不明点は勝手に解釈。
・「表」というものの説明がないし範囲も不明なので、シートのB2セルの「CurrentRegion」で取れる形態になっているものと仮定。
 (列数はB:Eの3列に固定)
・ブックBというものの構成が不明なので、全て新しいシートに転記することにする。
・ 同じく、他のシート名称が不明なので、シート名は成り行きのまま。
 (既存のシートに同名が存在する場合、その名称は使えない為)
・図ではB:G列を結合しているようにも見えるが、1行分しかデータがないのでそのままB列に転記。
 (書式はデフォルト設定のまま)
・改ページはA:I列までを固定横幅として設定。
・両ブックとも開いている状態と仮定。

※ 多分、いろいろ違うだろうとは思いますが不明なので・・
  あとはお好きにどうぞ。


Sub Q_13494327()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim tblRange As Range, targetRange As Range
Dim r As Long, i As Long
Dim tTitle

With Workbooks("ブックAの名称").Worksheets("表のあるシート名称")
Set tblRange = .Range("B2").CurrentRegion
Set tblRange = Intersect(tblRange, .Columns("B:D"), .Rows("3:5000"))
If tblRange Is Nothing Then Exit Sub
tTitle = Application.Transpose(tblRange.Rows(1).Offset(-1).Value)
End With

With Workbooks("ブックBの名称")
Set sh1 = .Worksheets(1)
For r = 1 To tblRange.Rows.Count Step 10
Set sh2 = .Worksheets.Add(Before:=sh1)
Set targetRange = sh2.Range("A2:B2")
i = 0
While i < 10 And r + i <= tblRange.Rows.Count
targetRange(1).Resize(3).Value = tTitle
targetRange(2).Resize(3).Value = _
Application.Transpose(tblRange.Rows(r + i).Value)
i = i + 1
targetRange.Offset(4, 9).PageBreak = xlPageBreakManual
Set targetRange = targetRange.Offset(5)
Wend
Next r
End With
End Sub
    • good
    • 9

fujillinさん


勘違いされていると思うのでご説明を。。

>方法を回答をしてもほぼ無視の様ですし
こちらは誰かとお間違えではないでしょうか?すみませんが、記憶にないです。。。

>何度も連呼しているようなので、「教えて」ではなくて丸投げで「作れ」ということなのかなと・・
こちらURLを貼っていただいたものですが。
こちらは私ではないですね。。
こちらすでに解決済みとなっていましたが、
回答を探したところなかったので、気になり
同じ質問をここでさせて頂きました。

そしてコード送ってくださりありがとうございます。
送って頂いたURLの意図を読み取りましたが、以下の箇所以外認識はあっているかと。。

・ブックBというものの構成が不明なので、全て新しいシートに転記することにする。
・ 同じく、他のシート名称が不明なので、シート名は成り行きのまま。

動作確認してみます。
    • good
    • 3

https://oshiete.goo.ne.jp/qa/13493779.html

こちらの質問と内容が変化されたのでしょうか?
それとも類似しているだけで別のもの?

ようはAのデータをBに貼り付ける際以前は連続した列ではないですが、今回のはAの1行を行列入れ替えてBに貼り付けるように見えますので。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!