Quantcast
Channel: t-hom’s diary
Viewing all articles
Browse latest Browse all 493

PowerPoint VBA サンプル ~ フロー図のコネクタだけ選択・複数シェイプに書かれた数字を一括インクリメント

$
0
0

何やらTwitterPowerPointVBAネタがよく流れてくるので便乗してみる。

と言っても新規ネタは無いので昔Webサイトに掲載した内容の再掲。
パワーポイントVBA - You.Activate
(サイトの方のアクセスは微量なのでなかなか日の目を見ない。)

フローチャート等でコネクタだけor画像だけを選択するマクロ

パワポでフロー図を作ることもよくあると思うけれど、後から図形の枠線だけ色を変えたいとか、コネクターの線だけ太くしたいとかいうことってよくある。

そうするためには例えばCtrl + クリックでコネクタだけをチマチマ選択していく必要があるが、数が多いととても面倒くさい。

次に紹介するマクロを使うとマウスドラッグで範囲選択した後に図形かコネクターかどちらか不要な方を一発で選択解除できる。
f:id:t-hom:20180908081855g:plain

コードはこちら。
※このころの私はマルチバイト識別子がマイブーム

Sub選択除外_図形のみ選択()Call選択除外(True)EndSubSub選択除外_コネクターのみ選択()Call選択除外(False)EndSubPrivateSub選択除外(非コネクター AsBoolean)'シェイプが選択されていなければ、処理を中断する。IfNot ActiveWindow.Selection.Type= ppSelectionShapes ThenExitSub'残すシェイプのリストを準備Dim残すリスト()AsStringReDim残すリスト(0)DimAs Shape
 
    ForEachIn ActiveWindow.Selection.ShapeRange
        If.Connector Xor非コネクター Then'残すシェイプの末尾に図の名前を追記残すリスト(UBound(残すリスト))=.Name'次の追記用にリストを1つ拡張ReDimPreserve残すリスト(UBound(残すリスト)+1)EndIfNext'ループで一個作りすぎるので、最後にマイナス1するReDimPreserve残すリスト(UBound(残すリスト)-1)Dim現在のスライド As Slide
    Set現在のスライド = ActiveWindow.Selection.SlideRange(1)'残すリストの図形を選択しなおす。現在のスライド.Shapes.Range(残すリスト).SelectEndSub

複数シェイプ上の番号を簡単に増減する

フローチャート等でプロセスごとに番号を振っていて、例えば間にプロセスを挿入したり削除した場合、後続の番号が全部ずれ込んでチマチマ修正する羽目になる。
とても面倒なので、選択範囲のシェイプに書かれた番号を一括で増減できるマクロを作った。

f:id:t-hom:20180908083439g:plain

Sub番号プラス()Call番号増減(1)EndSubSub番号マイナス()Call番号増減(-1)EndSubPrivateSub番号増減(数値)'シェイプが選択されていなければ、処理を中断する。IfNot ActiveWindow.Selection.Type= ppSelectionShapes ThenExitSubDimAs Shape
    ForEachIn ActiveWindow.Selection.ShapeRange
        If.HasTextFrame ThenIf.TextFrame.HasText ThenWith.TextFrame.TextRange
                   'Asc関数にテキストを入れると1文字目の文字コードを返す。'それに指定された数値を足してChrで文字に戻したあと、'2文字目以降を結合。.Text =Chr(Asc(.Text)+数値)&Mid(.Text,2)EndWithEndIfEndIfNextEndSub

PowerPointVBAでお勧めのページ

いつも隣にITのお仕事

「PowerPoint・VBA」の記事一覧 | いつも隣にITのお仕事
こちらは「ExcelVBAを実務で使い倒す技術」の著者であるタカハシさんのサイトのPowerPointカテゴリーの記事。
初心者向けに分かりやすく書かれている。

ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

PowerpointVBAを使おう!

chemiphys.hateblo.jp
こちらは理科の教員をされているchemiphysさんのサイト。
PowerPointVBAでものすごい高度なことやってる。
特に下の2つは私の中では伝説級。

chemiphys.hateblo.jp

chemiphys.hateblo.jp


Viewing all articles
Browse latest Browse all 493

Trending Articles