- ベストアンサー
エクセル 選択して宛名シール印刷する方法
エクセル(2010ですが)で、簡単に宛名シールを印刷する方法は、 ・エクセルにあるラベル印刷ウィザードをつかう ・ワードの差込印刷を使う かと思います。(ざっと調べたところ) できれば、エクセルで、個人のデータを選択→選択したものについて、宛名印刷する、というのをしたいのですが、比較的簡単に(高度な方法しかなければそれでもよいのですが) 私自身はACCESSだと、そのように簡単にできるのですが、メンバー全体でつかうのと、まだ件数がそこまで多くない(300くらい)ので、できれば融通の利くエクセルでやりたいのですが。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
アクセスを使えるなら、 アクセスで作ってランタイムでも配布したら良いのに。 その方が楽なのに。 エクセルよりアクセスの方が融通利くのに。 と思ってみたりする今日この頃です。 気を取り直して。 「選択」とはどのような動作を想定していらっしゃいますか? ソレによって方法が少々変わります。 とりあえず、私が想定できる範囲で考えると、大別して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は 基のレイアウトを少しでも変更すると、 全体的に見直しが必要になる可能性があります。 加え、複数のデータを抽出・印刷するとなるとソコソコの重労働ですし、 仮に同じリスト(テーブル)で違うレイアウトを・・と考えると また同じだけの重労働を嫁せられてしまいます。 エクセルの「融通利かなさ」はここにあると思いますよ。 ま、要するに 「エクセルは表計算ソフトであって、データベース管理ソフトではない」 という事ですね。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>私自身は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で印刷指示ー次の行データを指して、処理を繰り返す。 コマンドボタンを設けた場合は、「オブジェクトを印刷しない」にして、そのコントロール」は印刷しないようにできる。 ラベルシールの連続か単票かよるコントロールがどうなるか。
お礼
どうもありがとうございます、VBAはほとんどやったことないのです。 一応、いろいろ調べてみて、できそうな方法は見通しがついてきました。ありがとうございます。
- ts0472
- ベストアンサー率40% (4485/11068)
宛名シールを使うのであれば シールメーカー提供のソフトを使った方が便利なのでは? 私はOfficeが苦手なので http://www.labelyasan.com/support/manual/insertion/step3.php https://www.hisago.co.jp/download/kobo/faq02.htm#2_13_1 エクセルで抽出したデータを別保存して使っていた経験があります 印刷ソフトでの項目選択が減らせる
お礼
ありがとうございます。ラベル屋さんで、こんなこともできるのですね。知りませんでした。
お礼
なるほどです、エクセルの融通の利かさなというのがイメージでよく分かりました。 一応、方法の見通しはついてきました。ありがとうございます。
補足
とりあえずは、 抽出は以下の方法で、 https://www.wanichan.com/pc/word/2007/mail-merge/envelope/page05.html 宛名ラベルは、下記ので型を保存して使う方法で、パターン化できそうです。 http://www.nakagawa-mfg.co.jp/info/432/ ありがとうございます。