Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2019)
excelからexcel差込印刷で文字を追加して印刷
投稿日時: 23/10/14 10:52:59
投稿者: ばなな

いつもお世話になります。
excelファイル内で差込印刷をするのですが、印刷の際に「avを付けて印刷したいのです。
 
シート1:データ
シート2:シート1から差込印刷用のデータを拾っている
     B1:ai表題)
     B2以下:差込用データ
         1、2-@、2−A、3-@・・・など都度変わります。
 
シート3:差込印刷用フォーム
 
下記のように記述したのですが、印刷時に1、2-A、3-@というふうにb付けて
印刷したのですが、どのようにしたらよいかわかりません。
 
B列のデータに関数・セルの表示などでbつけても関数の場合は
関数が入力されていることで、関数が入っているとこまで白紙になります。
シート1からシート2に差込用データをコピーしたときにb追加すればよいのですが
できるなら印刷の際につけられればひと手間省けるのではと思い投稿しました。
 
下記の構文に追加することでbつけて印刷できる方法があったらご教授お願い致します。
よろしくお願いします。
 
 
Public Sub 差し込み印刷_B列のみ()
    Dim r As Variant
 
    With Sheet1
        For Each r In .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
            With Sheet2
                .Range("B2") = r.Value
                .PrintPreview
            End With
        Next r
    End With
End Sub

回答
投稿日時: 23/10/14 13:58:31
投稿者: simple

誤解が無いように、No.をつけたいセルがどこなのかをきちんと書いたほうがいいでしょう。
(コードではSheet2を印刷するようになっていますが、
  説明ではシート3が印刷用フォームになっています。)
 
印刷用だけに使うシートを決めて、
その必要な箇所に、"No."という文字列を連結すればよいのではないでしょうか。

投稿日時: 23/10/14 15:19:25
投稿者: ばなな

simple様
 
早速ありがとうございます。
 
書き方が悪かったようです、シート3のが印刷用です。
 
シート3のB2が刷範囲です。
 
bヘセルい入れるのでなく、印刷するときにつけばいいのです。
構文のどこかに”ahをつけて印刷するようにできないのでしょうか。
 
引き続きよろしくお願いいたします。

回答
投稿日時: 23/10/14 16:57:57
投稿者: simple

簡単な実例を示してもらうと、皆さんからのコメントが得やすいと思います。
<Sheet1>

     A列       B列
1
2
3
のような形式で、SHeet1,Sheet2,Sheet3を示してもらえますか?
表の部分を選択状態にして、「コード」のボタンを押すと表が崩れにくいと思います。
 
>シート3のB2が刷範囲です。
これも意味が取りにくいです。一つのセルだけを印刷するんですか?

回答
投稿日時: 23/10/14 18:56:31
投稿者: WinArrow

印刷の対象となるのは、あくまでも「シート」または、「セル範囲」です。
  
印刷時にセル以外のデータを付加できるのは、ヘッダー/フッターに指定できるパラメータです。
ファイル名、シート名、ページ番号があります。
 
唯一、ページ番号がNoとして使えるか検討してみてください。

回答
投稿日時: 23/10/14 22:45:12
投稿者: simple

(1)

 With Sheet1
    For Each r In .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
ということは、Sheet1のB2セル以下を使っているんですよね。
それが間違いなら、きちんと訂正してくださいよ。"書き方が悪い"だけじゃ他人には通じませんよ。
 
(2)
説明がないので勝手に想像するが、
印刷する項目はひとつだけじゃないでしょう?
他の印刷項目は、Sheet2のB2セルをキーにして、VLOOKUPか何かで元データシートから取得しているのではないですか?
しかし、それの頭にNo.とつけてしまうと、その取得ができなくなる、どうしたらいいか。
というような話ではないんですか?
きちんと説明しないと他人には伝わりにくいです。
 
(方法1)
・印刷範囲外の適当なセルに、Noなしの文字列を書き込み、他の項目はそれをキーにして取得する
・Sheet2のB2セルには、頭に"No."をつけたものをマクロで書き込む
(方法2)
・まったく新しい印刷用を作成し、今の印刷用シートを式で参照したものとする。
・ただし、B2セルだけは、頭に"No."をつけたものとする
などという方法が考えられます。
 
マクロの中で、印刷用シートを修正しに行くのは、可能かもしれないが、手間がかかるだけです。
印刷用シートを手入れしたほうが得策です。
私はこれで。

投稿日時: 23/10/14 23:47:16
投稿者: ばなな

皆様のおかげで解決の糸口を見つけ、思い通りに差込印刷ができました。
ありがとうございました。