質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
印刷

印刷とは、インキを用いて紙などの被印刷物に機械的に複製することを指します。現在は紙などの2次元の媒体だけでなく、3次元の曲面にも直接印刷する技術など様々な開発が進んでいます。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

4317閲覧

VBAで連続印刷を行いたい。エラー13

siiiso

総合スコア11

印刷

印刷とは、インキを用いて紙などの被印刷物に機械的に複製することを指します。現在は紙などの2次元の媒体だけでなく、3次元の曲面にも直接印刷する技術など様々な開発が進んでいます。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/06/24 08:19

編集2019/06/25 01:07

前提・実現したいこと

マクロ印刷を行いたいのですが、知識がなく困っています。

表示からマクロを行おうとしたがエラーが表示された。
デバッグを行うとmyNoPostal = .Range("G" & i).Value '〒のセル挿入の部分に黄色が入ります。

発生している問題・エラーメッセージ

エラーメッセージ
実行時エラー'13':
型が一致しません。

該当のソースコード

Sub 印刷()
'Dim~として変数を宣言する
Dim LastRow As Long '最終行を「長整数型」として宣言
Dim i As Long '繰り返しの回数カウントの変数を「長整数型」として宣言
Dim myNo As String '印刷用のC4セルに入力する番号を「長整数型」として宣言
'職員番号が「T10002」などと文字も入っていたら、Dim myNo As String と「文字列型」として宣言する

Dim myNameIdol As String Dim myNameOffice As String Dim myNumBook As Long Dim myNumPrice As Long Dim myNoPostal As Long Dim myNameType As String Dim myNameSaleType As String Dim myNameAddress As String Dim myNoTel As String Dim myNamePerson As String Dim myPayment As String Dim myFree As String

'Withは「○○で」ということを表す
With Worksheets("顧客情報") '「名簿」シートで

'LastRowという変数にA列の最終行数を入れる 'Rows.Countはシートの行数 'End(xlUp)は「下の方のアクティブセルからCtrlと↑キーを押す」操作を記録すると表示されるものと同じです '.Cells(.Rows.Count, "A").End(xlUp).Rowで、A列の最下行から上方向に向かってデータに突き当たった行 LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row '↑このピリオドは重要で、Withで指定したところ「の」というような意味で 'これをつけないと、アクティブになっているシートのCellということになってしまい '意図しない動きになったりするので、気をつけてください。 'For~Next で、繰り返しをします For i = 5 To LastRow 'iという変数に2行目から最終行までを順番に入れていきます myNo = .Range("A" & i).Value '見積書Noのセル挿入 myNameIdol = .Range("B" & i).Value 'アイドルのセル挿入 myNameOffice = .Range("C" & i).Value '事務所のセル挿入 myNumBook = .Range("D" & i).Value '部数のセル挿入 myNameType = .Range("E" & i).Value '販売形式のセル挿入 myNumPrice = .Range("F" & i).Value '卸価格のセル挿入 myNoPostal = .Range("G" & i).Value '〒のセル挿入 myNameAddress = .Range("H" & i).Value '住所のセル挿入 myNoTel = .Range("I" & i).Value '電話番号のセル挿入 myFree = .Range("J" & i).Value '担当のセル挿入 myPayment = .Range("K" & i).Value '支払日のセル挿入 myNameSaleType = "委託販売価格:1000円(税込) 卸価格:" & myNumPrice & "円(税込)" '説明の生成 myNamePerson = myFree + "様" '担当に様 With Worksheets("入力") '「顧客情報」⇒「入力」へ反映 .Range("AP6").Value = myNo .Range("BM11").Value = myNameOffice .Range("BM13").Value = myNoPostal .Range("BM15").Value = myNameAddress .Range("BM17").Value = myNoTel .Range("BM21").Value = myNamePerson .Range("BM23").Value = myPayment .Range("B41").Value = myNameIdol .Range("B39").Value = myNameType .Range("X39").Value = myNumBook .Range("AF39").Value = myNumPrice / 1.08 With Worksheets("申込書") '「印刷用」シートで

' .PrintPreview '「印刷用」シートをプレビューします
.PrintOut Copies:=1, Collate:=True '「印刷用」シートを印刷します
End With 'With Worksheets("印刷用") に対応する締めです
End With 'With Worksheets("印刷用") に対応する締めです
Next i 'Forに対応するものです

End With 'With Worksheets("名簿")に対応する締めです

End Sub 'Sub 帳票印刷()に対応する締めです

試したこと

〒のセルに郵便番号を入力をしたところ「入力した値は正しくありません。ユーザーに設定によってセルに入力できる値が制限されています。」
と表示されます。
VBAにふれたことがないので
どのように修正したらよいのか教えていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

入力した値は正しくありません。ユーザーに設定によってセルに入力できる値が制限されています。

このエラーメッセージはVBAとは無関係に、設定されている入力規則に適合しない値をセルに入力しようとしたときに出てくるものと思います。
コードを見るに、郵便番号は Long 型で扱おうとしているようなので、数値しか入力できないような規則が設定されているのではないかと思います。「〒100-0001」や「100-0001」はNGで、「1000001」と入力しなければならないものと推測します。

実行時エラー'13':

型が一致しません。

こちらの意味は、実行時エラー13で検索したらいくらでもわかりやすい解説が出てきますので併せて参照いただきたいですが、 変数 myNoPostalLong 型を受け入れるように宣言されているのに、数値として処理できない「〒100-0001」や「100-0001」 (= String)を代入しようとしたために、エラーになっているものと推測します。

回答とは関係ないですが、みづらいので、質問文中のコードは コードブロック (バッククォート3つ + 言語名) で囲んで提示してください。あと End With の数があるべき数よりも少ないように見えます。コードは省略せずに正確に提示してください。

投稿2019/06/25 07:45

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問