VBA

VBA for Excel



XlSkyline Ver.2

レオンチェフマニア用。この時点で何のことだかわからない人はパスしてください。

産業連関分析で用いられる、Skyline図をExcel上で描画します。

Skyline分析について

競争輸入型モデル:

X = ( I - A )-1・F
X:Control Total、A:投入係数行列、F:最終需要
最終需要Fを分解すると、
F = Y + E - M
Y:国内最終需要、E:輸出、M:輸入
X = ( I - A )-1・F
   = ( I - A )-1・( Y + E - M )
   = ( I - A )-1・Y + ( I - A )-1・E - ( I - A )-1・M
となる。ここで、
Xd = ( I - A )-1・Y
Xe = ( I - A )-1・E
Xm = ( I - A )-1・M
と置くと、
X = Xd + Xe - Xm
と分解できる。それぞれ、国内最終需要、輸出、輸入を賄うために、各種の財が直接・間接に生産される額をあらわしている。

第i部門に関して、両辺をXdiで割ると、
( Xi / Xdi ) = 1 + ( Xei / Xdi ) - ( Xmi / Xdi )
自給率輸出率輸入率
が得られる。

これを棒グラフで表現すれば、各財がどの程度自給できているのかが一望できる。

上式の輸入率を左辺に移項すれば、
( Xi / Xdi ) + ( Xmi / Xdi ) = 1 + ( Xei / Xdi )
自給率輸入率輸出率
となり、「自給率+輸入率=1+輸出率」と見ることができる。 つまり、右に示すように、自給率と輸入率を積み上げた棒グラフを描けば、 国内最終需要(=100%)から上に飛び出した分が輸出率を表すことになり、 各部門の自給率・輸出入率をひと目で把握できるようになる。

さらに、第i部門の棒グラフの横幅にXdiもしくはそのシェアをとれば、 各棒グラフの面積がそれぞれCT・輸入額・輸入額の金額あるいはシェアを表すことになり、 部門間の関係も表現できるようになる。

作業手順

まず、データを用意します。 下図のように、データ範囲の1行目にフィールドラベルを作成します。 ラベルは、
1列目Code;部門コード。数字でも文字でも構いません。
2列目Name;部門名。図のラベルに使用します。
3列目Xd;国内最終需要の直接・間接波及額。
4列目Xe;輸出の直接・間接波及額。
5列目Xm;輸入の直接・間接波及額。(マイナスで入力)
で固定です。列の順番やラベルの表記が違っていると、エラーになります。

データの入力例

(裏技)6列目に[Weight]フィールドがあると、横比のシェアにこのデータを適用します。

プログラムの起動はWorksheet Menu Barの[ツール]-[Skyline...]です。 ワークシートのデータ範囲を選択してからコマンドを選択します。 このとき、上図の例のように必ず1行目のラベルから選択してください。 プログラムでデータを読み込む際、ラベルのチェックも行います。

続いて、右のようなページ数、補助線間隔、フォントサイズ等の設定ダイアログが表示されます。 適当な設定をして、[OK]ボタンをクリックすると、 アクティブのワークシートの直前にグラフシートを作成し追加します。

[SKYLINE]ダイアログボックス
-[Y軸最大値];チェックがないと、自動的に最大値を計算します。
-[補助線設定];補助線の間隔、太さを設定します。
-[X軸間隔];X軸(横軸)の補助線間隔を指定します。
-[Y軸間隔];Y軸(縦軸)の補助線間隔を指定します。
-[補助線の太さ];補助線の太さをpt単位で指定します。
-[ページ数];複数のページに分割する場合に指定します。
-[項目ラベル設定];X軸項目ラベルに関する設定を行います。
-[フォントサイズ] ;フォントサイズをpt単位で指定します。Y軸の数値ラベルにも反映されます。
-[ラベル領域の高さ] ;X軸下のラベル領域の高さをpixel単位で指定します。 ラベルの折り返しが出来ないので、省略名称と併せて調整して下さい。
-[ラベルを表示する
    シェアの下限]
;シェアの小さい項目ラベルを表示させたくないときに指定します。
-[表示ラベル];タイトル、凡例等の設定を行います。
-[タイトル] ;タイトルを表示する場合に、タイトルの入力されているセルを指定します。
-[自給率/輸入率] ;自給率/輸入率の凡例タイトルの入力されているセルを指定します。 指定したセルに背景色を設定しておくと、各領域の色を変更することが出来ます。
-[凡例の表示] ;自給率、輸入率の凡例の表示を指定します。
--->サンプル画像

複数のシートグループを選択しておくと、連続して図の作成が行えます。

プログラム本体はAddinですが、パスワードは設定してありません。 色とかパターンとか、適当にお好みに合わせて修正して利用して下さい。

メインメニューの[ツール]-[アドイン...]から登録できます。 あるいは、[\Program Files\Microsoft Office\Office\XLStart]に置いておくと、 Excel起動時に自動的に読み込まれます。

注意事項

Office2000,XPの場合は[ツール]-[マクロ]-[セキュリティ]から セキュリティダイアログボックスを呼び出し、セキュリティーレベルを[中]に設定してください。 ファイルを開くときに、マクロを有効にするか問い合わせがあるので [マクロを有効にする]を選択してください。

実際に使用する前にSampleファイルを利用してテストを行い、 どのように動作するのか把握しておいて下さい。 あまりたくさん絵を描きすぎると、Win98,Meではリソースが足りなくなって フリーズする恐れがあります。 (作者はそれで、Win2000にアップグレードしました。) なお、本プログラムによってどのような障害が出たとしても、 作者は一切の責任を負いません。

アドインおよびそのソースコードに関する著作権はDamfinoにあります。 作者の許可なく配布、掲載、販売を目的に利用することを禁じます。

Download

クリックしてファイルに保存して下さい。 lzh形式で圧縮してあるので、lhasaなどで解凍してください。

Skyline.xla:プログラム本体
SkylineSample:サンプルファイル
--->Skyline.lzh

最後に

ここではほとんど問題にしていませんが、 実際にはSkylineのもとになるデータを作成する段階が結構大変だったりします。 行列演算関連のマクロも順次公開して行きます。

ご意見、ご要望があればメール・BBSでお知らせ下さい。

[参考] 宇多 賢治郎 「Ray スカイライングラフ作成ツール」


Program Top