2017-09-20 23 views
2

Word文書の表からデータを取り込んだExcelを生成するMS Word文書があります。 Word版のExcel版は、チェックリストになります。そのため、私は生成されたExcelに機能を追加して、その機能をより有効にしようとしています。条件付き書式(行が完了とマークされている場合は行を緑色にする)と検証(検証済みの列にははいまたはいいえ付きのドロップダウンがあるため)を追加しようとしました。両方ともExcelで動作させることはできますが、VBAをWordから取得して、生成されたExcelに機能を追加することはできません。Excel Validation.AddがMS Word VBAから機能していません

どちらの場合も、.Addメソッドが問題の原因であるようです。私はこれを行うには2つの構文を試してみました:

With objNewExcel.Sheets(1).Range("e5").Validation 
    .Add Type:=xlValidateWholeNumber, _ 
     AlertStyle:= xlValidAlertStop, _ 
     Operator:=xlBetween, _ 
     Formula1:="5", _ 
     Formula2:="10" 
    .InputTitle = "Integers" 
    .ErrorTitle = "Integers" 
    .InputMessage = "Enter an integer from five to ten" 
    .ErrorMessage = "You must enter a number from five to ten" 
End With 

戻りエラーは、「エクセル実行時エラー 『1004』アプリケーション定義またはオブジェクト定義エラー」有用ではありません

objNewExcel.Sheets(1).Range("e5").Validation.Add(xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10") 

エラー "期待された:="を返します。バリデーションをvarに設定すると、タイプミスマッチエラーが発生します。私はオブジェクトとしてvarをDIMEDしました。

MS Word VBAで作業することはできません。 Word VBAからExcelの.Addメソッドを参照する方法を知っている人はいますか?

答えて

0

友人の助けを借りて、2番目の構文を修正して動作させることができました。

使用:

objNewExcel.Sheets(1).Range("e5").Validation.Add (xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10") 

WordのVBAは、戻り値を期待しています。行の先頭に "Call"を追加するか、.Addメソッドから "("と ")"を削除すると、VBAは戻り値がないことを認識して動作します。

ワーキング構文の:

objNewExcel.Sheets(1).Range("e5").Validation.Add xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10" 

Call objNewExcel.Sheets(1).Range("e5").Validation.Add (xlValidateWholeNumber, xlValidAlertStop, xlBetween, "5", "10") 
関連する問題