VBAを初めて使用しています。ドキュメント内のテキストを置き換えるときにテキストを配置し、自動テキストコマンド(F3)を実行できるアプリケーションを作成しようとしています。自動テキストを置換して実行します
私の問題は、カーソルが失われた後です。選択のための有効なコードが存在しないというメッセージが表示されます。誰かが助けてくれますか?
私は、コードの下に使用しています:
Sub VbaAutomation()
With Selection.Find
.ClearFormatting
.Text = "-A11"
.Replacement.ClearFormatting
.Replacement.Text = ""
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
.Execute
SendKeys "{F3}"
End With
End Sub
より良い解決策ではなく、テキストを交換し、コードを実行することができます。
ビルディングブロックコードを自動テキストコードに置き換えるマクロを実行します。たとえば、私の単語文書はABCD, CDEF
のコードを持ち、マクロはビルディングブロックコードを自動的に反復し、正確な自動テキストコード段落に置き換えます。
私はあなたの意図を完全には理解していませんが、誰もあなたに忠告したいと思わないことに注意してください。私はF3があなたが達成したいことと何が関係しているのか疑問を抱いています。あなたのコードは、選択されたテキスト内で "-A11"を探し、それを ""に置き換えます。 「ビルディングブロックコード」または「オートテキストコード」については言及されておらず、F3がこれらのいずれかまたは両方と何らかの形で関連している場合、F3はそれが見つかった残りのコードとは関係がありません。それが価値があることについて:あなたは、あなたのコンセプトが単に "-A11"を ""で置き換えることを許すべきであるということを受け入れるべきです。これ以上何もない。 – Variatus
ありがとうございます。F3は自動テキストとビルディングブロックを実行します。ビルディングブロックを実行できるように-p1を置き換えます。 – Nick
私たちはお互いに話しています。 (1)F3がプログラムを呼び出します。 VBAでは、プログラムを呼び出す場合は、その名前を知る必要があります。しかし、私は、プログラムF3がVBAマクロではないと確信しています。したがって、プログラムの種類を実行するには、適切なVBA構文を使用して呼び出す必要があります。 (2)ドキュメント内のプレースホルダをビルディングブロックに置き換える場合は、ビルディングブロックを指定し、プレースホルダを見つけて置き換える必要があります。ビルディングブロックを 'Find'メソッドの' Replacement.Text'プロパティにロードすることができるなら、その目的のためにあなたのコードのバージョンを使うかもしれません。 – Variatus