2016-03-23 16 views
1

ExcelのVBAからWord文書のヘッダーに水平線を追加します。VBA、EXCEL、WORD:WordヘッダーのExcelからの水平線の書式設定

Dim a As Word.Range 
Set a = oWord.ActiveDocument.Sections(1).headers(wdHeaderFooterPrimary).Range 
a.Collapse Direction:=wdCollapseEnd 
a.InlineShapes.AddHorizontalLineStandard 

次は私がその行フォーマットします:

a.InlineShapes(1).Height = 1 

をしかし、これはスローし、エラー5941 - コレクションの要求のメンバーがありません。

私も

With a.InlineShapes.AddHorizontalLineStandard 
    .Height = 1 
End With 

しかしdidntの作業のいずれかを試してみました。

Word vbaでコードを試しましたが、これはうまくいきました。私はここに何かを逃していますかExcelから行をフォーマットするにはどうすればよいですか?

編集

私は行を追加した後、コードを停止しました。その後、私は.InlineShapes.Countを実行し、0を返しました。次に、ドキュメント本体に行を追加して再度実行し、1を返します。だから問題は、ヘッダーはExcelからアクセスできないように思われる?

答えて

1

は、あなたが直接それに対処できるように、あなたが追加している行を「ホールド」にInlineShapeオブジェクトを使用して、以下を、試してみてください。私はあなたが持っているものがなぜ機能していないのか分かりませんが、これがうまくいかない場合は、より有益なエラーメッセージを表示するかもしれません:

Dim rng As word.Range 
Dim ils As word.InlineShape 

Set rng = oWord.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range 
rng.Collpase Direction:=wdCollapseEnd 
Set ils = rng.InlineShapes.AddHorizontalLineStandard(rng) 
ils.height = 1 
1

はこれを試してみてください:

Dim a As Object 
Set a = GetObject(, "Word.Application") 
With a.ActiveDocument.Sections(1).headers(wdHeaderFooterPrimary) 
    .Range.InlineShapes.AddHorizontalLineStandard.Height = 1 
End With         
関連する問題