2017-08-17 5 views
2

Word 2010以降MSがMS Wordに導入した新機能の1つにLayoutColumns FootnoteOptionsがあります。VBA Word 2016ではコンパイルされますが、Word 2010ではコンパイルされません

したがって、次のコード行はWord2016でコンパイルされますが、ActiveDocument.Range.FootnoteOptions.LayoutColumnsではWord 2010には含まれません(Word 2013ではテストされていません)

条件付きコンパイル文が助けていないようだ...ワードが含まれてVBA7除くアプリケーションのバージョンについては何もありません2010年

https://msdn.microsoft.com/VBA/Language-Reference-VBA/articles/compiler-constants

だからこれは、Word 2010でコンパイルされません。

Sub testWd10() 
#If Win64 And VBA7 Then 
    ActiveDocument.Range.FootnoteOptions.LayoutColumns 
#End If 
End Sub 

Compiler error - Method or data member not found

+0

"オフィス2013以降" https://msdn.microsoft.com/en-gb/library/microsoft.office.interop.word.footnoteoptions.layoutcolumns.aspx – Slai

答えて

4

コンパイラディレクティブはあなたを助けにはなりません。バージョンを確認し、以前のバージョンのWordにはないメンバー呼び出しにレイトバインディングを使用する必要があります。

Sub testWd10() 
    If Application.Version > 15 Then 'e.g. 15 is Word 2013, change as necessary 
     Dim myRange As Object 'As Range 
     Set myRange = ActiveDocument.Range 
     myRange.FootnoteOptions.LayoutColumns 'Late-bound call 
    End If 
End Sub 
+0

のようですああ...それは私が掘り出したものより優れています – SlowLearner

0

ない、私はおそらく全体のアプリケーションよりもオブジェクトとして範囲を設定することがより効率的であるが、ここに行くと思うのでThunderFrameの答えとして良い:

Sub testWd10() 
    Dim wdApp As Object 
    Set wdApp = Application 

    If wdApp.Version > 14 Then 
     wdApp.Documents(ActiveDocument.FullName).Range.FootnoteOptions.LayoutColumns 
    End If 
End Sub 
3

を、私は少し遅れています、しかし、いくつかのより多くの遅延バインディングの選択肢:

Dim o As Object 
Set o = ActiveDocument.Range.FootnoteOptions 
On Error Resume Next 
o.LayoutColumns = 3 
On Error GoTo 0 

ビット短く、遅く:

On Error Resume Next 
CallByName ActiveDocument.Range.FootnoteOptions, "LayoutColumns", vbSet, 3 
On Error GoTo 0 

か:

On Error Resume Next 
CVar(ActiveDocument.Range.FootnoteOptions).LayoutColumns = 3 
On Error GoTo 0 
+0

クール、感謝もそれらを見てみましょう - オプションを持って良い! – SlowLearner

+1

あなたが話すこの「COBJ」は何ですか? 'VBA.CVar(ActiveDocument.Range.FootnoteOptions).LayoutColumns = 3'は2013年に動作します。 – ThunderFrame

+0

ありがとう@ThunderFrame。 VBAがVB.Netとして「CObj」を持っているかどうかは不明でしたが、このページはhttp://www.functionx.com/vbaexcel/functions/builtin.htmを示唆していました。 – Slai

関連する問題