Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表内の文字列を2次元配列に格納するPowerPointマクロ

表内の文字列を2次元配列に格納するPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

表内の文字列を配列に格納するPowerPointマクロ

「ppt vba 表の中の文字列 取得」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

PowerPointのVBA(Visual Basic for Applications)で、表の中の文字列を取得するコードを探している方による検索です。

[スポンサードリンク]

表内の文字列を2次元配列に格納するサンプルマクロ

この検索だけでは詳細がわかりませんので、表の中の文字列を取得して、2次元配列に格納するマクロをご紹介しておきます。


Sub 表内の文字列を配列に格納する()
 
 Dim cells() As String ' 表内の文字列格納用配列
 Dim r_cnt As Long  ' 行数格納用
 Dim c_cnt As Long  ' 列数格納用
 Dim r As Long    ' 行方向ループのカウンタ
 Dim c As Long    ' 列方向ループのカウンタ

 On Error GoTo ERR_HNDL

 With ActiveWindow.Selection.ShapeRange.Table

  r_cnt = .Rows.Count
  c_cnt = .Columns.Count
  ReDim cells(1 To r_cnt, 1 To c_cnt)

  For r = 1 To r_cnt
   For c = 1 To c_cnt
    cells(r, c) = _
     .Cell(r, c).Shape.TextFrame.TextRange.Text
   Next c
  Next r
 
  Stop

 End With

 Exit Sub

ERR_HNDL:

 MsgBox "表を選択してから実行してください。"

End Sub

PowerPointで表を選択しておいてから、上記のマクロを実行すると配列・cellsに表内の文字列が格納され、Stopステートメントでマクロが一時停止します。

一時停止した状態で、ローカルウィンドウを表示すれば、2次元配列に表内の文字列が格納されていることがご確認いただいけるでしょう。

サンプルマクロの解説

行方向のループの中で
  For r = 1 To r_cnt

列方向のループを回して
   For c = 1 To c_cnt

配列にデータを格納しています。
    cells(r, c) = _

オブジェクト式の階層が深いところが、難点でしょう。

Shapeオブジェクトの
 Tableオブジェクトの
  Cellオブジェクトの
   Shapeオブジェクトの
    TextFrameオブジェクトの
     TextRangeオブジェクトの
      Textプロパティで
表の中のセルの文字列を取得できます。

TextRangeオブジェクトではTextプロパティがデフォルトプロパティなので、
    cells(r, c) = _
     .Cell(r, c).Shape.TextFrame.TextRange.Text
の部分は「.Text」を省略して、
    cells(r, c) = _
     .Cell(r, c).Shape.TextFrame.TextRange
としてもOKです。

ExcelのVBAに慣れた方だと「Cells」じゃないのかと思ってしまう方がいらっしゃるかもしれません。が、オブジェクトブラウザーで確認すればわかるとおり、PowerPointの場合はTableオブジェクトのCellメソッドで、

表内の文字列を配列に格納するPowerPointマクロ

Cellオブジェクトが取得できます。

PowerPointで表のデータを配列に格納するコードをあらためて眺めてみると、Excelの場合2次元配列にデータを格納するのは簡単だなぁと、感心させられます。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表内の文字列を2次元配列に格納するPowerPointマクロ

TrackBack:0

TrackBack URL

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表内の文字列を2次元配列に格納するPowerPointマクロ

Copyright © インストラクターのネタ帳 All Rights Reserved.

.