Microsoft Wordで書式設定マクロを貼り付けてマージしようとしています。私は常にウェブサイトからコピーして、そのウェブサイトからWordに貼り付けています。残念ながら、ウェブサイトの形式は、常に次のとおりです。Wordでの書式の貼り付けとマージ
テキスト
引用
私は形式になりたい: "テキスト"
引用。
私のコードは、現在、I a)は、テキストと引用間の段落のスペースを持っていないようにする方法を見つけ出すことはできません
Sub Paste_Citation()
' Paste_Citation Macro
On Error Resume Next
Selection.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis)
Selection.TypeBackspace
Selection.TypeBackspace
Selection.TypeText Text:="."
End Sub
あり、b)は、テキストの前後に括弧を挿入します。テキストの最後にピリオドがない場合は、「blah blah」のような形式にします。それ以外の場合は、「間違いなく」。 c)テキストに空白とピリオドのみが含まれている場合は、テキストを含めない。私はcのif文を実行する必要があることを知っていますが、WordのVBAにはあまり慣れていません。誰かが私と一緒にそのプロセスを歩くことができますか?
編集#1
x = Selection.PasteAndFormat(wdFormatSurroundingFormattingWithEmphasis)
'trying to set x equal to the pasted formatted value
Dim Txt As String
Dim Cit As String
Txt = Split(x, Chr(182))
'trying to split the text based on the paragraph symbol
'I am confused on what I need to do from there
編集#2 私はもはやそれに取り組んできた、と私はかなり近いだと思います。私は情報を貼り付け、フォーマットをマージする方法と、段落区切りを削除する方法を理解しました。私の問題は、最初の段落を引用符で囲み、カーソルをペーストの最後に移動させ、末尾にピリオドを追加する方法を理解できないことです。
Sub PasteCitation()
'Modified code from http://www.vbaexpress.com/forum/archive/index.php/t-46321.html
Application.ScreenUpdating = False
Dim Txt As Range
Set Txt = Selection.Range
Txt.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis)
With Txt.Find
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
'Replace single paragraph breaks with a space
.Text = "([!^13])([^13])([!^13])"
.Replacement.Text = "\1 \3"
.Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub
コピーした値を分割するためにいくつかの異なる機能を見ていましたが、クリップボードのテキストを分割する方法に固執しましたが、まだワードで書式をマージします。 – broncos15
段落に基づいてコードを分割する方法がわからないので、まだ引用に問題がありますが、テキストと引用の間の段落区切りを少なくとも削除できました。 – broncos15
上記のアドバイスの最後の段落に到着したようです。それは良い進歩です。それが良いアドバイスだと思うなら、それを受け入れてそれに従ってください。あなたはそれを "受け入れられた"とマークして受け入れます。あなたは答えを出すことができる方法で新しい質問をすることでそれに従います。 – Variatus