2016-04-23 17 views
1

変数cTableにテーブルを保存し、すべての書式設定が必要なときに貼り付けます。変数を使用してコピー貼り付けテーブル

Sub copytable() 
Dim cTable As TABLE 

    Selection.Tables(1).Select 

    cTable = Selection.Tables ' how do i assign table into variable 

    Selection.MoveDown Unit:=wdLine, Count:=2 

    Selection.Paste cTable ' how it going to be paste exacty the copied table 

End Sub 

例は、テーブル画像である:variable

Selection.Tables(1).Select 
Selection.COPY 
Selection.MoveDown Unit:=wdLine, Count:=2 
Selection.PasteAndFormat (wdPasteDefault) 
+2

テーブルを選択してコピーし、新しい場所に移動して貼り付けるマクロを記録します。次に、マクロコードを見て、あなた自身でそれを行う必要があるかどうかを確認します。 –

+0

これはWordのためのものです。なぜあなたはExcelタグを含んでいますか?私はチャンスがあるときにそれを削除します。 –

+0

@AndyG申し訳ありませんが、「Excel」の方がこの問題に寄与する可能性があります –

答えて

0

それは、テーブルを格納することはできませんせずにこの@ken

は、コピー/ペーストテーブルの簡単なコードである変数にはがあります。変数を使用してテーブルに戻すことができるように、テーブルには参照を使用することは可能です。

このコードサンプルでは、​​参照されるテーブルの前または後に新しいテーブルを挿入するかどうかは関係ありません。ドキュメントの最初のテーブルで、ドキュメントの最初にコピーされている場合でも、ドキュメントの末尾(または他の場所)にコピーすることができます。

Sub ReuseTableReference() 
    Dim doc As word.Document 
    Dim tbl As word.Table 
    Dim rngTableTarget As word.Range 

    Set doc = ActiveDocument 
    Set tbl = doc.Tables(1) 
    Set rngTableTarget = doc.content 

    'Copy the table to the beginning of the document 
    rngTableTarget.Collapse wdCollapseStart 
    rngTableTarget.FormattedText = tbl.Range.FormattedText 

    'Copy the table to the end of the document 
    rngTableTarget.Start = doc.content.End 
    rngTableTarget.FormattedText = tbl.Range.FormattedText 

    'Copy the table to the current selection 
    Selection.FormattedText = tbl.Range.FormattedText 
End Sub 

もちろん、インデックス値のハードコーディングは、しばしば望ましくないことがあります。あなたの代わりに、ブックマークからそれを拾うことができるようにその場合には、テーブルをブックマークすることができます。

Set tbl = doc.Bookmarks("tbl").Range.Tables(1) 

(ここでは、インデックス値1は、ブックマークした範囲内のテーブルの数を指します。)

関連する問題