• ベストアンサー

シートの再表示について

tom04の回答

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.1です。 >例えば、Sheet1のA1にデータが表示されたら、 >Sheet2を再表示し、Sheet2のA1にデータが表示されたら、 >Sheet3を開くといった具合です。 >また、セルには関数を入力しており、 >返す値がない場合には空白を表示するようにしています。 に関して・・・ 数式によって表示されている場合はChangeイベントは使えませんので別の方法です。 Sheet名はSheet1・Sheet2・Sheet3・・・となっているとします。 それぞれのシートモジュールにコツコツコードを記載するのが間違いないと思います。 まずSheet1のシートモジュールに Private Sub Worksheet_Calculate() If Range("A1") <> "" Then Worksheets("Sheet2").Visible = True End If End Sub 次にSheet2のシートモジュールに Private Sub Worksheet_Calculate() If Range("A1") <> "" Then Worksheets("Sheet3").Visible = True End If End Sub のようにSheet2~最終Sheetの一つ前のシートモジュールにコードを記載すれば A1セルに空白以外のデータが表示された場合に、次のSheetが表示されます。 >あと、非表示のコードも書いて頂いているのですが、 >どのような条件で非表示になるのでしょうか? これは何かの変化で実行されるコードではなく、ご自身でマクロを実行する必要があります。 標準モジュールに前回のコードがあるとすると Alt+F8キー → マクロ → マクロ実行です。 この操作はSheet1以外のSheetを非表示にしたいときにご自身で操作してください。m(_ _)m

trendymania
質問者

お礼

回答頂きありがとうございました。 私の説明不足で気を悪くされた方も居たのに、 細かく教えてくださり、本当に助かりました。 早速、このコードを使ってファイルの作成をしようと思います。 本当にありがとうございました!

関連するQ&A

  • Excelでのシート間データ反映について

    こんにちは。 仕事上でのエクセルファイル作成に行き詰ってしまったので、お知恵を拝借させて下さい。 今回作成しているファイルは、 Sheet1にはお客様に送付する宿泊確認書のフォームが、 Sheet2にはお客様の情報(名前、Tel番号など)が 入力されています。 理想としては、Sheet2に入力したデータを Sheet1のフォームに自動反映させたいのです。 単純にSheet2からSheet1にデータ反映する方法は 分るのですが、 この場合はSheet2に数百名のお客様データが入っている為、 「Sheet2の36行目のお客様分の確認書を作成したい」時の方法が分りません。 例えば、Sheet1確認書フォームの各セルに Sheet2の列を指定しておいて、 Sheet2のどの行から情報をひっぱってくるのかを Sheet1にてその都度設定する事は可能でしょうか? 何卒よろしくお願い致します。

  • Excelのブック内のシート名を順番に表示させる

    類似の質問を探していろいろ試してみたのですがどうしてもうまくいかなくて・・・教えてください。 ブック内にシートが複数枚あるとします。 最初の1枚目のシートは一覧表となっておりそのシートのセルA1から順にA2、A3…と下に表が続いています。 セルA1には2枚目のシート名が自動的に入力される セルA2には3枚目のシート名が自動的に入力される というようにブック内にあるシート名を順番に セルに表示入力できる方法はありますか? ちなみにVBAはほとんど触ったことはありません。 よろしくお願いします。

  • エクセル、各シート毎に参照行を自動でずらしたい

    元となるシートには1の行にA1のセル=4/1とあり、 その日の出勤者が B1セルにAさん C1セルにBさん…と入力されています。  そこで、4/1から4/30までのシートを新規に作成し、    4/1のシートには原本シートの1行目    4/2のシートには原本シートの2行目 と表示さえできれば、各シートまとめて参照セルを指定してしまえばできるかなと思っておりますが…どうぞよろしくお願いします。

  • エクセルで指定行を別シートに表示させる

    エクセルで書類(A4)を自動作成させたいと考えています。 今までは原紙となるシートを用意しておき、コピーして利用していましたが、シートを分けてしまうと検索が面倒なのでやり方を変更しようと考えています。 希望する形態は、 ・データを入力するためのシートを用意し、1行にすべての表示内容を入力する。 ・出力用の原紙となるシートに、内容を出力する場所を指定しておく。 ・表示させる行を指定すると、内容が反映され、印刷などができる。 といったものです。 しかし、どの行のデータを出力するかを指定する方法がわかりません。 ご教授いただきますよう、お願いいたします。

  • エクセルVBAでのスケジュール作成

    いつも大変お世話になっております。 本日も質問させてください。 会社指定の異なる2つのブックのエクセル表に自分の部署の社員全員のスケジュールを入れなければいけません。 (1つは月間、もう1つは週間で、それぞれ各月、各週毎にシートがあります。) VBAのフォームを作成し、週間スケジュールは自動でセットできるようになりました。 ですが、月間のスケジュールがうまくいかなくて困っています。 (入力フォームは共通のものを使用します。) スケジュールの表はシートが月別になっていてA列に社員名、1行目に日付、2行目に曜日、3行目に祝日が表示されるようになっています。 4行目からが各社員のスケジュールですが、1人の1日分のスケジュール入力のセルは2列×3行=6セルです。 (わかりにくいので図で表現したかったのですが、ずれて表示されてしまって余計にわかりにくいのでやめてみました。ちなみに、1人目の1日目のスケジュールのセル範囲はB4:C6となります。) そして、各セルには入力する項目が決まっています。 (この項目についてはフォームで作成済みです。) セルが多いため、Rangeを使おうと思っても指定するのが困難です。 個人的にはRangeのセルの値を別シートに作成した表からindexで検索できたらなぁ。と思っています。 できるかどうかすらわかっていませんが。(汗) もちろん、もっと効率的な方法があればそちらを教えていただきたいです。 週間スケジュールのセルから入力値をもってくる事も考えたのですが、月間は1日から必ず始まっていますが、週間は月曜日からのため、月や週によって日付が異なることなどから、やはり私には難しいのです。 よろしくお願いします。

  • Excelでセル内の文字列を全て表示したい。

    Excel2000を使って、ブックA(入力用シート)の特定のセルに入力されている文字列をブックB(出力用テンプレート)の特定のセルに表示したいのですが、セルの大きさが異なるため、全体を表示できません。セルの書式設定で「折り返して全体を表示する」にすると、結局全部の文字列は表示されませんし、「縮小して全体を表示する」にすると1行になって縮小されてしまい、小さすぎて読めません。両方同時に指定できれば良いのですが不可能なようなので、VBAや関数、その他機能を使って実現できないものかと考えております。 何か良いお知恵をお貸し頂ければ有難いのですが。

  • ある行(の各セル)に入力されたデータが、自動的に別の行(の各セル)に表示されるようにしたい。

    Excelに関しては全くの素人のあほな質問で、大変恐縮しています。 あるブックの中のシートのある行に、各セルに「1119」「1187」「1113」「664」......などと左から右へ入力していきます。 この各セルに入力したデータが、別のブックにあるシートの特定の行の各セルに、左から右へ「1119」「1187」「1113」「664」......と、自動的に数値が入力されるようにしたいのです。 これを可能にする方法は、何かありますか? ちなみに、100個くらいの行のデータが別の行にも自動的に入力されるようにしたいと考えています。

  • EXCEL VBA 共有ファイルと入力フォーム

    データ入力を複数人で行うため、素のデータBook Aと入力フォームを持つBook Bがあります。 Book Bを開くと自動的にBook Aを開き、入力フォームでデータをBook Aにデータを入れていくVBAを作成しています。 EXCELのフォームはそのBook上での起動でPopUP的に表示されます。(Book Bのシート表示上でフォームが表示される) ユーザーからの要望で、Dataの入力状況を確認しながら、入力したい。つまり、Book Aのデータシートを背面に表示して、その上に入力フォームを表示したい。(入力フォームは常に手前に表示したい) 同じBooK内ならデータシートをセレクトしてフォームを開けばいいのですが、このような場合には、どうしたらいいでしょうか? お知恵をお貸しください。

  • 【Excel】シートのコピー

    Excel2003を使用しています。 Sheet1をSheet1のA1セルに入力されている数字の枚数分、自動でコピーできないでしょうか? 例えば、Sheet1のA1セルに『10』と入力されていたら、Sheet1を10枚作成(コピー)したいのですが、どのようにすればいいでしょうか? また、このシートのコピーを複数のブックで一度にできないでしょうか? よろしくお願いします。

  • Excelのワークシートを自動生成2

    こんにちは、 昨日、ワークシートの自動生成方法を教えて頂いたものです。 皆様からの回答で逆にやりたいことがはっきりしたので再度質問させてください。 ExcelでSheet1のA列の1行目、2行目・・・入力最終行までの各行の文字を ワークシート名にした新しいブックを、自動生成したいです。 昨日は作成するワークシート数を指定しましたが 作成ワークシート数が変わることも想定したく思います。 ご教授のほど、何卒よろしくお願いします。ト