プロが教えるわが家の防犯対策術!

「リスト」シートの「A4」から「番号」が記載されています。
この番号は、必ず「A4」の位置から記載されていて、今回は、3件ですが、日によって、10件だったり、20件だったり変化します。
この「番号」ごとに「原本」シートをコピーして、シート名にしたいのです。
また、そのシート名にした「番号」を「C1」にも表示させたいのです。

(※「原本」シートに関数を入れてある為、「みかん」や「りんご」などが表示されます。)

それで、増やしたシート全部に対して、空白行の削除をして、増やしたシート全部を印刷をしたいのです。
スマートに行く方法を教えて下さい。どうか、助けて下さい。どうぞよろしくお願い致します。

「VBA_シートのコピーと空白行削除と印刷」の質問画像

A 回答 (3件)

やりたい事が分からないです。


というか、質問文が分かるように書かれていないです。

>この「番号」ごとに「原本」シートをコピーして、シート名にしたいのです。

原本をコピーしたシートを作り、シート名をその番号にリネームすれば良いです。

>また、そのシート名にした「番号」を「C1」にも表示させたいのです。

番号をC1にコピーすれば良いです。
この2つをVBAで処理したいのですか?
これだけだったら、凄く簡単で少しVBAを勉強するだけで直ぐに実現できます。

>増やしたシート全部に対して、空白行の削除をして

増やしたシートは、原本をコピーしたものなので、全て空白行です。
コピーする意味も削除する意味(目的)も分かりません。
印刷の目的も分かりません。
    • good
    • 0

こんにちは、


(一度投稿したのですが上手くいかなかったようなので再投稿します)
少し萎えているので、内容が雑になってしまったら、ごめんなさい。

ご質問については、参考サイト
ブック内のすべてのワークシートで同じ処理を行う
https://www.helpforest.com/excel/emv_sample/ex10 …
シート名などで条件分岐すれば対象を絞れると思います。

セルの削除
https://www.officepro.jp/excelvba/cell_edit/inde …
セルの空白で条件分岐すれば良いと思います。


回答ではありませんが、
スマートに行く方法について
>増やしたシート全部に対して、空白行の削除をして、増やしたシート全部を印刷
ロジック自体がスマートでない気がします。
>「原本」シートをコピーして、シート名にした
これ必要ですか?
>「原本」シートに関数を入れてあるに関数を入れてある
このためにシートコピオ―しているのかな。

入力が不明なので該当しないかも知れませんが、
「リスト」シートのデータに対しループ
データを蓄積データシートに書き込み(データ保存の為)*ケース1
関数の解と同じ解をVBAで処理、取得し「原本」シートに関数を入れてあるに空白なく出力
必要に応じVBAで「原本」シートの書式設定(罫線削除や追加など)
必要に応じてVBAで印刷設定(ヘッダなど)
印刷実行、必要に応じてPDF出力など
「原本」シートの該当セルの値(書式など)をクリアー
「リスト」シートのデータが無くなるまで繰り返す。

このようにする事で、いずれ問題、煩雑になりそうなブックの数やシートの数、ブック自体の重さなどが維持できます。
*ケース1の項目は、txtやcsvファイルなどで外部に蓄積や取得をすれば、なおスマートになるのではと。
また、この蓄積データを活用すれば、集計や分析などにも使えます。
ブックいっぱい、シートいっぱいでも出来ますが、、おっしゃる通りスマートでは無いかな。設計自体を見直せるなら、考察に加えてみてはいかがでしょうか。
    • good
    • 0

こんにちは



回答者にはご説明文の内容以外の情報はないので、ご説明文の通り処理すれば良いとしかわかりません。

>スマートに行く方法を教えて下さい。
まぁ、シートをまとめて印刷しても、シートごとに独立しているので、あまり効果はなさそうに思います。

>増やしたシート全部に対して、空白行の削除をして、増やしたシート
>全部を印刷をしたいのです。
処理ごとに全部のシートを対象にするよりも、各シートごとに処理を完結していったほうがわかりやすいのではないでしょうか?

具体的には、「リスト」の各行ごとに
 1)シートを作成
 2)シート名およびセル値をセット
 3)空行を削除して印刷
を繰り返す(ループ)処理をすればよさそうに思います。
    • good
    • 0

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