• 締切済み

エクセルでチェックボックスを使用してシートの抽出及び一括印刷

首記の件、御指導願います。 技術も知識も足りない未熟者ですが宜しく御願致します。 さて、内容ですが、下記の通りです 現況:シート2~8に文章が入力されています。 作業:シート1に表紙を作る(シート2~8の表題を記入)。    シート1の各表題の前にチェックボックスを作成。    シート1のチェックボックスがオンである表題のシートを    抽出し一括で印刷する。    又、シート1-1を作りシート1でオンである表題のみ縦に    順番に表示する。     以上です。 可能でしょうか? 私のレベルでは無理と言われるかもしれませんが、 何とか作成したいので御指導のほど宜しく御願致します。    

みんなの回答

回答No.6

結局VBAでSheet名も活用してしまっているのでいまいちかも。 [Alt]+[F11] VBE 挿入 - 標準モジュール に下記貼り付け。 Sub 印刷() Dim n As Byte n = 3 '3行目 Do '繰り返し 'E列で「True」だったら D列に書いてあるシート名を印刷プレビュー If Range("E" & n).Value Then _ Worksheets(Range("D" & n).Value).PrintPreview n = n + 1 If n > 255 Then Exit Sub '不要とは思うが一応 Loop Until Range("E" & n).Value = "" 'E列の値がなくなるまで End Sub Sheet1に印刷ボタンを設定し、上記マクロを登録する。

全文を見る
すると、全ての回答が全文表示されます。
回答No.5

明らかに、検証不足でしたm(_ _)m Sheet4は印刷されてしまいました 印刷に関することはVBAを使うことになりそうです すみませんでした

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

#3です 肝心のPrint_Area の数式が間違ってました m(_ _)m =IF(Sheet1!$B$3,Sheet3!$A$1:$E$14,"") ではなく =IF(Sheet1!$E$3,Sheet3!$A$1:$E$14,"") です。Sheet1!B3セルではなく、E3セルでした

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

(VBAを使ったほうがよい気もしますが) VBAは苦手なのでユーザーフォームのチェックボックスを使う方法です。 Sheet1 チェックボックスとE列のセルをそれぞれリンクさせる。 (D列はメモ用なので書く必要はない。) F1セル 1 F2セル =E3+F2 下へオートフィル G1セル =MAX(F:F) Sheet2 A2セル =IF(Sheet1!$G$2>ROW(A1),ROW(A1),"") B2セル =IF($A2="","",INDEX(Sheet1!C:C,MATCH($A2,Sheet1!$F:$F)+1)) A2:B2セル 下へオートフィル Sheet3 印刷範囲を選択して ファイル - 印刷範囲 - 印刷範囲の設定 [Ctrl]+[F3]名前の定義 「Print_Area」 という名前があるので参照範囲を =IF(Sheet1!$B$3,Sheet3!$A$1:$E$14,"") として追加する(A1:E14セル範囲が印刷範囲の場合) Sheet4~ Sheet3 同様に Sheet4、Sheet5 も参照範囲を =IF(Sheet1!$B$4,Sheet3!$A$1:$E$32,"") =IF(Sheet1!$B$5,Sheet3!$A$1:$E$20,"") のようにする 印刷 Sheet3~Sheet5までを選択(作業グループ化)してから印刷する

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

エクセルもシートとチェックボックスの組み合わせた使い方は、エクセル中・上級以上のわざです。 シート(もっと言うならセルの値)とチェックボックスの接点はプロパティのLinkedCellの指定しかなく、セルの値にならないと、関数等では使えないし、そういう方法で出来ない場合では、チェックボックスをVBA(プログラム)で扱わないといけない。 例えば B列の該当(シートを示す)行に1を入れたら指定(選択)の扱いにしてはだめなのか。 しかしこれにしても、そのB列の行の空白か1かによって、対応するシート(タブ)の選択に結びつけることは、VBAで無いと出来ないと思う。関数ではシート選択は出来ない。 シートが(複数とか)選択できたら、印刷(ただし手操作)は出来る。 それは「抽出」のイメージでなく、複数シートの一括印刷ができるという、エクセルの印刷の仕組みに持ち込むのだ。 VBAを勉強しないでやることは不可能と思うが、質問のシブリから相当 誰かの指導が必要と思う。 本質問は、丸投げなので答えないが、内容的にはVBAのそんなに難しいところを使うものではない。 コントロール(チェックボックスなど)などを使うとどうしてもVBAの出番になる。チェックボックスの値をどの時点で採るかという点では、コマンドボタンの貼り付け、クリックイベントと言う仕組みなどのことに課題が発展しそうである。 また印刷操作もボタン1つのクリックなどで、したいとなるだろうから。 ーー 後半は Sheet2 A列   B列                    E列 TRUE 沿革について チェックB ON 1 TRUE 製造について チェックB OM 2 FALSE 販売について チェックB OFF A,B、E列は第3行目から始まり1行おきにしている E列の式は =IF(A3=TRUE,MAX($E$1:E2)+1,"") Sheet3では(質問では1-1シート) B3に =INDEX(Sheet2!$B$3:$B$20,MATCH(ROW()-2,Sheet2!$E$1:$E$20,0),1) 下方向に式を複写する。 #N/Aを出さないようにする式など、そもそも上記の式を理解してもらえるか心配があり、省略。

sa780323
質問者

お礼

ありがとうございます。 指導なしではとても無理なことが 一目瞭然でした。 指導してくれる人を身近でも探してみます。 もし、見つからない場合指導していただけないでしょうか。 色々勝手なお願いばかりで失礼しました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

>私のレベルでは無理と言われるかもしれませんが、 どの程度かわかりませんが、文書化できないレベルでしょうか? 何をやりたいのか、つかみかねます。 メモ帳などに下記を記入しておくことをお勧めします。 そのまま、この掲示板に張り付けてもよいと思います 1.現状の把握  実行したいExcel上の操作をすべて書き出す(箇条書き) 2.手作業や人間が判断している部分に法則性がある場合は自動化できる可能性が高いので、詳しく書く 3.人でしか判断できない部分は入力画面などをだす(印刷部数など)

sa780323
質問者

補足

回答ありがとうございます。 遅くなりましたが、やりたいことを順を追って書いてみました。 レベルは、表や書面を作る程度です。深く理解はしていません。 希望作業は以下の通りです。 宜しく御願致します。 1.シート1に目次(書類をファイルしたときの目次)を作成   例(シート1):    -目次ー          1.○○○について          2.□□□について          3.×××について 2.目次の項目ごとにチェックボックスをつける 例(シート1):    -目次ー          □1.○○○について          □2.□□□について          □3.×××について 3.シート3以降に文章を作成 例(シート3~):  1.○○○について            (1)・・・・・・・・・・・・。            (2)・・・・・・・・。 4.シート1の必要な項目のボックスにのみチェックを入れる 5.シート1でチェックした項目のみ順番にシート2に表示する 例(シート1):    -目次ー          ■1.○○○について          □2.□□□について          ■3.×××について              ↓ 例(シート2):    -目次ー           1.○○○について           2.×××について            6.シート2の目次に表示された項目についての文章(シート3以降)のみ印刷する。   ※1.シート2の目次も一緒に印刷する。   ※2.文章は項目ごとにシートを分けて作成する。 以上。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル2003のチェックボックス一括解除について

    シート上にある、フォームで作成したチェックボックスに付けられたチェックを、 コントロールツールボックスで作成した、「ボタン」をクリックして、 一括に、チェックを外したいと思うのですが、 「ボタン」にVBAを記述して、このようなことは可能でしょうか? ご教授いただけます方、どうぞよろしくお願い申し上げます。

  • Excelチェックボックスのリンクするセル一括

    Excelでチェックボックスのリンクするセルを一括設定したいです。 sheet1に複数のチェックボックスを作成し、それぞれのリンクするセルをsheet2に入れたいのですが、チェックボックスが数10個あるので、1つづつやっていると手間がかかります。 例 sheet1のB2のリンクするセルをsheet2のB2 sheet1のB3のリンクするセルをsheet2のB3 sheet1のB4はsheet2のB4 … 一括でやる方法(多分VBA)はわかりますか。

  • エクセルシート上の[チェックボックス]を一括消去する方法を教えて下さい。

    表示]→[ツールバー]→[フォーム]の、[チェックボックス]で作成した、エクセルシート上の[チェックボックス]を一括消去する方法を教えて下さい。右クリック選択して1個ずつ切り取り消去していますが、列削除や編集→クリア→すべて でも消去できず、たくさんあるときは手間がかかります。

  • Excel VBA 複数シートの一括印刷について

    標記の件、御指導願います。 シート1:印刷設定(チェックボックスが印刷したいシート分あります) シート2~34:チェックボックスがオンである表題のシートを選択し一括で印刷する。 を、VBAで作ってみましたが、エラー(インデックスが有効範囲にありません)が出てしまいます。 Sub CheckBoxPrint() Dim ArrySheet() As String Dim I As Long Dim k As Long k = 0 For I = 1 To 33 If ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = True Then ReDim Preserve ArrySheet(k) ArrySheet(k) = ActiveSheet.DrawingObjects("CheckBox" & I).Object.Caption k = k + 1 End If Next I ThisWorkbook.Worksheets(ArrySheet).PrintOut ←エラー(インデックスが有効範囲にありません) Erase ArrySheet End Sub     このエラーを回避する方法を御指導してください。 よろしくお願い致します。

  • エクセルのチェックボックスについて

    エクセルで、フォームにて下記のようなチェックボックスを作りました。(Exel2003) □あいうえお □かきくけこ □さしすせそ □たちつてと そこで、チェックを入れた項目の文字だけを抽出して、他のセルに、上から順番に表示させることは可能でしょうか?(他のセルは、複数、一つを問いません) さらに欲をいうと、下記のように、抽出した項目の、上から順番に、項目の先頭に番号がふられるとうれしいのですが、このようなことは可能でしょうか? 例:か行とさ行にチェックを入れた場合 (1)かきくけこ (2)さしすせそ チェックしたものから抽出できるだけでも結構ですので、何かご存知の方がいらっしゃいましたら、何卒よろしくお願いいたします。

  • VBA チェックボックスをチェックした名前のみ抽出

    数百名のリストからチェックした名前のみ抽出したいと思いまして。 1.シート1のA、C、E…奇数列にフォームのチェックボックスを配置 2.B、D、F…偶数列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでSheet2のA列から抽出された名前を並べる 宜しくお願いします。

  • Excelのチェックボックスについて

    Excelにてチェックボックスを使用した資料を作成しています。そこで教えていただきたいのですが、シート内に二つのチェックボックスがあり、一つにチェック入れると、もう一つにもチェックが入るようにしたいのですが・・・。もちろん、チェックを外すと、もう一つもチェックがはずれるようにしたい。どなたか教えていただけないでしょうか?

  • エクセル:チェックボックスで他シート複数図形を操作

    現在、エクセルにて sheet1に帳簿内容入力画面 sheet2に入力画面の項目を反映した印刷用帳簿 というものを作成しています。 その中で、sheet1にチェックボックスを1つ設置し、チェックONでsheet2任意の場所に 4個のオートシェイプの楕円を一括表示、チェックOFFで4つの楕円を一括消去、 とさせたいのですが、うまくいきません。 sheet1上にチェックボックス1個・楕円を1個設置し、 ------------------------------------------- Sub test01() With ActiveSheet If .CheckBoxes(Application.Caller).Value = xlOn Then worksheets("sheet2").Shapes("楕円1").Visible = True Else worksheets("sheet2").worksheets.Shapes("楕円1").Visible = False End If End With End Sub ------------------------------------------- とイベント設定をしたところ、チェックON/OFFで楕円1個の表示/非表示はできるように なりました。 残りの楕円2、3、4を構文内に色々当てはめてみましたが、エラーが出てしまいます。 どのように記述すれば一括表示できるでしょうか。 連投申し訳ないですが、詳しい方アドバイスを宜しくお願いします。

  • VBA チェックボックスをチェックした項目のみ抽出

    1.シート1のA列にフォームのチェックボックスを配置 2.B列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでシート2のA列から抽出された名前を並べる 以上のことをしたいと思い、検索しましたところ、似たようなものが見つかりました。 https://okwave.jp/qa/q5065347.html ただ、このVBAは抽出先がG列です。抽出先はシート2のA列にしたいのです。 .Cells(i, "G").Value = cb.TopLeftCell.Offset(, 1).Value これをどうしたら良いでしょうか? 宜しくお願いします。

  • EXCELでチェックボックスの一括オンオフ

    EXCEL2000を使用してます。 アンケート作成をしており、設問毎にチェックボックスで複数選択できるようにしていますが、1つの設問にチェックボックスが8~10等多くあるため、設問毎にチェックボックスの一括オンオフができるようにしたいのです。 今は、次の記述で、ある設問のみ全てのチェックボックスにレが入りますが、はずす事ができません。 Sub チェック11_Click() ActiveSheet.CheckBoxes(Array(1, 2, 3)).Value = True End Sub どうすれば、チェック11のボックスで、オンオフができるのでしょうか? どうか教えて頂きますよう、よろしくお願い致します。

このQ&Aのポイント
  • 猫が布におしっこをする理由や解決法についてまとめました。
  • 猫の嫉妬深さや布におしっこをする理由について解説し、解決法について紹介しています。
  • 猫が布におしっこをする理由やその解消法について詳しく説明しています。
回答を見る

専門家に質問してみよう