[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『構文エラーと出るのですが何が間違っているのか不明です』(不明ちゃん)
”入力”のシートと”購入伝票”のシートがあります。
”入力”のシートのB21(セルの位置です)に何も入力されていなければ、”購入伝票”のシートのAL31:BP77部分を印刷し、B21に入力されていれば”購入伝票”の”AL31:BP77”部分と”bu31:cy77”の部分の両方をを印刷したいのです。以下のようにしてみたのですが、構文エラー と出て止まってしまいます。
何が間違っているのかわかりません。よろしくお願いします。
Sheets("入力").Select
Range("G10:g10").Select
Selection.ClearContents if Range(”b21″).value = "" Then Sheets("購入伝票").Select Range("AL31:BP77").PrintOut Sheets("横伝入力").Select End If Sheets("入力").Select Range("G10:g10").Select Selection.ClearContents Sheets("購入伝票").Select Range("AL31:BP77").PrintOut Range("bu31:cy77").PrintOut Sheets("横伝入力").Select End Sub
↓の行が赤字で表示されていますよね? if Range(”b21″).value = "" Then 問題は ~~ ~~ ここが全角に成っているからだと思います。
が、これでは要件を満たして居ません。
お話としては、マクロを実行したら 入力シートの G10セルの値を削除 購入伝票シートの AL31:BP77 の範囲を印刷 入力シートのB21セルに入力が有ったら(<>"" だったら) 購入伝票シートの BU31:CY77 の範囲を印刷 横伝入力シートを選択 と言う流れで良いのではないかと思いますが。
ちなみに、このマクロをどのシートがアクティブの時に実行するか決まって居ますか? また、入力シートと横伝入力シートは同じシートですか?違うシートですか?
(HANA)
よろしくお願いします。
でしたら↓を確認してみて下さい。
'------ Sub TEST() Range("G10").ClearContents With Sheets("購入伝票") .Range("AL31:BP77").PrintOut If Range("B21").Value <> "" Then .Range("BU31:CY77").PrintOut End If End With End Sub '------
簡単に書くと Sheets("入力").Select Range("G10:g10").Select Selection.ClearContents この3行は、入力シートを選択して、G10セルを選択しているので G10セルは、入力シートのG10セルと言う事に成りますので、一行で
Sheets("入力").Range("G10:g10").Select Selection.ClearContents そのあと、ClearContentsしようと選択したのは 入力シートのG10セルなので、これも一行にして
Sheets("入力").Range("G10:g10").ClearContents ここで、このマクロを実行するのは「入力シートがアクティブの時」と決まっているので Sheets("入力"). を消します。
標準モジュールにコードが有る場合で、セル番地の前に「どこのシート」と指定が無い場合は アクティブシートのセルに対して実行されます。 Range("G10:g10").ClearContents →Range("G10").ClearContents
次に、印刷の方ですが Sheets("購入伝票").Select Range("AL31:BP77").PrintOut これも、PrintOutするのは、そのすぐ上で選択したシートなので セル番地にシートを指定する事で、一行にします。 Sheets("購入伝票").Range("AL31:BP77").PrintOut もう一つの範囲も。。。 Sheets("購入伝票").Range("BU31:CY77").PrintOut
アクティブシート(入力シート)のB21セルの判定も加えると
Sheets("購入伝票").Range("AL31:BP77").PrintOut If Range("B21").Value <> "" Then Sheets("購入伝票").Range("BU31:CY77").PrintOut End If
と成りますが、「購入伝票」シートを指定する部分が2箇所に出てきているので With でまとめます。
With Sheets("購入伝票") .Range("AL31:BP77").PrintOut If Range("B21").Value <> "" Then .Range("BU31:CY77").PrintOut End If End With
セル番地の前が「.」で始まっている部分は With の後に書いてあるシートのセル セル番地の前に何も無い物は アクティブシートのセル
と思ってもらえると良いと思います。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.