ExcelVBAの初歩的な質問になります。例えば印刷サイズをA4サイズとして印刷の行と列の幅を取得したいです。4×4の均等なセルを作るとします。印刷のサイズが分かれば4等分したサイズをセルに設定すればいいと思います。印刷サイズや均等なセルの値を変数また配列にしたいと思っています。この場合にはやはり印刷サイズが決まった時点の列幅と行幅をどの様に取得すればいいのでしょうか?オブジェクトの参照設定によるインスタンスの作成でできることなのでしょうか?また、WidowsAPIによるサブルーチンではなにを使用することで取得することができるのでしょうか?よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
>WidowsAPIによるサブルーチンではなにを使用することで取得することができるのでしょうか?
なぜに、APIがでてくるのかしらん?
印刷はExcelのハンドリング内のことなので、Excel VBAの範疇ではないでしょうか?
>ExcelVBAの初歩的な質問になります。
多少の誤差を許すのであれば、以下の手順で算出は可能です。
質問者様にとっては初歩的なことかもしれませんが、私にとっては、結構面倒な内容に思われます。
以下、試してみた手順ですので、ご参考までに。
◇準備作業として、調査用のシートを作成します。
・新規シートでも良いですし、対象シートの複製でも良いです。
・各セルを許容誤差範囲の小さなサイズに設定します。
(このサイズ以下の寸法は許容誤差として考えてください)
・プリントの向き、サイズの設定 など(余白等)必要な設定を行います。
(PageSetup.Orientation、PageSetup.PaperSize etc.)
・必要なら、既存の改ページを削除
(ResetAllPageBreaks)
・印刷範囲を十分に大きな範囲(=必ず1ページ以上となる範囲)に設定
(PageSetup.PrintArea)
◇上記から1ページの行数、列数を算出する
(以下は行数の場合の手順。列数も同様。)
・改ページ位置から、1ページ目の行数を算出
(HPageBreaks)
・求めた「行数×設定セル高さ」で、1ページ分の長さを算出できますので
求めるセル高さは、これを1/4にした値となります。
・高さ、幅を算出したら、調査用シートを削除。
※ 非表示の行や列はないものと想定しています。
存在する場合は、それも考慮する必要があるでしょう。
※ どうしてもピッタリの数値が欲しければ、改ページ付近のセルサイズを
さらに細かくして、再度同様の計算を行えば、精度を上げることが
できるでしょう。
(こちらの方法をとるなら、最初にセルサイズを小さく設定する必要はありませんね)
一方で、余白やヘッダー、フッター等が一定なら、用紙のサイズや向きの種類数はたかが知れているので、わざわざ都度調べるようなことをしなくても、事前に表にでもしておけば済む話ではないかと推測します。
まぁ、余白やヘッダー等のサイズがその都度変わる様であれば、仕方がないですけれど・・
アドバイスありがとうございます。仕様を決める際に問題をシンプルにしてコードを考えています。本題は少し複雑なので一つ一つ解決して行こうと思います。また、ソースコードを決める際には複数の候補があると思っています。いろいろな方のお知恵を借りて解決できたら幸いです。参考にさせて頂きます。助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) 写真の印刷レイアウトについて 13 2023/05/31 07:20
- Word(ワード) Wordでの印刷サイズについて A4の原稿をB5サイズで出力したいとき、 印刷から用紙サイズの指定か 4 2022/04/30 09:51
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- プリンタ・スキャナー ブラザー プリンターMFC-J4720N 2 2022/07/17 20:10
- Word(ワード) office365のWordの印刷範囲が勝手に狭くなっています。 4 2022/07/18 16:31
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- プリンタ・スキャナー A4サイズの書類をA3サイズ2枚の大きさに印刷をしたいのですが、A3サイズを貼り合わせるかたちで。 5 2023/04/08 14:08
- プリンタ・スキャナー A4サイズの書類をA3サイズ2枚使用した大きさに印刷したい場合の設定を教え下さい。 4 2023/04/08 13:42
- Windows 10 macからwindows11に変えてから印刷の速度が変えられなくなりました。 2 2023/05/31 20:49
- Illustrator(イラストレーター) イラストレーターでの印刷について 3 2022/06/30 11:49
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
-
4
エクセルのページ区切り(点線)の位置をマクロで取得 ※印刷範囲クリア
Excel(エクセル)
-
5
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
6
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
9
EXCELのコンボボックス 配置の縦位置の変更はどうすれば?
Windows Vista・XP
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
プロポーショナルフォントの文字列から印刷幅を求める関数
Excel(エクセル)
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
14
Excel VBAで文字列の可視長を得るにはどうしたよいでしょうか?
Visual Basic(VBA)
-
15
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作成した文字を、所...
-
エクセルで作成したチェックボ...
-
1920×1080は何mm?
-
イラストレーター A4隅々まで...
-
数多い写真のインデックス印刷...
-
写真を印刷する際、ファイル名...
-
72dpi⇒300dpiに変更しても支障...
-
このプリントに書かれている戦...
-
印刷すると黒が赤味がかってし...
-
画像の保存先を何度も変えると...
-
画像の解像度を上げる方法
-
写真スタジオでの撮影:クーリ...
-
筆王Ver19 写真やイラストの解...
-
illustratorで作ったものをoffi...
-
POVーRayでRUNを押す...
-
ベクターワークスでパレットが...
-
表札手作り
-
大至急!Photoshopで、この写真...
-
モザイク消しソフト
-
Photoshopで大型のポスターを作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBA印刷サイズの取得のこ...
-
エクセルで作成した文字を、所...
-
エクセルで作成したチェックボ...
-
添え状の書き方について教えて...
-
macで、プレビュー.appで、リサ...
-
大量に印刷する場合、A4とB...
-
パソコン印刷
-
レコードジャケットをCDサイ...
-
A3まで対応のコピー機ってA4も...
-
1920×1080は何mm?
-
このプリントに書かれている戦...
-
イラストレーター A4隅々まで...
-
写真のソリをかんたんに直す方...
-
変な質問です。性欲 写真で撮っ...
-
イラストレータJPEGで保存する...
-
教えてグーって画像審査時間長...
-
ウィンドブレーカーの文字・ロ...
-
イラストレーターデータを、解...
-
岐阜長野県境の御嶽山山頂から...
-
写真を印刷する際、ファイル名...
おすすめ情報