• ベストアンサー

すみません。印刷マクロをもう一度

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。Wendy02です。 >Target_Date 部分と .Offset(-1) 部分を >変更すればいいのかと...考えています。 遅くなりましたが、もう一度、見直して、そして、コードを読みきり、問題点が分かりました。 それは、実際に動かしてみても、そのマクロの意味が理解できないのです。たぶん、前の段階では、きちんと説明されたから、そのマクロが出来上がったものだと思います。ただ、hirosatonnさんの希望通りだったのかは、かなり疑問が残ります。だから、質問を再度出されたものだと思います。そのマクロだけですと、ここでは出ていない、無駄があるのではないでしょうか? 今回のご質問自体、その印刷日の付け方、受付番号の付け方など、基礎的な情報が欠けてしまって、途中から、他人のコードを直すというのは、出来ないことがわかりました。ログがあれば、少しは違うはずです。これは、このままでは、前回回答された方以外は、誰が回答しても同じ結果になると思います。 ご指摘された、この部分ですが、   'ここは、A列の最後の行を探していますが、つまり、受付番号の最後です。   EndRw = .Range(Left_Col & "65536").End(xlUp).Row   'つまり、ここでは、日付が入っているということになります?   'そこが意味が分かりません。日付というのは、印刷日だったと思います。   '印刷日を入れているのだから、印刷しないはずでは??・   Target_Date = .Range(Target_Col & EndRw).Value   '以下は、同じ日付の部分を戻って探しているようです。      Do While .Range(Target_Col & TopRw).Value = _       .Range(Target_Col & TopRw).Offset(-1).Value       TopRw = TopRw - 1       If TopRw = 1 Then Exit Do     Loop    ・    ・    ・     '印刷した日付を印刷日へ     'そして、検索した受付番号を再び、本日の印刷日付に入れている??     rngFC.Offset(0, 19).Value = Date      特に、よく分からないのは、受付番号が、最後まで入っていることですね。 最後を探して、そこの印刷日付を取っているのです。 EndRw = .Range(Left_Col & "65536").End(xlUp).Row なのに、最初に、受付番号を探しているわけです。 そして、印刷したら、rngFC.Offset(0, 19).Value = Date と、本日の日付を入れるのでは、その論理自体が分からないです。 私は、ここのところ、花粉症で頭が痛くて、頭がボケていたようです。(^^; 言い換えれば、印刷日と受付番号の因果関係が分かりません。印刷日に対して、再び、印刷しているのでは、矛盾しています。 印刷日は毎日するものかどうかは別ですが、少なくとも、印刷する前に日付が入っていたら、その部分は印刷はしませんよね。 ---------------------------------------------------------------- まず、前のことは一応置いておいて、私の考え方を理解してください。単純ですから! >判断基準(印刷最初の番号;最後の番号を入力) 私の考えたのは、最初の番号は、次には、最後の番号の手前になるわけだと思うのです。 単に、その部分で範囲を設定するなら、本当にシンプルに範囲を取るだけで、印刷日付を入れるにしても、単純に、その範囲に日付を入れるだけです。 前回、「1025~ 1175」が範囲なら、 次は、「1176 ~ 1265」というようなものになりますから、'1175' を確保しておけば、次に使えるわけです。つまり、それが途中から始まる場合は、最初に、'1175' が登録されていなければなりません。'1265' は、新規にユーザーが入力して探すようなプログラムを作ります。 「1025~ 1175」のT列の印刷日は前回の日付。印刷する前は「1176 ~ 1265」は、空欄で、印刷してから印刷日が入ります。 ただ、前回の番号'1175'が、正しく登録されていないと、今回のような「プロパティを見てください」というエラーが出ます。 その場合、手動で行うには、ワークシートメニューのファイル-プロパティ-ユーザー設定-「記録番号」に正しく登録する必要があります。(一応、自動的に登録されるように出来てはいます) そのエラーの原因がはっきりしないと、こちらのコードは進みません。この部分がクリアしない限りは、私の今考えているものは、無理です。 既存のものを直すというのは、考え直したほうがよいです。考え方のロジックが、明確にならない限りは、それは使えませんね。ただし、私には、そのマクロのロジックが理解できません。 考え方は、理解していただけましたでしょうか? 個々の技術的な問題は別ですが、考え方としては、シンプルだと思います。

hirosatonn
質問者

補足

Wendy02さんご回答ありがとうございます。既存のものを直すというのは本当に難しいものなんですね。すみません。Wendy02さんの考えていただいたものを私は望んでいるのです。(表現が下手なもので・・) Msg Boxを使って(最初と最後の番号をたずねる方式)、できないかなあ~と思い悩んでいます。 あつかましくて申し訳ありませんが、お助け下さい。

関連するQ&A

  • 助けてください。印刷マクロを

    OS:XPSP2,Excel2002で印刷マクロを教えてください。 "入力シ-ト"に顧客管理用で下のようなデ-タが入っています。      A列     B列   C列  2行目:受付番号   氏名   住所; ・・・・・・S(列) 3行目 80001   玉田                      80002   山田      80003   上田       ・       ・ 受付番号はすでに85000くらい(不確定)まで入力済みです。 氏名以下をデ-タとして日々入力していき作成し、件数がかなり溜まった(数百件くらい)ときに印刷をするといった仕事です。 マクロを使って、印刷したいデ-タをMsgで”最初の番号を入力”で受付番号を入れて次に同じようにMsgで”印刷最後の番号を入力”で受付番号を入れて、その間のデ-タをA列からS列まで印刷するものです。  

  • 教えて!エクセルでの印刷マクロ

    シート1に下のようなデータベースがあります。  受付番号 氏名 〒 住所    1    2    3 データを1から順に入力して、入力内容が日によって違いがあるのですが、入力した分だけ印刷できるマクロがわかりません。 前日、1から15まで入力して印刷、今日は16から50まで入力して、その分(16~50まで)を印刷(前日印刷した分は印刷しない)、次の日は50件入力(印刷は51~100まで)となるようなマクロです。 どなたか、ご教授くださいませ。 

  • ラベル印刷ソフトで連番を一度に印刷できますか。

    ラベルに連番を一度に印刷したいのですが、現在使用しているエーワンのフリーソフト「ラベル屋さん21」では出来ません。一枚ずつ番号を入力して印刷しています。最初のラベルに1と入力して最後のラベルに30と入力すれば、自動的にすべてのラベルに入力でき一度に印刷できればと思っています。フリー・シェアどちらでも構いません。よろしくお願いします。

  • エクセル 2010 マクロ 残セル表示と印刷

    A列~N列迄データが入力されている発注表があります。 毎日、入荷現品と照合して、合致したら該当品のC列に日付を入力しています。 合致項目はD~H列の製品番号のいずれとK列の数量です。 製品番号は各行に1番号のみ入力されています。 ただ、それがD列だったり、F列だったりします。 A~N全てが空白の行もあります。 行数はシートによって一定ではありません。 毎日C列に日付が埋められていくわけですが、 例えば、空白セルが残り3個になったら 「残り3品目です」。2個だったら「残り2品目です」のように 残り1品目になるまで、C列に日付を入力すると メッセージボックスで知らせてくれるようなことができましでしょうか? また、残りが0品目。 すなわちデータが何も入っていない行を除いたC列全てに日付が入力されたら データが入力されている最終セルまでの下線部に実線を入れ(A~N)、 印刷日をN1セルに入力、 A~Nが全て収まり横向きで印刷をすることも出来ますでしょうか? 行方向は分割されて構いません。 その時、I列以外は列幅13で、I列のみAutofitで文字幅に合わせるようにしたいです。

  • 伝票全件印刷のマクロ

    似たような質問があり、新たに質問するのは心苦しいのですが、何度挑戦してもうまくいかず、こちらで質問させていただきます。 エクセルで、一覧になっているデータを1人1枚で個別印刷と全件印刷する時のマクロについて知りたい。 (1)「計画書DB」というシートに1~100番までの顧客に関する情報が、入力されています。(氏名・住所など情報は多数) (2)「計画書」というシートが、1人1枚の紙を表示させる為のシートになっていて、全ての項目は、AQ1というセルを検索値としたVLOOKUP関数で表示させています。 (つくりたいマクロ) (1)個別印刷 「計画書」のA1~A52迄を1ページとして印刷 (2)全件印刷 「計画書」のA1~A52迄を1ページとして印刷した後、「計画書」のAQ1の数字が+1されて、次の方の計画書を印刷→の繰り返し。※「計画書DB」シートの番号(A列)がなくなったら印刷中止。 できるだけ具体的に教えていただけると大変助かります。。

  • excelでマクロを使用した連続印刷について

    A2セルから通し番号、氏名、住所等のデータが入力されている「データ」シートがあり、 VLOOKUPを使用してB3セルに「データ」シートのA列にある「通し番号」を 入力すると氏名・住所等が反映される「印刷」シートがあります。 例えば「データ」シートのC列(住所)に「東京都」という文字列が 含まれている宛名のみを連続で印刷したい場合、 どのようなマクロになりますでしょうか? (マクロ内に「東京都」と指定する方法と、 シート内の特定セルに入力した文字列で指定する方法が ありますでしょうか?) wordでの差し込み印刷や、宛名ソフト等の使用は考えておりません。 よろしくお願いいたします。

  • 印刷マクロを教えてください。

    マクロは初心者です。よろしくお願いいたします。 エクセルで、列AからHまでにデータを入力しています。 また、Aの1から、Aの3までは行タイトルとしています。 列A4から下の行にNo1~の順番号をいれていますが、 例えばNo20からN045までのデータ分だけを印刷したい時など、指定したNoの範囲のデータだけを印刷出来るようなマクロがあれば教えてください。 印刷Noの指定は、行番号でもかまいません。 これまでの質問で印刷関係をみてみましたが、多すぎてわかりませんでした。どなたかよろしくお願いいたします。

  • エクセル(2007~)のマクロ検索での画面表示についてお教え下さい。

    エクセル(2007~)のマクロ検索での画面表示についてお教え下さい。 エクセル初心者です。現在お仕事で入力作業をしていますが、 マクロで作成されているデータにつきまして、 登録番号 氏名 フリガナ ローマ字氏名 生年月日 受付日 などの個人情報が多量に入力されております。 例えば、 生年月日のみ、まだ入力がされていないため マクロの検索で登録番号から一人一人呼び出して生年月日を追加入力して行くのですが、 検索が終わった後、1件分のみの表示になるのですが もとの表示に戻したいのです(再度、多量の個人情報を表示)。 どこのどのボタンを押せば良いか、教えて頂きたいです。 それともう1点なのですが、 半角カタカナは、ャョ などの小文字が使えない(データベース?などですでに設定されているので、良子:リヨウコとなる)ようなのですが、手入力してみるとリョウコと入力が出来るのですが どのような事が考えられますでしょうか。。? 分かりづらい表現で申し訳ありませんが宜しくお願い致します。

  • Access データ入力について

    Access 初心者です。  初心者ながら必要に迫られデータ入力用システムを作っています。 どのようなものかというと ・作業月日 ・作業名 ・作業行った社員名 ・件数 これらの事項をフォームで入力していきます。今、なんとかフォームの完成まで行き着きました。 ただ、1日に作業員1名が行う作業は1つではないので、今のフォームのままでは、入力のたびに重複する作業月日、作業者名を入力しなければなりません。 以前別の会社だったとき同僚が作ったシステムでは、最初に日付、氏名を1度入力し、あとは作業名や件数のみを入力するというものでした。(説明が上手くできませんが…) 今となっては転職してしまったので、そのシステムの中身をみることができません。 この以前のシステムのように最初に日付、氏名を入力するという方法にはこだわりません。 初心者にでも分かるように教えていただけないでしょうか。

  • 差し込み印刷の〒表示

    今年の年賀状印刷で、初めてワードの差し込み印刷を使うのですが、〒表示をうまく出せず困っています。 ラベルの配置をして、《郵便番号》の前に「〒」を入力するのですが、すべてのラベルの更新を押すとと、〒は消えてしまいます。 《氏名》の後に入力した「様」はちゃんと更新されて、全部のラベルについています。 よろしくお願いします。