掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB−エクセルでシート複数選択時の印刷について (ID:107718)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ぢゃわさん詳細なご回答ありがとうございます。 コード②はシステム内の共通関数的な役割のもので、 約50種の帳票があるのですが、どれからも引数つきで呼び出すだけで、 設定・印刷できるモジュールです。(のつもり(笑)) *帳票は数人の新人が開発するのですが、基本となる部分を作成しています。 実際にはSheetsオブジェクトが引数じゃなくて、 Sheetsコレクション(複数シート)ですね。すみません。 一応単体シートではなくて、複数シートを扱っていると思います。 (workbook.sheetsなので) おのおののプロシージャでSetしたSheetsコレクションを、 参照渡しでこのモジュールに送ってます。 'グローバル Global gl_XlsApp As Excel.Application Global gl_XlsBook As Excel.Workbook '共通関数 Function XlsStart() As Boolean '(一部抜粋) Set gl_XlsApp = CreateObject("Excel.Application") With gl_XlsApp .DisplayAlerts = False '警告やメッセージなし '.....など End With Set gl_XlsBook = gl_XlsApp.Workbooks.Add End Function Private Sub cmd_1_Click() 'こんな感じ Dim XlsSheets As Excel.Sheets Call XlsStart Set XlsSheets = gl_XlsBook.Sheets Call XlsPrintSheets(XlsSheets, cs_Xls_YOKO, cs_Xls_A4) Call XlsEnd 'という開放関係の処理 End Sub 本当は下のような感じでいけるかなと思っていたんですが・・・。 わざわざ配列を作って渡してます。 要はXlsSheets.Selectのような気もしますが・・・。 まぁ、指定範囲シート(5〜10など)設定時は応用して使えるかなっと。 Dim i As Long Dim WK() As Long ReDim WK(1 To XlsSheets.Count) For i = 1 To UBound(WK) Step 1 WK(i) = i Next i XlsSheets(WK()).Select '以下同じ とりあえず今はループさせる方法でやっています。 ということで「解決」です。 ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.