Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32 / 308 ツリー ←次へ | 前へ→

【525】スタイルの設定について すぎ 07/4/5(木) 18:02 質問[未読]
【790】Re:スタイルの設定について マナ 13/6/16(日) 17:46 発言[未読]
【791】Re:スタイルの設定について マナ 13/6/16(日) 19:37 質問[未読]
【792】Re:スタイルの設定について マナ 13/6/16(日) 20:00 発言[未読]

【525】スタイルの設定について
質問  すぎ  - 07/4/5(木) 18:02 -

引用なし
パスワード
   初めて投稿させて頂きます。

テンプレート化する予定の元文書ファイル(a)内に不要・冗長なスタイルが無いか確認するために、(a)内のスタイルを使って以下の様に順次スタイル適用してサンプルを作成するマクロを作成しようと思いましたが、うまく動作してくれません。

'Jでループ。ActiveDocument.Styles.Count分だけの段落は作成済み。
 ActiveDocument.Paragraphs(J).Style = ActiveDocument.Styles(J)

多分、型の問題なのではないかと思うのですが、右辺を

 -2 ' wdStyleHeading1
 "見出し1"

の様に即値(正確な表現ができずすいません)で与えれば問題ありませんでした。

どなたか右辺の書き方をご存知ないでしょうか。

【790】Re:スタイルの設定について
発言  マナ  - 13/6/16(日) 17:46 -

引用なし
パスワード
   今更ですが、勉強のために確認してみました。

>  ActiveDocument.Paragraphs(J).Style = ActiveDocument.Styles(J)
>
>どなたか右辺の書き方をご存知ないでしょうか。

右辺の書き方が間違っているわけではないようです。
左辺が段落スタイルなので、右辺も段落スタイルかどうか
事前にチェックをいれてみました。

Sub test()
  Dim n As Long
  Dim s As Style
  Dim j As Long

  n = ActiveDocument.Paragraphs.Count
  
  For Each s In ActiveDocument.Styles
    If s.Type = wdStyleTypeParagraph Then
      j = j + 1
      If j > n Then Exit For
      ActiveDocument.Paragraphs(j).Style = s
    End If
  Next
  
End Sub

【791】Re:スタイルの設定について
質問  マナ  - 13/6/16(日) 19:37 -

引用なし
パスワード
   2007以降の場合、こうすべきなのかなと思いましたが?
よくわかっていません。
どなたか教えて下されば嬉しいです。

If s.Type = wdStyleTypeParagraph Or _
  s.Type = wdStyleTypeParagraphOnly Or _
  s.Type = wdStyleTypeLinked Then

【792】Re:スタイルの設定について
発言  マナ  - 13/6/16(日) 20:00 -

引用なし
パスワード
   こことか関係あるかもと試してみたのですが、
チェックがONでもOFFでも結果は同じでした。

リンクされたスタイルを使用不可にするとは?
ht tp://www.relief.jp/itnote/archives/003904.php

32 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207159
(SS)C-BOARD v3.8 is Free