チェックボックスにマクロを入れて印刷するやり方について
ご教授いただきたく、質問させていただきます。
シート1
A B C D
1 あ ● TRUE レ
2 い × FALSE
3 う ▲ TRUE レ
エクセルで上記のシートA1,B1にデータを入力し、
Dにあるチェックボックスにチェックを入れると
A1の「あ」をコピーし、シート2のX1にペーストして
VLOOKUPを使ってシート1のB1をA1に表示させ、
印刷したいと思っています。
(もちろん、「あ」と「●」の2項目しかないわけではなく、
1行に8項目あり、シート1では横一列に並んでいるものを、
シート2の見栄えのいいフォーマットで、印刷します。
行数は100行くらいあります。)
シート2
A X
1 ● あ
マクロの記録で、「チェックを入れる→コピー→ペースト→印刷→シート1に戻る」とし、
Application.Run "Book1.xls!印刷"
Range("A1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("X1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("元").Select
となりましたが、チェックを入れても動作しなかったため、
「Application.Run "Book1.xls!印刷"」を削除したところ、
正常に動きました。
問題は・・・・
チェックを入れると動作する(^_^)
チェックを外す時も動作する(T_T)
1個のチェックボックスにマクロは設定できたけれど、
100行あったとしたら、100個のチェックボックスを作成し
1個1個マクロを記録させる?まとめてはできない?
チェックボックスをコピー&ペーストしたところ、
うまくいきませんでした。
(チェックを入れると印刷という動作でOKで、
チェックをあらかじめ入れておき、最後に印刷ボタンで
印刷するというやり方ではありません。
VLOOKUPを使っているので、無理ですよね(・_・;))
初めてのチェックボックスですが、途中まで簡単にできた!と思ったけど、つまづいてしまいました。
色々調べたのですが、素人同然の私には難しくご質問させていただきました。
皆様お忙しいと思いますが、宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
まず、チェックボックスの種類を明らかにしてください。
ワークシートでチェックボックスを使用する
http://www.serpress.co.jp/excel/vba029.html
>チェックを入れると動作する(^_^)
>チェックを外す時も動作する(T_T)
フォームのチェックボックスなら
MsgBox ActiveSheet.CheckBoxes(1).Value
とか
MsgBox ActiveSheet.DrawingObjects("Check Box 1").Value
でチェックの有無を取得できます。
チェックの有無が取得できたら、IF文で処理を分岐すればどうでしょうか。
>1個のチェックボックスにマクロは設定できたけれど、
>100行あったとしたら、100個のチェックボックスを作成し
>1個1個マクロを記録させる?まとめてはできない?
VBAで「マクロの登録」をすれば良いです。
OnActionプロパティを使います。
印刷マクロを汎用性のあるものにすることが前提条件です。
ご回答ありがとうございます。
フォームというのは、コントロールとフォームの事でしょうか?
用語とかあまり分からないのですみません。
とりあえず、コントロールチェックボックスを入れてます。
色々、検索してあんな方法、こんな方法と試してます。
明日はフォームのチェックボックスでも頑張ってみます。
教えていただいたことを元に、頑張ります。
ありがとうございました。
No.2
- 回答日時:
質問一生懸命に書いているのだろうが判りにくい。
VBAの質問ですか?
>印刷
シート2が思い通り出来上がれば印刷は手動でもVBAでも簡単なので
質問の議題からはずすのが、ごたごたしたり、読者に誤解されない知恵。
>チェックボックスにマクロを入れて印刷する
こんな文章おかしい。チェックボックスにマクロコードなど書き込めない。
>シートA1,B1
はシート1のA1,B1セルでしょう。
==
これはチェックボックスがチェックされている行のみ印刷したい、という表現でよかろう。
印刷するその前にVLOOKUPでとあるが、チェックボックスのチェック有りの全列をSheet2に移す関数でのやり方があるので、VLOOKUP関数を考える必要がないと思う。
(1)ただし関数を使ってでは、絶対印刷そのものは出来ないから、印刷の部分はマクロの記録を採って勉強のこと。
チェックボックスのON/OFFは関数で使うには、セルの値に関連付けないとならないので、多数行があるとちょっと難しいが。
セルの値にリンクされたら、後はGoogleで「imogasi方式」で照会してもらえれば、条件に該当した行の、抜き出しの方式の様々な質問と回答が出る。
imogasi方式は作業列を1列使うが、比較的わかりやすいかな、と思っている。チェックの付いた行(値がTRUEの行)に、上行から連番を振ることを考える方式で、その行を別シートに間隔をあけず持ってくるやり方。
ーーー
多数行のあるシートにチェックボックスを各行に作るのは、VBAで例えば
Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
For i = 1 To d
With Worksheets("sheet1")
Set myCheckBox = .CheckBoxes.Add(Left:=Cells(i, "F").Left + 10, _
Top:=Cells(i, "F").Top + 1, Height:=20, Width:=40)
End With
myCheckBox.Caption = ""
myCheckBox.LinkedCell = "$E$" & i
Next i
End Sub
ーー
E列にリンクドセル、
F列にチェックボックス
データ行数だけチェックボックスを作る
例だが、質問者はそういう事を理解する技量はあるのか。
あるいは手動でシート上にチェックボックスを作り終わっているのかな。
ーー
チェックボックスをコピー貼り付けしてリンクドセルの番地は変わらないようなので、これを順次チェックボックスに各行のセルに設定するのは、手作業以外自動でやれる方法はあるのかな。なさそうだが。
ーー
チェックボックスを設けているのは、質問者以外がこのブックを使う前提のようだが、他人に使わせるシートの仕組みをVBAで作るのは、VBAの色々な技量が要ると思う(凝ったものになり、保護とかも考えないといけない、バックアップも必要など大変)。大丈夫かな。
ーーー
関数辺りでやるのをお勧めする。
質問がわかりづらくて申し訳ありませんでした。
私は素人同然と申し上げたうえで、質問させて頂いております。
用語もわかりませんし、「こんなことがしたい」とわからないなりの精一杯の説明です。
説明がわかりづらいのはそちらも同様。
わからない人間に「質問者はそういう事を理解する技量はあるのか。」
あなたにはできないでしょ的回答するのであれば、回答せずに通り過ぎるべきではないでしょうか。
ちなみにシートにチェックボックスを各行に作るVBAは回答を参考に完成しました。もちろん、自分の書式に書き換えてです。
根本的に知識不足で、問題外な質問者だと思いますが、、理解したい、完成したいという気持ちがあります。
お忙しい中、ご回答ありがとうございました。
色々調べて絶対に完成させようという気持ちになりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルでチェックボックスを使用してシートの抽出及び一括印刷
Excel(エクセル)
-
ExcelでのVBA チェックボックスから印刷
Excel(エクセル)
-
EXCEL マクロ 条件の合ったシートだけ印刷したい
Excel(エクセル)
-
-
4
VBA チェックボックスで印刷ページの選択
Word(ワード)
-
5
フォームのチエックボックスにチエックを入れるた行のみ印刷出来るマクロ
Excel(エクセル)
-
6
エクセルで行を挿入し、小計、合計を出したい
Visual Basic(VBA)
-
7
Excel VBA 複数シートの一括印刷について
PowerPoint(パワーポイント)
-
8
ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルファイルを開く時、常...
-
エクセル印刷時 一枚の書類に...
-
エクセルの一部のセルの背景色...
-
マクロで印刷→セルの値から部数...
-
Excel 特定のシートを印刷不可...
-
エクセルでシートの色がグレー...
-
エクセルのページ設定を他のペ...
-
エクセルでのヘッダーをページ...
-
エクセルのマクロで複数シート...
-
エクセルで行番号、列アルファ...
-
エクセルで複数のシートの1枚目...
-
エクセルで1個のシートを1枚の...
-
【Excel】複数シートがあるエク...
-
エクセルのシート名を印刷した...
-
特定のシートのみ印刷できない...
-
エクセルで、ヘッダーに他のシ...
-
エクセルで複数のシートを同じ...
-
Excelであるシートだけ印刷でき...
-
エクセルの行タイトルを特定の...
-
Excelで複数のファイルを1度に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルを開く時、常...
-
エクセルの一部のセルの背景色...
-
エクセル印刷時 一枚の書類に...
-
1ヶ月分の日付を一度に出す方法...
-
マクロで印刷→セルの値から部数...
-
エクセルの行タイトルを特定の...
-
エクセルのマクロで複数シート...
-
Excel 特定のシートを印刷不可...
-
エクセルで複数のシートの1枚目...
-
エクセルでのヘッダーをページ...
-
エクセルでシートの色がグレー...
-
エクセルで行番号、列アルファ...
-
条件によって印刷するシートを...
-
EXCELで複数のシートを同時に印...
-
エクセルのシート名を印刷した...
-
エクセルで複数のシートを同じ...
-
エクセルで、ヘッダーに他のシ...
-
EXCELで宛名だけ連続変更...
-
Excelであるシートだけ印刷でき...
-
エクセルの複数シートをNアップ...
おすすめ情報