指定した行のみ印刷するVBAコードについて | |
---|---|
[196521] 指定した行のみ印刷するVBAコードについて- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/19(22:01)) □U R L/ 指定した行のみ印刷し、 印刷後は元のデータにするVBAコードについてです。 台帳シート(印刷前(実行前)) A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 ・ 最大日付. 印刷FG 2 23 山田 2023/6/1 55 77 24 ・・ 2024/9/1 3 46 鈴木 2024/11/1 29 1 5 ・・ 1 4 38 五島 2024/9/1 11 1 5 ・・ 5 10 菊井 2024/12/1 11 1 5 ・・ 1 6 台帳シート(印刷時(実行時))下記J列の印刷FG=1の行のみを印刷する (2行以下のJ列の印刷FG=“”の行は一旦、削除する(印刷されないようにする) A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 ・ 最大日付. 印刷FG 2 3 46 鈴木 2024/11/1 29 1 5 ・・ 1 4 5 10 菊井 2024/12/1 11 1 5 ・・ 1 6 台帳シート(印刷後(実行後)) (印刷前のデータと同じにする(J列の印刷FG=“”の行を元に戻す) A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 ・ 最大日付. 印刷FG 2 23 山田 2023/6/1 55 77 24 ・・ 2024/9/1 3 46 鈴木 2024/11/1 29 1 5 ・・ 1 4 38 五島 2024/9/1 11 1 5 ・・ 5 10 菊井 2024/12/1 11 1 5 ・・ 1 6 上記のような事が出来るVBAコードについて どなたかご教示頂ければ幸いです ++++++++++++++++++++ OS ⇒Windows 11 Version⇒Excel 2019 ++++++++++++++++++++ |
[196523] Re[1]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/23(09:15)) □U R L/ 質問です。 ・ヘッダーなどに&A &F &Zを使用していますか? ・VBA初心者さんはVBAのスキルをアップさせたいですか? その気が無いなら以下の質問は無視してください。 ・VBA初心者さんのお考えになるベストなロジックはどのようなものですか? |
[196525] Re[2]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/23(20:37)) □U R L/ Kazuoさん ありがとうございます。 >質問です。 >・ヘッダーなどに&A &F &Zを使用していますか? すみません &A &F &Z の意味がわかりません >・VBA初心者さんはVBAのスキルをアップさせたいですか? スキルをアップしたいのですが、 コードを書くとなるとわからないことばかりなのです >その気が無いなら以下の質問は無視してください。 >・VBA初心者さんのお考えになるベストなロジックはどのようなものですか? 良くわかりませんが、 印刷するとフラグを立てて 次回 データを更新したときに 該当印刷フラグが無いデータのみ 印刷するということですが、 うまく印刷できなかった場合はどうするかということを 考慮すると別のやり方でなければ出来ないとは思っています すみません、まだ考えが至っておりません |
[196526] Re[3]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/24(10:02)) □U R L/ >印刷するとフラグを立てて >次回 >データを更新したときに >該当印刷フラグが無いデータのみ >印刷するということですが、 元の質問 >>指定した行のみ印刷し、 >>印刷後は元のデータにするVBAコードについてです。 ・元の質問ではフラグが立っている行のみ印刷すると読めますが、どちらが正しいのですか? ・データ更新があった時に印刷フラグを消したいのですか? 手作業でやるとしたらどんな手順になるか箇条書きしてください。 |
[196527] Re[4]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/24(22:14)) □U R L/ kazuo さん ご返事ありがとうございます。 >・元の質問ではフラグが立っている行のみ印刷すると読めますが、どちらが正しいのですか? 当初の質問時のトリガーはご返事の通り 「フラグが立っている行のみ印刷する」としていました 申し訳ありません その後に 「印刷するとフラグを立てる」事の方が確実かなと考えました (しかし、印刷が正常に出来たかという懸念もあります) すみません、どちらか迷いましたが、 「印刷するとフラグを立てる」事にしました >・データ更新があった時に印刷フラグを消したいのですか? 実際には同じキー上のデータは上書きされるだけなので 追加されるキー上のデータだけで 更新は追加されるデータだけとなります >手作業でやるとしたらどんな手順になるか箇条書きしてください。 1 「年度シート」から最初のデータを「台帳シート」に更新する(実際は新規) 2 「台帳シート」を印刷する (印刷フラグは全てnull なので全て印刷対象) 3 印刷printout を実行したら、当該レコードにフラグ1を立てる 4 「年度シート」から再度データを「台帳シート」に更新する(実際は更新・追 加) 5 「台帳シート」を印刷する (印刷フラグ1は印刷対象外、追加された null のみのデータが印刷対象) 6 印刷printout を実行したら、null のレコードにフラグ1を立てる 7 4からの繰り返し お手数おかけいたします よろしくお願いいたします。 |
[196529] Re[5]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/25(09:24)) □U R L/ > 1 「年度シート」から最初のデータを「台帳シート」に更新する(実際は新規) >4 「年度シート」から再度データを「台帳シート」に更新する(実際は更新・追 加) 手作業で「更新」というとピボットテーブルとかデータの取得でしょうが、実際はどのように手作業で行うのですか? >7 4からの繰り返し プロシージャ作成するにあたってロジック構築のための手作業を伺っています。 1回のプロシージャ実行でどの基準で繰り返すのですか? もし、MsgBox"印刷を続けますか?"等で繰り返すのであれば >>うまく印刷できなかった場合はどうするかということを 実際に印刷結果を目視すれば良いのでは無いですか? 最初の質問への疑問です。 >>>台帳シート(印刷時(実行時))下記J列の印刷FG=1の行のみを印刷する (印刷FG=""の行のみを印刷するに変りましたが) 印刷FG=1の行は空行のまま印刷するのですか? 印刷FG=1の行は上に詰めて印刷するのですか? 今一度手作業でやるとしたらどんな手順になるか箇条書きしてください。 前回回答が抜けていました。 >&A &F &Z の意味がわかりません ttps://learn.microsoft.com/ja-jp/office/vba/excel/concepts/workbooks-and-worksheets/formatting-and-vba-codes-for-headers-and-footers |
[196531] Re[6]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/25(13:26)) □U R L/ kazuo さん ご返事ありがとうございます。 >1 「年度シート」から最初のデータを「台帳シート」に更新する(実際は新規) >4 「年度シート」から再度データを「台帳シート」に更新する(実際は更新・追 加) >手作業で「更新」というとピボットテーブルとかデータの取得でしょうが、実際はどのよう >に手作業で行うのですか? 外部からデータを取り込む事としています 取り込んだ結果が 「年度シート」と考えて良いです >プロシージャ作成するにあたってロジック構築のための手作業を伺っています。 >1回のプロシージャ実行でどの基準で繰り返すのですか? 「年度シート」を更新した都度です 週1回です >もし、MsgBox"印刷を続けますか?"等で繰り返すのであれば >>うまく印刷できなかった場合はどうするかということを >実際に印刷結果を目視すれば良いのでは無いですか? わかりました それで良いですね。 >最初の質問への疑問です。 >>>台帳シート(印刷時(実行時))下記J列の印刷FG=1の行のみを印刷する (印刷>FG=""の行のみを印刷するに変りましたが) >印刷FG=1の行は空行のまま印刷するのですか? >印刷FG=1の行は上に詰めて印刷するのですか? 更新される行はあらかじめ定まっています 上に詰めて印刷しません あらかじめキー、名前は入力済みでC列以降が空白です >今一度手作業でやるとしたらどんな手順になるか箇条書きしてください。 すみません。 前回フローを再度修正しました(何度も申し訳ありません) 1 「年度シート」から最初のデータを「台帳シート」に更新する(実際は新規) 2 「台帳シート」に入力された行について印刷フラグ1を立てる 実際には「C列」日付にデータがあれば印刷フラグ1を立てる 3 「台帳シート」を印刷する (印刷フラグ1の行のみ印刷) ただし、更新される行はあらかじめ定まっています 4 印刷printout を実行したら、印刷フラグ1の行を印刷フラグ9に変更する (正常に印刷を確認できたときにコマンドボタンで変更するようにする) 5 「年度シート」から再度データを「台帳シート」に更新する(実際は更新・追加) (「年度シート」変更は当方で行います) 6 「台帳シート」に入力された行について印刷フラグ1を立てる ただし、印刷フラグ9のレコードは9のままとする 7 「台帳シート」を印刷する (印刷フラグ1の行のみ印刷) 8 印刷printout を実行したら、印刷フラグ1の行を印刷フラグ9に変更する (正常に印刷を確認できたときにコマンドボタンで変更するようにする) 9 5からの繰り返し 何度もお手数おかけいたします よろしくお願いいたします。 |
[196533] Re[7]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/25(21:41)) □U R L/ 追伸です 申し訳ございません 印刷についてですが、詳細は以下の通りです。 @台帳シート(最初データ取込時) *画面に罫線設定済み A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 印刷FG 2 23 山田 3 46 鈴木 2024/11/1 29 1 5 ・・ 4 58 五島 5 A台帳シート(最初データ印刷)↓全て印刷(罫線含む約50ページ) *罫線含めて印刷 A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 印刷FG 2 23 山田 3 46 鈴木 2024/11/1 29 1 5 ・・ 4 58 五島 5 B台帳シート(最初データ印刷後)↓印刷フラグ1(コマンドボタンによる) *(画面に罫線設定済み) A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 印刷FG 2 23 山田 3 46 鈴木 2024/11/1 29 1 5 ・・ 1 4 58 五島 5 C台帳シート(データ再取込時)↓印刷フラグ(既=9 新規=1) *(画面に罫線設定済み) A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 印刷FG 2 23 山田 2024/12/1 30 1 5 ・・ 1 3 46 鈴木 2024/11/1 29 1 5 ・・ 9 4 58 五島 5 D台帳シート 印刷は印刷フラグ1の行のみ(印刷位置はそのまま) 仮に印刷データが2ページだけにあればその2ページ目の該当行だけを印刷 (印刷用紙は前回の用紙をそのまま利用(重ね書き) 印刷後に↓印刷フラグ(既=9 新規=1) *(罫線無しで印刷) A B C D E F G H I J 1 NO. 名前 日付 金額1 金額2 金額3 印刷FG 2 23 山田 2024/12/1 30 1 5 ・・ 9 3 46 鈴木 2024/11/1 29 1 5 ・・ 9 4 58 五島 5 色々お手数おかけいたします よろしくお願いいたします。 |
[196535] Re[8]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/26(07:50)) □U R L/ 再追伸です 申し訳ございません 印刷についてですが、 台帳は50ページ分の印刷です 印刷トレイには50ページ分の白紙をセット A 初回は罫線含めて全部印刷(データとなる行は少ない) B 2回目以降は 印刷トレイに初回の50ページ分の印刷済の台帳をセット 印刷されるデータは印刷フラグ=1のみの行です(罫線印刷せず) (印刷されないページはそのままプリンターがスルーするように 早く排出される) つまり、初回の台帳をずっと利用する仕様です 色々お手数おかけいたします よろしくお願いいたします。 |
[196536] Re[9]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/26(09:33)) □U R L/ 罫線有り無し、・同じセル情報を再印刷等など 何度も同じ用紙に印刷ってズレずに可能なのかな。 タイトル行やヘッダー等を印刷するのなら同じ条件にしてください。 ・3ページ分とかよいので10回程度実証した結果をお知らせください。 ・すでに別条件で確認済みならその旨報告ください。 VBA初心者さんのVBAスキルアップの為の回答は無理で、途中で自分勝手なコードのみを投稿し逃げ出すかもしれません。 ・それでも良いですか? |
[196537] Re[10]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/26(14:17)) □U R L/ kazuo さん ご返事大変ありがとうございます。 >罫線有り無し、・同じセル情報を再印刷等など >何度も同じ用紙に印刷ってズレずに可能なのかな。 テスト済です。(キーデータは2回のみ印刷されるとは認識しています) すみません、問題無いとお考えください >タイトル行やヘッダー等を印刷するのなら同じ条件にしてください。 確かにタイトル行は2回目以降は印刷フラグ=9としたいです ヘッダーはありません ただ、フッターはページで2回目以降は印刷しない設定が よいですが、オプションで印刷する・しない設定が あれば、ベストです >・3ページ分とかよいので10回程度実証した結果をお知らせください。 テスト済です。 >・すでに別条件で確認済みならその旨報告ください。 テスト済です。 >VBA初心者さんのVBAスキルアップの為の回答は無理で、途中で自分勝手なコードのみ>を投稿し逃げ出すかもしれません。 >・それでも良いですか? もちろんOKです。 非常に参考になると思います。 一番今必要な課題なのです。 よろしくお願いいたします。 |
[196540] Re[11]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/26(18:27)) □U R L/ >1 「年度シート」から最初のデータを「台帳シート」に更新する(実際は新規) これは手作業か別モジュールでしてください。 全てのページ設定も含めて実施ください。 実現可能ですね? プログラムで実施するところがあるのなら、まずそのモジュールを提示ください。 >5 「年度シート」から再度データを「台帳シート」に更新する(実際は更新・追加) この追加とは台帳シートに無いNO.が追加されると言うことですか? 追加されるのならば、 「年度シート」のNO.位置がずれることもあるのですか? 「年度シート」の末尾に追加されるのですか? どちらの場合でも「台帳シート」末尾に追加し、罫線もそこのみ印刷するのですか? ページが増える可能性はありますか? もし、違うのなら今後誤解を招くような表現はお控えください。 エラーが出るので分割して送信しています。 |
[196541] Re[12]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/26(18:29)) □U R L/ >「台帳シート」に更新する >>すみません、まだ考えが至っておりません ということで先に記載した様に手作業をフロー化すれば理解できるかと思い、手作業での実現方法を伺っています。 「更新する」のvbaでの実現方法は解るというのならそのコードを提示ください。 とにかく用語はExcel標準でお願いします。 >(「年度シート」変更は当方で行います) 変更とはどういう作業ですか? プログラムフローを伺っています。同一インスタンスでVBA実行中に別作業はたぶん無理です。 |
[196542] Re[13]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/26(18:36)) □U R L/ >(正常に印刷を確認できたときにコマンドボタンで変更するようにする) 印刷できなかったときには再印刷チャレンジが必要ですよね? メッセージボックス"印刷できましたか? はい/いいえ"で いいえでさらにメッセージボックス"再印刷しますか? はい/いいえ"と 場合分けすれば良いのでは? |
[196543] Re[14]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/26(18:37)) □U R L/ >9 5からの繰り返し 通常、1週間に1回の作業を1回のプログラム実行動作で繰り返すことはありません。 VBA初心者さんにはそのようなスケジュールプログラム作成は無理だと思います。 モジュールは、 ・新規印刷 (2〜4) ・更新を適用して印刷 (フッター無しにし、5の一部〜8) の2つとしましょう。 印刷FGは印刷しないですよね? > 初回は罫線含めて全部印刷(データとなる行は少ない) 罫線があるのだから日付の無い行は全て空白で良いのでは。これなら全ての行で罫線を除外して印刷は一回です。 |
[196544] Re[15]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/26(18:39)) □U R L/ MsgBoxが悪かったようです。 kazuo -(2025/04/25(09:24))では良かったのに?? |
[196546] Re[16]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ VBA初心者 -(2025/04/26(20:10)) □U R L/ Kazuoさん お手数おかけいたします >1 「年度シート」から最初のデータを「台帳シート」に更新する(実際は新規) >1これは手作業か別モジュールでしてください。 >1全てのページ設定も含めて実施ください。 >1実現可能ですね? >1プログラムで実施するところがあるのなら、まずそのモジュールを提示くださ>1い。 初回は当方で致します。ありがとうございます。 >5 「年度シート」から再度データを「台帳シート」に更新する(実際は更新・追加) >5この追加とは台帳シートに無いNO.が追加されると言うことですか? >追加されるのならば、 >「年度シート」のNO.位置がずれることもあるのですか? >「年度シート」の末尾に追加されるのですか? >どちらの場合でも「台帳シート」末尾に追加し、罫線もそこのみ印刷するので>すか? >ページが増える可能性はありますか? >もし、違うのなら今後誤解を招くような表現はお控えください。 >エラーが出るので分割して送信しています。 台帳シートキーとなるデータ(A列・B列)のみはあらかじめ 全ての行を表示しています (変更ありません) A B 1 NO. 名前 2 23 山田 3 46 鈴木 4 58 五島 よってC列以降のデータを更新します 台帳シートのキーとなる行自体は全体で定まっています。 キーの行が変わることはありません(台帳という意味です) >「年度シート」のNO.位置がずれることもあるのですか? 当然、「年度シート」は更新元データですので データは増加しますのでNO.位置(行)がずれます(週一回の事務作業) >「台帳シート」に更新する >(「年度シート」変更は当方で行います) >変更とはどういう作業ですか? 「年度シート」は更新元という意味です _ >(正常に印刷を確認できたときにコマンドボタンで変更するようにする) >印刷できなかったときには再印刷チャレンジが必要ですよね? >メッセージボックス"印刷できましたか? はい/いいえ"で >いいえでさらにメッセージボックス"再印刷しますか? はい/いいえ"と >場合分けすれば良いのでは? それでOKです >9 5からの繰り返し >通常、1週間に1回の作業を1回のプログラム実行動作で繰り返すことはあり>ません。 週一回データの更新作業があるのでその直後に行う作業となります >モジュールは、 >・新規印刷 (2〜4) >・更新を適用して印刷 (フッター無しにし、5の一部〜8) >の2つとしましょう。 OKです >印刷FGは印刷しないですよね? はい、A列〜G列までを印刷範囲としています > 初回は罫線含めて全部印刷(データとなる行は少ない) >罫線があるのだから日付の無い行は全て空白で良いのでは。これなら全て >の行で罫線を除外して印刷は一回です。 OKです ご面倒おかけします よろしくお願いいたします。 |
[196547] Re[17]: 指定した行のみ印刷するVBAコードについて- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2025/04/27(09:35)) □U R L/ それでは、新規印刷モジュールの VBA初心者さんのお考えになるベストなロジックをお書きください。 もし、無いのなら現状手作業で行っていることを箇条書きしてください。 ・Excel標準作業の用語で書いてください。 例) × 「台帳シート」に更新する ○ 「年度シート」のC列以降をコピーし、「台帳シート」のC列以降に値貼り付けする(等実際の作業) ・VBAステートメントの方が書きやすい場合は手作業でなくともそれでもかまいません。 例) Worksheets("台帳シート").PrintOut 以上2つを混ぜても構いません。 |
[196549] Re[18]: 指定した行のみ印刷するVBAコードについて- ■ ![]() □投稿者/ VBA初心者 -(2025/04/27(15:01)) □U R L/ Kazuoさんへ 今までのアドバイスを受けて 自分でやってみようと思います 大変お世話になりました。 また、何かありましたら、よろしくお願いいたします。 大変ありがとうございました。 |
このトピックに書きこむ |
---|