- ベストアンサー
宛名ラベル印刷について
こんにちは! 早速ですが、アクセスで教えていただきたいことがあります。 お客様の住所等をを宛名ラベルに印刷する際、数が少ないので ラベルの下の方がどうしても余ってしまい、もったいないので これを次に印刷する時に使いたいのです。 印刷する際、ラベルのどの部分に印刷するか選べるように することってできないでしょうか? できたとして、VBAでプログラム…ですよね? 私はまだVBAは超初心者なので、できるだけ わかりやすく教えていただけないでしょうか? (勝手な言い分ですみませんxxx) よろしくお願いします!
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
手作業による印刷でしたら、方法は何通りかあります。 1 デザインビューから印刷でも良いし、 データーべースウインドウ から 該当のレポートを直接印刷する場合は、 2 印刷するレポートを選択し ファイル → 印刷 とか 3 レポート名の上に マウスカーソルを置き 右クリック → 印刷 とか。 4 コマンドボタンを押した時に印刷させたいなら コマンドボタンのプロパティの”イベント”で ”クリック時”を [イベント プロシージャ] にし、 コードは Docmd.OpenReport "レポート名", acViewNormal です。
その他の回答 (6)
- ryuu001
- ベストアンサー率61% (46/75)
---------------------------- --コード全体を表示します。-- ---------------------------- ↑この部分を含み、ここから上 全部不要です。 例えば、Private Sub Report_Open(Cancel As Integer) の行が 2行有ります。 その為のエラーだと思います。
補足
だいぶ近いところまできました! 今度は 3 の「プレビューを表示しないで直接印刷する」ですが、 余白枚数を入力すると、その次はどうしてもプレビュー画面にいってしまいます。 ということは、デザインビューから印刷ってことでしょうか???
- ryuu001
- ベストアンサー率61% (46/75)
>「イベント プロパティに指定した式 開く時 でエラーが発生しました:名> 前が適切ではありません:Report_Open]」 これは、文章中の -->I = InputBox("余白枚数入力")<--この部分を使われましたか? それでしたら -->I = InputBox("余白枚数入力")<-- の前後が 全角のスペースになっていますので、 VBAでは 半角のスペースに切り替えてください。 > ちなみに、1の「印刷しないラベルの枚数を入力する」というのは、どこで入力するのでしょうか? これは、レポートを開いたときに 問い合わせがあります。 まさに、今回エラーになった -->I = InputBox("余白枚数入力")<--この部分です。
補足
お返事遅くなってすみません! エラー、半角スペースになっていますが、相変わらずエラーのままです。 私のとこの Report_ラベル印刷:クラス モジュール の一覧を載せます どこか間違っているところがありますか?(私にはまるで意味が わからないので・・・(^^;))その他、なにか他に理由があるのでしょうか・・・ Option Compare Database Dim I As Integer Option Explicit ――――――――――――――――――――――――(←これ線のつもり) Private Sub Report_Open(Cancel As Integer) I = InputBox("余白枚数入力") End Sub ――――――――――――――――――――――――――――――――――― Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) If I > 0 Then Me.NextRecord = False Else Me.NextRecord = True End If I = I - 1 -----ここまで------ ---------------------------- --コード全体を表示します。-- ---------------------------- Option Compare Database Dim I As Integer Private Sub Report_Open(Cancel As Integer) I = InputBox("余白枚数入力") End Sub ――――――――――――――――――――――――――――――――――― Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) If I > 0 Then Me.NextRecord = False Else Me.NextRecord = True End If I = I - 1 End Sub End Sub
- ryuu001
- ベストアンサー率61% (46/75)
次の要領で良いでしょうか? 1 印刷しないラベルの枚数を入力する。 2 印刷しないラベルの無い枚数分 1件目のデーターを印刷。 3 プレビューを表示しないで、直接印刷します。 (実験の結果、プレビュー表示 と 直接印刷の場合はうまく行っているようなのですが、プレビュー表示画面から 印刷すると、用紙の先頭から出力されてしまいます。) ----- 方法 ----- --レポート の プロパティ を設定します。-- 4 ”イベント” の ”開く時” を [イベント プロシージャ] にします。 5 ”...”ボタンを押すと VBAコード入力画面になります。 そこに、 I = InputBox("余白枚数入力") と入力します。 6 そのついでに、その入力画面の 1番上の行に Option Compare Database となっていますので、そのすぐ下の行に Dim I As Integer と入力します。 --次は、詳細のプロパティ を設定します。-- 7 ”イベント” の ”印刷時” を [イベント プロシージャ] にします。 8 VBAのコードは次の通りです。 If I > 0 Then Me.NextRecord = False Else Me.NextRecord = True End If I = I - 1 -----ここまで------ ---------------------------- --コード全体を表示します。-- ---------------------------- Option Compare Database Dim I As Integer Private Sub Report_Open(Cancel As Integer) I = InputBox("余白枚数入力") End Sub Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) If I > 0 Then Me.NextRecord = False Else Me.NextRecord = True End If I = I - 1 End Sub
補足
ご丁寧にありがとうございます! VBA、入力してみたのですが、デザインビューから違うビューへいこうとすると、 「イベント プロパティに指定した式 開く時 でエラーが発生しました:名前が 適切ではありません:Report_Open]」 というエラーがでました。コード自体はそっくりコピーさせていただいたので(^^;) 入力する場所が悪かったのでしょうか・・・ ちなみに、1の「印刷しないラベルの枚数を入力する」というのは、どこで入力するのでしょうか? 本当に知識不足で申し訳ないです(;_;)
- void2000
- ベストアンサー率17% (41/229)
NO.1です。VBAを使わない方法ばかりで申し訳ないです。 シールの無い場所にもう一度何かが印刷されてもインクがもったいないだけで別に害は無いでしょう。 下のほうのシールが余っている部分に印刷されるようにファイルを作り、シール紙をもう一度通せば良いように思いますが。 どうしても無駄な印刷を避けたいときは、空白の字を書いて(スペースキーなどで必要な行数を書いて)シールの無い部分が印刷されないようにするという方法でいかがでしょう。
補足
シールが余っている部分に印刷されるようにファイルを作る、ってことは、 ラベルがないところの分だけ違うレコードを印刷する、ってことですよね・・・? やってみます!
- asuca
- ベストアンサー率47% (11786/24626)
祖フォトは何を使っての話でしょうか? 多くの宛名印刷用のソフトやデータベースの場合書き出し位置を指定できるはずです。
補足
使用ソフトはAccess97です。宛名印刷"専用"のソフトではないですが・・・
- void2000
- ベストアンサー率17% (41/229)
あまったラベルの上下を逆にしてプリンタに差し込んだらどうでしょうね。 その場合、ラベル紙のいちばん上の余白の幅が重要ですが、鋏みや糊の手作業で調節したらどうでしょう。
補足
言い忘れてましたが・・・私の使っているラベル、実は上下が あるんですっっ!(泣) 某運送会社の宛名印刷専用ソフトでは、クリックで印刷する場所が 選べるようになっていて便利でした。 そんなふうにできないななぁ~・・・と思っています。
お礼
できました! 使用済ラベルの枚数分1件目のデータを印刷して、 余ったラベルから印刷を開始するように、ちゃんとなりました! 長々とおつあいいただいて本当にありがとうございます。 やっぱりVBAは難しいですね!このラベル印刷の件も、 ウィザードとかでもっと簡単に設定できるのかと思っていました(^^;) これからVBAの勉強を始めようと思っています。早く自分の 思うようにできるよう、がんばります!!