[[20140822164444]] 『マクロの作成について』(rikko) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロの作成について』(rikko)

職場にて、ラベル印刷(3列6行18枚)をする際のマクロ等でご教授いただきたく、よろしくお願いいたします。

昼食と夕食のお弁当のラベルの作成依頼がありました。
曜日によって召し上がる方(1個ご注文の方も2個ご注文の方もあります)と、そうでない方がいるので
そのデータのSheetは作成があります。

そのデータをまとめたShettが 出力シート(昼) ←A1に印刷ラベルの名前を付けてあります。
B1 日付
C1 昼
D1 氏名
E1 お部屋番号
F1 カロリー・・・・  K1まで項目があり、50名〜80名程のご予約があります。

ラベルの雛型のShettは、ラベル印刷  としてあります。
 
=IF(ISBLANK(OFFSET(印刷ラベル,1,3)),"",OFFSET(印刷ラベル,1,3))

このラベルを印刷する場合、

Sub 昼ラベル印刷()
Dim i As Long, ix As Long
ix = Worksheets("出力シート(昼)").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ix Step 18
On Error Resume Next
Names("印刷ラベル").Delete
On Error GoTo 0
Names.Add Name:="印刷ラベル", RefersTo:="=出力シート(昼)$A$1"
Next i
End Sub

で作成しましたが、動きません。。。

マクロなど初心者で質問もうまくできていないかもしれませんが、どうぞご教授の程よろしくお願いいたします。

来月から稼働するとのことで急いでおります。
申し訳ありませんが、よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:WindowsXP >


 肝心な印刷する部分のコードがないと思いますが、印刷用のシートは「ラベル印刷」でしょうか。
 確認時に印刷はもったいないのでプレビューにしています。
 問題なければ PrintOut に変更して使用ください。

 Sub 昼ラベル印刷()
    Dim i As Long
    Dim ix As Long
    Dim n As Name
    ix = Worksheets("出力シート(昼)").Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To ix Step 18
        For Each n In ActiveWorkbook.Names
            If n.Name = "印刷ラベル" Then
                n.Delete
                Exit For
            End If
        Next
        Names.Add Name:="印刷ラベル", RefersTo:="=" & Worksheets("出力シート(昼)").Cells(i, "A").Address(external:=True)
        Worksheets("ラベル印刷").PrintPreview   '// 確認用
'//     Worksheets("ラベル印刷").Printout       '// 印刷用
    Next
 End Sub
(Mook) 2014/08/22(金) 17:26


早々のご回答ありがとうございました。
印刷用のシートは<ラベル印刷>Sheetになります。

上記のものを、コピーしてマクロ登録しましたが、
【インデックスが有効範囲にありません】と表示されてしまいます。

ix = Worksheets("出力シート(昼)").Cells(Rows.Count, 1).End(xlUp).Row

の行が黄色くマーカーされてしまいます。

それと、別のシート(名前:「昼」があります)に日付の入力があり、誰が何個頼んでいるのかのデータあります。

日付を指定すれば、↑のデータよりその人が1つ頼んでいれば1つのラベルを、2つ頼んでいれば2つラベル印刷をかけたいです。

上手く伝えられていないと思うので、Excelデータを添付したいのですが、方法がわかりません。

お伝えする方法があれば教えてください。

何度も申し訳ありませんが、よろしくお願いいたします。


ほんの少しだけ
試したのですが、出力シート(昼)が()が全額の()だったりしませんか

(デイト) 2014/08/25(月) 17:07


 デイトさんからフォローがありますが、
 >【インデックスが有効範囲にありません】と表示されてしまいます。
 は多分、シート名が間違っているので、シートの名前を直接コピーして■の部分に貼り付けた
 方がよいと思います。
 Worksheets("■")

 データから印刷シートにマクロでデータを転記したいのであれば、ラベルシートの
 レイアウト とデータの列の情報を提示すればできないでしょうか。

 例えば、
 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
 「昼」シートは B〜K列 までデータがあって、

 「ラベル印刷」シートは3列×6段のフォーマットで、1段目は

 A1 = B列のデータ   F1 = B列のデータ   K1 = B列のデータ
 A2 = C列のデータ   F2 = C列のデータ   K2 = C列のデータ
 A3 = F列のデータ   F3 = F列のデータ   K3 = F列のデータ
 A4 = G列のデータ   F4 = G列のデータ   K4 = G列のデータ

 2段目は
 A7 = B列のデータ   F7 = B列のデータ   K7 = B列のデータ
 A8 = C列のデータ   F8 = C列のデータ   K8 = C列のデータ
 A9 = F列のデータ   F9 = F列のデータ   K9 = F列のデータ
 A10= G列のデータ   F10= G列のデータ   K10= G列のデータ

 3段目以降 A13、A19、A25、A31 から配置されて6段目まであります。
 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

 と説明があれば、B列の日付にあわせてデータの配置をして印刷ということは
 サンプル提示ができると思います。
(Mook) 2014/08/25(月) 19:30

ありがとうございました!!
とりあえず、2つラベルを印刷したい方はデータも2つ作成して様子を見ることにしました。

お手数をお掛けしました、本当に助かりました<(_ _)>

(rikko) 2014/08/26(火) 14:54


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.