2017-09-21 7 views
0

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 

答えて

0

プログラミングの赤い線は、変数にダウンロードする「テキスト」と「引用」を割り当てることである必要があり、それに

Dim Txt As String 
Dim Cit As String 

Txt = "Whatever you scraped from tre website" 
Cit = "Whatever else you scraped from the web" 

を言うあなたがして、文字列の各操作を開始することができ、達成おそらくあなたの現在の選択の場所に、あなたが望む場所にそれらの文書を置きます。

この方法を実行すると、個々の質問にすぐに回答できるようになる場合があります。一方で、エラーが発生する可能性があり、対処方法を知らないうちにOn Error Resume Nextを使用しないでください。

+0

コピーした値を分割するためにいくつかの異なる機能を見ていましたが、クリップボードのテキストを分割する方法に固執しましたが、まだワードで書式をマージします。 – broncos15

+0

段落に基づいてコードを分割する方法がわからないので、まだ引用に問題がありますが、テキストと引用の間の段落区切りを少なくとも削除できました。 – broncos15

+0

上記のアドバイスの最後の段落に到着したようです。それは良い進歩です。それが良いアドバイスだと思うなら、それを受け入れてそれに従ってください。あなたはそれを "受け入れられた"とマークして受け入れます。あなたは答えを出すことができる方法で新しい質問をすることでそれに従います。 – Variatus

関連する問題