
No.4ベストアンサー
- 回答日時:
こんにちは
そのままのテスト環境がないので、完全なテストはできていませんが・・・
まずは、少なめのデータでテストしてみてください。
※ プリンタ名は(一般的と思われる)「DocuWorks Printer」にしてありますので、異なる場合は修正願います。
※ アクティブなシートを対象として処理します。
※ 出力時のページ設定は省略していますので、デフォルトの設定で出力されます。
(必要な場合は追加願います)
Sub Sample()
Dim ss As Worksheet, ds As Worksheet
Dim rg As Range, key_data, key
Dim rw As Long, idx As Long, tmp
Dim wfolder As String
Const set_rows = 68
Const printerName = "DocuWorks Printer"
Application.ScreenUpdating = False
Set ss = ActiveSheet
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set ds = ActiveSheet
wfolder = ThisWorkbook.Path & "\DocumWorks"
If Dir(wfolder, vbDirectory) = "" Then MkDir wfolder
Set rg = ds.Cells(1, 1)
For rw = 1 To ss.Cells(Rows.Count, 1).End(xlUp).Row Step set_rows
rg.Value = ss.Cells(rw, 1).Value
rg.Offset(0, 1).Value = (rg.Row - 1) * set_rows + 1
Set rg = rg.Offset(1)
Next rw
ds.Cells(1, 2).CurrentRegion.Sort key1:=ds.Cells(1, 1), order1:=xlAscending
ds.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = "END"
key_data = ds.Cells(1, 2).CurrentRegion.Value
idx = LBound(key_data)
While idx < UBound(key_data)
ds.Cells.ClearContents
key = key_data(idx, 1)
Set rg = ds.Cells(1, 1)
While idx < UBound(key_data) And key = key_data(idx, 1)
ss.Cells(key_data(idx, 2), 1).Resize(set_rows).EntireRow.Copy Destination:=rg
idx = idx + 1
Set rg = rg.Offset(set_rows)
Wend
ds.Copy
ActiveWorkbook.SaveAs Filename:=wfolder & "\" & key, FileFormat:=xlWorkbookDefault
ActiveSheet.PrintOut Copies:=1, ActivePrinter:=printerName
ActiveWorkbook.Close
Wend
Application.DisplayAlerts = False
ds.Delete
Application.DisplayAlerts = True
Kill wfolder & "\*"
RmDir wfolder
Application.ScreenUpdating = True
End Sub
No.3
- 回答日時:
DWのバージョンは?
>A4用紙1枚に収まるよう設計されたエクセルファイル。設計内容は?
方法、処理速度、メモリスタックは、考慮しません。
全データをページレイアウト設定、A1から68ピッチでループ
同じ値のページ(Row/ピッチ)を配列 値、ページ に入れグループ化
グループの数ループ
ファイル名(シート名)=値
先に挙げたページの PRN_NM, from:=1, To:=1, 部分でページ指定する
検証するすべがないので、ご自分で作ってください。
参考、引用 サイト:ブログ 「桜のうろの中で」
http://blog.livedoor.jp/arumakan_ywa/archives/51 …
No.2
- 回答日時:
ご質問の意味がよく分からないです。
>A列68行ごとの値が同じものをひとまとめ
「68行ごとの値」というものは、合計ですか、何を意味するのでしょうか。
>出力したファイル名を①の値の名前にしたい
それはどこにあるのでしょうか。
>(通常、作業しているエクセルのファイル名になる)
「通常、作業しているエクセルのファイル名」の意味がよく分かりません。
拡張子の意味でしょうか。でも、xlsx, xlsm, xlsb, xls などがあります。
Docuworks ?
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) vba 今日の日付をブック名に 2 2023/06/04 08:22
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセルで、ファイルの分割 と ファイルの集約 1 2022/08/28 08:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
値が入っているときだけ計算結...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
EXCELで条件付き書式で空白セル...
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
小数点以下を繰り上げたものを...
-
検便についてです。 便は取れた...
-
尿検査前日に自慰行為した時の...
-
ワードのページ番号をもっと下...
-
エクセルのラベルの値(文字列...
-
精子に血が・・・
-
病院側から早く来てくださいと...
-
精液の落とし方を教えてください
-
彼女のことが好きすぎて彼女の...
-
EXCELで式からグラフを描くには?
-
リンク先のファイルを開かなく...
-
テスターで断線を調べる方法教...
-
MIN関数で空白セルを無視したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報
すみません補足します。
A1,A69,A137…のA列68行おきのセルの値が同じものをファイル出力したいです。
印刷は仮想プリンタのDocuWorksで行います。
出力されたDocuWorksファイルはエクセルのファイル名になりますが、名前をvbaで指定することは可能でしょうか?(処理速度的にこちらが望ましい)
ファイル名を変更、保存での処理が妥当でしょうか?