• ベストアンサー

VBAでセルが現在表示されているのか非表示かの情報を取得する

自己流VBA使用初心者です。 エクセルのオートシェイプでリストを絞って表示してある時、VBAで、あるセルが現在表示されているのか非表示なのかの情報を取得する構文はありますでしょうか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 表示されている行と非表示の行の判定をしたいのです。 仮に、「あるセル」がB7だとしたら、 Sub test01() x = IIf(ActiveSheet.Range("B7").EntireRow.Hidden, "非表示", "表示") MsgBox x End Sub

goohiroko
質問者

お礼

できました! ありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

> オートシェイプでリストを絞って表示してある時 まったく意味不明です。 > あるセルが現在表示されているのか非表示なのかの情報 あるセルが非表示とはどのようなことを言ってるのでしょうか? そのセルがある行が非表示? そのセルがある列が非表示? それともそのセルが画面上に見えている範囲にはないということ?

goohiroko
質問者

補足

失礼しました。オートシェイプではなくオートフィルタの間違いです。 フィルタによって複数の条件で絞ったリストの表示されている行と非表示の行の判定をしたいのです。 よろしくお願いいたします。

関連するQ&A

  • Excel VBA で色付きのセルの値を取得する

    ExcelのVBAマクロで、For ~ Then構文で複数のセルを参照していき、 色付きのセル(塗りなしのセル)に入力されている値のみを取得する方法を教えてください。 Excel2007を使用しています。

  • VBAでセルから書式情報を取得する方法

    こんにちは。 VBA初心者ですので、おかしな質問でしたら申し訳ありません。 入力済みのリストを参照して、削除線の引いてあるセルは飛ばして データを読んでいこうと思ったのですが、任意のセルが削除線が引いてある/引いていないの情報取得方法が分かりません。 色々調べてみて、色関係なら見つけたのですが、削除線のは探せませんでした。逆に削除線を設定する方法ならあったのですが・・・ どなたか、お力を貸していただけませんでしょうか? 御願い致します。

  • セル範囲と図形を指定してVBAで削除するには?

    エクセルで一枚のシートに複数のオートシェイプ(○、△、□)を使用したものがあります。 オートシェイプを使用しているセルの範囲は(A1:G20)と(AP1:AX20)の二箇所なのですが、 VBAで(A1:G20)の範囲にあるオートシェイプ(○のみ)を削除する事はできますか? (A1:G20)の範囲にあるオートシェイプは全体がこのセル範囲に入っています。 手動で、オブジェクトの選択で範囲指定をした後削除という方法もあるのですが この削除の作業の前後に他のVBAを使用しているので、 VBAで削除が出来ればと思います。 いろいろ検索したのですが、セル範囲もしくは図形のいずれかを指定して 削除する方法はあったのですが、両方を指定してのVBAがわかりませんでした。 よろしくお願いいたします。

  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • Excel VBA コメントに関して

    Excel2003を使用しています。 VBAになるのかは定かではないのですが Excelの機能に「コメント」を付ける機能がありますよね セルに対してカーソルを合わすことで表示される黄色い枠のコメントのことをしるす。 これをオートシェイプやコマンドボタン等のオブジェクトに対してカーソルを合わせることに よってこのコマンドがなんなのかのコメントを付けたい場合Excelでできるのでしょうか? もし、できるとしたならばどのようにしたらいいのでしょうか? VBAを使いできるのか、もっと楽な方法があるのか 教えて頂きたいのです。 ご教授願えないでしょうか、宜しくお願いします(人>д<*ペコ謝) ※補足※ コマンドボタンやオートシェイプでテキストを入れてしまうとボタン自体が入れる文字数によって大きくなってしまうのでできるだけ小さいボタンを作り補足事項やヘルプとして使用したい。 コマンドボタンにはVBAプログラムを組むとして、オートシェイプならば、図形にマクロを登録するとして、カーソルを合わした時のみコメントを表示させたいということです。

  • セルの高さの取得について

    エクセルで、セルの高さを取得についてですが、イミディエイト画面で、debug.print Worksheets("Sheet1").Range("A1:A3").Height とすると38.25と表示されます。"A1:A1900"とすると、24224.25となり"A1:A2000"で、24575.25となります。それ以後は、どんなにセル範囲広げても全て、24575.25の値しかかえって来ません。例えば、オートシェープで、A1:A30000の範囲を四角で囲もうとする場合、どのようにすればいいのでしょうか?24575.25の値だと途中までしか囲めません。(当然、ここのセルの高さがことなると数字も異なってきます) 宜しくお願い致します。

  • Excelでセルからの表示形式を取得

    Excelでセルからの表示形式を取得 関数またはVBAで、セルから表示形式を取得するにはどのようにすればいいでしょうか? (標準・文字列など)

  • ExcelでVBAを利用してオートシェイプ情報取得

    Excelのオートシェイプをテキストデータに変化するVBAを作成したいです ただし対象となるオートシェイプは複数のオートシェイプがグループ化された グループオブジェクトになっています それら特定のパターンを持つオートシェイプオブジェクトの一群があり 1つ1つには想定される名称が存在します 具体的な操作としては複数のオートシェイプオブジェクトを横に並べたイメージダイアグラムを 作成し、それらにそって対応するテキストを配置していきたいというものです このようなオートシェイプの情報をうまく拾う方法、テキストデータと紐づける方法はありませんでしょうか よろしくお願いいたします

  • エクセル セル(列)の幅

    エクセルでスケジュールを作成中ですが、ガントチャートっぽくしたく オートシェイプでバーを作成したいのですが、一つのセルの幅の寸法と オートシェイプの幅の寸法が合わない為、VBAで計算させようとすると うまくいきません。  オートシェイプのサイズの単位は"mm"でが、CELLの幅の単位はいったいなんでしょうか?  又、セルの幅の表示をmm単位にする方法はありますか?

  • Excel VBA 非表示の最後のセルを取得

    ExcelのVBAで最後のセル・行・列を取得しようとしているのですが、 実際の最後(値や数式が入っている)のセルが非表示の列や行だった場合、 期待する最後を取得できないでいます。 取得しようとして試した方法は、以下の2つですが、 いずれも非表示している直前の行列までしか返さないようです。 ・Cells.SpecialCells(xlCellTypeLastCell) ・UsedRange 他に最後のセルを取得する方法があれば教えてください。 現在の目的は、ブック全体からすべての数式を取得することで、 全シートの最初のセルから最後のセルまでを見て、 =で始まるセルを数式があるとして処理しています。 最後のセルが非表示の行・列だった場合、 その行・列までを見る事ができなかったので気づきました。 今回の目的以外でも、全シートの最後のセルまで、と言う処理は行ないたいので、 これはこれで回答がいただきたいのと、 他に、ブック全体からすべての数式を取得する方法があれば、 それはそれで回答していただけると助かります。 ただ、非表示列を一旦表示してから取得し、その後非表示に戻す、と言う方法は、 そのブックを閉じる時に変更があったとみなされ、 保存の確認メッセージが表示されるので、したくありません。 確認メッセージを表示させない、と言う方法も、 万一、その有効/無効が完結されない場合があって、 閉じる際に保存したかったのにメッセージが表示されないために保存できなかった、 と言う事になりたくないので、したくありません。 無理なら無理と言う回答でも構いませんが、 何かヒントをいただけるとありがたいです。

専門家に質問してみよう