- 締切済み
シートの非表示について
マクロを始めたばかりで解読はできるのですが、まだまだ自分で文書を作ることが出来ません。どなたか教えて下さい。 (1)まず、A,B,C,Dのシートを作ります Aシート = 入力シート Bシート = 入力シートで入力したデーターを表にして表示されるシート Cシート = 入力シートのセルA1~A15までのデーターがCシートのA1~A15に表示されるシート Dシート = 入力シートのセA16~A30までのデーターがDシートのA1~A15に表示されるシート (2)マクロボタン『非表示』を押す (3)シートが下記のように非表示される Aシート = 表示 Bシート = 表示 Cシート = シートのセルA1に入力があれば表示、無ければ非表示 Dシート = シートのセルA1に入力があれば表示、無ければ非表示 (If Sheets("Cシート").Range("A1").Value <> "" Then)みたいな というマクロを作りたいのですが。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
VBAコードを勉強するのもよいがその前に シート設計、シート間のデータ移動など勉強すること、明確に文章化して説明できる能力を磨く必要があるように思う。 ーー それに次のステップの作業に進むキッカケが考えられていない。 (イベントという考え)およびイベントの勉強。 ーー 表示・非表示の理由(Dシート = シートのセルA1に入力があれば表示、無ければ非表示。)=>入力後まとめてやれば出来ることでは。 >マクロボタン『非表示』を押す 別作業をマクロボタンに登録しただけでは。 一連の動きが、説明が十分でなくわかりにくい。 ーー 別案で Aシートを入力専用にし、A商品の1-15行を入力する。完了ボタンクリックでCシートのA1-A15にデータ移送。 次にB商品のデータをAシートの1-15行に入れる。 完了ボタンクリックでDシートのA1-A15データ移送。・・・ などという手もある。この質問はそういうことか。 エクセルのメニューのデーターフォームの仕組みもあるが参考に。 Bシートは累積データか。 Bシートから、C,D・・シートを作る手もある。 ーー データが入らないシートもあるようだが、するとデータ入力と同時に納めるシート(名)も指定するのでは? そういうことは質問に書いてない。 ーーー 非表示はVisible=Falseか。なぜそうする理由があるのか。 Sheet3を非表示の例 If Sheets("Cシート").Range("A1").Value <> "" Thenのあとは Sub test01() 'ココに上記If文 Worksheets("Sheet3").Visible = False End Sub データが発生したら,通常に戻すのでしょうが、面倒なだけでは。 ーー 別シートにすると言うことは、後々非常に加工・計算などが難しくなる。覚悟は出来ているか。 ーー あるシート(多数ある中で)名を指定して、そこで処理をするコードは勉強したか。 ーーー 手作業でやる例を参考にして、1歩1歩、どういうことをする必要があり、そのVBAコードが必要か書き出してみたか。 ーー 全体的に課題丸投げで、作ってくださいというタイプになっていて、 このコーナーの規約上許されない。 もう少しVBAコード上で、質問のマトを絞れるまで勉強して質問すべきでは。
- n-jun
- ベストアンサー率33% (959/2873)
マクロの自動記録を行なってから、いじってみては如何でしょう。 そこで躓いたらコードを提示してみる。
お礼
すいません。 いろいろなご説明ありがとうございます。 がんばって作ってみます。