インストールレスプログラミング( ´ー`)

VBA , JavaScript , HTAなど 365アプリはインストール必要ですが、仕事に無いケースはほぼないから(・_・;)

Powerpoint VBA 方眼を描くマクロ

閃きました。

なんで今までマクロで作ろうと思わなかったのか。

意外に便利なんじゃないだろうか・・。

自己満足に浸りました(゚▽゚*)

タイシタモノデハアリマセン。でも お気に入り。

Option Explicit

Sub 方眼作成(Rows_ As Long, Columns_ As Long, CellWidth As Long)
    
    Dim TargetSlide As Slide: Set TargetSlide = ActiveWindow.Selection.SlideRange(1)
    
    Dim Width_ As Long: Width_ = Columns_ * CellWidth
    Dim Height_ As Long: Height_ = Rows_ * CellWidth
    
    Dim i As Long
    For i = 0 To Rows_
        With TargetSlide.Shapes.AddLine(50, 50 + CellWidth * i, 50 + Width_, 50 + CellWidth * i)
            .Name = "横" & i
            .Line.ForeColor.RGB = vbBlack
            .Line.Weight = 0.5
        End With
    Next
    
    For i = 0 To Columns_
        With TargetSlide.Shapes.AddLine(50 + CellWidth * i, 50, 50 + CellWidth * i, 50 + Height_)
            .Name = "縦" & i
            .Line.ForeColor.RGB = vbBlack
            .Line.Weight = 0.5
        End With
    Next

End Sub

Sub 方眼作成テスト()
    Dim ret As String: ret = InputBox("行,列,セルの大きさ?", Default:="5,10,30")
    
    Call 方眼作成(CLng(Split(ret, ",")(0)), CLng(Split(ret, ",")(1)), CLng(Split(ret, ",")(2)))
End Sub

所要時間10分くらいなんじゃないか。

すごい簡単だった。

でも,これわたしには必要なものかも。

引数を要求していますので,イミディエイトウィンドウで書くか,方眼作成テストマクロを実行して,行,列,セル幅を半角数字で,区切りで与えてください。

f:id:chemiphys:20170302220022g:plain


あと,今回お気に入りがこれ。

    Dim TargetSlide As Slide: Set TargetSlide = ActiveWindow.Selection.SlideRange(1)

たぶんどこかで見たんだと思う。こんな書き方。

選んでいるスライドをさくっと取得するので,これが一番いいなぁ。

今後これで書こうと思います。。

使えないケースもあるのかな,使っていくうちに覚えましょう。

ベクトルを簡単に描く方法を作りたいなぁと思ったとき,まずその前に方眼だよね,と思ってほいほいと喜んで作ったマクロでした。(/・ω・)/

そうそう,
akashi-keirin.hatenablog.com
こちらのブログで変数にアンダーバーを付けられているのをよく見ていて,似たような変数に微妙に毎回いろいろな文字をつけていた自分にとって,
考えずに一時的な変数名としてとても便利だなーと思い,その変数の付け方を真似しています。