Powerpoint VBA 表で遊んでみる。
化学反応式の量的関係,と呼ばれる話が化学基礎にあります。
表で説明していったりするんですが,なかなか理解してもらえない。
値を変化させることで,どのような感じに数値が変化していくのかを見てもらい,理解に結び付く子が増えたらいいなぁと思いながら作りました。
それは載せるのはちょい大変なので,そこで遊んだ表の仕組みの話。
いちいち編集モードに戻らずに表の値を編集したい,というニーズから思いついた単純なものです。
コードはこちら。
Sub 準備() Dim Sld As Slide: Set Sld = ActivePresentation.Slides(1) Dim Tbl As Table With Sld.Shapes.AddTable(4, 3, 50, 50, 300, 200) .Name = "表" Set Tbl = .Table End With Dim i, j For i = 1 To 4 For j = 1 To 3 With Sld.Shapes.AddLabel(msoTextOrientationHorizontal, 100 * j - 50, 50 * i, 100, 50) .Name = i & "," & j .Line.Visible = msoFalse .Fill.Visible = msoFalse With .ActionSettings(ppMouseClick) .Action = ppActionRunMacro .Run = "編集" End With End With Next Next End Sub Sub 編集(Shp As Shape) Dim Sld As Slide: Set Sld = ActivePresentation.Slides(1) Dim Tbl As Table: Set Tbl = Sld.Shapes("表").Table Dim ret As Variant ret = InputBox("値を入力") Tbl.Cell(Left(Shp.Name, 1), Right(Shp.Name, 1)).Shape.TextFrame.TextRange.Text = ret End Sub
新規のプレゼンテーションに標準モジュールを追加してそこにペタッと貼れば準備は終わりです。
まず「準備」マクロを実行すると,表を作ります。
見た目には表しかないように見えるはずですが,その表面に透明のラベルを並べています。
名前を右側に表示していますが,マクロを読んでもらえばわかりますが, 行,列 で名前をラベルにつけています。
そのラベルにはマウスクリックで 「編集」 マクロが動くよう設定していて,インプットボックスにより,値を取得し,表の該当部分にその値を書き込む,というマクロです。
とっても単純。
スライドショーにして,マウスで表の一部をクリックしてみてください。インプットボックスが出てきます。これで値を入れれる。
簡素極まりないですが,スライドショーのまま,値を入力できる,というのは実現できているので,
電子黒板で話を完結させることがある私には,今後も使い勝手があるなぁと思っています。