• ベストアンサー

エクセル 選択して宛名シール印刷する方法

エクセル(2010ですが)で、簡単に宛名シールを印刷する方法は、 ・エクセルにあるラベル印刷ウィザードをつかう ・ワードの差込印刷を使う かと思います。(ざっと調べたところ) できれば、エクセルで、個人のデータを選択→選択したものについて、宛名印刷する、というのをしたいのですが、比較的簡単に(高度な方法しかなければそれでもよいのですが) 私自身はACCESSだと、そのように簡単にできるのですが、メンバー全体でつかうのと、まだ件数がそこまで多くない(300くらい)ので、できれば融通の利くエクセルでやりたいのですが。

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

  • ベストアンサー
回答No.2

アクセスを使えるなら、 アクセスで作ってランタイムでも配布したら良いのに。 その方が楽なのに。 エクセルよりアクセスの方が融通利くのに。 と思ってみたりする今日この頃です。 気を取り直して。 「選択」とはどのような動作を想定していらっしゃいますか? ソレによって方法が少々変わります。 とりあえず、私が想定できる範囲で考えると、大別して2通り。 と、その前に共通事項。 エクセルには、アクセスのレポートのような いわゆるレイアウト印刷の機能はありませんので、 コツコツと希望の位置に項目(セル)を配置する必要がある、 というのが前提です。 ここは頑張って位置合わせしてください、としか言えません。 住所録があるシートを「リスト」   A列:連番または抽出フラグ   B列:住所   C列:名前   D列:作業用一時セル であり、1行目に項目名、2行目以降にデータがあるもの。、 印刷レイアウトがあるシートを「印刷」   A1セル:住所を打つべきセル   A2セル:名前を打つべきセル とし、 使わない方法もありますが、印刷対象を抽出するシートを「対象」   列構成は「名前」シートに同 という名前・構成に統一して、以下進みます。 さて、方法の1つめ。 「選択された(フォーカスがある)行」を印字対象にします。 VBAをコッソリ使うのですが、アクセスをお使いなのであれば ソレについて細かい説明は不要でしょうから割愛。 「リスト」シートの「SelectionChange」イベントに Private Sub Worksheet_SelectionChange(ByVal Target As Range)   WorkSheets("印刷").Range("A1") = WorkSheets("リスト").Cells(Target.Row, 2)   WorkSheets("印刷").Range("A2") = WorkSheets("リスト").Cells(Target.Row, 3) End Sub と記述。 これで、「リスト」シート内でフォーカスが動けば、 その「選択した」行のデータを「印刷」シートに抽出してくれます。   ※印刷レイアウトは同じシートの中にあってももちろんOKですよ。 折角VBAを使うのであれば「印刷」ボタンを用意するのもアリですね。 Webで探せば情報がゴロゴロしてますので、ご参照ください。 んで、大別2つめ。 VBAを使わずに、関数だけでやっつけます。 その1。 「リスト」シートのA列に設けた「連番」を使用します。 「印刷」シートの適宜セル(印刷範囲外)を 「印刷したいデータの連番を入力する」セル(例としてB1)と定義し、 それぞれ「印刷」シートの   A1セル:=VLOOKUP($B$1,リスト!$A:$C,2,FALSE)   A2セル:=VLOOKUP($B$1,リスト!$A:$C,3,FALSE) としてやります。 エクセルではド定番の関数の一つですので、詳細は割愛。 コレでも、1件ずつ「選択して」印刷が可能です。 この場合は、同じシートにある方が便利かもしれません。 その2。 宛名シールというくらいですし、 もしかしたら一気に複数枚打つんじゃないか?と想定して。 「リスト」のA列を「印刷対象フラグ」として、 まぁなんでも良いんですが、印刷対象に「1」と立てるように運用します。 で、「リスト」のD列に作業用の列として   D2セル:=IF(A2=1,ROW(),"") としてやり、必要な行にフィルしておきます。 で、「抽出」シートに   A1セル:=IF(COUNT(リスト!D:D)<ROW(A1),"",INDEX(リスト!B:B,SMALL(リスト!D:D,ROW(A1))))   B1セル:=IF(COUNT(リスト!D:D)<ROW(A1),"",INDEX(リスト!C:C,SMALL(リスト!D:D,ROW(A1)))) として、それぞれ必要だと思う行数分、フィルしてやります。 これで、印刷したい複数レコードの抽出が完了です。 問題は「印刷」シートです。 前述通り、エクセルには「繰り返して印刷する」機能が無いので ここはかなりの力業が必要です。 で、(私は)これを文字でうまいこと表現できません。 なので、キーワード「等差数列」とだけ申し上げておきます。 この例で言うと、「抽出」シートのA1セルを「印刷」のA1セルに。 「抽出」シートのA2セルを「印刷」のA3セルに。 「抽出」シートのA3セルを「印刷」のA5セルに・・・(以下繰り返し) としてやれば良いんですが・・・ すいませんが、何かうまいこと考えてください(笑)。 これで、複数レコードの印刷もなんとかできました。 ・・・アクセスでクエリを組んで、レポートの方が楽でしょ? で、どんな手段でやるにせよ、エクセル・・特にVBAは 基のレイアウトを少しでも変更すると、 全体的に見直しが必要になる可能性があります。 加え、複数のデータを抽出・印刷するとなるとソコソコの重労働ですし、 仮に同じリスト(テーブル)で違うレイアウトを・・と考えると また同じだけの重労働を嫁せられてしまいます。 エクセルの「融通利かなさ」はここにあると思いますよ。 ま、要するに 「エクセルは表計算ソフトであって、データベース管理ソフトではない」 という事ですね。

spongetak
質問者

お礼

なるほどです、エクセルの融通の利かさなというのがイメージでよく分かりました。 一応、方法の見通しはついてきました。ありがとうございます。

spongetak
質問者

補足

とりあえずは、 抽出は以下の方法で、 https://www.wanichan.com/pc/word/2007/mail-merge/envelope/page05.html 宛名ラベルは、下記ので型を保存して使う方法で、パターン化できそうです。 http://www.nakagawa-mfg.co.jp/info/432/ ありがとうございます。

その他の回答 (2)

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

>私自身はACCESSだと、そのように簡単にできるのですが   (1)コンピュター処理は、出来合いのソフトを使う (2)オフィスの機能を使う(例エクセルやアクセス、宛名印刷) https://support.office.com/ja-jp/article/Excel-%E3%81%A7%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E5%B8%B3%E3%81%AE%E5%AE%9B%E5%90%8D%E3%83%A9%E3%83%99%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B-d9484315-5123-48ae-bc58-2e8dcf271252 (3)MSオフィスの絡みなら、VBAで作る (4)専門業者に頼んでソフトを作ってもらう (5)専門印刷業者に頼む(多量のラベルシールなど) 本件気になるのは(3)だ。 >はACCESSだと、そのように簡単にできるのですが それなら、それでやればよいのでは。 アクセスやエクセルVBAの経験があるのかな。 ないならあきらめること。 この世は自分で作るか、金で買うか、会社ならシステムの絡みなど後者で行うはず。(素人が作ると、使う人が不満な場合も多く経験した。) 自分で作るなら、まず取り掛かって、行き詰まった点を質問すべきだ。 思い付いて、すぐこの質問文を書いたように見える。人頼みせず、自力で踏み出すこと。コードなどを下請け的に回答者に書かせられてはかなわない。 ーー 宛名シールはサイズなど、要望に合わせるのは、私の素人経験から、VBAの素人には大変だと思う。素人は印刷を何べんも繰り返してみて、サイズなど最適を探るほかないのではと思う。 ーー そもそも、宛先のデータ内容もどういうのか説明がない。プログラムを組んだものなら、むつかしい点がすぐ書けるはず。 郵便番号はあるのかとか、住所の中身(気付け=マンション名、階・号などの部分の最長や連名、部署の長いものなどないのか。) エクセルVBAのユーザーフォームを使ってやってみる(下記)と、コード行数は大したことない。サイズ・配置・フォントサイズなどの合わせは、残念ながら、小生は計算してやる力はない。 シートのある行のデータを使ってーユーザーフォーム作成(テキストボックス)ーVBAで印刷指示ー次の行データを指して、処理を繰り返す。 コマンドボタンを設けた場合は、「オブジェクトを印刷しない」にして、そのコントロール」は印刷しないようにできる。 ラベルシールの連続か単票かよるコントロールがどうなるか。

spongetak
質問者

お礼

どうもありがとうございます、VBAはほとんどやったことないのです。 一応、いろいろ調べてみて、できそうな方法は見通しがついてきました。ありがとうございます。

  • ts0472
  • ベストアンサー率40% (4485/11068)
回答No.1

宛名シールを使うのであれば シールメーカー提供のソフトを使った方が便利なのでは? 私はOfficeが苦手なので http://www.labelyasan.com/support/manual/insertion/step3.php https://www.hisago.co.jp/download/kobo/faq02.htm#2_13_1 エクセルで抽出したデータを別保存して使っていた経験があります 印刷ソフトでの項目選択が減らせる

spongetak
質問者

お礼

ありがとうございます。ラベル屋さんで、こんなこともできるのですね。知りませんでした。