このマクロは、文書内の表で 4 つの単語のすべてのインスタンスを検索します。ドキュメントの 3 番目のテーブルとしても知られる "ActiveDocument.Tables(3)" を引用して、範囲を限定しました。
私が知りたかったのは:
(1)4つのwhileループを記述して、単語の4つの個別のインスタンスの値を見て記録する簡単な方法があれば。
(2) ドキュメントの 3 番目の表の 3 列目のコードの範囲を制限する構文上の方法があるかどうか。
while ループがあった理由は、4 つの異なる単語の 4 つの異なる値を Excel ドキュメントに記録するためです。
これまでの私のコードは次のとおりです。
Sub CreateChartFromExistingTable()
Dim salesChart As Chart
Dim chartWorkSheet As Excel.Worksheet
Dim iCount As Integer
Dim range As range
Dim List
Dim jCount As Integer
Dim range1 As range
Dim kCount As Integer
Dim range2 As range
Dim lCount As Integer
Dim range3 As range
Set salesChart = ActiveDocument.Shapes.AddChart.Chart
Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)
Set range = ActiveDocument.Tables(3).range
Set range1 = ActiveDocument.Tables(3).range
Set range2 = ActiveDocument.Tables(3).range
Set range3 = ActiveDocument.Tables(3).range
iCount = 0
With range.Find
.Text = "Passed"
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
iCount = iCount + 1
Loop
End With
jCount = 0
With range1.Find
.Text = "Failed"
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
jCount = jCount + 1
Loop
End With
kCount = 0
With range2.Find
.Text = "No Run"
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
kCount = kCount + 1
Loop
End With
lCount = 0
With range3.Find
.Text = "N/A"
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
lCount = lCount + 1
Loop
End With
chartWorkSheet.ListObjects("Table1").Resize chartWorkSheet.range("A1:B5")
chartWorkSheet.range("Table1[[#Headers],[Series 1]]").FormulaR1C1 = "Test Instances Summary Graph"
chartWorkSheet.range("A2").FormulaR1C1 = "Passed"
chartWorkSheet.range("A3").FormulaR1C1 = "Failed"
chartWorkSheet.range("A4").FormulaR1C1 = "No Run"
chartWorkSheet.range("A5").FormulaR1C1 = "N/A"
chartWorkSheet.range("B2").FormulaR1C1 = iCount
chartWorkSheet.range("B3").FormulaR1C1 = jCount
chartWorkSheet.range("B4").FormulaR1C1 = kCount
chartWorkSheet.range("B5").FormulaR1C1 = lCount
salesChart.ChartType = xlPie
salesChart.ChartData.Workbook.Application.Quit
End Sub
MS Word の VB エディタで Microsoft Excel 14.0 Object Library が参照されていることを確認してください。