ショートプログラム

VisioToolBox  Visio2019に対応していますVisio2016に対応していますVisio2013に対応しています

ステンシルにVBAを組み込んだ「チョットだけ便利なマクロ群」を紹介します。(2017.12.14更新)

シェイプの置き換えマクロをVisioToolBoxに追加したのを機会に説明も作り直しました。
VisioToolBox.vssmはVisioToolBox.zip(26.4KB)からダウンロードしてください。
ダウンロードした圧縮ファイルは解凍し、適当なフォルダへ入れて下さい。
解凍して出来たステンシル(VisioToolBox.vssm)には以下の3種類のマクロが入っています。

1:Portrait(縦)

Visioの図面を部分的に印刷することが出来ます(2のLandscapeも同じ)

ステンシルから「Portrait」を図面上にドロップすると赤い破線枠が表示されます。
この破線枠を伸縮させて印刷したい範囲を決定します。


印刷範囲が決まったら、Portraitシェイプを右クリックして「用紙サイズの変更」を選びます。



「用紙サイズの変更」を選ぶとマクロが動き、Portraitシェイプの大きさに図面の用紙範囲を一致させます。


あとはVisioの「ファイル/ページ設定」から「プリンターの設定」タブを選択して「プリンタの用紙」で用紙サイズと印刷方向を合わせ、さらに「拡大縮小印刷」を自動調整「横1枚、縦1枚」にしてから印刷してください。

注意!
「Portrait」と「Landscape」で用紙サイズの変更を行った場合、「戻る」では元の用紙サイズに戻りません。

マクロの概要

図面用紙の大きさを指定できることを逆用しただけです。
ただVisioの図面用紙枠と実際の印刷用紙の縦横比率を同じにしておかなければ歪んだ印刷結果になるので縦横比が印刷用紙と一致するようにシェイプを工夫しています。
A、B用紙の大きさは縦横比が1:√2と決まっているのでシェイプのWidth(Height)を1:√2にする関数をGUARD関数で保護してあげれば紙と図面用紙枠の比率は一致します。
余談ですが「Portrait」と「Landscape」でマスタシェイプを分けているのは、私の使い勝手が良いからで、それ以外の理由はありません。
で、図面用紙枠をシェイプに一致させる方法ですが、単に用紙のWidth(Height)を変えただけでは図面用紙枠は左下からの大きさになってしまうので図 面上のシェイプをズラさなければいけません。具体的には全てのシェイプをPortrait(Landscape)シェイプのピン位置分だけオフセットします。当然、シェイプの作り方次第で移動できないものが出てくるかもしれません。そこはマァ習作ということで諦めてください。

2:Landscape(横)

Portraitが縦方向、Landscapeが横方向。説明はPortraitの項を読んでください。

3:Change Shape

あるシェイプを別なシェイプで置き換えるマクロを作りました。
ステンシルから「Change Shape」を図面上にドロップするとダイアログが出てきます。

「置換前のシェイプ」と「置換後のシェイプ」を選択して実行するとシェイプが置き換わります。

マクロの概要

アクティブページの全シェイプが「置換前」から、ローカルのマスタシェイプ一覧が「置換後」から選択出来ます。
ステンシルにマクロを組み込んだ都合上、図面で置き換え範囲を予め指示しておくという方法が取れません(シェイプをドロップした時点で選択が解除される)
解決策としては「Change Shape」をテンプレートに仕込んでマクロの起動方法を変える等が考えられます。
置き換えはPinX、PinY、Angleを転記しているので、Flipやコントロールハンドルで回転させる一部のシェイプでは角度が一致しません。

このページの先頭へ