
No.3ベストアンサー
- 回答日時:
前準備に作業が必要です。
まず、表の作成ですが、データ数が10、最終行が44となることから、
54行までの表を作成します。表の外枠が太線のように異なる罫線であるならば、
54行目の下線は55行目から上線で罫線を書くと都合が良いです。
こうすると仮にデータが何もなくて10行全て非表示となった場合、
54行目が非表示となっても55行目は非表示にはならないので外枠は消えなくなります。
それで、あとは以下のコードをシートモジュールへ。
Private Sub worksheet_activate()
Dim 範囲 As Range
Dim i As Integer
Dim データ数 As Integer
Application.ScreenUpdating = False
Set 範囲 = Range("E6:E15")
データ数 = 範囲.Rows.Count
i = 0
For Each c In 範囲
If c.Value = Empty Then
c.EntireRow.Hidden = True
Else
c.EntireRow.Hidden = False
i = i + 1
End If
Next
データ数 = データ数 - i
For i = 1 To データ数
Range("e44").Offset(i, 0).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub
54行までの表からトータルで10行非表示にすることで、44行表示されます。
お望みのことはこういうことでいいんですよね?
No.2
- 回答日時:
最終行というのは書式のみの行のことでしょうか?
ページ数やデータの量、構成といったものが全く見えません。
そのような状態で、行の挿入、削除をするとまた不都合がでると思います。
ですから、参考までに以下の2つの方法ではどうでしょうか?
1.印刷用シートを作成する。
2.余分に空白行を作成しておき、不要な分を非表示にする。
1の方法は前回のマクロの中でデータが空でなければ、印刷用シートに
データをコピーとすることでできると思います。
この方法であれば決った書式で印刷できるようになります。
2の方法は例えば1ページが30行とすると、30行の空白行を予め作成しておき、
10行のデータがあれば空白行から10行非表示にして合計30行にする方法です。
前回のマクロでデータの有無をチェックする際に数を数えていけば可能と思います。
この方法であれば、ページが増えても最終行は30の倍数にできるというように
ページ数に関係なく対応できると思います。
どの方法が適当かは構成等によると思いますので、
方法の案を書かせていただきました。
この回答への補足
2の方法を詳しく教えてください
マクロの範囲E6:E15(この範囲以外にデータは入りません)
A B C D E F
1
2 総括表
3種別 細別 ・・・・ ・・・ ・・・ ・・・
4 ・・・ ・・・
5・・・
6・・・ ・・・ ・・・
・
・
44
・・・は文字及び数字です
行が非表示になっても44で固定したいです
よろしくお願いします
No.1
- 回答日時:
こんばんは。
関数では無理なので、マクロを使用することになります。
シートの構成が見えないので、飽くまでも例ですが。
シートがアクティブになったときに、シートのA1~A20の範囲を調べて、
セルが空であればその行を非表示に、そうでなければ表示するマクロです。
シートモジュールに貼り付けてください。
Private Sub worksheet_activate()
Dim 範囲 As Range
Application.ScreenUpdating = False
Set 範囲 = Range("A1:A20")
For Each c In 範囲
If c.Value = Empty Then
c.EntireRow.Hidden = True
Else
c.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
この回答への補足
ありがとうございます。思っていたように出来ました。
お礼が遅くなり済みませんでした。
使用して一部不都合がありましたので、もう少し、教えていただけますか。
回答のマクロで行が、非表示になると表の行が少なくなるので、1行非表示になると、1行最終行に行を追加できないのでしょうか。
よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- その他(Microsoft Office) エクセルの数式で教えてください。 2 2023/01/12 13:51
- Excel(エクセル) 【エクセル】COUNTIFの検索条件が可変する数字の場合の数式 1 2022/09/27 15:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
ファンモータが作動しない。
-
エクセル(EXCEL)のワークシー...
-
ユーザーフォームで別シートを...
-
Excelで日付変更ごとに、自動的...
-
エクセル マクロ "特定の日付...
-
エクセルのデータ振り分け方法...
-
複数シートからデータを拾って...
-
エクセルファイルのシート毎の容量
-
Microsoft Excelの限界を乗り切...
-
別の名簿の情報を埋め込む
-
vbaで特定の番号から番号の表デ...
-
エクセルマクロでデータ出力の...
-
エクセルマクロ複数シート一発...
-
エクセルで期間集計したい!
-
複数のエクセルシートの特定セ...
-
エクセルで原本のシートを移動...
-
特定の日付に値するデータの抽...
-
MS Excelで、BOOK1でシート別...
-
他のシートの一番下の行データ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
EXCELで2つのファイルから重複...
-
エクセル 縦に長い表の印刷時...
-
Googleスプレッドシートフィル...
-
VBAで CTRL+HOMEの位置へ移動...
-
トランジスタの選び方
-
時間帯の重複を除いた集計について
-
Excel 売上管理シートに入力し...
-
他のシートの一番下の行データ...
-
エクセルで名簿を50音で切り分ける
-
エクセルVBAで、特定文字から始...
-
Excelファイルの容量が異常に大...
-
【マクロ】同じフォルダ内にあ...
-
エクセル マクロ "特定の日付...
-
EXCEL の表を一行ずつシートに...
おすすめ情報