• ベストアンサー

Excelでのラベル印刷

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

過去のOKWEB照会で同様内容らしきものを挙げます。N0.439670、NO.389511、NO.375368,NO.315385、NO.165813 最後のものには、荒っぽいですが、VBAコーディングのあらすじらしきものも小生が載せています。一度ご覧になってください。 もっと(1)エクセルで印刷位置のコントロールが出来る とか(2)WordVBAでワードの差込み印刷まで含めてコントロールできる技量があれば、完全なコーディング解答になるのですが、自分が残念です。 (1)ラベルの種類(A4,B5)(2列・3列)    上・下・左・右余白、1枚の縦横cm (2)エクセル表の行を指定するID項目(有・無) (3)ラベルに印刷する項目・配置 (4)ワークシートの項目概要、行数(レコード数)概数 を補足していただければ、より具体的にコード見本を 作れるかもしれません。

t-tomo
質問者

補足

早速のお返事ありがとうございました。 (1)ラベルの種類(A4)(2列5行) 余白→上(0.2)、下(0.4)、左(0.25)、右(0.5)。 1枚の縦横→縦(7.8)、横(4.6) (2)エクセル表の行を指定するID項目(無) (3)ラベルに印刷する項目・配置 郵便番号 住所1  住所2 (1行あける) 支払先名  所属 (1行あける)  窓口            (コード) (4)ワークシートの項目概要 コード、仕入先名、棚番、住所1、住所2、電話番号、窓口、FAX、郵便番号 行数(レコード数)→150件(これからも増えます) という事でよろしいでしょうか?

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

(その1) 補足を頂いて後、日数もたちますので、一応の解答を入れます。バグ(誤り)やお気に召さない点があると思いますが、ご容赦願います。一応100件以上でテストして、 印字は確認しました。ただ位置合わせは難しいと思いますが、列幅・行高の伸縮で上手くラベル内に納めるようテストプリントを繰り返してください。 (1)列の構成 (A)出状サイン(B)コード(c)仕入先(D)棚番(E)住所1(F)住所2(G)電話番号(H)所属(I)窓口(J)FAX番号(K)郵便番号 出状サインは現状ないかもしれませんが、列挿入で1列作ってください。 <OKWEBの1回当たりの文字制限があるようで、以下は(その2)に続きます> プログラムは、ある行が横に長いと、OKWEBで次行に 強制改行されるところが、発生します。そこは上の行の 右に次行をくっ付けて、作りなおして・修正してください。そうしないとエラーになります。

t-tomo
質問者

補足

回答ありがとうございました。 早速ためしてみたところ、 sh2.Range(Cells(1, "a"), Cells(60, "k")).ClearContents の位置で’実行時エラー1004’になってしまいました。 よろしくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(その2) そしてラベルを作成する先(行)のA列に「1」を入れて、本プログラムを実行してください。 (2)テストプリント用紙 ラベル用紙(本物)のシールの切れ目(ミシン線?)のところを鉛筆と定規で線を引いて下さい。 そして複写機で20枚ほど複写を取り、そのコピーした紙をプリンタにセットしてしてください。 (3)まずテストプリント「内容」項目・配置のチェック テストプリンとして、シールに収まるか位置合わせは別にして、内容的に我慢できるかどうかチェックすること。結果を報告してください。 フォントのサイズもチェックしてください。 (3)位置合わせチェック・横幅 ラベルの10枚のシールに横2列に収まるかどうか、Sheet2のA列とG列が遊びとして何も印刷していないので、列幅を伸縮させて調節してください。 フォントのサイズも影響すると思います。 (4)位置合わせチェック・縦巾 ラベルの10枚のシールに縦5個に収まるかどうか、ミシン線を越えていないか、Sheet2の1列と 列が遊びとして何も印刷していないので、行高を伸縮させて調節してください。 フォントのサイズも影響すると思います。 Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") '出状先データ(住所録 Set sh2 = Worksheets("sheet2") 'ラベルのフォーマット sh1.Activate d = sh1.Range("b2").CurrentRegion.Rows.Count ' MsgBox d sh2.Activate sh2.Range(Cells(1, "a"), Cells(60, "k")).ClearContents sh1.Activate hidari = "y" For i = 2 To d '---A列だブランクの行は処理せず If sh1.Cells(i, 1) <> "1" Then GoTo p01 n = n + 1 '--------ラベル左側 If hidari = "y" Then sh2.Cells(lblgyo + 1, "b") = sh1.Cells(i, "k") '郵便番号 sh2.Cells(lblgyo + 2, "b") = sh1.Cells(i, "e") '住所1 sh2.Cells(lblgyo + 3, "b") = sh1.Cells(i, "f") '住所2 sh2.Cells(lblgyo + 5, "b") = sh1.Cells(i, "c") & "御中" '仕入先 sh2.Cells(lblgyo + 6, "b") = sh1.Cells(i, "h") & "様" '所属 sh2.Cells(lblgyo + 8, "b") = sh1.Cells(i, "i") '窓口 sh2.Cells(lblgyo + 8, "e") = sh1.Cells(i, "b") 'コード hidari = "n" Else '--------ラベル右側 rightrtn: sh2.Cells(lblgyo + 1, "h") = sh1.Cells(i, "k") '郵便番号 sh2.Cells(lblgyo + 2, "h") = sh1.Cells(i, "e") '住所1 sh2.Cells(lblgyo + 3, "h") = sh1.Cells(i, "f") '住所2 sh2.Cells(lblgyo + 5, "h") = sh1.Cells(i, "c") & "御中" '仕入先 sh2.Cells(lblgyo + 6, "h") = sh1.Cells(i, "h") '所属 sh2.Cells(lblgyo + 8, "h") = sh1.Cells(i, "i") & "様" '窓口 sh2.Cells(lblgyo + 8, "j") = sh1.Cells(i, "b") 'コード hidari = "y" lblgyo = lblgyo + 10 If lblgyo > 44 Then prtrtn '印刷 sh2.Activate sh2.Range(Cells(1, "a"), Cells(60, "k")).Clear sh1.Activate lblgyo = 1 End If End If p01: Next i prtrtn '印刷 MsgBox n End Sub Sub prtrtn() With Worksheets("sheet2").PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(9.84251968503937E-02) .RightMargin = Application.InchesToPoints(0.196850393700787) .TopMargin = Application.InchesToPoints(0.078740157480315) .BottomMargin = Application.InchesToPoints(0.15748031496063) .HeaderMargin = Application.InchesToPoints(0.511811023622047) .FooterMargin = Application.InchesToPoints(0.511811023622047) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 End With Worksheets("sheet2").Range("a1:j50").PrintOut Copies:=1, Collate:=True End Sub

関連するQ&A

  • Wrod2000差し込み印刷ができない

    WinXPでWord2000を使用しています。 Excelで作成した住所録を利用して、 Wordでラベルを作成しようとしています。 Wordで[ツール]→[差し込み印刷ヘルパー]を開いて、 指示通りに設定をし、Excelデータを挿入するところまでできました。 3列×7行の既定のラベルサイズを選んでいるのに、 [差し込み]を完了すると、なぜか、 3列×8行の状態になってしまいます。 さらに、1枚目の8行目と2枚目の1行目に 同じデータが入ってしまっているのです。 どうしてこのような状態になってしまうのかわかりません。 どなたかアドバイスをお願いいたします。

  • Word2003宛名ラベルへの差し込み印刷

    Win XP Word2003 Excel2003 です。 エクセルで作った住所録を、ワードの差し込み印刷機能を使用して 宛名ラベルを作成しています。 21面の宛名ラベルで、以前に使用した残りのラベルシールを再度利用したい時、 『今回は18番目のラベルから印刷する』みたいに、 任意のラベル位置から印刷することは可能でしょうか? この場合の設定方法を教えてください。 当方、エクセルはそこそこ理解していますが、 ワードはさっぱりですので、できましたら簡単にお願い致します。

  • エクセル2003で、宛名印刷(差込印刷)をしたいのせすが、、、?

    エクセル2003で、宛名印刷(差込印刷)をしたいのせすが、、、? 差込印刷は、ワード側で、ツール、はがきと差込印刷、宛名ラベル作成、ここまではわかるのですが、、?あと、エクセル側で、リストを作成すること(1行目はタイトル行扱いになること)、、、ここまでは、わかるのですが、、 どうも、ここからが? すいません、ご教示ください。 ※あと、ワード文書内に宛名欄にも、そのエクセル側で作成した、宛名リストを利用したいのですが、、?

  • エクセルデータのラベル印刷方法

    ワードにてエクセルデータをラベルとして差し込み印刷する場合、ラベルが無駄にならないよう印刷開始位置を指定したいのですが、その方法を教えて頂けないでしょうか。 宜しくお願い致します。

  • Excel 宛名ラベル作成で、社名が変わったら改ページしたい。 

    宛名ラベル作成について質問させていただきます。 はじめはwordの差込印刷を使用していたのですが、 社名ごとに改ページを入れることが出来ず、各社ごとのデータを作り、会社数分(約300社)を1枚ずつ差込みしている状態です。 Exceiでマクロを使用してできるのではないかと思い、 調べてみたのですが、宛名ラベルの形式が、3列×8行の24枚シートなので、どうもうまくいきません。 …マクロ初心者なのに手を出してしまった浅はかな考えを反省しています。 データは社名、役職、氏名の3種類です。 それを左から右へ順番にデータが入っていき、 社名が変わると印刷され、 開始位置にもどり、 再び、データが入っていく…というようなことが、マクロで可能でしたら教えていただきたく、思います。 マクロでなく、ワードで可能!というご指摘も大歓迎です。 ちなみに、うちの会社ではアクセスが入っていません。 いままでこういったものは外注していたようで…。 どうぞよろしくお願いいたします。

  • ワードでラベル印刷

    困っています。 エクセルで住所録を作成したのですが、 ワードの差し込み印刷でラベル印刷したいのですが よく分かりません。 どなたか教えて下さい。 多人数なので、新しく打ち込むのはかなり時間が かかるのです。 教えて下さい~。

  • エクセルのリストを使ってワード宛名ラベルの差込印刷

    こんにちは エクセルで作成した顧客リストを使って ワードの差し込み印刷の宛名ラベルを作成中です。 顧客リストには 会社名(A列)、郵便番号(B列)、住所(C列)、担当者(D列)があり、それぞれ2行目以降にデータが埋め込まれています。 問題は、複数担当者がいる場合です。1つの会社に複数担当者がいる場合、会社名・郵便番号・住所欄は最初の担当者の行にのみ記され、2人目(2番目)以降の担当者欄の会社名・郵便番号・住所欄は空欄となっています。 担当者が4人いるとすると2-4番目に記された担当者の宛名ラベルに当然のことながら会社名・郵便番号・住所が出てきません。 住所欄を空欄にせず、きちんと情報を入れると問題が解決されるのは十重承知していますが、それだとエクセルの顧客リストが見にくくなってしまい、それは避けたい手法(※)です。 ワードのIF関数を使うとか、もしくはエクセルの顧客リストに上記※以外の手を加えて解決するのであれば、その方法を教えて頂けませんでしょうか? 300近くの顧客があり、その半数において、複数担当者が存在し、簡単な方法がないものかと困っております。 よろしくお願いいたします。

  • ワードの宛名ラベル印刷を保存したいです

    こんにちは。 DM送付をするにあたって、エクセルに入っている大量の顧客リストから、ワードのツール→差込印刷で宛名ラベルを作成しているのですが、「差し込みフィールドの挿入」で組み立てた「住所」「会社名」「名前」などの挿入したデータを、次回からも定期的に顧客が増える度に、継続して使用したいので、保存をしたいです。どうすればいいですか? 今のやり方は、リストが増えてDMを作成するたびに、「ツール→差込印刷」を選択し・・・という一連の作業を1からやっている状況です。。

  • word2003 宛名ラベル印刷のやりかた

    先ずEXCELで A列に学校名 B列に 氏名 を入れた表(1)を作成しました。 これを使って、Word2003 で宛名ラベル印刷をしようとしています。 差込印刷ウィザードをスタートし最後の方の ラベルの配置まで進み、カードの先頭ラベルに学校名と氏名を入れて位置や字体などを調整しました。そしてExcelで作成しておいた表(1)の全データを入力しようと、右側の作業ウィンドウの『すべてのラベル更新』ボタンをクリックしたら、すべてのラベルが皆同じもの(表(1)のA1セルの学校名 B1の氏名)になってしまいました。なんどもやり直したのですが ラベルが全部同じになってしまい 途方に暮れています。どこか手順が抜けているのでしょうか?お教えください。

  • エクセル住所録から宛名ラベルの印刷方法は?

    エクセルで、住所録を作成し、それをラベル印刷する方法を教えてください? ワード、エクセルとも2003です。 過去の同様の質問等を見ましたが、そこで説明されている、ワードの「ツール」の中の「差込印刷ヘルパー」というのが私のワードにはないのです。 エクセルワードに詳しい方お願いします。

専門家に質問してみよう