2017-11-25 25 views
0

私の文書には通常何度も何度も繰り返し使用できるフレーズがあるので、時間を節約するためにすべてをホットキーしたい。具体的には、Macro1(「もちろん」を挿入)、Macro2(「問題あり」)、Macro3(「時間に挿入」)をAlt + 1、2にホットキーします、3となる。私がAlt + 2を押すと、「問題は」私のクーサーに即座に挿入されました。Excel文書のテキストを単語文書に挿入する(Word VBA)

はここで私が使用しているベースのマクロです:

Sub Macro1() 
    Selection.TypeText Text:="sample text" 
End Sub 

問題が新しい文書、Macro1を、2の内容のためであり、3は頻繁に変更する必要があります。編集を簡単にするためにすべてのフレーズを格納するExcelファイルを作成する予定ですが、その特定のセルを単語マクロにリンクする方法はわかりません。それを行う方法はありますか?

注:AutoTextまたはBuilding Blockの機能はWordで認識していますが、Excel表として編集するのは簡単ではありません。

+0

「差し込み印刷」を試みましたか? – Arul

+1

まだ明確ではありません。あなたは単語の既存のフィールドを(mailmergeのように)書きたいのですか、手動で入力しながらホットキーを作成してフレーズを挿入するようなものですか? – KekuSemau

+0

はい、Excelセルの内容をWord文書に取り込むことは間違いありません。実際には、おそらく数十種類の方法があり、それぞれが異なる状況で使用されます。前と後のいくつかの例を挙げることができますか? **いくつかの**マクロがあるのはなぜですか?より多くの情報をお願いします。 – ashleedawg

答えて

0

Excelファイルが "C:\ temp \"にあり、y語句が最初のWorksheetとFirst列に保存されていると仮定した例を示します。 このファンクションは、このExcelファイルから最初のセル(A1) :

Function Read_Excel_Cell(cellRin As Long) As String 

    Dim oExcel As Excel.Application 
    Dim myWB As Excel.Workbook 

    Set oExcel = New Excel.Application 
    Set myWB = oExcel.Workbooks.Open("C:\temp\phrases.xlsx") 
    Read_Excel_Cell = myWB.Sheets(1).Cells(cellRin, 1) 
    myWB.Close 
    Set myWB = Nothing 
    Set oExcel = Nothing 

End Function 

そして、このマクロは、文書に挿入されます:

Sub InsertText1() 
    Selection.TypeText Text:=Read_Excel_Cell(1) 
End Sub 

あなたが必要と同じ機能Read_Excel_Cellを(使用するように、この方法でできるだけ多くのマクロを作成することができます)あなたが別のものにREFEREすることができます行。

これをWord vbaで実行するには、Excel Reference(Tools \ References tick Microsoft Excel Object Library)を追加する必要があります。