[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件をつけて列の表示/非表示を自動で』 (I'm at a loss。。。ちえ)
初心者です。はじめて質問させていただきます。よろしくお願い致します。
A , B , C , D , E 1:『 』 2:品 名,仕入,特価,定価,備考 3:ばなな,120円,150円,200円,期限○日 4:みかん,100円,200円,300円,期限×日 5:ぶどう,200円,350円,500円,期限△日
A1のセル『 』に 『1』を入力した時にはE列を非表示にする。 『2』を入力した時にはB列を非表示にする。 『3』を入力した時にはB列とC列を非表示にして、表示されてるD列の幅を広くする。
とゆーようなことはできますか? Excelバーションは2002です。 初心者なので、簡単な方法でできたらうれしいです。 よろしくお願い致します。
列全体を非表示なら VBAで 列の値のみ非表示なら 条件付書式で
VBA ・・・ってどのようにしたら良いのでしょうか? ほんと初心者で何も分からなくてごめんなさい。
とゆーようなこと とは こうゆーようなことでせうか? そのSheetのシートタブを右クリックしコードの表示を選択します。 真っ白な画面に下のコードをコピペしませう。 戻ってA1のセルに『1』等と入力してみてくらはい。 (弥太郎) '-------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim data As Variant If Target.Count > 1 Then Exit Sub If Target.Address(0, 0) <> "A1" Then Exit Sub Application.ScreenUpdating = False With CreateObject("vbscript.regexp") data = StrConv(Target, vbNarrow) .Pattern = "(\D+)*(\d)(\D+)*" If .test(data) Then Columns("a:iv").EntireColumn.Hidden = False Columns("d:d").ColumnWidth = 8.38 Select Case .Replace(data, "$2") Case 1 Columns("e:e").EntireColumn.Hidden = True Case 2 Columns("b:b").EntireColumn.Hidden = True Case 3 Columns("b:c").EntireColumn.Hidden = True Columns("d:d").ColumnWidth = 17.5 End Select End If End With Application.ScreenUpdating = True End Sub
早速コピペさせていただきました。 ありがとうございました!
m(__)m 。。。ちえ
初心者の私には難しくて、自力ではできそうにありません(;_;) どなたか教えていただけませんか?よろしくお願いします。
A1のセル『 』に 『0』を入力した時には 全ての列を表示する(幅は指定なし)。
『1』を入力した時には A,B,C,I,J,K,L,M,O,P,S,U,W の列を 50,20,30,60,380,65,65,65,65,65,65,65,65 の幅(ピクセル数)で表示する。
『2』を入力した時には A,B,C,I,J,L,M,O,P,S,W,Y の列を 50,20,30,60,380,65,65,65,65,65,65,155 の幅で表示する。
『3』を入力した時には A,B,C,I,J,L,M,O,P,S,Z の列を 50,20,30,60,380,65,65,65,65,65,220 の幅で表示する。
『4』を入力した時には A,B,C,I,J,L,M,Z の列を 50,20,30,60,380,100,100,210 の幅で表示する。
「初心者には無理だろ!」という難易度であれば諦めます(~_~;) よろしくお願いします。
(I'm at a loss。。。ちえ)2008.7.3 16:00
[御参考] [[20050308152110]]『条件付書式の条件は3つが限度?』(よよ) (dack)
(弥太郎)さんに教えていただいたコードをベースに、自分なりにやってみましたが・・・。 変だな〜と思う所があったら教えて下さい。 よろしくお願いします。
'-------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim data As Variant If Target.Count > 1 Then Exit Sub If Target.Address(0, 0) <> "A2" Then Exit Sub Application.ScreenUpdating = False With CreateObject("vbscript.regexp") data = StrConv(Target, vbNarrow) .Pattern = "(\D+)*(\d)(\D+)*" If .test(data) Then Columns("a:z").EntireColumn.Hidden = False Select Case .Replace(data, "$2") Case 0 Columns("a:a").ColumnWidth = 5.00 Columns("b:b").ColumnWidth = 1.88 Columns("c:c").ColumnWidth = 3.13 Columns("d:d").ColumnWidth = 3.75 Columns("e:e").ColumnWidth = 14.50 Columns("f:g").ColumnWidth = 5.75 Columns("h:h").ColumnWidth = 9.00 Columns("i:i").ColumnWidth =6.88 Columns("j:j").ColumnWidth = 46.88 Columns("k:m").ColumnWidth = 7.50 Columns("n:n").ColumnWidth = 3.75 Columns("o:p").ColumnWidth = 7.50 Columns("q:q").ColumnWidth = 3.75 Columns("r:s").ColumnWidth = 7.50 Columns("t:t").ColumnWidth = 3.75 Columns("u:w").ColumnWidth = 7.50 Columns("x:x").ColumnWidth = 3.75 Columns("y:y").ColumnWidth = 18.75 Columns("z:z").ColumnWidth = 38.13 Case 1 Columns("a:a").ColumnWidth = 5.00 Columns("b:b").ColumnWidth = 1.88 Columns("c:c").ColumnWidth = 3.13 Columns("d:h").EntireColumn.Hidden = True Columns("i:i").ColumnWidth =6.88 Columns("j:j").ColumnWidth = 46.88 Columns("k:m").ColumnWidth = 7.50 Columns("n:n").EntireColumn.Hidden = True Columns("o:p").ColumnWidth = 7.50 Columns("q:r").EntireColumn.Hidden = True Columns("s:s").ColumnWidth = 7.50 Columns("t:t").EntireColumn.Hidden = True Columns("u:u").ColumnWidth = 7.50 Columns("v:v").EntireColumn.Hidden = True Columns("w:w").ColumnWidth = 7.50 Columns("x:z").EntireColumn.Hidden = True Case 2 Columns("a:a").ColumnWidth = 5.00 Columns("b:b").ColumnWidth = 1.88 Columns("c:c").ColumnWidth = 3.13 Columns("d:h").EntireColumn.Hidden = True Columns("i:i").ColumnWidth =6.88 Columns("j:j").ColumnWidth = 46.88 Columns("k:k").EntireColumn.Hidden = True Columns("l:m").ColumnWidth = 7.50 Columns("n:n").EntireColumn.Hidden = True Columns("o:p").ColumnWidth = 7.50 Columns("q:r").EntireColumn.Hidden = True Columns("s:s").ColumnWidth = 7.50 Columns("t:v").EntireColumn.Hidden = True Columns("w:w").ColumnWidth = 7.50 Columns("x:x").EntireColumn.Hidden = True Columns("y:y").ColumnWidth = 18.75 Columns("z:z").EntireColumn.Hidden = True Case 3 Columns("a:a").ColumnWidth = 5.00 Columns("b:b").ColumnWidth = 1.88 Columns("c:c").ColumnWidth = 3.13 Columns("d:h").EntireColumn.Hidden = True Columns("i:i").ColumnWidth =6.88 Columns("j:j").ColumnWidth = 46.88 Columns("k:k").EntireColumn.Hidden = True Columns("l:m").ColumnWidth = 7.50 Columns("n:n").EntireColumn.Hidden = True Columns("o:p").ColumnWidth = 7.50 Columns("q:r").EntireColumn.Hidden = True Columns("s:s").ColumnWidth = 7.50 Columns("t:y").EntireColumn.Hidden = True Columns("z:z").ColumnWidth = 38.13 Case 4 Columns("a:a").ColumnWidth = 5.00 Columns("b:b").ColumnWidth = 1.88 Columns("c:c").ColumnWidth = 3.13 Columns("d:h").EntireColumn.Hidden = True Columns("i:i").ColumnWidth =6.88 Columns("j:j").ColumnWidth = 46.88 Columns("k:k").EntireColumn.Hidden = True Columns("l:m").ColumnWidth = 11.88 Columns("n:y").EntireColumn.Hidden = True Columns("z:z").ColumnWidth = 38.13 End Select End If End With Application.ScreenUpdating = True End Sub
もっと簡単にできる方法があったら教えて下さい。 よろしくお願いします。 (I'm at a loss。。。ちえ)2008.7.4 10am
例えば Case 0 の場合なら、こんな書き方もありかと。 Dim col_code As Variant '上の方で宣言しておく Dim col_size As Variant '上の方で宣言しておく Dim i As Integer '上の方で宣言しておく
Case 0 col_code = Split("A,B,C,I,J,K,L,M,O,P,S,U,W", ",") col_size = Array(5, 1.88, 3.13, 3.75, 14.5, 5.75, 9, 6.88, 46.88, 7.5, 3.75, 7.5, 3.75, 7.5, 3.75, 7.5, 3.75, 18.75, 38.13)
For i = LBound(col_code) To UBound(col_code) Columns(col_code(i)).ColumnWidth = col_size(i) Next i (純丸)(o^-')b
ありがとうございます。
色々な方法があるんですね〜。 たくさんありすぎて初心者の私には何がなんだか・・・(^ー^;
もっと勉強して使いこなせるように頑張ります!
(*^_^*)ありがとうございました。
(I'm at a loss。。。ちえ)2008.7.8 9am
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.