Excel初心者のための連続印刷マクロ
- Excel初心者のための連続印刷マクロについて教えてください。
- 大量のデータを連続して印刷する方法を知りたいです。
- Vlookup関数を使用して表1のデータを自動的に表2に入力するマクロを作成する方法を教えてください。
- ベストアンサー
連続印刷のマクロをおしえてください。
お世話になります。 Excel初心者でマクロ経験は0です。 似たような質問はあるのですが、どこから手を付けていいのかわからず、また時間も無く新たに質問させていただきます。 表1 住所録 A列 通し番号がふってあります B列 送付先 C列 郵便番号 ... というような感じです。 表2 Vlookup関数でB2に表1のA列の値をコピペするとB3、B4、B5等に表1の値が表示されます。 大量に印刷するので、表2 B2に表1のA列の値を自動で入力できるようにしたいです。 A1からA100、A101からA200というように範囲指定できれば有難いです。 マクロはどこのボタンを押して始める というところからご教示をいただけましたら有難いです。 宜しくお願いいたします。
- lulula
- お礼率76% (463/606)
- Excel(エクセル)
- 回答数5
- ありがとう数10
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
VBA です。 住所録はA1から始まっている(ヘッダー無しのいきなりデータ)とします。 「1-50」のような形で印刷範囲を入力します。 Option Explicit ' Sub Macro1() Dim I As Worksheet Dim REnd As Integer Dim RInp As Integer Dim PageStr As String ' Set I = Sheets("住所録") Sheets("印刷").Select ' REnd = I.Cells(Rows.Count, "A").End(xlUp).Row PageStr = InputBox("開始-終了", "印刷処理", "1-" & REnd) ' If PageStr = "" Then End End If RInp = InStr(PageStr, "-") ' If RInp = 0 Then RInp = Val(PageStr) Else RInp = Mid(PageStr, RInp + 1) End If REnd = WorksheetFunction.Min(RInp, REnd) ' For RInp = Val(PageStr) To REnd [B2] = I.Cells(RInp, "A") ActiveSheet.PrintOut Next RInp End Sub マクロの入れ方。 https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/vba2013/01-intro02.html ボタンを作ってマクロを登録する方法。 https://briarpatch.co.jp/wakaruni/excel-macrobutton/ 初心者なら、サンプルがあった方がいいかもしれません。 https://1drv.ms/x/s!AnfEM367OeSdjH5q97ds2iGwVzhk?e=dEBL0Q
その他の回答 (4)
- heisukewada
- ベストアンサー率57% (69/120)
No.3です。 ラベル印刷なら、 ↓ が、簡単かと思います。 https://www.nakagawa-mfg.co.jp/info/2104/
お礼
ご回答ありがとうございます! ラベルはいつもWordで作成しておりました。 Excelでもできるのですね! とても興味深いです。 是非熟読して身につけたいと思います。 本当に有難うございます。
- heisukewada
- ベストアンサー率57% (69/120)
どこから書けばいいのか、いまいちわかっていませんが Excelに「開発」タブがない場合 ↓ を、参考に、リボンに追加してください。 https://office-hack.com/excel/development-tab/ マクロの作成、実行については、 ↓ を、参考にしてください。 https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/vba2013/01-intro02.html 名前の付け方は ↓ を、参考にしてください。 https://h1r0-style.net/excelvba/howto-use-name-manager/ 表2 に、印刷を始める行を、指定します。 例えば、A2 を指定します。 ”開始” と、言う名前をつけます。 A4 に、 ”終了” と、言う名前をつけます。 B1(表1のA列の番号が入るところですよね)に、”番号”と、言う名前をつけます。 B3:B5 を、印刷範囲に設定しておいてください。 Sub 宛名印刷() Range("番号") = Range("開始") Do While Range("番号") <= Range("終了") Sheets("表2").PrintOut Range("番号") = Range("番号")+1 Loop End Sub 大変申し訳無いのですが、引っ越しのためOfficeのはいったPCを、梱包してしまいましたので、検証できません。来週中には、引っ越して設置できるのではと思っています。とりあえず、頭の中だけで作成してみましたので、間違いがあるかと思いますが、おおよそ、こんな感じで印刷できると思います。
お礼
ご回答ありがとうございます! つい先ほど仕事が終わり、皆さまからいただいた回答を確認しております。 こんなに無謀な質問に対して、要求通りのご回答を本当に有難うございます。 確かに、どこから書けばいいのか。。となりますよね。 内容に関しましては、まだ確認できておりません。 明日、明後日で学びたいと思います。 Excelもこちらで質問しながらゆっくり学んできました。 マクロも少しずつ学びたいと思います。 引っ越しでお忙しい所、本当に有難うございました!
- imogasi
- ベストアンサー率27% (4737/17068)
(1)表1のどの項目(例 名前と郵便番号と住所)を使うか、書いてない。 複数項目になると難しくなる。 封筒・ハガキなどの郵便番号の(印刷)位置合わせは、VBAでも難しい。 (2)差し込む文書(受ける側)のことも書いてない。 こういうことを書かずに質問するのは、コンピュータ処理に(現状では)ついて、まだまだだと思ってしまう。(難しい点がわかってない) ーー ワードの差し込み印刷でも (1)封筒・ハガキなどの表書き か (2)書簡文章の指定場所(1か所か複数箇所かなども) によって挿入の位置合わせ的な難しさが変わる。 ーー ワードの差し込み印刷のVBAも易しくはない。途中でデータベース的なことが出てきたりする。 エクセルVBAでエクセル文書に差し込むのも、VBAも初等的でないし、位置調節が難しい。画面イメージと印刷物のギャップが(エクセルは、セル単位のため、とその他の理由で)起りえる。 小生は、最近ワードのVBAでエクセルVBAをも使い、1か所(氏名)のデータ項目を差し込んで印刷するものをつくってみたが、初心者が、自分に合わせて、たやすく修正できるものとは思わない。 ====== 今回のニーズが、 (1)まず封筒・ハガキの宛名印刷か、 (2)その他か明確にして (2)なら文例でも挙げるべきと思う。 == (1)なら市販の年賀状ソフトでも入手して、使えないか検討する。 あて名面と本文面は別ステップになるだろう。 (2)なら、それでも対応できるソフトを探す べきでしょう。 プログラム(VBAでも)を自作して対処なんて無理でしょう。
お礼
足りない部分のご指摘を有難うございました。 何とか形になりました。 こちらの捕捉に詳しく書かせていただきましたお陰でほぼ自分で加工しなくても良いものをいただけました。 本当に有難うございました。
補足
ご回答ありがとうございます。 言葉足らずで後から読み直すと、本当にひどい質問をしたものだと反省いたしました。 Excelで封筒の書式を作成したものがあったので、それを使えば早いかと思い検索したところ、マクロを組めば検索値を毎回入れなくても連続印刷ができる旨を他の質問で知り、今回の質問に至りました。 Excelは初歩的な関数とピボットテーブルまで学びましたが、マクロは本を読み始めたばかりで、これから勉強しようと思ってたところに今回の作業がありました。 ワードで満足のいくものはできましたがいい機会なので、マクロでできるよう学びたいです。 【表1のどの項目(例 名前と郵便番号と住所)を使うか】 表1 A列 検索値(A0001~A2000) B列 店舗名 C列 郵便番号 D列 住所 E列 電話番号 表2 長3封筒のテンプレート(何度も使用しており、特にズレたりはしていません。) VLOOKUPでB5に表AのA列の検索値を入力すると表1から B1 に郵便番号 B2 に住所 B3 に宛名 B4 に電話番号 が表示されるようになっています。 今回のニーズ (1) 長3封筒、窓、〒枠無 何とかできないでしょうか。
- yamada82
- ベストアンサー率28% (15/53)
たぶんWordの差し込み印刷機能を使う方が現実的だと思います。 「Word 差し込み印刷 はがき」 とかで検索すればやり方が出てきます。
お礼
とても現実的はアドバイスを有難うございました! 結論から申し上げますと、Wordの差し込み印刷でできました。 無地の封筒に料金別納郵便のマークと差出人情報、内容物等、何とかすべて印字でき、満足のいくものができました。 皆様のお返事を待ってからですと、間に合わなかったと思います。 本当に有難うございました。
補足
ご回答ありがとうございます。 他の質問を確認した際、マクロ使用の回答が多かった事と、封筒に他の印字もあり、Excelの方が印刷位置の微調整が私は簡単に感じるとので、このような質問になりました。 投稿後あまりにも丸投げな質問だと感じ、後悔しています。 WORDのラベル差し込みはできるので、確認してみます。
関連するQ&A
- Excelの関数またはマクロを教えて下さい。
Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。
- ベストアンサー
- 会計ソフト
- マクロを使って印刷したい
以前にも質問させて頂きましたが、私の説明が悪かったため再度させて頂きます。 A8:C50まで下記のようなデータが入っているとして No.1 山田産業 1230 No.2 東物産 2562 No.3 北村建設 3127 … … … A1:C3に下記のような表を作成します。 A列 B列 C列 1行目 □ VLOOKUP($A1,$A$8:$C$50,2,0) VLOOKUP… 2行目 □ VLOOKUP($A2,$A$8:$C$50,2,0) VLOOKUP… 3行目 □ VLOOKUP($A3,$A$8:$C$50,2,0) VLOOKUP… ----------------------------------- A列の□にA列の8行目に入っている数字を自動的に上から3づつ(No.1、No.2、No.3)表示させてはA1:C3を印刷したいのです。 (No.1,No.2,No.3表示→印刷 No.4,No.5,No.6表示→印刷・・・・・・) 例えばNo.50までデータがあるとして1クリックで最後まで順番に印刷させることはマクロで出来ますでしょうか? 知恵をお借りできれば幸いです。宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- マクロの記録で作成したマクロがデータが代わると誤動作する。
マクロの記録で作成したマクロがデータが代わると誤動作する。 エクセルファイルにてA列からJ列までデータがあります。 行数は2,000行です。データは全て半角です。 A列の値が 1=入庫 2=出庫 3=戻入 と全て置換 B列の値が 1=社内品 2=社外品 3=受入 と全て置換。 でこのB列が3で受入に置換えたら その隣のA列の値を 受入に置き換えたい。 さらに A列の値が置換え後の入庫と戻入場合はその行のJ列の値を切り取り、K列に貼付をし A列の値が置換え後の出庫の場合はその行のJ列の値を切り取り、L列に貼付をしたいです。 マクロの記録で行いましたが、 いったんデータを全て消して別データを貼り付けしたらA列B列の置換えは正常ですが B列が3の場合にA列を再置換えと、J列の値を切り取り、K列、L列への貼付が 誤動作します。 (別データは雛形は同じです。入力規則も同じですがデータは変わります。 例:セルA1のデータは1、 新しいデータはセルA1は2 等) マクロの記録中では、並べ替えでソートし上記条件でセルを選択しコピペをしました。 並べ替えは2回です。 マクロ文を見ると、セル名がずらずら並んで、セル番号が指定されてます。 (マクロ記録中に選択したセル番号が全部記録されてます。) 文を見ると、上記条件で置換えやコピペでなく このセルはこう置換え、このセルはこうコピペのように読めます。 これでは、データが代わったら、別の動きになるのかな?と思いました。 こういう場合はマクロではどうやって記録すればいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- excelでマクロを使用した連続印刷について
A2セルから通し番号、氏名、住所等のデータが入力されている「データ」シートがあり、 VLOOKUPを使用してB3セルに「データ」シートのA列にある「通し番号」を 入力すると氏名・住所等が反映される「印刷」シートがあります。 例えば「データ」シートのC列(住所)に「東京都」という文字列が 含まれている宛名のみを連続で印刷したい場合、 どのようなマクロになりますでしょうか? (マクロ内に「東京都」と指定する方法と、 シート内の特定セルに入力した文字列で指定する方法が ありますでしょうか?) wordでの差し込み印刷や、宛名ソフト等の使用は考えておりません。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 連続番号を振るマクロ
マクロ初心者です。 以下のようにA列に番号を振るマクロを教えてください。 A B 1 001 ああああ 2 002 ああああ 3 003 ああああ 4 011 いいいい 5 012 いいいい 6 021 うううう B列のセル内容が変わると10の位が1つ増え、次に内容が変わるまでカウントします。 よろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
- ちょっと特殊な連続印刷のマクロを教えてください
次のような名簿があるとします。 A列 B列 通し番号 名前 1 阿部 2 佐々木 空白 空白 4 木村 5 田辺 空白 空白 空白 空白 8 三浦 通し番号が入力されていない場合は、名前も表示されない様になっています。 セルC1に通し番号を順々に表示(マクロで指定) セルC2にその番号の名前を参照表示←個人票として印刷 番号があれば(名前が表示されれば)印刷 としたいです。 個人票を連続印刷したいのですが、空白を飛ばして、 番号が入っている人だけを印刷、というマクロがどうしても組めません。 一つ一つ、番号が入っていれば名前を印刷のようなマクロを延々と 組むことは出来るのですが、名簿が長大なのでそれは避けたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VLOOKUP関数とCONCATENATE関数で封筒に宛名印刷
エクセルで、A列には郵便番号、B列に住所、C列は会社名、D列に名前が入力された表があります。 ひとつのセルを検索ワード入力専門のセルとし、そこに会社名を入れることで、VLOOKUP関数とCONCATENATE関数を使って封筒の宛名印刷をしようと思いますが、式の組み方がよくわかりません。 ご助言下さい。 マクロはわかりません。 宛名印刷ソフトを使ったりせず、会社の封筒に体裁を合わせて印刷しようと思いますので、エクセルで宛名印刷したいです。
- 締切済み
- オフィス系ソフト
- 昇順に並んだデータでVLOOKUP関数を使いたい
EXCELの関数について教えてください。 VLOOKUP関数では左端列のデータを 昇順に並べることがルールになっていますよね。 しかし、データの並べ順が変えられない場合 どうしたらいいのでしょう。 例えば 1等 100点 2等 50点 3等 0点 と並べられたデータがあったとして 45点以上の最下位は何等かを求める関数です。 これが 0点 3等 50点 2等 100点 1等 であれば VLOOKUP(45,A1:B3,2) でいいのでしょうか。 マクロにも簡単なものになら ふれるようになってきましたが 関数についてさえも まだまだ分からないことがたくさんあります。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- マクロ(Excel)で検索して値の返し方について
マクロの初心者です。関数でいうvlookupなどを使って、 検索した値を反映させるマクロをお教え下さい。 ファイル名「担当ID.xls」のB列へ「顧客名簿.xls」から 検索したC列(地域)を返したいです。 お手数おかけしますが、全くの初心なので、マクロの 説明コメントも記載して頂けると助かります。 ■ファイル名:担当ID.xls 列A B C 顧客番号 地域 担当ID A-1111 ? os123 A-2222 ? nr456 A-3333 ? wk789 ■ファイル名:顧客名簿.xls ■シート名:Sheet1 列A B C 顧客番号 名前 地域 A-1111 A 大阪 A-2222 B 奈良 A-3333 C 和歌山 以上です。よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- マクロをすっきりさせたい・・・
いつもお世話になっております。 下記、マクロを組んだのですが、 簡潔にまとめるには、どうしたら良いでしょうか・・・ 宜しくお願い致します。 Set 範囲 = Workbooks("A.xls").Worksheets("マスター").Range("A2:G4000") ThisWorkbook.Activate 列番号 = 7 検索値 = (Worksheets("B").Range("B24")) Range("D14").Value = WorksheetFunction.VLookup(検索値, 範囲, 列番号, False) Set 範囲 = Workbooks("A.xls").Worksheets("マスター").Range("A2:G4000") ThisWorkbook.Activate 列番号 = 7 検索値 = (Worksheets("B").Range("B25")) Range("D15").Value = WorksheetFunction.VLookup(検索値, 範囲, 列番号, False) Set 範囲 = Workbooks("A.xls").Worksheets("マスター").Range("A2:G4000") ThisWorkbook.Activate 列番号 = 7 検索値 = (Worksheets("B").Range("B26")) Range("D16").Value = WorksheetFunction.VLookup(検索値, 範囲, 列番号, False)
- ベストアンサー
- オフィス系ソフト
お礼
できました!! たまたま詳しい方が近くにいたので、一緒に設定してもらいました。 この内容を理解できるよう調べて学びたいと思います。 本当に有難うございました!