質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
印刷

印刷とは、インキを用いて紙などの被印刷物に機械的に複製することを指します。現在は紙などの2次元の媒体だけでなく、3次元の曲面にも直接印刷する技術など様々な開発が進んでいます。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

1359閲覧

VBAで差し込み印刷をしたい

mana17

総合スコア1

印刷

印刷とは、インキを用いて紙などの被印刷物に機械的に複製することを指します。現在は紙などの2次元の媒体だけでなく、3次元の曲面にも直接印刷する技術など様々な開発が進んでいます。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2022/01/01 05:03

チェックボックスで選択したリストを印刷したいです

VBAを使って簡単な差し込み印刷ができるシステムを作っています。

具体的には会員名簿から郵便局の払込票に挿し込み印刷をかけれるようにしたいです。

現在は、下の画像のような感じで1名ずつの印刷はできるようになりました。
イメージ説明

選択したデータは印刷できるが、、、

名簿とフォームと払込票という3つのワークシートを作り、名簿のID部分(下の画像の黄色部分)を複数選択すると選択したデータは印刷できるようになったのですが、もう少し使いやすくするためにセルの選択からチェックボックスを使った選択方法にしたいのですがなかなか思うようにできません。

イメージ説明

選択したデータを印刷する時に使っているコードは下です。

Sub 選択したデータを印刷する() For Each セル In Selection Worksheets("フォーム").Range("B2").Value = セル.Row - 3 Worksheets("払込票").PrintOut Next End Sub

これをチェックボックスで選択するようにしたい

ID部分が選択できれば希望の印刷はできるのでチェックボックスを作ってActivateを使ってID部分を選択させる、とかいろいろ試しては見たのですがなかなか上手く行かず・・・。
自分なりに調べてみたのですが良い解決方法が見つからなかったので質問させていただきました。

よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

エクセルのバージョン情報はエクセル2016となっています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ユーザーが複数データを簡単に選択できるようにしたい、ということですよね。いろいろ方法があると思いますが、現状の質問内容では具体的に回答は難しいので、アイデアだけ提示しておきます。


一番簡単なのは、CTRLキーを押しながらID列のセルを選択すればとびとびのセルでも選択できます。この方法で選択してもらうようにすれば現状のVBAコードがそのまま使えます。


フォームコントロールのチェックボックスをセルに配置してそれで選択してもらう方法もあります。チェックボックスの書式設定でセルとリンクさせることができますので、そのセルをもとに印刷したいデータを取得することができます。配置する方法は下記などを参考にしてください。

Excel(エクセル)のチェックボックスの作成方法|削除や連動する方法も解説

データ数が数が多いと手作業では面倒なのでVBAで配置するのも検討するといいでしょう。下記などが参考になりそうです。

[【Excel VBA】複数のチェックボックスを一瞬で作成する方法!サイズも自動で! - エク短


自分がするなら、ユーザーフォームにリストボックスを配置して、そこで選択してもらう方法にするかな。

シート上にコマンドボタンを配置して、そのクリックでユーザーフォームが開き、リストボックスで印刷したいデータを選択、ボタンクリックで印刷、というインターフェイスにします。下記などが参考になりそうです。

Excel VBA リストボックスで複数行選択して値を取得する


紹介したリンク先は、今回検索して最初に見つかったものを載せています。このリンク先だけでは目的のものは作成できないと思いますが、この手のありがちなものは検索すればいろいろ情報が見つかるのでそれらを参考にしながら作成してみてください。

その上で行き詰ったら、その時点で再質問すれば具体的な回答が得られると思います。

投稿2022/01/01 08:08

hatena19

総合スコア33795

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mana17

2022/01/02 03:56

アイデアありがとうございます。 とても参考になります。 >>フォームコントロールのチェックボックスをセルに配置してそれで選択してもらう方法もあります。チェックボックスの書式設定でセルとリンクさせることができますので、そのセルをもとに印刷したいデータを取得することができます。 セルとチェックボックスをリンクさせてTRUEを返せる所までは出来るのですがそれをどうやって印刷まで繋がる方法が分からずで…またアイデアをいただけるとありがたいです。 よろしくお願い致します。
hatena19

2022/01/02 04:23

リンクさせたセルの列でTrueでフィルターをかける。 表示されている行のみを対象に印刷する。 とすればどうでしょう。 VBAでフィルターはAutoFilterメソッド、 表示されている行の取得は、SpecialCells(xlCellTypeVisible) でできます。 下記が参考になります。 http://officetanaka.net/excel/vba/tips/tips155d.htm
mana17

2022/01/04 09:09

hatena19さん 回答ありがとうございます。 今日の夜にやってみます^ ^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問