• ベストアンサー

Excel帳票の余剰行を削除したい

WinXp、Excel2002環境でVBAを使用して以下の事を行っています。 既作成済みのcsvファイルをExcelのワークシートへ貼り付けて帳票を作成しているのですが、貼り付けるデータの長さが不定の為、罫線を引いた帳票の余白部分を削除したいと思っています。 最終行への移動は Range("c65536").end(xlUp).Select で行えている(筈)ですが、その次の行から罫線を引いた最終行(このカラムはコンスタントで渡せます)迄の範囲指定を今一つ上手く行えず困っています。 あまり凝らずに行範囲選択と削除を行う方法をお教え下さい。

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

  • ベストアンサー
  • takibo
  • ベストアンサー率57% (116/200)
回答No.5

ANS1の者です。 必ずデータが入っている列はありますか? 質問文から引用して 最終行 = Range("C65536").End(xlUp).Row としましたが もしそういった列があればその列を指定してください。 【例】E列 → Range("E65536").~ といった具合です。 もし必ずデータが入っている列がないのであれば別の方法はありますが、少々コードが長くなります。 必要であればまた質問してください。

Adenau
質問者

お礼

対象列は決め撃ち可能ですので、先頭アルファベットをパラメータで渡す事で対応する事にしました。 お陰様で、複数帳票に対応する事が出来ます。 有難うございました。

その他の回答 (4)

  • big_fool
  • ベストアンサー率22% (43/193)
回答No.4

No3です Borderオブジェクトも確認してください

Adenau
質問者

補足

回答有難うございます。 対象の帳票に計算式を埋め込んでおり、自動印刷を行うと後続の行が印刷対象になってしまう為、行削除がベターかと考えた次第です。 Borderは考慮外でした。勉強せねば…。

  • big_fool
  • ベストアンサー率22% (43/193)
回答No.3

行を削除するよりは「罫線」を引き直したほうが早いと思います。 列が固定されているのであれば Range("A1").CurrentRegion.Rows.Count等で行数を検索し、Borders コレクションを使用して罫線を引く形ではいかがでしょう。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

最終行が取得できるなら、その行の次行から65536行までを削除すれば良いのでは?

Adenau
質問者

補足

回答有難うございます。 VBA内でのカラム移動を上手く行えなかったもので…(汗)

  • takibo
  • ベストアンサー率57% (116/200)
回答No.1

Sub 不要行削除()  最終行 = Range("C65536").End(xlUp).Row  If 最終行 < 1000 Then   Rows(最終行 + 1 & ":1000").Delete  End If End Sub 罫線を引いた最終行を1000と仮定しています。 コードの意味は以下の通りです。 (1)最終行の行番号を取得 (2)最終行が1000行より少なければ、最終行のの次の行から1000行目までを削除

Adenau
質問者

補足

有難うございます。思った様な処理が出来ました。 但し、この方法だと1列目にデータが入っていないと、次行以降は削除対象行になってしまう様です。 最終行を特定する列を指定するにはどうしたら良いでしょうか。

関連するQ&A

専門家に質問してみよう