- 締切済み
Excel テーブルからフォーマットに値を抽出
Excelのデータテーブルからフォーマットに値を抽出して反映させるには。あるパトロール様式を作成しようとしています。 添付画像のようなイメージです。 ◇データテーブルのフィールド名と情報 PageNo. (パトロール記入シートのページ数 1日に1ページ) 日時 担当者 巡回時の注意点 ◇パトロールシートの様式 Sheet名をPageNo.の数字にし、データテーブルからINDEX関数で検索し、データテーブルにある日時・担当者・巡回時の注意点を抽出し反映させます。 このやり方で抽出は可能ですが、フォーマット(ここではパトロールシート)が巡回する日付分必要となり。操作が非常に重たくなり困っています。 印刷はPegeNo.のSheetを作業グループに選択して一括印刷しています。 VBAなどでPageNo.ごとの情報をフォーマットに反映させてページ一括でPDFや印刷プレビュー表示して印刷することは可能でしょうか。 現状のやり方でも印刷は可能ですが、動作が重くなり、途中でフリーズしてしまう場合があります。 詳しい方いましたらご教授ください。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
課題 >巡回する日付分必要となり。 >操作が非常に重たくなり困っています 期待 >VBAなどでPageNo.ごとの情報をフォーマットに反映させて >ページ一括でPDFや印刷プレビュー表示して印刷することは可能でしょうか。 >◇データテーブルのフィールド名と情報 >◇パトロールシート 双方のシートをそれぞれ1枚の構造にし、 データテーブルの1行をパトロールシートに転記してPDF化 データテーブルの次行をパトロールシートに転記してPDF化 以下これを必要数繰り返す仕様にすれば、 シートが増えないので重たくなることが回避できるものの、 PDFファイルがパトロールごとに分かれてしまいますし これをVBAで回避することができません。 一方、 パトロールごとに分かれたPDFファイルを1つにまとめるフリーソフトが ありそうですので、これを使う手があると思います。 例えば、 https://www.youpdf.com/jp/merge-pdfs-jp.html?utm_source=bing&utm_medium=cddd7fdc42b41ab64fe419fd4a4d40de&cuid=cddd7fdc42b41ab64fe419fd4a4d40de&msclkid=cddd7fdc42b41ab64fe419fd4a4d40de この対応方法でよければ、 >データテーブルの1行をパトロールシートに転記してPDF化 >データテーブルの次行をパトロールシートに転記してPDF化 >以下これを必要数繰り返す このマクロを例示することはやぶさかではありません。 ただし、先の質問で提示された画像では 列番号、行番号がわからないため、コードの例示が困難です。 正確な列番号、行番号のわかる情報を提示してください。 更に、 例示された情報をもとに >Sheet名をPageNo.の数字にし、 >データテーブルからINDEX関数で検索し、 >データテーブルにある日時・担当者・巡回時の注意点を抽出し反映させます。 を行ってみましたが、50枚程度でも重くなることはありません。 そのため、(機密情報に留意し)限りなく本物に近い情報を提示してほしいです。
- AIエージェント あい(@OKWAVE-AI)
- ベストアンサー率89% (2716/3020)
あなたが抱えている問題に対する解決策をご説明します。 Excel VBAを活用することで、指定されたPageNo.ごとにデータテーブルから必要な情報を抽出し、それぞれのシートに反映させた後にPDFや印刷プレビューを生成し、印刷することは可能です。 以下のステップを踏むことで作業を自動化できます: 1. VBAを使用して、データテーブルをループ処理し、各PageNo.に対応する情報を取得します。 2. 新規または既存のシートを反映先として選び、該当するPageNo.の名前をつけます。 3. INDEX関数ではなく、VBAを通じて必要なデータ(日時、担当者、巡回時の注意点)を直接選択したシートの対応するセルに反映します。 4. 反映させたシートをPDFに変換するか、印刷プレビューを表示して直接印刷します。 5. これらのステップを各PageNo.について自動的に実行するプログラムを作成します。 VBAスクリプトはカスタムメイドとなるため、あなたの具体的なニーズに応じて調整が必要になります。プログラムの作成にはExcelのVBAに精通している必要があります。全くの初心者の場合は、インターネットで基本情報を調べたり、書籍やオンラインコースで学び、VBAの知識を身につけることをお勧めします。または、より経験豊かな人に相談したり外部の専門家に委託することも検討してください。 この方法であれば、パフォーマンスの問題も大幅に軽減され、フリーズするリスクも減少するはずです。また、プログラムはあなたの特定のニーズに合わせてカスタマイズできるため、より効率的なワークフローを実現できるでしょう。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/