【ExcelVBA】についての質問です。


環境:WinXPpro Excel2010
コントロールパネル→プリンタのファイルメニューからサーバのプロパティで設定する用紙サイズをVBAから指定したく考えております。
A3などは
ActiveSheet.PageSetup.PaperSize = 8
とすることでサイズ指定可能なのですが、同ダイアログにて新しく追加したサイズについてはその番号がPCによって異なる為、番号から用紙名を取得する関数をご教授いただければありがたいです。

ちなみに追加した用紙は社内PCで調べたところ、190から197迄で使用しており
以下のようなコードを想定しております。

For i = 190 to 197
If プリンタ名を取得する関数(i) Like "追加した用紙名" Then
ActiveSheet.PageSetup.PaperSize = i
Exit For
End If
Next i

よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/05/31 12:49:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv211_PaperSize.html

A4でしたら xlPaperA4 となります。

xlPaperA4 が 定数で 値を持っています。

id:pocon

送り状など、定数に無い用紙サイズの名前を取得したいのです。

2011/05/30 21:22:14
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

http://www.accessclub.jp/bbs2/0120/beginter35787.html

DeviceCapabilities を宣言して 利用すればいいかと思います。

使い方は 上記サイトを参考にしてもらえればいいかな。

id:pocon

リンク先のページは知っていたのですが、どのようにすればいいか

わからずでした。

恐縮ですが、具体的にご教授戴けますでしょうか。

2011/05/30 21:37:32
id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

http://support.microsoft.com/kb/229718/ja

こちらのソースが 参考になると思います。

id:pocon

Sub GetPaperList()を実行するとエラーになりますが、参照設定など

必要なのでしょうか?

2011/05/30 22:00:34
  • id:taknt
    私の環境が 2003だからか そのままで 実行できました。

    ステップ実行させて エラーとなった箇所を 特定したらいいですね。
  • id:pocon
    エラー回避できました。
    必要としているのは、アクティブなプリンタが対応する用紙の一覧では無く
    セットした用紙サイズ名です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません