- ベストアンサー
ワードでスタイル名を取り出すマクロ
ワード2010で、今、カーソルがおいてあるところの段落のスタイル名をメッセージボックスで知りたいのですが、そのマクロの作り方を教えてください。 Sub スタイル名取得() Dim スタイル名 As Style スタイル名 = ActiveDocument.Styles MsgBox (スタイル名) End Sub とやってみたのですが、だめです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Sub hoge() Dim r As Range Dim x As Style Set r = Application.Selection.Range 'VB系は遅延バインディングをサポートするけど俺は気持ち悪いと感じるので型を利用する。 Set x = r.ParagraphStyle ' どうやら段落スタイルや文字スタイルが異なる複数の範囲にまたがって選択されていると ' それぞれNothingが代入されてしまうらしく、NameLocalプロパティを参照しようとした時エラーで止まる If Not (x Is Nothing) Then MsgBox (x.NameLocal) End If Set x = r.CharacterStyle If Not (x Is Nothing) Then MsgBox (x.NameLocal) End If End Sub
お礼
ありがとうございました。すごくびっくりしています。しかし、まだわからないことがあるのです。 Sub hoge2() Dim r As Range Dim x As Style Set r = Application.Selection.Range Set x = r.CharacterStyle If Not (x Is Nothing) Then MsgBox (x.NameLocal) End If Set x = r.ParagraphStyle If Not (x Is Nothing) Then MsgBox (x.NameLocal) End If If x.NameLocal = "見出し1" Then MsgBox (x.NameLocal) End If とやってみました。すると、見出し1のときに最後のif文を実行してくれないのです。多分初歩的なことなのだろうと思いますが、よろしくご指導願います。