- 締切済み
VBAで非表示のセルに数字が入ると自動で表示できますか?
お世話になります。 皆さんのお知恵をお借りしたく質問させていただきます。 タイトルのとおりなのですが、 例えば月ごとの売り上げ個数を表示させるために同シートの他のセルに範囲指定することで、関数で別シートの売り上げ個数が計算され表示されるようになっております。下の表だと1~3月までが入力してあり、次に4月までを範囲指定することで、4月の値が入った表を表示させたいのですが、エクセルで列D、Eが非表示されているとした場合、4月のデータがD列に入るとマクロを起動させることで自動表示(値が入った列のみ)してくれるVBAってありますか? よろしくお願いします。 A B C F G 1 1月 2月 3月 2 20 30 40 3 10 20 30 4 これを、 A B C D F G 1 1月 2月 3月 4月 2 20 30 40 50 3 10 20 30 40 4 このようにしたいです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
>下の表だと1~3月までが入力してあり、次に4月までを範囲指定することで、4月の値が入った表を表示させたいのですが どのタイミングでVBAを発動したいのでしょうか? 4月になるとVBAのボタンをおしてD列を表示させるVBAでしょうか。 非表示のD列を表示にする作業の手間とさほどの違いではないのでは? 「4月になると範囲を指定する作業が発生する」所から改善できると思いますし、 非表示にしておく集計表も間違いに気が付かない原因にもなります。 別シートの売上個数のデータを提示して、 月別の集計結果を表示する方法から質問しなおした方が良い結果が得られる気がします。
- imogasi
- ベストアンサー率27% (4737/17069)
>してくれるVBAってありますか 何処かにある・なしの問題ではなく、質問者が勉強して、プログラムを作るのだよ。探すのではない。(この程度の問題の場合には。 もっと難しい複雑な課題だと、セミプロ級の人が作って、アドインなどというカタチでWEBなどで提供し、使ってくださいというのもあるが。) これもマクロの記録等とればわかることだ思う。 また「エクセル VBA 列 非表示」でGoogleででも照会すれば、沢山解説が出てくるのだが、それさえやっているのかどうか。 http://www.geocities.jp/happy_ngi/YNxv204.html ーーーーー D,E列が非表示の場合 Sub test01() Range("d1") = 123 End Sub を実行してD列に値をセットしても、D列は表示されないまま。当たり前だが。 だから値をセットするだけでは、非表示ー>表示にならない。 人手でやれば、操作は書式ー列ー再表示だ。 そこで、この操作をして、マクロの記録をとる。 Sub Macro1() Selection.EntireColumn.Hidden = False End Sub となる。 だから Sub test01() Range("d1") = 123 Columns("d").EntireColumn.Hidden = False End Sub とすればよい。 ーーーー >4月のデータがD列に入るとマクロを起動させることで自動表示( だがD列に値がはいったという、Changeイベントで上記のようなことは 可能だが、D列のセルのすべての変動のとき実行されて、無駄である。 ーー だから(VBAが)>4月(D列)の値が入った(入れ終わった)後すぐに上記の Columns("d").EntireColumn.Hidden = False をコードに入れれば良い。 4月のデータを入れるVBAプログラムのコードは具体的に質問に書いてないから、どこの行の後とはいえないが。 ーー あるいは4月のデータをVBAでどう求めるか間でわからず質問するなら 元データの様子を質問に例示して、質問を改めるべきだ。