Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルアクセスからエクセルの印刷ダイアログボックスを表示させたい
記事No16832
投稿日: 2016/12/31(Sat) 10:48
投稿者MiT
解決済: ON
OS:Windows7
Access Version:2007(職場の場合)

初めて投稿いたします。

アクセスからエクセルのシートに値を代入して印刷をしようとしています。
時に印刷は両面印刷としたい場合があるので
エクセル上で印刷ダイアログボックスを表示させたいのですが、
次のようなエラーが出て失敗します。
  実行時エラー'1004'
  アプリケーション定義またはオブジェクト定義のエラーです。

印刷ダイアログは表示させずに、そのまま
.Application.Worksheets(sht).PrintOut ' from:=1, To:=1, Copies:=1
.Application.DisplayAlerts = False
.Quit
とする分には普通に動作してくれます。

以下のどこがおかしいでしょうか?

Private Sub コマンド_Click()
Set objExl = CreateObject("Excel.Application")

With objExl
.Visible = True
.UserControl = True
.Workbooks.Open ("\\共有フォルダ\チェック表.xlsx")
.Range("A1").Value = txt対象者
.Application.Dialogs(xlDialogPrint).Show
End With

End Sub

タイトルRe: アクセスからエクセルの印刷ダイアログボックスを表示させたい
記事No16833
投稿日: 2016/12/31(Sat) 13:31
投稿者mayu
解決済: ON
こんにちは。

> 以下のどこがおかしいでしょうか?

パッと見て2点。

【 1 】
----------------------------------------------------------
参照設定していない場合、
xlDialogPrint という定数を直接使うことは出来ません。
( 参照設定しているのなら、インスタンス生成は New で )

【 2 】
----------------------------------------------------------
Excel.Range の上位オブジェクトは
Excel.Application ではなく、Excel.Worksheet ですね。


操作対象のプロパティが
ブックから見て、どのオブジェクトに属しているのか
階層構造を意識して コーディングなさるとよろしいでしょう。
'-----------------------------------------------------------------------

Sub sample()
  Const XL_DIALOG_PRINT As Long = 8
  Const XL_FILEPATH     As String = "\\共有フォルダ\チェック表.xlsx"
  
  With CreateObject("Excel.Application")
    
    With .Workbooks.Open(FileName:=XL_FILEPATH)
      .Application.Visible = True
      .Application.UserControl = True
      .Worksheets(1).Range("A1").Value = "■▼●"
      .Application.Dialogs(XL_DIALOG_PRINT).Show
    End With
  End With
End Sub

'-----------------------------------------------------------------------

  では ☆

タイトルRe^2: アクセスからエクセルの印刷ダイアログボックスを表示させたい
記事No16834
投稿日: 2016/12/31(Sat) 14:34
投稿者MiT
解決済: ON
mayuさま
お世話になります。

解答まで書いていただき大変感謝です。
無事、やりたいことができました!!

2点目については、
元のコードから今回の質問に不要な部分をカットした際に
一緒にワークシートの記述をカットしてしまったようでした。
ただ、いずれにせよ
アクセスをきっかけにVBAを触りだし、
エクセルのVBAのことを理解していないので
こちらもご指摘ありがとうございました。


とても嬉しいです。
ありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る