• 締切済み

Access VBA ラベル印刷開始位置の指定でエラー表示される

Accessのレポートで、宛名ラベル印刷の印刷開始位置を選択できる ようにしたく、下記URLの通りにやってみたのですが、エラー表示がでます。 参考URL http://support.microsoft.com/default.aspx?scid=kb%3bja%3b879856 この通りにやってみると、エラーメッセージ「コンパイルエラー プロシージャ内では無効です」 と表示されてしまいます。 エラーにならないようにするには、どうしたらよいのでしょうか? 記述は下記になります。 Option Compare Database Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) Option Explicit Dim i, k As Integer i = 0 k = InputBox("ラベル印刷の開始位置を入力してください") End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If i < k - 1 Then Me.MoveLayout = True Me.NextRecord = False Me.PrintSection = False i = i + 1 End If End Sub 恐れ入りますが、ご教示お願い致します。

みんなの回答

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

リンク先を、落ち着いて見ましょう。 Option Compare Database 'Option Explicit Dim i, k As Integer Private Sub ・・・・ となっています。 プロシージャの中で宣言した変数は そのプロシージャの中でしか参照できません。 複数のプロシージャで参照するには モジュールレベルで宣言する必要があります。

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

> Option Compare Database > Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) > Option Explicit > Dim i, k As Integer Option Compare Database Option Explicit Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) Dim i, k As Integer

keita3000
質問者

補足

ご回答ありがとうございます。 ボックスの表示はされるようになったのですが、 実際に数字を入力してOKをクリックすると、 「コンパイルエラー 変数が定義されていません。」 と表示されるのですが、何処を修正したら良いのでしょうか? よろしくお願い致します。

関連するQ&A

  • Accessのラベル指定箇所印字について

    Window 7 Access2013 いつも、お教えいただき、誠にありがとうございます。お手数ですが、今ひとつお教えいただきたいと思います。 ラベル印刷で、開始位置を指定して印字する方法を検索して利用させていただいておりますが、 1枚のラベルを作成して指定したラベルに印字しようとして ・プレビューすると指定した印字位置にありますが ・実際印字すると 1枚目に印字されてしまいます コードは、引用させていただいた Option Explicit Dim i, k As Integer Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) i = 0 k = InputBox _ ("ラベル印刷の開始位置を入力してください") End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If i < k - 1 Then Me.MoveLayout = True Me.NextRecord = False Me.PrintSection = False i = i + 1 End If End Sub としています。 何卒、よろしくお願いいたします。

  • アクセス レポート バックカラーの変更方法

    現在レポートで1行ごとにバックカラーを変えて印刷しておりますが、それをチェックボックスにチェックがはいった行だけをカラーにするよう変更したいと考えておりますが、よくわかりません。現在のコードをコピーしました。お手数ですがご指導願います。 Option Compare Database Dim bline As Integer Private Sub Report_Open(Cancel As Integer) End Sub Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) bline = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) bline = bline + 1 If bline Mod 2 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 12663225 End If End Sub

  • Accessのレポートに取り消し線を表示したい

    いつもお世話になっています。 名簿を作成しているのですが、結婚して姓が変わった場合、 上書きせずに新しい姓を別のテキストボックスに入力します。 これをレポートとして出力する際、新しい姓が入力された場合は、 過去の指名のテキストボックスに二重線を引きたいのですが うまくいきません。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新姓 <> "" Then Me.取り消し線1.Visible = True Me.取り消し線2.Visible = True Else Me.取り消し線1.Visible = False Me.取り消し線2.Visible = False End If End Sub お力添えをお願いいたします。

  • Access のレポート上のコントロールに、VBAで値を設定できる?

    こんにちわ Access のレポート上にテキストボックスが有ります。 レポート印刷時の Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) End Sub プロシージャー内で、上記テキストボックスに任意の文字列を設定する事は可能でしょうか? 以前 Access VBAでアプリケーション開発していた時には、出来たような気がするのですが.... これって出来ないのでしたっけ?

  • Accessのレポートでデータがなくても罫線だけ表示させたい

    Win2000,Access2000を使用しています。 Microsoftのホームページで「[AC97] レコードがない場合も用紙の最後まで罫線を出力する方法」を応用して以下のVBを作成しました。 ですが、9行目までデータを入力すると9行目と10行目の両方の行に9行目のデータが表示されます。 8行目まででしたら、9、10行目は空白で罫線(直線)が表示されます。 どなたか解決法をご存知でしたらお教え下さい。 Option Compare Database  Dim A As Integer '-------今何行目なのかをカウントする為の変数  Dim B As Integer '-------今回印刷する予定のレコード件数を入れて                  おく変数 ---------------------------------------------------- Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)   A = 0   B = DCount("ID", "Q05商品リスト")   Me!改ページ3.Visible = False End Sub ---------------------------------------------------- Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)  A = A + 1  If A Mod 10 = 0 Then    Me!改ページ3.Visible = True  Else    Me!改ページ3.Visible = False    If A < B Then      Me.NextRecord = True      Me!商品名.Visible = True      Me!メーカー名.Visible = True    ElseIf A = B Then      Me.NextRecord = False      Me!商品名.Visible = True      Me!メーカー名.Visible = True    Else      Me.NextRecord = False      Me!商品名.Visible = False      Me!メーカー名.Visible = False    End If   End If End Sub

  • Access レポートでのラベルの表示について

    こんにちは。 Access2003,windowsXPです。 レポート機能で、ラベルにテーブルのデータを表示させているのですが、指定したテーブルが空白の場合、エラーが出ます。 NULL値でもエラーが出ないように設定したいのですが、方法はありますか? 参考までに(VBA) Private Sub Report_Open(Cancel As Integer)   Me!ラベル133.Caption = DLookup("テーマNo", "BMM", "ID = 1") Me!ラベル134.Caption = DLookup("テーマ名称", "BMM", "ID = 1") Me!ラベル135.Caption = DLookup("請求額", "BMM", "ID = 1") End Sub

  • ACCESSのレポートに売上の累計を計算させましたが・・・・

    ACCESS2002についてです。 テーブルに"売上日" "売上金額"とある中で"売上累計"を明細行毎にだそうと、本に書いてある下記のように入力しましたが、ページが変わってしまうと"売上累計"が合わなくなってしまいます。どうしたら解決できますか???? Option Compare Database Option Explicit Private curRuikei As Currency Private Sub Report_Open(Cancel As Integer) End Sub Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) '累計のクリア curRuikei = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '累計の加算 curRuikei = curRuikei + Me!売上金額 Me!売上累計 = curRuikei End Sub です。

  • Access レポートの詳細Formatに複数の式

    いつもお世話になっています。 レポートの詳細に結婚して姓が変更になった場合、旧姓に取り消し線を引く という式を作成しました。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新姓 <> "" Then Me.取り消し線1.Visible = True Me.取り消し線2.Visible = True Else Me.取り消し線1.Visible = False Me.取り消し線2.Visible = False End If End Sub 今回は、住所も変更になって新住所が入力されたら、旧住所に取り消し線を引きたいと 思います。 ただし、変更にならない場合もあるので、別のIF文になります。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) If 新住所 <> "" Then Me.取り消し線3.Visible = True Me.取り消し線4.Visible = True Else Me.取り消し線3.Visible = False Me.取り消し線4.Visible = False End If End Sub レポートの詳細_Formatに複数の条件を設定することができるのでしょうか。 お力添えをお願いいたします。

  • Access2003 レポートの合計の出し方

    お世話になっております。 Access2003のレポートで下記のようなコードで価格の合計を求めようとしています。 1ページですとこれで合計は表示されるのですが、レポートが2ページ以降になると最終ページの合計が表示されます。 最終ページの最後にすべての合計を出したいと思っています。 ご教授いただければ幸いです。よろしくお願いいたします。 Option Compare Database Dim a As Variant Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer) a = 0 End Sub Private Sub グループヘッダー3_Print(Cancel As Integer, PrintCount As Integer) a = a + Me.価格 End Sub Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer) Me.合計 = a End Sub

  • アクセスVBA コンパイルエラー

    フォームを開いた時にフォームの高さを設定したいので Private Sub Form_Open(Cancel As Integer) Me.Height = 12000 End Sub としてるのですが「.Height =」の部分がコンパイルエラーになってしまいます。 何がいけないのでしょうか?

専門家に質問してみよう