teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/01/17 07:10

投稿

jawa
jawa

スコア3020

answer CHANGED
@@ -22,5 +22,57 @@
22
22
  結合状態を調べたいセルをSelectすると、結合セルであれば結合しているすべてのセルでSelectedプロパティがTrueになります。
23
23
  全てのセルでSelectedプロパティがTrueの数を数え、1なら単一セル、2以上なら結合セルと判断できます。
24
24
 
25
+ サンプルコード
26
+ ```
27
+ 'メイン処理
28
+ Sub Sample()
29
+
30
+ With ActivePresentation.Slides(1).Shapes(1).Table
31
+ '※とりあえず座標(1,1)をチェック
32
+ If IsMerged(.Cell(1,1)) Then
33
+ Msgbox "結合されてます"
34
+ ElseIf
35
+ Msgbox "結合されてません"
36
+ End If
37
+ End With
38
+ End Sub
39
+
40
+ '指定されたセルが結合セルか判定する関数
41
+ Function IsMerged(vCell As Cell) As Boolean
42
+ Dim bRet As Boolean
43
+ bRet = False
44
+
45
+ '調査するセルを選択する
46
+ vCell.Select
47
+
48
+ '選択状態のセルが複数見つかれば結合セルと判断
49
+ If SelCount(vCell.Parent) > 1 Then bRet = True
50
+
51
+ IsMerged = bRet
52
+
53
+ End Function
54
+
55
+ '指定した表で選択されているセルの数を返す関数
56
+ Function SelCount(vTbl As Table) As Integer
57
+ Dim iCnt As Integer
58
+ iCnt = 0
59
+
60
+ Dim r As Integer
61
+ Dim c As Integer
62
+
63
+ '表内の全セルをループ処理
64
+ For r = 1 To vTbl.Rows.Count
65
+ For c = 1 To vTbl.Columns.Count
66
+ '選択されているセルの数をカウント
67
+ If vTbl.Cell(r, c).Selected Then
68
+ iCnt = iCnt + 1
69
+ End If
70
+ Next c
71
+ Next r
72
+
73
+ SelCount = iCnt
74
+ End Function
75
+ ```
76
+
25
77
  ちょっと力技ではありますが、一つの方法としてご紹介しました。
26
78
  参考になれば幸いです。