• ベストアンサー

Excelの名簿データから宛名ラベルの印刷

「ラベルマイティ2・ビジネス編」というラベル印刷ソフトで宛名ラベルに印刷を予定しています。差込用データとして、Excelの名簿データを使用します。 しかし印刷指定が特殊で、宛先Aは10枚、宛先Bは20枚というように、1つの宛先ごとに異なった枚数のラベルを印刷する必要があり、しかもラベル用紙(A4サイズ24面)を無駄なく使いたいのです。 ラベルマイティには宛先ごとに枚数を指定する機能がないので、やむなくExcelのデータを加工しなければいけなくなりました。苦し紛れに考えた方法は下記のとおりです。 1.宛先Aが1行目、宛先Bが2行目、宛先Cが3行目…と続いているとする。 2.宛先Aは10枚印刷なので、1行目をコピーして、2行目以下に9行挿入して、計10行にする。同様に宛先Bは20枚印刷なので、行をコピーして19行挿入する。以下、宛先Cも同様に…。 という繰り返し作業なのですが、宛先が千件近くあるので、手作業ではあまりにも時間がかかりすぎて、困っています。関数やマクロの機能でなんとかできるものでしょうか?それとも、もっと良い方法はありますでしょうか?ちなみに当方のExcelの知識は、基本的な関数程度でマクロは未経験です。 どうぞ宜しくお願い致します。m(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • cockerel
  • ベストアンサー率46% (253/548)
回答No.7

>特に5番の操作のご説明が・・・ 申し訳ありません。自分で書いて5番の操作を見間違えました。 コピーしたデータのすべてが内側に収まる四角形の領域を選択します。たとえば白紙のシートのA1に1、B2に2、C3に3を入力してください。A1を選択した状態で「編集」から「ジャンプ」を選択し「セル選択」をクリックし、「アクティブセルの領域」を選びOKします。すると、A1からC3までを囲む四角形の領域が選択されます。これと同じことを行います。 宛名データをコピーした場合、これに類似のアクティブセルの領域内に、まだ式が含まれています(つまり「=↑」)。これをたとえば電話番号等の「値」に変換しなければなりません。そこで、アクティブセルの領域を選択して、編集>形式を選択して貼り付け>値>OKを行います。 例: A1に1、B1に2、C1に「=A1+B1」を入力します(鈎カッコなしの式)。 A2に2、B2に3を入力し、C1をコピーしてそのままC2に貼り付けます。5が現れるはずです。 次に、C2に、編集>形式を選択して貼り付け>値>OKを行います。3になるはずです。これはC1の「値」です。

その他の回答 (6)

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.6

その2 >特に5番の操作のご説明が・・・ これは、No3の11から13までに記載している内容です。「=↑」は「直上のセルの内容を参照」という式です。これによって、番号1の宛先データが番号1.002(つまり2行目)、1.003(つまり3行目)・・・とコピーされます。control+enterは、「選択されているすべてのセルに同じ式を入力する」という操作です。 ダミーデータについて: たぶんこれもわからないと思います。たとえば最初のデータに電話番号があり、2番目のデータに電話番号が入力されていないと、「直上のセルの内容を参照」によって2番目のデータに最初のデータに電話番号がコピーされてしまいます。そこで、ほかで使用されていない値をあらかじめ空欄に入力しておき、最後に空欄に戻すという作業です。空欄(セル)の選択方法は、No3の11から13までに同じですが、「=↑」に代えて「$$$$」という値を用いています(それが使用されている場合には別のものを使います)。 わからないところは、逐次質問してください。5個ぐらいのデータを仮に作成してテストするとわかってきます。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.5

その1 >例えばセルB1からB11までオートフィルする、ということでしょうか? まず、縦の並びを列、横の並びを行と言います。 Excelにある宛先データはおそらく縦に異なる宛先が並び、横にその宛先の属性(住所、電話番号等)が並んでいると考えられます。そこで、Aの列に1列挿入し、開始1、増分1の連続番号を振ります。このA列だけを白紙のシートのA列にコピーします。ここで、たとえば1番の宛先のラベルが10枚必要であるとします。その場合、番号1と2の間(縦)は隣接しているため、横にB1からK1まで増分0.001でオートフィルします(この増分は999枚までのコピーを想定)。J1まででもよいのですが、全枚数-1の計算をしなくて済むようにしました。A2以降についても同様にします。 このように処理したものは、縦横の配列になっています。それを縦並びに変換しなければなりません。ここで、たとえば最も多いラベルの枚数を30枚と仮定します。C列からAE列までを選択してコピーし、ワードに「テキストのみ」で貼り付けます。続いてタブを改行に一括変換します。その場合、10枚のものの次には改行が20個並ぶことになるので、2つ以上(2を含みます)の改行を1つに変換します。

gororo333
質問者

お礼

お礼が遅くなりまして大変失礼いたしました。 なんとか解決いたしました。 誠にありがとうございました。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.4

No3です。友人から操作だけではわかりにくいとの指摘を受けてしまいましたので、全体を簡単に説明します。 ここでは、「各入力済み行の下にそれぞれの行をコピーする数の空白行を作成し、直上のセルをコピーする」という結果を求めており、質問者さんが試みようとしていることとほぼ同じです。 つまり「1行目をコピーして、2行目以下に9行挿入して」に相当する作業として、各入力済み行に自然数の連番を振り、それぞれの行をコピーする数(全数-1)だけ、対応する自然数を整数部とする小数を索引番号とする空白行を作成し、全体をソートすることによって、番号1の行(=入力済みの第1行)、番号1.002の行(=2列目以降が空白)、番号1.003の行(=2列目以降が空白)、...番号1.01の行(=2列目以降が空白)、番号2の行(=入力済みの第2行)、2.002(=2列目以降が空白)、...というシートを作成しています。 個別の作業の説明: 1. 行方向に「入力済み行に自然数」を配置した場合に行だけで処理しようとすると行の間の挿入となるため、横に伸ばしてフィル(増分0.001)で行います(増分は適宜選択します)。 2. 第1列は「入力済みの行の自然数」、第2列は「全数-1」に相当するため、第3列から終わりまでを使用します(第3列以降の入力したデータがすべて入る「四角形領域」、つまりアクティブセルの領域を選択してコピー)。 3. テキストにすると、横方向はタブ、縦方向は改行となるので、すべてのタブを改行に置換して列データに変換します(Wordを使用)。このとき「四角形領域」内には空白セルも含まれているため、改行が2つ以上続く部分ができるのでそれを除去します。 4. これらを自然数の連番に続けて貼り付け、アクティブセルの領域を昇順に並べ替えると、上記の結果が得られます。 5. 最後に必要とするデータがすべて入る「四角形領域」(アクティブセルの領域)を選択して空白セルを選択し、「直上のセルを参照する式」をすべてに入力します。これらはまだ「式」の状態なので、一度コピーし、「値」としてペーストして全体を「値」にします。 なお、各入力済みデータに空白フィールド(行内の空白セル)を含む場合には、最初にダミーデータ(たとえば$$$$)を入力しておき、最後に一括置換を用いて削除するとよいでしょう(直上のセルの参照で直前のレコードのセルを参照してしまうエラーを防止)。ダミーデータの入力方法は、上記の(5)および昨日の(11)(12)に同じです。 1000件程度のデータなら30分もあれば処理できると思います(処理後の行数が10000を超えることが予想される場合には複数に分割した方がよいでしょう)。

gororo333
質問者

お礼

丁寧なご説明ありがとうございます。 しかし、またもや当方の理解不足で実際に試そうと思ってもよく分かりませんでした。 特に5番の操作のご説明が・・・ 折角のアドバイスを申し訳ございません。

  • cockerel
  • ベストアンサー率46% (253/548)
回答No.3

マクロを組むと簡単なのですが、マクロや関数がわからなくてもできる方法を紹介します(ラベルマイティの機能については存じ上げていません)。 1. すべてのレコード(宛先データ)を選択してコピーし、新しいブックのシートに貼り付けます。 2. (1)のシートの先頭に1列追加し、1から連番を振ります。名前を付けて保存します(オリジナルに手を加えずに作業するため)。 3. 列1をコピーし、新しいブックのシートに貼り付けます。 4. それぞれの番号は、レコード番号に対応するので、たとえば行1であれば、番号1が入っています。たとえば、番号1のレコードを10枚プリントする場合には、行1の列2に1.001と入力し、1.01になるまで行方向にフィルします。番号2以下も同様に行います。 5. フィルが済んだら、小数点以下が0.002の列(この場合は列3)から最も右に数値の入っている列まで選択してコピーします。 6. Wordを開き「形式を選択してペースト」を選び「テキスト」をコピーします。 8. 置換を選択してタブ(^t)を改行(^p)に全置換します(オプションで「あいまい」を外す必要があります)。^p^pを^pに置換する全置換を該当なしとなるまで繰り返します(2以上の改行の削除)。 9. 2以上の改行がなくなったら、全体を選択してコピーし、(2)のシートの第1列の一番下にペーストします。 10. 全体を選んで昇順でソートします。 11. 全体が選ばれている状態で「編集」から「ジャンプ」を選択します。 12. 「セル選択」をクリックし、「空白セル」を選びOKします。 13. イコールと上矢印を入力し、control+enterを行います。1列目を削除します。全体をコピーして「値」でペーストします。 以上です。 くれぐれも作業用のコピーを使用することをお忘れなく。少ないデータで試してから行うとよいでしょう。

gororo333
質問者

お礼

ご回答ありがとうございます。 折角のアドバイスなのですが、実際に試したところ、 当方の知識不足で以下のご説明がよく分かりませんでした。 「行1の列2に1.001と入力し、1.01になるまで行方向にフィルします。番号2以下も同様に行います。」→例えばセルB1からB11までオートフィルする、ということでしょうか?

  • nov-d
  • ベストアンサー率36% (51/140)
回答No.2

#1の回答をしたものです。 すみません、要件と少々違ってたようですね。 申し訳ありませんでした。

  • nov-d
  • ベストアンサー率36% (51/140)
回答No.1

こんなのがありましたが。。。

参考URL:
http://www.vector.co.jp/soft/win95/writing/se210535.html
gororo333
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • Accessで宛名ラベルに同一宛先を複数印刷したい

    Access2010で下記宛先テーブルに対して、フォームで印刷したい宛先と枚数を指定することで同一の宛先のラベルを複数枚印刷することを考えています。 宛先テーブル(コード、名称) 1、会社A 2、会社B 3、会社C ・ ・ 例えば コード:2 枚数:20 とフォームで入力し、同フォームに配置した[印刷]ボタンを押すと管理用の乱数とともに20枚分の宛名ラベルを印刷します。 会社B   会社B 2183 3901 会社B   会社B 5563 4231  ・      ・  ・      ・  ・      ・ 同じような過去の質問と回答も拝見しましたが、それぞれ求める内容が微妙に異なりマッチしませんでした。 皆様のお知恵を拝借致したくよろしくお願いいたします。

  • ラベル印刷

    エクセル2003を使用しています。 エクセルで住所録をラベル印刷出来るようにしています。 ラベル印刷を行った際に、住所情報がないラベルにも「〒」の表示がでて、次回の印刷に使用できなくなるので、もったいないため、「〒」の表示を、参照する住所録データがない際には消したいのです。 sheet1 に 住所録データ        A列に郵便番号000-0000 sheet2 に ラベルのテンプレート      関数 =INDIRECT("〒"&"sheet1!A1") を作成しています。 住所録データは、毎回別のCSVファイルからインポートしているので、sheet2上で関数を使って、sheet1、A列の参照行が空白の時は、「〒」を表示させなくしたいのです。 どうか関数式を教えてください。よろしくお願いいたします。

  • ラベル印刷

    引き出しの中身がわかるようなラベルを作りたいと思っています。 ラベルはA4用紙に2×4で、1枚に8つ印刷できます。 データはエクセル作成で、入れる引き出しの番号、物品番号(連番ではない)、物品名の3つのみ。 物品番号と物品名を並べて印刷したいのですが、1つの引き出しに1から6つの物品が入るので、1つのラベルに印刷する行数がそれぞれ違います。 それぞれ6行分のデータがあればできるのですが、データの量が多いため行を挿入してデータ量を揃えるのは難しい状況です。 何か方法がありましたら教えてください。

  • Excelでのラベル印刷

    EXCELに入力されている顧客情報からWORDの差し込み印刷機能を利用してラベルを作成したのですが、使用する人達がパソコンをあまり使い慣れていない人達なので、出来ればEXCELからボタンひとつで作成出来るようにしたいと考えています。 その時に、1件をラベルすべてに印刷したり、ラベルの位置(何行目何列)を指定したり出来るといいという事なのですが、こういう事は可能でしょうか? VBA、マクロを使用して出来るのであればそれでもよろしいのでお願いします。

  • 名簿のデータを自動的に宛名ラベルにリンクさせる

    エクセルで名簿のデータを入力しています。(個人・団体・賛助・・・と複数の名簿データがあります。) 宛名ラベルはワードで差込印刷をしていて、それを保存させ毎年異動がある度に書き換えているみたいです。 この作業が面倒で、時間がかかって仕方ないです。 元データの名簿を入力したら自動的にラベルの方も変わるようにできないでしょうか?アクセスが一番いいみたいなのですが、職場のパソコンにはアクセスはありませんし、自分自身使ったことないので・・・。 出来れば関数かマクロ等でできれば・・・と思うのですが 一応自分なりに試作してみたのですが 名簿 a1:番号 b1:名前  C1:郵便番号 D1:住所 E1:住所2 宛名ラベルのb1にIF(ISERROR(VLOOKUP(A1,参加者名簿!$B$2:$G$105,3,FALSE)),"",VLOOKUP(A1,参加者名簿!$B$2:$G$105,3,FALSE)) a1に番号を入力すると名簿のデータが入るという感じにしたのですが、今の私にはこれがいっぱいいっぱいです。 住所2があるのとないのがあるので、セルの数が3つでいいのと4つ必要になる部分があるのですが、同じ形にすると4つで合わせるしかないので元データの入力されてない部分に番号を入れると()()()と表示されます。入力してない部分は表示しないようにできないのでしょうか? 他にもっといい方法がありましたら教えて下さい。 宛名ラベルは a1           b1→郵便番号   a2それぞれに番号入力  b2→住所 a3           b3→名前  をFまで同じように3×7列 パソコンは詳しくないので出来れば解りやすく教えていただけると助かります。 解り辛い説明で申し訳ないですが宜しくお願いします。  

  • 宛名ラベルへの印刷ができません。どうしたらよいですか?

    OSはXPで、WORD、EXCELは2000です。 WORDの差込印刷ヘルパーを使って宛名ラベルを印刷しようとしましたが、EXCELデータの挿入ができません。「現在のタスクを完了するためにEXCELに対し再度DDE接続を行うことはできません。」と出て、それ以上先に進みません。どうしたらようでしょうか。なお、昨年は同じようにしてラベル印刷ができましたが・・・。

  • 宛名ラベルのやり方を教えてください!!

    エクセルにあるデーターを、ワードで宛名ラベルにしたいのですが、ツールの【宛名ラベル】でやっても同じものが、バーッと2行に印刷されてしまいます。 どうすればうまくシールに印刷できますか?

  • word2007の宛名ラベル印刷について

    word2007の宛名ラベル印刷について教えてください。 既存のエクセルリストを呼び込んで、 ラベルシート1枚(1ページ分)につき1か所の宛先の印刷できる 宛名ラベルを作りたいのですが、 どうしても、リスト全部がシート1枚の印刷になってしまいます。 既存のリストを使わずに、手入力で住所等を入力すると、 1ページにつき1つの宛先の宛名ラベルは作るのは出来たのですが、 この方法だと、印刷を一度かけると、入力したデータの保存はできない ようなのです。 リストを使って1ページ1つの宛先を印刷できる方法、 もしくは、手入力して作成したものを、保存して次回も使える方法があれば 教えて下さい。

  • 宛名ラベルの印刷方法について

    はじめまして。私はEXCEL2002で作成した住所録を、Word2002の差込印刷ウィザードを使用して宛名ラベルを印刷しようとしています。 ですが、ラベルが中途半端な枚数分残ってしまい、大変もったいないので、ぜひとも宛名ラベルを指定位置から指定枚数分だけ印刷する方法をご存知の方がいらっしゃいましたら、教えてください。お願いします。

  • Word 宛名ラベル印刷について

    宛名ラベルを印刷しよとしています。 PLUSのテンプレートをダウンロードし、EXCEL(データは72件)を無事読み込み、印刷しようと思ったのですが、プレビューで見ると、1枚目の右側に出たデータが、2枚目の左側にそっくりそのまま表示されてしまいます。 1枚に12枚印刷できるラベルなので、本来なら6枚で済むはずですが、プレビューデータが重複している為、とても多い印刷枚数で出てきてしまいます。 初歩的な質問で大変恐縮なのですが、読み込み終わった状態で、データが重複しないように印刷するには、どのようにしたら良いでしょうか? よろしくお願い致します。

専門家に質問してみよう