これ何て呼びますか Part2

過去ログから表の空白行を削除するマクロを発見しました。
これをwordの標準モジュールに入れて実行したのですが
何も変わりません。
Wordでマクロを使ったことがないためアドバイスいただけたらと思います。
よろしくお願いします。

Word2013を使用しています。

https://groups.google.com/forum/#!topic/microsof …

Dim tableLoop as Table
Dim cellLoop As Cell
For each tableLoop in ActiveDocument.tables
 For Each cellLoop In tableLoop.Range.Cells
  While Right(cellLoop.Range.Text, 3) = Chr(13) & Chr(13) & Chr(7)
   cellLoop.Range.Characters.Last.Previous.Delete
  Wend
 Next cellLoop
Next tableLoop

End Sub

A 回答 (1件)

こちら↓の質問と関連するものですか?


https://oshiete.goo.ne.jp/qa/11161878.html

表形式のまま[個々のドキュメントの編集]で差し込んだものから、
空白になっているセルがある行全体を削除したいのですか?
そうであれば、質問にあるマクロは無意味ですよ。

過去ログがこちら↓なら、セル内での段落を処理するものです。
https://oshiete.goo.ne.jp/qa/9003923.html
なので、表の行を削除することはできません。

マクロで処理したいのなら、こちら↓のようなもので対応します。
(マクロを単純化するために、1列目のみ空白セルの場合を対象)

Sub TableBlankRowDelete()
' 1列目が空白セルだった場合、行を削除

 Dim tableLoop As Table
 Dim str As String
 Dim i As Integer

 For each tableLoop in ActiveDocument.tables
  For i = tableLoop.Rows.Count To 1 Step -1
   str = tableLoop.Cell(i, 1).Range.Text
   If str = Chr(13) & Chr(7) Then
    tableLoop.Rows(i).Delete
   End If
  Next
 Next tableLoop

End Sub

マクロではなく表風のほうで対応するなら、縦棒タブの位置を左に
移動するか、[文字の均等割り付け]で文字数指定での割り付けする
ことで対応するしかないと思います。
http://www4.synapse.ne.jp/yone/word2010/word2010 …

前の質問で回答を最後にするとしたのは、質問内容としては解決が
されているのであり、そこから発生した別質問に回答しないという
意味です。別質問して解決すべきことを、同じ質問内で追記される
のは回答者に負担をかけるだけです。別の回答者が回答してくれる
かもしれませんしね。
これは、質問者側のマナーとして理解してください。

今回の質問のように別質問をされれば、時間があるときに回答する
かもしれませんしね。
    • good
    • 0
この回答へのお礼

助かりました

色々教えてくださりありがとうございました!
とても勉強になり、次回質問する際にもきをつけようと思います!

お礼日時:2019/06/16 00:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報