はじめまして。
以下のような処理ができるかどうか教えて下さい。
<環境>
Windows XP
Excel2002 SP-1
<内容>
2つのブックが用意されているとします。
【ブックA】
マスタと集計表が含まれる。
ユーザーはシート変更の権限、およびVBA変更権限を持たないため、
一切の変更はできない。
【ブックB】
一括印刷専用機能が含まれる。
処理としては、
(1)ブックBを起動させ、ブックBのSheet1にある「処理実行」ボタンを押下。
(2)(1)を実行すると、印刷部数を入力するInputBox表示。
(3)(2)で数値入力後、それをパラメータとして保持。
(4)ブックAを起動させ、その中に含まれる、
処理を実行するための関数を呼び出す。
ブックBより処理実行をかけ、ブックAに含まれる関数を遠隔で
実行できないかということです。
もしよい方法があったら教えて下さい。お願いします。
No.1ベストアンサー
- 回答日時:
Application.Run macro:="処理名"
ヘルプのRun メソッドの使用例
mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
参考URL:http://www2s.biglobe.ne.jp/~iryo/2vba/vba26y.htm …
回答ありがとうございます。
Application.Run (ファイル名(フルパス)!マクロ名)
で処理が完結しました。
他ブックに仕込まれているモジュールを遠隔で動かすというのは意外にやったことが無かったので、参考になりました。
No.2
- 回答日時:
要するに、読み取り専用のブックを外部のブックから、印刷させようとしていて、
その印刷部数を、外部ブックからコントロールさせようとしている、というわけですね。
二通り考えてみました。
以下は、きちんとしたテストをしたわけではありませんので、コードを良く調べてからお使いください。test_2は、最初から、PrintAreaが設定されていたら、確か、.Selectとかは要りませんから、その前のVisible =True も要らないような気がしますね。
なお、私個人として、test_1 の方に、軍配が上がると思っています。1番目は、ご要望に沿っているか分かりませんが、開かれる側のマクロ側に、プロシージャを置いて、引数で、印刷ページを決めます。
Sub test_1()
Dim PageNum As Integer
Const BookName As String = "Book1.xls"
Const MacroName As String = "PrintPrc"
PageNum = Application.InputBox("ページ枚数を指定してください", Type:=1)
If VarType(PageNum) = vbBoolean Or PageNum = 0 Then
Exit Sub
End If
'パスワードと読み取りパスワード
Workbooks.Open BookName, , , , "111", "222"
Run "macro050511a.xls" & "!" & MacroName, PageNum
Workbooks(BookName).Close False
End Sub
'相手側のブックのマクロを統合させた場合。
Sub test_2()
Dim PageNum As Variant
Const BookName As String = "Book1.xls"
PageNum = Application.InputBox("ページ枚数を指定してください", Type:=1)
If VarType(PageNum) = vbBoolean Or PageNum = 0 Then
Exit Sub
End If
With CreateObject("Excel.Application")
'パスワードと読み取りパスワード
On Error GoTo ErrHandler
.Workbooks.Open BookName, , , , "111", "222"
.Visible = True
'シート1の印刷
With .Workbooks(BookName).Worksheets(1)
.Select
.PageSetup.PrintArea = .Range("A1").CurrentRegion
.PrintOut Copies:=PageNum, Preview:=True
DoEvents
End With
ErrHandler:
If Err.Number > 0 Then
MsgBox Err.Number & "(" & Err.Description & ")"
End If
.Workbooks(BookName).Close False
.Quit
End With
End Sub
丁寧な回答ありがとうございます。
実はですね・・・。
印刷部数は、ユーザー側でInputBoxにて指定した上で、
実際に行いたかったのは、開いた相手方のマクロだったんです。
しかし、挙げて頂いたサンプルは今後発生しうるケースですので、
ぜひ参考にさせていただきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) 別ブックの列同士の値が一致したときの処理 1 2022/09/03 08:27
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) 複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを 7 2023/02/10 23:20
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
【前回の続き続きです、ご教示...
-
エクセルのマクロについて教え...
-
VBA 別ブックからコピペしたい...
-
ExcelのVBAです。フォルダ内の...
-
【前回の続きです、ご教示くだ...
-
VBS Bookを閉じるコード
-
エクセルのマクロについて教え...
-
ADOで複数のBookから抽出
-
【Excel VBA】書き込み先ブック...
-
【マクロ】違うフォルダにある...
-
Excel VBA 保存時にフォルダを...
-
ユーザーフォームの切り替えに...
-
別ブックをダイアログボックス...
-
フォルダ内の全てのファイルに...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】インデックスが有...
-
マクロVBA別Excelブックにデー...
-
エクセルマクロで、他ブックか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBS Bookを閉じるコード
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
vbaでvbaProjectのパスワード解...
-
VBAで別ブックのシートを指定し...
-
ExcelのVBAです。フォルダ内の...
-
vbaで他のブックに転記したい。...
-
フォルダ内の全てのファイルに...
-
VBAで複数のブックを開かずに処...
-
VBSでExcelのオープン確認
-
VBA 実行時エラー 2147024893
-
【Excel VBA】書き込み先ブック...
-
VBA シート名が一致した場合の...
おすすめ情報