• ベストアンサー

VBでの非表示仕方

はじめまして。最近VBを始めた為基本的な事かもしれませんが、質問させてください。 知恵をお借りしたいのは、表の中にISNUMBER関数でエラー値をtrueとfalseに表示さ せている列を選択してfalse表示のものを非表示にする為にはどのようにVBを入力すれ ばよいか?というものです。 列の表示・非表示についてはマクロの登録をしてみたのでどのように入力をすれば いいのかは大体見当がついたのですが、関数にて表示させているものを認識させて その列を選択する方法がわかりません。 表自体はActiveSheet.UsedRange.Rows.Countとしてその対象範囲を定めました。 変数の設定等がいるのかな?と想像しているのですが、変数自体の理解度もあまりしっ かりとわかっていない為参考資料をみて四苦八苦しています。 こんな私にわかるように教えていただくのはかなり難しいかと思いますが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VBというのはExcel VBAのことですか? また、どのような表なのかが分からなかったので推測で答えます。 まず、セルA1からセルJ1まで10個のデータ(数値や文字など)が入っていて、その下の2行目にTRUE、FALSEの判定が入っていると仮定します。 2行目の判定がFALSEだったときその列(A列からJ列)を非表示にするマクロを作ってみました。 Sub 列非表示() Dim m As Integer For m = 1 To 10 If Cells(2, m) = False Then Cells(1, m).Select Selection.EntireColumn.Hidden = True Else End If Next End Sub 表の場所は分かりませんが、改良して試してみて下さい。 列の選択を Columns("A:A").Select としないところがポイントです。 全然違う質問だったらごめんなさい。

noname#2573
質問者

補足

早速の回答ありがとうございました。 やっぱり・・・すみません。質問事態が言葉足らずでわかりにくくて。 でも、tamagawa49さんがご想像していただいたものでほぼ合っています。 VBA(Excel)の説明すらしていなくて申し訳ありません・・・ 最初の推測していただいたところで若干違っていたのが、セルA1からセルJ1 迄10個のデータが入って・・と過程していただきましたが、実際はセルB1 からJ10間にデータが入っていて、Aの列に関数を使ってFALSE等が入って います。 ですので、A列にFALSE表示のある行全てを非表示にしたいというのが行い たいマクロになります。 こんな補足でわかっていただけたでしょうか? もう一度この質問にお答えいただけたら幸いです。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

下記でどうですか。 Module1に下記を貼り付け、Forの10をActiveSheet.UsedRange.Rows.Countに変えて Sub test01() For i = 1 To 10 If Worksheets("sheet1").Cells(i, 1).HasFormula Then a = Worksheets("sheet1").Cells(i, 1).Formula p = InStr(a, "ISNUMBER") If p <> 0 Then ' MsgBox i If Cells(i, 1) = False Then Cells(i, 1).EntireRow.Hidden = True End If End If End If Next i End Sub Falseだけを聞くと他の関数のFalseも拾うので、上記の ようにしました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

(1)VBというのはVBAらしいこと。 (2)エクセルと一言も出ないが、エクセルのことらしいこと。これらははっきり書いたほうが解答者が迷わない。 (3)「表の中にISNUMBER関数でエラー値をtrueとfalseに表示させている列」とあるが、ISNUMBERはセルごとに 設定出来るので(質問者は列の利用全行に式のコピーをしてあるのを前提らしいが、一般にはそうでない。)1セルでも、ISNUMBER関数を使っていたら、その列を非表示にするのか。 もともとISNUMBER関数はエラー表示がセル上で目障りなので 、また未入力だけで、エラーではないので表示されないために 使う例が多いと思うのに、なぜ列全体を非表示にするのですか。

関連するQ&A

専門家に質問してみよう