2017-12-11 7 views
0

私はLibreOffice calcテーブルとライター文書を持っています。ドキュメントの中のテーブルのフィールドを使いたい。これは「通常の」フィールドで機能します。ライター文書にマクロを含むセルを使用しているLibreOffice

しかし、1つのフィールド(バーコード)には追加のMakro /スクリプトの式があります。この式はcalcでうまく動作します。しかし、ライターで "データソース"を開くと、代わりに "#VALUE"しか表示されません。また、文書を印刷する場合、正しいデータが挿入されていません。

マクロの使用は、ライターとcalcで有効になっています。 希望するデータをライター文書に取り込むにはどうすればよいですか?

よろしくは ヨハネス

+0

CalcからWriterに値を挿入する方法はたくさんあります。どちらの方法を使いましたか? –

+0

こんにちは@JimK 私はマスメールアシスタントを使用しています(私は正しい翻訳を望みます)。私はそれを簡単に保つのが好きなので、私はより多くのvbaスクリプトを使いたくありません。 –

+0

「大量メール支援」とはどういう意味ですか? Googleはhttp://help.libreoffice.org/Writer/Mail_Merge_Wizardを意味すると推測します。必要な手順を明記してください。 https://stackoverflow.com/help/mcveを参照してください。 –

答えて

0

まず、[ツール] - > [マクロ] - > [マクロの管理 - > LibreOfficeの基本にマイマクロ - >標準 - > Module1に展開してください。この場所はユーザーディレクトリの下にあります。 ロケーションの管理については、https://ask.libreoffice.org/en/question/35598/where-are-lo-basic-macros-stored/で詳しく説明しています。

user-defined functionを貼り付けます。

Function EAN13_Barcode(index As Integer) 
    myArray = Array(_ 
     "9783598215001","9783598215018","9783598215025",_ 
     "9783598215032","9783598215049","9783598215056",_ 
     "9783598215063","9783598215070","9783598215087") 
    EAN13_Barcode = myArray(index) 
End Function 

このようにスプレッドシートを設定します(最初の画像は数式を示し、2番目は値を示します)。

spreadsheet example - formulas spreadsheet example - values

注:マクロがCalcドキュメントに埋め込まれなくユーザーディレクトリに格納されている場合、次いでEAN13_Barcode()のみCalcのではなく、ベースまたはWriterで動作します。

次に、ファイル - >新しいデータベースに移動してデータベースリンクを作成します。

  • 既存のデータベースに接続してください:スプレッドシート。
  • .odsファイルを参照してください。
  • はい、データベースを登録してください。
  • 新しいDatabase.mdbとして保存します。

ベースのテーブルは次のようになります。 Writerの今

table in Base

表示 - >データソース

  • 新しいデータベースへの展開 - >テーブル - >シート1

data sources window

  • 前をクリック2番目のレコードの行の先頭に移動し、メイン文書領域にドラッグします。
  • データを次のように挿入します。フィールド。
  • データベース列はBarcodeとFullNameです。
  • OKを押します。値が変更された場合

    result

    フィールド

をリフレッシュすることができます。これを行うには、CalcスプレッドシートとWriterドキュメントを保存し、すべてを閉じて、Writerドキュメントを再度開きます。

+0

非常に良い説明をいただきありがとうございますが、これも動作しません。セル内のマクロは、ドキュメントに挿入/リンクされても実行されません。 https://imgur.com/a/SLHGl 「バーコード」は「#WERT」エラーです。 –

+0

「データソース」画像を表示するための回答を編集しました。画像では、データソース領域の左側がうまく見えません。それは "anschluesse"(接続)とは言いますが、何もリストしていないようです。あなたは、左側全体を表示する別の画面キャプチャを取ることができますか?おそらく、インストールに何らかの問題があります。どのオペレーティングシステム、バージョン、ロケール? –

+0

左側がちょうど切り取られています。 2台のマシンで、Debian Testing with LibreOffice 5.2の両方でこれをテストしました。 データベース/スプレッドシートがリンクされたドキュメントによって読み取られる場合、セル内のマクロは実行されません。 私は別の、それほど快適ではない方法を使用します:私はスプレッドシート(​​ライターを使用するのではなく)に2ページ目を設定し、そこにドキュメントを配置しました。次に、目的の行をドキュメントページにコピーして印刷します。 –

関連する問題