dポイントプレゼントキャンペーン実施中!

エクセルVBAでエクセルのシートの内容をワードの表に移そうとしています。

ワードに表を作って その表のフォントサイズや行の高さなどは設定できたのですが、ワードの表の中での文字列の配置がどうしたらいいのかわかりません。

上に述べたことは次のような文で実現しています

※oTableはWord内の表です。

oTable.Cell(i, j).range.Font.Size = 10
oTable.Cell(i, j).range.Font.Bold = True

With oTable.Rows(1)
.Height = 25
End With



実現したいことは、特定の列だけを右寄せしたいと思っているのですが、
「oTable.range.ParagraphFormat.Alignment 」
「wdAlignParagraphRight」


などを使って記述するのだろうということは想像できるのですが、よくわかっていないので実現できていません。

恐れ入りますが、どなたかご教示いただけないでしょうか?  
よろしくお願いします。

A 回答 (1件)

Excel側からのオートメーションの操作については割愛します。


>エクセルVBAでエクセルのシートの内容をワードの表に移そうとしています。
一般的には、Wordから、Excelのオートメーションを行うはずです。そうしないと、1ランクぐらい上に難しくなるような気がします。まっさらな(=Blank) New Document 以外には、作る時の手間が多くなります。かなり、VBAには自信がある方だと思います。

コードの作り方が気に入らないかもしれませんが、私は、いつも、表は、だいたいこんな方法で作っています。

'//
Sub Test1()
 Dim i As Long
 Const RW As Integer = 3 '行
 Const CL As Integer = 4 '列
 Selection.EndKey Unit:=wdStory 'ドキュメントの最後尾に行く
 With ActiveDocument.Tables.Add(Range:=Selection.Range, _
  NumRows:=RW, NumColumns:=CL, _
  DefaultTableBehavior:=wdWord9TableBehavior, _
  AutoFitBehavior:=wdAutoFitFixed)
  .ApplyStyleHeadingRows = True
  .ApplyStyleLastRow = True
  .ApplyStyleFirstColumn = True
  .ApplyStyleLastColumn = True
  With .Range
   .Font.Size = 10
   .Font.Bold = True
   .Rows(1).Height = 25
  End With
  With .Range.Cells
   .Height = 25
   '1列目なら、1
   For i = 1 To RW * (CL - 1) Step CL
    '右寄せ
    .Item(i).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
   Next
  End With
 End With
End Sub
    • good
    • 0

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