2017-08-28 10 views
2

Excelワークシートに埋め込まれたWord文書(*.docm)があります。XLSMから組み込みDOCMに変数を渡します

Word文書には、ExcelのWorkSheetに対応するTableの間の関係を持つtableが含まれています。

が、私はその関与のワークシートから、怒鳴る値は、動的Document_Openイベントに設定されて埋め込まれたWord文書内のテーブルの行のカウントたい:

ThisWorkbook.Worksheets("Sheet1").ListObjects("Salary").ListRows.Count 

がどのように私はExcelの間で値を渡すことができます(マクロコンテナドキュメント)と埋め込まれたマクロコンテナの単語文書? - 上記の大胆な問題に対する正しい答えか、別の解決策ですか?代わりに

塗りつぶし先テーブル(つまり、埋め込まれたWord文書内にある)ソースデータから対応する値を持つ細胞は、ワークシートからの親表にある?同じ:

別のソリューションの答えがある場合は、のそのカバーの必要性に注意してください。マクロコンテナ埋め込みワードドキュメントからのDocument_Openイベントでフィールドを自動生成します。

答えて

1

マクロを開くたびに警告が表示されないように.docxドキュメントを埋め込み、すべてのコードをExcel VBA Project内に配置することをお勧めします。ここでは、Excel VBAから埋め込みWord文書の行数を変更する方法を示す例を示します。

Sub ChangeRowsCount() 

    Dim n As Long 

    With ThisWorkbook.Worksheets("Sheet1") 
     n = .ListObjects("Table1").ListRows.Count 
     With .Shapes("Object 1") 
      Select Case True 
       Case .Type <> msoEmbeddedOLEObject 
        MsgBox "Invalid OLE Object type" 
       Case InStr(1, .OLEFormat.progID, "Word.Document", vbTextCompare) <> 1 
        MsgBox "Invalid Application" 
       Case Else 
        .OLEFormat.Object.Verb xlVerbOpen 
        With .OLEFormat.Object.Object.Parent ' Word.Application 
         With .ActiveDocument.Tables(1).Rows 
          Do While .Count <> n 
           If .Count > n Then .Item(.Count).Delete Else .Add 
          Loop 
         End With 
         .Quit 
        End With 
        .Select 
        MsgBox "Success" 
      End Select 
     End With 
    End With 

End Sub 
+0

ありがとうございます。したがって、私はどのようにしてソース・データからの対応する値を持つセルが 'Worksheet'の親' Table'にあるのか、ドキュメント_Open'イベント** – mgae2m

+0

@ MGae2M答えで私は** VBAと埋め込まれたドキュメント**からのイベントを使用しないように提案しましたが、Excel VBAからそれを行います。 – omegastripes

+0

それで、どのようにしてソーステーブルの対応する値を持ったデスティネーションテーブル(埋め込みワードドキュメント内)に 'テーブル 'が' Worksheet'にあるのかを記入することができますか? ExcelモジュールからいくつかのWordメソッドを 'Selection.TypeText Text:= ...'として実行する必要があります。 WordのメソッドをExcelモジュールで使用したり、変数を渡したり、より良い方法を使用するにはどうすればよいですか?私が上記の質問を延長したので、この件に関するあなたの答えを広げてください。 – mgae2m

関連する問題