[[20140927155747]] 『結合セルがあるときの一括非表示』(とし) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『結合セルがあるときの一括非表示』(とし)

初めての質問です。よろしくお願いします。

    A  B  C  D  E  F  G  H  I ・・・・
1      ア       イ  ・・・・・・・・

1行目がA~C, D~F, G~I のように3列ずつ結合セルになっていてそこにデータが入力されているのですが、入力されていない列(3列分)を一括で非表示にしたいのです。
あるサンプルをみて、入力されていない列の一括非表示マクロをためしましたが、結合セルは最初のセルにデータが入っていると認識するために、必要なB,C,E,Fのセルも非表示になってしまいました。上記の例でG,H,Iだけを非表示にするにはどうしたらいいでしょうか。
よろしくご教示お願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 こんばんは。

    Dim c As Long    
    For c = 0 To 3
        If Cells(2, c * 3 + 1).Value = "" Then
            Range((Columns(c * 3 + 1)), Columns(c * 3 + 3)).Hidden = True
        End If
    Next c

 とかどうでしょう。
(mas_k) 2014/09/27(土) 19:09

mas_kさん、ありがとうございます。
試してみましたが、next c で繰り返す間に、データのあるA~C、D~Fのも非表示になってしまうようです。

ちなみに以前に参考にしたサンプルマクロは次のようなものでした。
Sub 非表示()
Dim r As Range
For Each r In Range("A1:Z1")
If r.Value = "" Then r.EntireColumn.Hidden = True
Next r
End Sub
これだと、結合セルの後ろ2列もデータがないために非表示になってしまいます。

(とし) 2014/09/27(土) 21:12


これでどうでしょうか。

 If r.Value="" then
  ↓
 If r.MergeArea(1).Value="" then

(マナ) 2014/09/27(土) 21:51


マナさん
うまくいきました。ありがとうございました。
mas_kさん、マナさん、ありがとうございました。今後ともよろしくお願いします。
(とし) 2014/09/27(土) 22:15

 とし さん、すみませんでした。

 一応自分でデータ入れて確認してアップしたつもりだったのですが。
(mas_k) 2014/09/28(日) 10:26

mas_k さん、とんでもないです。
すぐに対応いただいて感謝しています。今後ともよろしくお願いします。
(とし) 2014/09/28(日) 13:04

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.