2011/09/13

ExcelデータからPowerPoint図形やVisio図形を作成するマクロを公開しています.

ExcelData - VisioFigure Converter : VBAマクロ

ノードとリンクを含むグラフを描くのは意外と大変ではないでしょうか?
簡単なネットワーク図でも,値ごとにリンクの太さや色を変えて…と編集しようとすると,結構手間がかかったりします.

このマクロでは,ノードのx,y座標とリンクの始ノード終ノードを入力するだけでネットワークの大枠が出来上がります.
更に,線の太さや色,矢印,テキスト等をエクセル上で編集できるので,簡単にネットワーク上の数値を可視化できます.


Excelシートの各行が1つの図形情報を表すデータとして扱われます.
Excelシートの最上行はラベルです.
   ※一致する名前のラベルが存在しない場合は,いずれかのマクロを実行すると,対応するシートとラベルが自動的に作成されます.
   ※Excelシートの最上行はラベルで,ラベル名・ラベルの存在する行を変更すると対応関係が崩れますが,
    各列の順序等は変更しても問題なく動作します.よって,メモなどを間に挟むことも可能です.


PowerPoint,Visioのマクロはインストールされていないとエラーとなりますが, 実行時にアプリケーションが起動していなくても自動的に起動します.
  ※Visio/PowerPointが無くてもVisio/PowerPoint以外のマクロは使用可能
  ※Visioマクロが最も高機能です.
  ※X座標は左から右へ行くにしたがって値が増加します.
  ※Y座標はVisioの場合下から上へ,それ以外では上から下へ行くにしたがって値が増加します.




使い方としては,まずサンプルデータで実行してみた後,少しずつデータを変更していくとよいでしょう.

実行可能マクロ一覧:
マクロ名 説明
ActionReMakeFigureExcel_
図形更新
アクティブなExcelのシート上のラベル(後述)に対応したセルに 入力されたデータを元にExcel,PowerPoint,Visioの図形を描く.
※上記3つのマクロがそれぞれExcel,PowerPoint,Visio用のマクロに対応しています.
※対応したシート・スライド(PowerPoint)・ページ(Visio)上の図形は全て始めに消去されます.
※対応したスライド・ページが無い場合は新しく作成されます.
※Visioでは Excelのシート名とVisioのページ名が対応付けされます.
ActionReMakeFigurePowerPoint_
図形更新
ActionReMakeFigureVisio_
図形更新
ActionUpdateFigureExcelData_
図形情報取得
アクティブなExcelシートの図形情報を同一シートのセルに入力します.
ActionUpdateFigurePowerPointData_
図形情報取得
アクティブなPowerPointの最終Slideの図形情報をExcelのセルに入力します.
※アクティブなExcelのシートが利用されます.
ActionUpdateFigureVisioData_
図形情報取得
アクティブなVisioのページの図形情報をExcelのセルに入力します.
※Visioのページ名とExcelのシート名が対応付けされます.
※対応したシートが無い場合は新しいExcelシートが作成されます.


図形の種類は □(R)Rectangle.長方形 ○(O)Oval/楕円 |(L)Line/線 ┐(C)Connector/コネクタ の四種類
   ※|┐は始端・終端の識別名を入力することによっても形状を変更できます.


図形の形状等はセルに入力された数値と対応付けられます.
   ※入力されていない場合・セルの背景色が灰色の場合,その入力は無視されます.


図形の色情報(背景色・線の色)はセルの背景色に対応します.
   ※2007~の条件付き書式で設定された背景色は反映されません.
   ※数値毎の背景色を設定したい場合は背景色を変更するマクロを利用してください.
   ※塗りつぶしなしの場合は色の変更が無視されます.


図形の文字情報(テキスト・フォント・文字の色・文字位置 等)はセルのそれに対応します.
   ※入力されていない場合・セルの背景色が灰色の場合,その入力は無視されます.
   ※特にVisioフォントの反映は処理に時間がかかるため入力を無視させることを推奨します.
   ※文字の大きさのみ数値で指定します.


編集可能項目一覧:
ラベル名
English / 日本語
(有効値の範囲)
説明
Index / インデックス Excel上のデータとVisio上の図形を対応させる補助データ
  ※編集する必要はありません
Name / 識別名 Excel上のデータとVisio上の図形を対応させるデータ
始端と終端を図形位置にする場合に参照(入力)します.
Shape / 図形(R/O/L/C) 頭文字をR/O/L/Cの何れかに設定します.
  ※それぞれ □(R) ○(O) |(L) ┐(C) の図形に対応します.
AssignOName /
始端識別名
始端,終端を図形位置にする場合・始端,終端をバインドする場合に Name / 識別名 の値を入力します.
  ※|┐のみ利用
AssignDName /
終端識別名
CenterX /
中心X座標
図形の位置と大きさ
  ※□○のみ利用
CenterY /
中心Y座標
Width / 幅
Height / 高さ
BeginX / 始端X座標 図形の始端と終端
  ※|┐のみ利用(□○は角の値が入力されます.)
BeginY / 始端Y座標
EndX / 終端X座標
EndY / 終端Y座標
LineDet /
ずらし距離
始端と終端を設定して線を引く場合に線を横にずらす距離を設定します.
  ※始端と終端が逆の線を区別したい時に設定すると便利です.
  ※|のみ利用
Text / テキスト テキストの値
  ※Excel,PowerPointの図形では□○のみ利用
Font/Align /
フォントと文字位置
文字のフォントの種類・斜体・太字・色・位置
  ※Excel,PowerPointの図形では□○のみ利用
  ※Excelのセルの書式で指定します.
FontSize /
文字サイズ[pt]
文字サイズ数値
  ※Excel,PowerPointの図形では□○のみ利用
  ※Excel,PowerPointの図形のォントサイズに対応しています.
  ※Visioのテキストプロパティの数値に対応しています.
FillColor /
塗りつぶし色
塗りつぶしの色等
  ※□○のみ利用
  ※Excel,PowerPointの図形の書式設定-塗りつぶしの色に対応しています.
  ※Visioの塗りつぶしプロパティの数値に対応しています.
  ※Excel,PowerPointではFillColorSub・FillPatternを使用しません.
  ※色はExcelのセルの背景色で指定します.
FillColorSub /
塗りつぶしパターン色
FillPattern /
塗りつぶしパターン
(1~40/-)
FillTrans /
塗りつぶし透明度
(0~100)[%]
LineColor / 線色 線の色等
  ※Excel,PowerPointの図形の書式設定-線の色・線のスタイルの数値に対応しています.
  ※Visioの線プロパティの数値に対応しています.
  ※色はExcelのセルの背景色で指定します.
LinePattern /
線パターン
(1~23/13x64x4)
LineTrans /
線透明度
(0~100)[%]
LineWidth /
線幅[mm]
LineBeginArrow /
始端形
(0~45/1~6)
線端の⇒
  ※|┐のみ利用
  ※Excel,PowerPointの図形の書式設定-線のスタイル-矢印の設定に対応しています.
  ※Visioの線プロパティの数値に対応しています.
LineBeginArrowSize /
始端形サイズ
(0~6/1~9)
LineEndArrow /
終端形
(0~45/1~6)
LineEndArrowSize /
終端形サイズ
(0~6/1~9)

Excelのセルの値でグラフを編集!

Excelのセルの値でグラフを編集するマクロを公開しています.

Excel Chart Series Editor : VBAマクロ

エクセルのグラフは簡単に作れて便利ですが,データが大きくなると編集が大変です.同じグラフにたくさんの系列を載せたい場合,いちいちデータの選択をしていては時間がかかりすぎてしまいます.そこで,系列情報をあらかじめ用意してそれを元に一気に作成できるマクロを用意しました.

Excelシートの各行が1つのグラフ情報・グラフ系列情報を表すデータとみなし, 当該データとグラフ情報・グラフ系列情報との変換・逆変換を行ことができます.
グラフ情報はChartDataシートに作成され,グラフ系列情報はSeriesDataシートに作成されます.
これらの名前に一致するシートが存在しない場合は,いずれかのマクロを実行すると,新たにシートが作成されます.
また,一致する名前のラベルが存在しない場合は,いずれかのマクロを実行すると,対応するシートに自動的にラベルが作成されます.
対応するシートの最上行はラベルです.

  ※一致する名前のラベルが存在しない場合は,いずれかのマクロを実行すると,対応するシートとラベルが自動的に作成されます.

  ※Excelシートの最上行はラベルで,ラベル名・ラベルの存在する行を変更すると対応関係が崩れますが,
    各列の順序等は変更しても問題なく動作します.よって,メモなどを間に挟むことも可能です.


公開しているマクロは「グラフ情報・グラフ系列情報」の「変換・逆変換」に対応した以下の4つです.
マクロ名 説明
ActionUpdateChartData_
グラフレイアウト情報取得
同一ワークブック内のすべてのグラフについて, グラフレイアウト情報をChartDataシート上のラベルに対応したセルに入力します.
ActionReMakeChart_
グラフレイアウト更新
ChartDataシート上のラベルに対応したセルに入力されたデータを元にグラフレイアウトを更新.
ActionUpdateChartSeriesData_
グラフ系列情報取得
同一ワークブック内のすべてのグラフ系列についての情報を SeriesDataシート上のラベルに対応したセルに入力します.
ActionReMakeChartSeries_
グラフ系列作成
SeriesDataシート上のラベルに対応したセルに入力されたデータを元にグラフを作成.



☆☆☆ 使い方(例)☆☆☆
~ 多数の系列を含むグラフの作成 ~
まず,2系列程度を含んだグラフを作成します.
次に,「ActionUpdateChartSeriesData_グラフ系列情報取得」を実行します.
SeriesDataシートにグラフ系列の情報が入力されるので, 系列分コピーして必要な個所を編集します.
先に作成したグラフを削除した後, 「ActionReMakeChartSeries_グラフ系列作成」を実行すれば,目的のグラフが得られるでしょう.
  初めは少しずつ編集・グラフ作成を繰り返すことをお勧めします.


グラフレイアウト用 編集可能項目一覧:
  ※フォントはセルの書式で指定します.
ラベル名
English / 日本語
説明
SheetIndex / シート番号 グラフ判別用のデータ(SheetIndex,SheetNameはグラフの存在するシートを示す)
SheetName / シート名
ChartIndex / グラフ番号
ChartName / グラフ名
Title / タイトル タイトルテキストの値と大きさ
  ※フォントはセルの書式で指定します.
TitleSize / タイトルサイズ[pt]
Left / 左端 グラフオブジェクトのシート上での位置と大きさ
Top / 上端
Width / 幅
Height / 高さ
AreaLeft / グラフ左端 グラフ(軸を含む)のグラフオブジェクト内での位置と大きさ
AreaTop / グラフ上端
AreaWidth / グラフ幅
AreaHeight / グラフ高さ
InsideLeft / 表示域左端 グラフ表示域(プロット領域)のグラフオブジェクト内での位置と大きさ
InsideTop / 表示域上端
InsideWidth / 表示域幅
InsideHeight / 表示域高さ
XTitle / カテゴリ軸タイトル 主横軸の軸の書式設定に対応
  ※フォントはセルの書式で指定します.
XTitleSize / カテゴリ軸タイトルサイズ[pt]
XMax / カテゴリ軸最大値
XMin / カテゴリ軸最小値
YTitle / データ軸タイトル 主縦軸の軸の書式設定に対応
YTitleSize / データ軸タイトルサイズ[pt]
YMax / データ軸最大値
YMin / データ軸最小値
YSubTitle / 副データ軸タイトル 副縦軸の軸の書式設定に対応
  ※フォントはセルの書式で指定します.
YSubTitleSize / 副データ軸タイトルサイズ[pt]
YSubMax / 副データ軸最大値
YSubMin / 副データ軸最小値
LegendLeft / 凡例左端 凡例の位置と大きさと書式
  ※フォントはセルの書式で指定します.
LegendTop / 凡例上端
LegendWidth / 凡例幅
LegendHeight / 凡例高さ
LegendFont / 凡例フォント



グラフ系列用 編集可能項目一覧:
ラベル名
English / 日本語
説明
SheetIndex / シート番号 グラフ判別用のデータ(SheetIndex,SheetNameはグラフの存在するシートを示す)
  ※グラフ作成の際,同一のグラフ内の系列は
   ChartIndex・ChartNameとSeriesTypeが同じである必要があります.
SheetName / シート名
ChartIndex / グラフ番号
ChartName / グラフ名
SeriesIndex / 系列番号 系列判別用のデータ
SeriesName / 系列名
SeriesType / 系列型
(システム値)
グラフの種類を表すデータ
  ※グラフ系列情報取得をして値を取得してください.
  ※副縦軸のあるグラフの情報取得は可能ですが,
   グラフ作成には対応していません.
InputDataSheet /
データシート
グラフ系列の参照するデータ範囲
  ※ColumnVは縦軸や基本のデータとなる値を格納する行
  ※ColumnXは横軸やカテゴリのデータとなる値を格納する行
   (一部のグラフのみ使用)
  ※ColumnBはバブルの大きさとなる値を格納する行
   (バブルチャートのみ使用)
  ※行を整数で指定した場合は CIndex2Str 関数で変換してください.
ColumnV /
データ値列[A~]
ColumnX /
カテゴリ値列[A~]
ColumnB /
バブル値列[A~]
StartRow /
データ最上行[1~]
RowCount /
データ行数
PlotSize /
プロットサイズ
データ系列の書式設置に対応
  ※プロットグラフ・バブルチャート等のみ使用
  ※色はセルの背景色で指定します.
PlotStyle / プロットスタイル
(システム値)
PlotColor / プロット色
PlotBackColor / プロット副色
PlotTrans / プロット透明度(0~1.0)
LineWidth / 線幅 データ系列の書式設置に対応
  ※線グラフ等のみ使用
LineColor / 線色(セル背景色)
LineTrans / 線透明度(0~1.0)

Excelで綺麗なコンター図を作成!

Excelのセルの値に基づいて,セルの背景色と文字色を変更するマクロを公開しています.
※色の変更の方法で数通りのパターンを用意しています.

以下の両方のマクロに含まれています.
Excel Chart Series Editor : VBAマクロ
ExcelData - VisioFigure Converter : VBAマクロ


エクセルの条件付き書式は便利ですが,これを利用してコンター図を作成しようとすると文字が元の色で残ってしまいあまり綺麗になりません.そこで,文字の色と背景色を同じ色で塗りつぶしてしまうマクロを作成しました.
また,条件付き書式はセルの値を変更すると色が変わってしまい,セルの内容を変えられなかったのに対して,このマクロでは通常の書式自体を変更するので,書式だけコピーなど様々な使い方ができます.



実行可能マクロ一覧:
マクロ名 説明
InvokeColoringBack_
背景色付
セル背景色を変更します.
InvokeColoringText_
文字色付
文字色を変更します.
InvokeColoringTextLight_
文字淡色付
文字色を変更します.淡い(明るい)色を使用します.
InvokeColoringHalf_
背景淡色付_文字色付
文字色とセル背景色を変更します.セル背景色には淡い(明るい)色を使用します.
InvokeColoringSpecial_
背景淡色付_文字逆色付
セル背景色を淡い(明るい)色に変更,文字色をセル背景色を反転させた色に変更します.
InvokeColoringAll_
セル色付
文字色とセル背景色を同じ色に変更します.
※セル全体が同じ色になるのできれいなコンター図が作成できます.
InvokeColoringAllLog_
セル色付
文字色とセル背景色を同じ色に変更します.LOG値を用いて色を付けます.
※値の大小で感度が異なる場合のコンター図に適しています.
InvokeColoringOffBack_
背景色消
選択範囲のセル背景色を黒・塗りつぶしなしに戻します.
InvokeColoringOff_
セル色消
選択範囲の文字色とセル背景色を黒・塗りつぶしなしに戻します.

2011/04/24

ファイル名一覧変更


公開しているソフトウェアの紹介です.
ファイル名一覧変更 TextEditor : MYFileReNamer.NET

やたら,名前が長いですね.特に何も考えずに機能名を付けています.

このソフトウェアはファイルの一覧をテキストエディタの様に編集し,ファイル名を変更できるソフトです.

メニューから,またはドラッグドロップによってファイルを取り込み,エディタのファイル名を編集,ボタン,またはメニューからファイル名を編集されたものに変更します.


特徴のひとつはテキストエディタだから操作がスムーズであることです.
1行が1ファイル名に対応し,その対応関係を改行・コピー・ペーストなどで崩さないように自動調整されます.

さらに,他のソフトへテキストを貼り付けたり,他のソフトからテキストをコピーしたり,できるので幅広い使い方ができると考えています.

コピー・ペーストに関して,自分でよく使う機能に
(Ctrl+Shift+X)で選択範囲,または全ファイル名の先頭一文字を切り取り
(Ctrl+Alt+X)で選択範囲,または全ファイル名の末尾一文字を切り取り
(Ctrl+Shift+V)で選択範囲,または全ファイル名の先頭にクリップボードを貼り付け
(Ctrl+Alt+V)で選択範囲,または全ファイル名の末尾にクリップボードを貼り付け
の4つがあります.

直観的にすべての行の先頭と末尾に同じ文字列を付けたり,同じ文字数削ったりできて,普通のテキストエディタでも対応してほしいところです.(マクロで作ってしまえばいいのですが.)


もうひとつの特徴として,拡張された正規表現による置換処理のサポートがあります.

正規表現を知らないと使えないですが,知っていれば結構いろんなことができます.'拡張'と付けたのは普通のテキストエディタで機能として付いている連番処理を正規表現+アルファで再現した点です.

例えば,下の例のように機能をONにして'[a-z]+'を'-\@@@-'に置換すると,一連の小文字アルファベットが出現順に001,002,003,...(インクリメントと初期値は変更可能)に置換されます.

AbcCharMY.csv → A-001-C-002-MY.csv
XyzCSharp.jpg → X-003-CS-004-.jpg


今後のバージョンアップで,この拡張正規表現をもうちょっとだけ拡張して,MP3タグ情報やファイル情報,クリップボードの中身なども扱えるようにするつもりです.また,マクロのサポートも本格的に行う予定です.

気が向いたら使ってみてください.


なお,このソフトは以下の雑誌で取り上げてもらいました.
Windows100% 07月号 2011/06/13 発売 株式会社晋遊舎
Windowsフリーソフト究極セレクション 2012/09/26 発売 三才ブックス