teratail header banner
teratail header banner
質問するログイン新規登録
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

2203閲覧

VBAにて大項目小項目でそれぞれ非表示、表示機能

nissanngtr34

総合スコア24

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2015/10/22 09:47

編集2015/10/22 10:15

0

0

大項目、小項目それぞれで非表示、表示機能を持たせたいのですが難しくなかなか出来ません。
サンプルで作ってみたのですが分かりくかったら申し訳ございません。
このようなプログラミングって可能なのでしょうか?
サンプルでいう最大行の17行は固定とします。

県と学校でそれぞれ行の増減ボタンを用意します。

県のボタン
一番上の県の塊だけはデフォルトで一つだけ表示させます。(B6:C9)
そして、必要であれば非表示の県の塊を上から順番に表示していくというものを作りたく。

「県-」を一度押すと一番下の県、14行目から17行目が非表示に、
「県+」を一度押すと表示している県から一個下の県を表示

学校のボタン
「学校+」を一度押すと、表示している県、すべて一校ずつ増やす
「学校ー」を一度押すと、表示している県、すべて一校ずつ減らす

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こんばんは、全部の処理はできませんが中心的な関数をアップしますので
これをヒントに解決できることを期待します。

'Row行 Col列のセルを表示または非表示にする。
Sub ShowHide(ByVal Row As Integer, ByVal Col As Integer, ByVal flgVisible As Boolean)
Dim Rng As Range

Set Rng = Cells(Row, Col) If flgVisible Then Rng.Font.ThemeColor = xlThemeColorLight1 'show Else Rng.Font.ThemeColor = xlThemeColorDark1 'hide End If

End Sub

'Row行 Col列のセルの表示または非表示を取得する
Function getVisible(ByVal Row As Integer, ByVal Col As Integer) As Boolean
Dim Rng As Range

Set Rng = Cells(Row, Col) getVisible = Rng.Font.ThemeColor = xlThemeColorLight1

End Function

非表示:フォントを白に
表示:フォントを黒に
という方法をとりました。ほかにもやり方はあります。がんばってください。

投稿2015/10/23 12:49

MaedaTakahiro

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

非表示にするのには、Excelの機能にある非表示でいいんですよね

やりたいと思っていることをマクロの記録でやってみれば簡単にできそうな気がしますが..

投稿2015/10/22 10:34

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問