1

これまでのところ、質問/解決策で大きな成功を収め、Excel vba で多くの知識を得ることができましたが、別の種類の問題で立ち往生しています。

これが私のシナリオです:

Excel vba スプレッドシートでシリアル化および追跡されるサンプルを作成します。複数の回線を追加でき、それらはシリアル番号で識別されます。送信される各サンプルには、シリアル化された情報シートが含まれています。現在、シリアル番号を Excel に入力すると、手動でシリアル番号を情報シートに入力し、印刷して、繰り返す必要があります。一度に 40 以上のサンプルを送信する必要がある場合があるため、これはイライラします。

私の理想的な解決策:

データ入力用に用意したユーザーフォームを使用し、リストボックスを使用して、入力したすべてのサンプルをスプレッドシートに記録したいと思います。これから、ユーザーがシートを印刷することを決定した場合、コマンド ボタンを押してマクロを実行できます。このマクロは、リストボックス項目 (一度に 1 つ) を取得し、Word テンプレート ファイルの特定の部分に情報を入力してから、それを印刷します。すすいで繰り返します。

私が本当に求めているのは、Excel から Word ファイルを開き、指定された領域に行を入力して、それを印刷するための一般的なコードを誰でも提供できますか? 私は今VBAをいくつか知っていますが、これは私のリーグから少し外れています。

編集:指定により、リストボックスのテキストをシートのどこに配置するかを選択するオプションが欲しいと思います。理想的には、右上隅と中央右側になります。しかし、完全に収まるように位置を調整する必要があります。助けてくれてありがとう、A.

4

1 に答える 1

3

次のコードで試してください。何を変更する必要があるかを説明するために、内部にいくつかのコメントを追加しました。

重要!コード内で提案されているように、オプション 1 またはオプション 2 のいずれかを使用します。

Sub OpenWord_Place_Some_Text()

    Dim WRD As Object
    Set WRD = CreateObject("Word.Application")

    'optional line to see Word applicaton
    WRD.Visible = True

    Dim DOC As Object
   'Option 1. for new empty document...:
    Set DOC = WRD.Documents.Add

    'or...
    'Option 2. for existing document
    Set DOC = WRD.Documents.Open("C:\your folder\your document.docx")

    'to place your text precisily in word document do it with TextBox
    'set your LEFT, TOP, WIDTH, HEIGHT parameters based on experiments
    With DOC.Shapes.AddTextbox(msoTextOrientationHorizontal, Left:=100, Top:=100, Width:=100, Height:=100)
        .Line.Visible = msoFalse
        .TextFrame.TextRange.Text = "YOUR TEXT HERE"
    End With

    'set active printer to one you use here
    WRD.ActivePrinter = "PDFCreator"
    'print document
    DOC.PrintOut
    'close document without saving
    DOC.Close False
    'close application
    WRD.Quit
    Set WRD = Nothing

End Sub
于 2013-11-13T19:27:41.560 に答える