How to calculate variance inflation factor (VIF) in multivariate analysis, that influences multicollinearity?

Multicollinearity, which occurs when there is strong correlation between the variables, cause serious problems in multivariate analysis. One of the indicators of multicollinearity is variance inflation factor (VIF). It’s threshold is 10. When VIF would be 10 or larger, the impact of multicollinearity could be strong, therefore the variable should be removed.

  • Regression equation changes significantly when you add or remove a small number of data
  • Regression equation changes significantly when you applied to different data set
  • Sign of the regression coefficient is opposite to the common sense of the field
  • Although the contribution rate of regression equation is high and the model fitting is good, individual regression coefficients is not significant
  • Regression equation can not be obtained

When you encountered the phenomenon above list, you should consider multicollinearity. It’s assumed that one variable is objective and other variables are explanatory variables. You could calculate multiple correlation coefficient (R-square) by linear regression analysis with such spreadsheet software as EXCEL, and calculate VIF as following formula.

\displaystyle VIF = \frac{1}{1 - R^2}

VIF measures the impact of multicollinearity among the X’s in a regression model on the precision of estimation. It expresses the degree to which multicollinearity amongst the predictors degrades the precision of an estimate. VIF is a statistic used to measure possible multicollinearity amongst the predictor or explanatory variables. VIF is computed as (1/(1-R2)) for each of the k – 1 independent variable equations. For example, given 4 independent predictor variables, the independent regression equations are formed by using each k-1 independent variable as the dependent variable:
X1 = X2 X3 X4
X2 = X1 X3 X4
X3 = X1 X2 X4
Each independent variable model will return an R2 value and VIF value. The term to exclude in the model is then based on the value of VIF. If Xj is highly correlated with the remaining predictors, its variance inflation factor will be very large. A general rule is that the VIF should not exceed 10 (Belsley, Kuh, & Welsch, 1980). When Xj is orthogonal to the remaining predictors, its variance inflation factor will be 1.

Clearly the shortcomings just mentioned in regard to the use of R as a diagnostic measure for collinearity would seem also to limit the usefulness of R-1 , and this is the case. The prevalence of this measure, however, justifies its separate treatment. Recalling that we are currently assuming the X data to be centered and scaled for unit length, we are considering R-1 = (XTX)-1. The diagonal elements of R-1, the rii, are often called the variance inflation factors, VIFi, [Chatterjee and Price (1077)], and their diagnostic value follows from the relation
\displaystyle VIF_i = \frac{1}{1-R^2_i}
where Ri2 is the multiple correlation coefficient of Xi regressed on the remaining explanatory variables. Clearly a high VIF indicates an Ri2 near unity, and hence points to collinearity. This measure is therefore of some use as an overall indication of collinearity. Its weakness, like those of R, lie in its inability to distinguish among several coexisting near dependencies and in the lack of a meaningful boundary to distinguish between values of VIF that can be considered high and those that can be considered low. [Belsley]

References:
Cecil Robinson and Randall E. Schumacker: Interaction Effects: Centering, Variance Inflation Factor, and Interpretation Issues. Multiple Linear Regression Viewpoints, 2009, Vol. 35(1)
Belsley, D. A.: Demeaning conditioning diagnostics through centering: The American Statistics 1984; 38: 73 – 82

多変量解析における変数間の多重共線性を variance inflation factor (VIF) で検証する

 多重共線性は変数間に相関がある場合や線形関係が成立している時に発生し,多変量解析において回帰式が不安定になるなどの様々な問題を引き起こします.その指標の一つとして variance inflation factor (VIF) があり,その値が 10 以上になると多重共線性の影響が強くなるため,その変数は除去して解析すべきです.

  • 少数のデータを追加・削除しただけで回帰式が大きく変化する
  • 異なるデータに適用すると回帰式が大きく変化する
  • 回帰係数の符号がその分野の常識と逆になる
  • 回帰式の寄与率が高くモデルの適合度も良好であるが,ここの回帰係数が有意にならない
  • 回帰式が求まらない

 上記の現象が起きた際には多重共線性の存在を疑います.SPSS では通常の線形回帰分析で統計量オプションから共線性の診断をチェックして VIF を求めることができますが,表計算ソフトでも求めることができます.一つの変数を目的変数とし,他の全ての変数を説明変数として回帰分析を実行し,求まった重相関係数 R2 を用いて下式で求めます.

\displaystyle VIF = \frac{1}{1 - R^2}

VIF measures the impact of multicollinearity among the X’s in a regression model on the precision of estimation. It expresses the degree to which multicollinearity amongst the predictors degrades the precision of an estimate. VIF is a statistic used to measure possible multicollinearity amongst the predictor or explanatory variables. VIF is computed as (1/(1-R2)) for each of the k – 1 independent variable equations. For example, given 4 independent predictor variables, the independent regression equations are formed by using each k-1 independent variable as the dependent variable:
X1 = X2 X3 X4
X2 = X1 X3 X4
X3 = X1 X2 X4
Each independent variable model will return an R2 value and VIF value. The term to exclude in the model is then based on the value of VIF. If Xj is highly correlated with the remaining predictors, its variance inflation factor will be very large. A general rule is that the VIF should not exceed 10 (Belsley, Kuh, & Welsch, 1980). When Xj is orthogonal to the remaining predictors, its variance inflation factor will be 1.

Clearly the shortcomings just mentioned in regard to the use of R as a diagnostic measure for collinearity would seem also to limit the usefulness of R-1 , and this is the case. The prevalence of this measure, however, justifies its separate treatment. Recalling that we are currently assuming the X data to be centered and scaled for unit length, we are considering R-1 = (XTX)-1. The diagonal elements of R-1, the rii, are often called the variance inflation factors, VIFi, [Chatterjee and Price (1077)], and their diagnostic value follows from the relation
\displaystyle VIF_i = \frac{1}{1-R^2_i}
where Ri2 is the multiple correlation coefficient of Xi regressed on the remaining explanatory variables. Clearly a high VIF indicates an Ri2 near unity, and hence points to collinearity. This measure is therefore of some use as an overall indication of collinearity. Its weakness, like those of R, lie in its inability to distinguish among several coexisting near dependencies and in the lack of a meaningful boundary to distinguish between values of VIF that can be considered high and those that can be considered low. [Belsley]

参照:
Cecil Robinson and Randall E. Schumacker: Interaction Effects: Centering, Variance Inflation Factor, and Interpretation Issues. Multiple Linear Regression Viewpoints, 2009, Vol. 35(1)
Belsley, D. A.: Demeaning conditioning diagnostics through centering: The American Statistics 1984; 38: 73 – 82

How to calculate Harrell’s c-index to evaluate multivariate model with EXCEL VBA?

You may use Akaike information criterion (AIC) to evaluate fitting of multivariate model. You could use c-index that Harrell have proposed. Although it seems to evaluate fitting of present data set, it seems not to consider about future data set, it might result in overfitting to present data set.

  1. Make pair from data set with proportional hazard analysis
  2. Calculate risk score
  3. Compare risk score and survival time between pairs
  4. Calculate c-index

1. Make pair from data set with proportional hazard analysis

It’s assumed that sample size is N, the number of pairs could be calculated following formula.

\displaystyle _{N}C_{2} = \frac{N!}{(N-2)!2!}

It’s assumed that worksheet’s structure follows the list below.

  • The 1st line is title.
  • The 1st column is survival time, the 2nd is outcome, the 3rd is a risk score of model 1, the 4th is a risk score of model 2 and the 5th is a risk score of model 3, respectively.
  • All data type is numerical.
  • In outcome, 0 is death and 1 is censored, respectively.
Option Explicit

Sub C_Statistics()
    Dim i   As Long
    Dim j   As Long
    Dim k   As Long
    Dim Rng As Range
    Dim Ar  As Variant
    k = 0
    Set Rng = ActiveSheet.UsedRange
    Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1)
    Ar = Rng
    For i = LBound(Ar) To UBound(Ar) - 1
        For j = i + 1 To UBound(Ar)
            k = k + 1
        Next j
    Next i
    Debug.Print "k= " & k
End Sub

2. Calculate risk score

Risk score (R) is calculated as following formula.

\displaystyle R = \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_n X_n

\displaystyle S(t, X) = S_0(t)^{\exp(R-R_0)}

A point estimated of effect size in COX proportional hazard analysis is hazard ratio (Exp(Β)) and regression coefficient of covariate is logarithm of hazard ratio (Β). It’s assumed that risk score has been calculated.

3. Compare risk score and survival time between both of pair

It’s important that “If both of pair was censored or one of pair was censored and survival time of censored is short, they were classified as unknown”. In other words,

  • Accept the pair both of it is death
  • If one of pair is death and the survival time of death is shorter than the censored, accept it.

It’s as following VBA code. It’s assumed that it doesn’t includes equal sign if both survival time of pair were equal.

            Select Case Ar(i, 2) + Ar(j, 2)
            Case 0
                k = k + 1
            Case 1
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 2) - Ar(j, 2)) > 0 Then
                    k = k + 1
                End If
            End Select

Furthermore, you would compare risk score and survival time between both of pair and evaluate the sign of product of the differentiation of risk score and the differentiation of survival time, respectively. It means that whether the magnitude of risk score and the length of survival time are consistent or not. It’s assumed that lower risk score means longer survival time.

Option Explicit

Sub C_Statistics()
    Dim i   As Long
    Dim j   As Long
    Dim k   As Long
    Dim n1  As Long
    Dim n2  As Long
    Dim n3  As Long
    Dim Rng As Range
    Dim Ar  As Variant
    
    k = 0
    n1 = 0
    n2 = 0
    n3 = 0
    Set Rng = ActiveSheet.UsedRange
    Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1)
    Ar = Rng
    For i = LBound(Ar) To UBound(Ar) - 1
        For j = i + 1 To UBound(Ar)
            Select Case Ar(i, 2) + Ar(j, 2)
            Case 0
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 3) - Ar(j, 3)) < 0 Then
                    n1 = n1 + 1
                End If
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 4) - Ar(j, 4)) < 0 Then
                    n2 = n2 + 1
                End If
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 5) - Ar(j, 5)) < 0 Then
                    n3 = n3 + 1
                End If
                k = k + 1
            Case 1
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 2) - Ar(j, 2)) > 0 Then
                    If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 3) - Ar(j, 3)) < 0 Then
                        n1 = n1 + 1
                    End If
                    If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 4) - Ar(j, 4)) < 0 Then
                        n2 = n2 + 1
                    End If
                    If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 5) - Ar(j, 5)) < 0 Then
                        n3 = n3 + 1
                    End If
                    k = k + 1
                End If
            End Select
        Next j
    Next i
    Debug.Print "n1= " & n1, "n2= " & n2, "n3= " & n3, "k= " & k
    Debug.Print "C1= " & n1 / k, "C2= " & n2 / k, "C3= " & n3 / k
End Sub

The sign of 35th line is larger than 0, it's assumed that censor is 1 and death is 0, would be reversed if censor was 0 and death was 1. The signs of 24th, 27th, 30th, 36th, 39th and 42nd would be reversed if it was assumed that higher risk score means longer survival time.

4. Calculate c-index

n1/k, n2/k and n3/k are c-index of model 1, model 2 and model 3, respectively. c-index ranges between 0 and 1. If c-index is 0.5, it means that the model doesn't fit at all. If it's closer to 0 or 1, it means that the model fits better.

Draw a pair of patients and determine which patient lived longer from his baseline evaluation. Survival times can be validly compared either when both patients have died, or when one has died and the other's followup time has exceeded the survival time of the first. If both patients are still alive, which will live longer is not known, and that pair of patients is not used in the analysis. Otherwise, it can be determined whether the patient with the higher prognostic score (ie, the weighted combination of baseline and test variables used to predict survival) also had the longer survival time. The process is repeated until all possible pairs of patients have been examined. Of the pairs of patients for which the ordering of survival time s could be inferred, the fraction of pairs such that the patient with the higher score had the longer survival time will be denoted by c.

The index c estimates the probability that, of two randomly chosen patients, the patient with the higher prognostic score will outlive the patient with the lower prognostic score. Values of c near .5 indicate that the prognostic score is no better than a coin-flip in determining which patient will live longer. Values of c near 0 or 1 indicate the baseline data virtually always determine which patient has a better prognosis. The c index measures a probability; many clinicians are more used to dealing with a correlation index that ranges from -1 to +1. A Kendall or Goodman-Kruskal type of correlation index can easily be constructed by calculating γ = 2(c - .5), where γ is the estimated probability that the prognostic score correctly orders prognosis for a pair of patients minus the probability that it incorrectly orders prognosis. When the prognostic score is unrelated to survival time, gamma is zero. When gamma = .5, the relationship between the prognostic score and survival time is halfway between a random relationship and a perfect relationship, and the corresponding c value is .75.

References:
Frank E. Harrell Jr, et al: Evaluating the Yield of Medical Tests. JAMA. 1982; 247 (18): 2543 - 2546
Morizane Toshio: Multivariate model, International Medical Information Center 2008; 29 (3): 8 - 12

多変量モデル評価法のc-indexをEXCEL VBAで計算する

 多変量モデルの適合度の評価方法には通常赤池情報量基準 (AIC) を用いますが,Harrell らの提唱する c-index という指標もあります.c 統計値とも言い,リスクスコアの小さい(又は大きい)症例の方が生存期間が長いことが実際のデータでどれくらいの確率で正しいかを示す値です.方法は後述しますが,AIC と比較すると現在のデータに対する適合度のみを評価しており,未来のデータの予測精度への考慮がないように思えます.その意味で overfitting の可能性がある評価法と言えなくもありません.

  1. 比例ハザード解析対象となった症例から,全てのペアを作る
  2. それらのリスクスコアを調べる
  3. リスクスコアの大小および生存期間の長短を比較する
  4. c-index を計算する

1. 比例ハザード解析対象となった症例から,全てのペア(2症例ずつの組み合わせ)を作る

 サンプルサイズを N とすると,全てのペア数は下式で表現されます.

\displaystyle _{N}C_{2} = \frac{N!}{(N-2)!2!}

 ワークシート上にデータがあるとして,1行が1症例とすると,全ての行から任意の2行を取り出すコードは下記のようになります.ワークシートの構造が以下のようであると仮定します.

  • 1 行目はタイトル行である.
  • A 列は生存期間, B 列は転帰,C 列はモデル 1 のリスクスコア,D 列はモデル 2 のリスクスコア,E 列はモデル 3 のリスクスコアをそれぞれ表現する.
  • 全てのデータは数値型である.
  • B 列で死亡は 0, 打切は 1 と表現する.
Option Explicit

Sub C_Statistics()
    Dim i   As Long
    Dim j   As Long
    Dim k   As Long
    Dim Rng As Range
    Dim Ar  As Variant
    k = 0
    Set Rng = ActiveSheet.UsedRange
    Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1)
    Ar = Rng
    For i = LBound(Ar) To UBound(Ar) - 1
        For j = i + 1 To UBound(Ar)
            k = k + 1
        Next j
    Next i
    Debug.Print "k= " & k
End Sub

2. それらのリスクスコアを調べる

 リスクスコア (R) は下式で表現されます.予後を規定するという意味で予後スコア prognostic score とも言います.β は回帰係数,X は共変量です.R0 は全症例のリスクスコアの平均値です.S0(t) はベースラインの生存率であり,全ての説明変数が基準値である場合の各時点 t での生存率です.

\displaystyle R = \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_n X_n

\displaystyle S(t, X) = S_0(t)^{\exp(R-R_0)}

 COX 比例ハザード分析では効果量の点推定値はハザード比 (Exp(Β)) として表現され,共変量の回帰係数はハザード比の対数 (LN(Exp(Β)) = Β) として表現します.それぞれの共変量にそれぞれの回帰係数をかけた積の和がリスクスコアです.ここでは既にリスクスコアの計算は終わっているものとします.

3. リスクスコアの大小および生存期間の長短を比較する

 ここで重要な点は「2 症例とも打切例,あるいは片方が打切で打切までの期間がより短い場合は不明に分類される」との記述を条件式に表現する方法です.この条件は次のように言い換えることができます.

  • 両者とも死亡のペアを受け入れる
  • 一方が死亡の場合,死亡例の生存期間が打切例の生存期間より短いなら受け入れる

 これを VBA で表現すると以下のようになります.2 行目と 4 行目の Case 式はそれぞれ上述した条件式に該当します.5 行目は上述の条件の後者を表現したものであり,生存期間の差と転帰の差との積を取り,符号が負の場合は拒否します.参照書籍の記述によると『打切例の打切までの生存期間が同じ値かあるいは短い場合にはどちらの生存が長いかは判断することができない』とのことですので,等号は外すこととします.

            Select Case Ar(i, 2) + Ar(j, 2)
            Case 0
                k = k + 1
            Case 1
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 2) - Ar(j, 2)) > 0 Then
                    k = k + 1
                End If
            End Select

 さらにリスクスコアと生存期間とを比較します.同様にリスクスコアの差と生存期間の差との積の符号を評価します.リスクスコアの大小と生存期間の長短とが一致しているか否かを,差の積の符号に置き換えている訳です.最初に『リスクスコアの小さい(又は大きい)症例の方が生存期間が長いこと』と述べましたが,説明変数の設定によって各変数の係数の正負を逆転させ,リスクスコアの大小を逆転させることも可能です.ここではリスクスコアが小さいほど生存期間が長いという前提で話を進めます.

Option Explicit

Sub C_Statistics()
    Dim i   As Long
    Dim j   As Long
    Dim k   As Long
    Dim n1  As Long
    Dim n2  As Long
    Dim n3  As Long
    Dim Rng As Range
    Dim Ar  As Variant
    
    k = 0
    n1 = 0
    n2 = 0
    n3 = 0
    Set Rng = ActiveSheet.UsedRange
    Set Rng = Rng.Resize(Rng.Rows.Count - 1).Offset(1)
    Ar = Rng
    For i = LBound(Ar) To UBound(Ar) - 1
        For j = i + 1 To UBound(Ar)
            Select Case Ar(i, 2) + Ar(j, 2)
            Case 0
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 3) - Ar(j, 3)) < 0 Then
                    n1 = n1 + 1
                End If
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 4) - Ar(j, 4)) < 0 Then
                    n2 = n2 + 1
                End If
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 5) - Ar(j, 5)) < 0 Then
                    n3 = n3 + 1
                End If
                k = k + 1
            Case 1
                If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 2) - Ar(j, 2)) > 0 Then
                    If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 3) - Ar(j, 3)) < 0 Then
                        n1 = n1 + 1
                    End If
                    If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 4) - Ar(j, 4)) < 0 Then
                        n2 = n2 + 1
                    End If
                    If (Ar(i, 1) - Ar(j, 1)) * (Ar(i, 5) - Ar(j, 5)) < 0 Then
                        n3 = n3 + 1
                    End If
                    k = k + 1
                End If
            End Select
        Next j
    Next i
    Debug.Print "n1= " & n1, "n2= " & n2, "n3= " & n3, "k= " & k
    Debug.Print "C1= " & n1 / k, "C2= " & n2 / k, "C3= " & n3 / k
End Sub

 35 行目の条件式の符号は打切が 1, 死亡が 0 の際のものです.打切が 0, 死亡が 1 なら符号は逆転します.同様にリスクスコアが大きいほど生存期間が長いなら 24, 27, 30, 36, 39, 42 行目の符号は逆転します.

4. c-index を計算する

 リスクスコアと生存の関係が (1) 一致しているか,(2) 一致していないか,(3) 不明かで結果を場合分けしそれぞれの個数をカウントします.(1)/((1)+(2)) の比率が c-index です.上記では n1/k, n2/k, n3/k がそれぞれのモデルの c-index となります.c-index は 0 から 1 までの値を取りますが,0.5 の場合は全く適合していないと評価します.0 または 1 に近いほど適合が良いと評価します.

Draw a pair of patients and determine which patient lived longer from his baseline evaluation. Survival times can be validly compared either when both patients have died, or when one has died and the other's followup time has exceeded the survival time of the first. If both patients are still alive, which will live longer is not known, and that pair of patients is not used in the analysis. Otherwise, it can be determined whether the patient with the higher prognostic score (ie, the weighted combination of baseline and test variables used to predict survival) also had the longer survival time. The process is repeated until all possible pairs of patients have been examined. Of the pairs of patients for which the ordering of survival time s could be inferred, the fraction of pairs such that the patient with the higher score had the longer survival time will be denoted by c.

The index c estimates the probability that, of two randomly chosen patients, the patient with the higher prognostic score will outlive the patient with the lower prognostic score. Values of c near .5 indicate that the prognostic score is no better than a coin-flip in determining which patient will live longer. Values of c near 0 or 1 indicate the baseline data virtually always determine which patient has a better prognosis. The c index measures a probability; many clinicians are more used to dealing with a correlation index that ranges from -1 to +1. A Kendall or Goodman-Kruskal type of correlation index can easily be constructed by calculating γ = 2(c - .5), where γ is the estimated probability that the prognostic score correctly orders prognosis for a pair of patients minus the probability that it incorrectly orders prognosis. When the prognostic score is unrelated to survival time, gamma is zero. When gamma = .5, the relationship between the prognostic score and survival time is halfway between a random relationship and a perfect relationship, and the corresponding c value is .75.

参照:
Frank E. Harrell Jr, et al: Evaluating the Yield of Medical Tests. JAMA. 1982; 247 (18): 2543 - 2546
森實敏夫:多変量モデル,あいみっく,2008; 29 (3): 8 - 12(国際医学情報センター)

Properties of Revision of Microsoft Word 2010

It’s important for research members who had posted papers to compare between first edition and final version of them. I had investigated properties of revision in Microsoft Word 2010 VBA.

Revision

Option Explicit

Sub Revision()
    Dim myDoc   As Document
    Set myDoc = ActiveDocument
    With myDoc
        .TrackRevisions = True
        .TrackMoves = True
        .TrackFormatting = True
    End With
    With Options
        
        .InsertedTextMark = wdInsertedTextMarkBold
        .InsertedTextMark = wdInsertedTextMarkColorOnly
        .InsertedTextMark = wdInsertedTextMarkDoubleStrikeThrough
        .InsertedTextMark = wdInsertedTextMarkDoubleUnderline
        .InsertedTextMark = wdInsertedTextMarkItalic
        .InsertedTextMark = wdInsertedTextMarkNone
        .InsertedTextMark = wdInsertedTextMarkStrikeThrough
        .InsertedTextMark = wdInsertedTextMarkUnderline
        
        .InsertedTextColor = wdAuto
        .InsertedTextColor = wdBlack
        .InsertedTextColor = wdBlue
        .InsertedTextColor = wdBrightGreen
        .InsertedTextColor = wdByAuthor
        .InsertedTextColor = wdDarkBlue
        .InsertedTextColor = wdDarkRed
        .InsertedTextColor = wdDarkYellow
        .InsertedTextColor = wdGray25
        .InsertedTextColor = wdGray50
        .InsertedTextColor = wdGreen
        .InsertedTextColor = wdNoHighlight
        .InsertedTextColor = wdPink
        .InsertedTextColor = wdRed
        .InsertedTextColor = wdTeal
        .InsertedTextColor = wdTurquoise
        .InsertedTextColor = wdViolet
        .InsertedTextColor = wdWhite
        .InsertedTextColor = wdYellow
        
        .DeletedTextMark = wdDeletedTextMarkBold
        .DeletedTextMark = wdDeletedTextMarkCaret
        .DeletedTextMark = wdDeletedTextMarkColorOnly
        .DeletedTextMark = wdDeletedTextMarkDoubleStrikeThrough
        .DeletedTextMark = wdDeletedTextMarkDoubleUnderline
        .DeletedTextMark = wdDeletedTextMarkHidden
        .DeletedTextMark = wdDeletedTextMarkItalic
        .DeletedTextMark = wdDeletedTextMarkNone
        .DeletedTextMark = wdDeletedTextMarkPound
        .DeletedTextMark = wdDeletedTextMarkStrikeThrough
        .DeletedTextMark = wdDeletedTextMarkUnderline
        
        .DeletedTextColor = wdAuto
        .DeletedTextColor = wdBlack
        .DeletedTextColor = wdBlue
        .DeletedTextColor = wdBrightGreen
        .DeletedTextColor = wdByAuthor
        .DeletedTextColor = wdDarkBlue
        .DeletedTextColor = wdDarkRed
        .DeletedTextColor = wdDarkYellow
        .DeletedTextColor = wdGray25
        .DeletedTextColor = wdGray50
        .DeletedTextColor = wdGreen
        .DeletedTextColor = wdNoHighlight
        .DeletedTextColor = wdPink
        .DeletedTextColor = wdRed
        .DeletedTextColor = wdTeal
        .DeletedTextColor = wdTurquoise
        .DeletedTextColor = wdViolet
        .DeletedTextColor = wdWhite
        .DeletedTextColor = wdYellow
        
        .RevisedLinesMark = wdRevisedLinesMarkLeftBorder
        .RevisedLinesMark = wdRevisedLinesMarkNone
        .RevisedLinesMark = wdRevisedLinesMarkOutsideBorder
        .RevisedLinesMark = wdRevisedLinesMarkRightBorder
        
        .RevisedLinesColor = wdAuto
        .RevisedLinesColor = wdBlack
        .RevisedLinesColor = wdBlue
        .RevisedLinesColor = wdBrightGreen
        .RevisedLinesColor = wdByAuthor
        .RevisedLinesColor = wdDarkBlue
        .RevisedLinesColor = wdDarkRed
        .RevisedLinesColor = wdDarkYellow
        .RevisedLinesColor = wdGray25
        .RevisedLinesColor = wdGray50
        .RevisedLinesColor = wdGreen
        .RevisedLinesColor = wdNoHighlight
        .RevisedLinesColor = wdPink
        .RevisedLinesColor = wdRed
        .RevisedLinesColor = wdTeal
        .RevisedLinesColor = wdTurquoise
        .RevisedLinesColor = wdViolet
        .RevisedLinesColor = wdWhite
        .RevisedLinesColor = wdYellow
        
        .CommentsColor = wdAuto
        .CommentsColor = wdBlack
        .CommentsColor = wdBlue
        .CommentsColor = wdBrightGreen
        .CommentsColor = wdByAuthor
        .CommentsColor = wdDarkBlue
        .CommentsColor = wdDarkRed
        .CommentsColor = wdDarkYellow
        .CommentsColor = wdGray25
        .CommentsColor = wdGray50
        .CommentsColor = wdGreen
        .CommentsColor = wdNoHighlight
        .CommentsColor = wdPink
        .CommentsColor = wdRed
        .CommentsColor = wdTeal
        .CommentsColor = wdTurquoise
        .CommentsColor = wdViolet
        .CommentsColor = wdWhite
        .CommentsColor = wdYellow
        
        .MoveFromTextMark = wdMoveFromTextMarkBold
        .MoveFromTextMark = wdMoveFromTextMarkCaret
        .MoveFromTextMark = wdMoveFromTextMarkColorOnly
        .MoveFromTextMark = wdMoveFromTextMarkDoubleStrikeThrough
        .MoveFromTextMark = wdMoveFromTextMarkDoubleUnderline
        .MoveFromTextMark = wdMoveFromTextMarkHidden
        .MoveFromTextMark = wdMoveFromTextMarkItalic
        .MoveFromTextMark = wdMoveFromTextMarkNone
        .MoveFromTextMark = wdMoveFromTextMarkPound
        .MoveFromTextMark = wdMoveFromTextMarkStrikeThrough
        .MoveFromTextMark = wdMoveFromTextMarkUnderline
        
        .MoveFromTextColor = wdAuto
        .MoveFromTextColor = wdBlack
        .MoveFromTextColor = wdBlue
        .MoveFromTextColor = wdBrightGreen
        .MoveFromTextColor = wdByAuthor
        .MoveFromTextColor = wdDarkBlue
        .MoveFromTextColor = wdDarkRed
        .MoveFromTextColor = wdDarkYellow
        .MoveFromTextColor = wdGray25
        .MoveFromTextColor = wdGray50
        .MoveFromTextColor = wdGreen
        .MoveFromTextColor = wdNoHighlight
        .MoveFromTextColor = wdPink
        .MoveFromTextColor = wdRed
        .MoveFromTextColor = wdTeal
        .MoveFromTextColor = wdTurquoise
        .MoveFromTextColor = wdViolet
        .MoveFromTextColor = wdWhite
        .MoveFromTextColor = wdYellow
        
        .MoveToTextMark = wdMoveToTextMarkBold
        .MoveToTextMark = wdMoveToTextMarkColorOnly
        .MoveToTextMark = wdMoveToTextMarkDoubleStrikeThrough
        .MoveToTextMark = wdMoveToTextMarkDoubleUnderline
        .MoveToTextMark = wdMoveToTextMarkItalic
        .MoveToTextMark = wdMoveToTextMarkNone
        .MoveToTextMark = wdMoveToTextMarkStrikeThrough
        .MoveToTextMark = wdMoveToTextMarkUnderline
        
        .MoveToTextColor = wdAuto
        .MoveToTextColor = wdBlack
        .MoveToTextColor = wdBlue
        .MoveToTextColor = wdBrightGreen
        .MoveToTextColor = wdByAuthor
        .MoveToTextColor = wdDarkBlue
        .MoveToTextColor = wdDarkRed
        .MoveToTextColor = wdDarkYellow
        .MoveToTextColor = wdGray25
        .MoveToTextColor = wdGray50
        .MoveToTextColor = wdGreen
        .MoveToTextColor = wdNoHighlight
        .MoveToTextColor = wdPink
        .MoveToTextColor = wdRed
        .MoveToTextColor = wdTeal
        .MoveToTextColor = wdTurquoise
        .MoveToTextColor = wdViolet
        .MoveToTextColor = wdWhite
        .MoveToTextColor = wdYellow
        
        .InsertedCellColor = wdCellColorByAuthor
        .InsertedCellColor = wdCellColorLightBlue
        .InsertedCellColor = wdCellColorLightGray
        .InsertedCellColor = wdCellColorLightGreen
        .InsertedCellColor = wdCellColorLightOrange
        .InsertedCellColor = wdCellColorLightPurple
        .InsertedCellColor = wdCellColorLightYellow
        .InsertedCellColor = wdCellColorNoHighlight
        .InsertedCellColor = wdCellColorPink
        
        .MergedCellColor = wdCellColorByAuthor
        .MergedCellColor = wdCellColorLightBlue
        .MergedCellColor = wdCellColorLightGray
        .MergedCellColor = wdCellColorLightGreen
        .MergedCellColor = wdCellColorLightOrange
        .MergedCellColor = wdCellColorLightPurple
        .MergedCellColor = wdCellColorLightYellow
        .MergedCellColor = wdCellColorNoHighlight
        .MergedCellColor = wdCellColorPink
        
        .DeletedCellColor = wdCellColorByAuthor
        .DeletedCellColor = wdCellColorLightBlue
        .DeletedCellColor = wdCellColorLightGray
        .DeletedCellColor = wdCellColorLightGreen
        .DeletedCellColor = wdCellColorLightOrange
        .DeletedCellColor = wdCellColorLightPurple
        .DeletedCellColor = wdCellColorLightYellow
        .DeletedCellColor = wdCellColorNoHighlight
        .DeletedCellColor = wdCellColorPink
        
        .SplitCellColor = wdCellColorByAuthor
        .SplitCellColor = wdCellColorLightBlue
        .SplitCellColor = wdCellColorLightGray
        .SplitCellColor = wdCellColorLightGreen
        .SplitCellColor = wdCellColorLightOrange
        .SplitCellColor = wdCellColorLightPurple
        .SplitCellColor = wdCellColorLightYellow
        .SplitCellColor = wdCellColorNoHighlight
        .SplitCellColor = wdCellColorPink
        
        .RevisedPropertiesMark = wdRevisedPropertiesMarkBold
        .RevisedPropertiesMark = wdRevisedPropertiesMarkColorOnly
        .RevisedPropertiesMark = wdRevisedPropertiesMarkDoubleStrikeThrough
        .RevisedPropertiesMark = wdRevisedPropertiesMarkDoubleUnderline
        .RevisedPropertiesMark = wdRevisedPropertiesMarkItalic
        .RevisedPropertiesMark = wdRevisedPropertiesMarkNone
        .RevisedPropertiesMark = wdRevisedPropertiesMarkStrikeThrough
        .RevisedPropertiesMark = wdRevisedPropertiesMarkUnderline
        
        .RevisedPropertiesColor = wdAuto
        .RevisedPropertiesColor = wdBlack
        .RevisedPropertiesColor = wdBlue
        .RevisedPropertiesColor = wdBrightGreen
        .RevisedPropertiesColor = wdByAuthor
        .RevisedPropertiesColor = wdDarkBlue
        .RevisedPropertiesColor = wdDarkRed
        .RevisedPropertiesColor = wdDarkYellow
        .RevisedPropertiesColor = wdGray25
        .RevisedPropertiesColor = wdGray50
        .RevisedPropertiesColor = wdGreen
        .RevisedPropertiesColor = wdNoHighlight
        .RevisedPropertiesColor = wdPink
        .RevisedPropertiesColor = wdRed
        .RevisedPropertiesColor = wdTeal
        .RevisedPropertiesColor = wdTurquoise
        .RevisedPropertiesColor = wdViolet
        .RevisedPropertiesColor = wdWhite
        .RevisedPropertiesColor = wdYellow
        
        .RevisionsBalloonPrintOrientation = wdBalloonPrintOrientationAuto
        .RevisionsBalloonPrintOrientation = wdBalloonPrintOrientationForceLandscape
        .RevisionsBalloonPrintOrientation = wdBalloonPrintOrientationPreserve
    End With
    
    With ActiveWindow.View
        
        .RevisionsMode = wdBalloonRevisions
        .RevisionsMode = wdInLineRevisions
        .RevisionsMode = wdMixedRevisions
        
        .RevisionsBalloonShowConnectingLines = False
        .RevisionsBalloonShowConnectingLines = True
        
        .RevisionsBalloonSide = wdLeftMargin
        .RevisionsBalloonSide = wdRightMargin
        
        .RevisionsBalloonWidthType = wdBalloonWidthPoints
        .RevisionsBalloonWidthType = wdBalloonWidthPercent
        
        .RevisionsBalloonWidth = MillimetersToPoints(76.2)
        .RevisionsBalloonWidth = 36
    End With
End Sub

Microsoft Word 2010のドキュメントの変更履歴のプロパティ

 研究者にとって論文の初版からの変更履歴を記録しておくと最終版との比較に便利です.Word VBA でそのプロパティを調べてみました.

Revision

Option Explicit

Sub Revision()
    Dim myDoc   As Document
    Set myDoc = ActiveDocument
    With myDoc
        .TrackRevisions = True  '変更履歴開始
        .TrackMoves = True      '移動を記録する
        .TrackFormatting = True '書式の変更を記録する
    End With
    With Options
        '挿入された箇所'
        .InsertedTextMark = wdInsertedTextMarkBold
        .InsertedTextMark = wdInsertedTextMarkColorOnly
        .InsertedTextMark = wdInsertedTextMarkDoubleStrikeThrough
        .InsertedTextMark = wdInsertedTextMarkDoubleUnderline
        .InsertedTextMark = wdInsertedTextMarkItalic
        .InsertedTextMark = wdInsertedTextMarkNone
        .InsertedTextMark = wdInsertedTextMarkStrikeThrough
        .InsertedTextMark = wdInsertedTextMarkUnderline
        '(挿入された箇所の)色'
        .InsertedTextColor = wdAuto         '自動'
        .InsertedTextColor = wdBlack        '黒'
        .InsertedTextColor = wdBlue         '青'
        .InsertedTextColor = wdBrightGreen  '明るい緑'
        .InsertedTextColor = wdByAuthor     '校閲者別'
        .InsertedTextColor = wdDarkBlue     '濃い青'
        .InsertedTextColor = wdDarkRed      '濃い赤'
        .InsertedTextColor = wdDarkYellow   '濃い黄'
        .InsertedTextColor = wdGray25       '25% 灰色'
        .InsertedTextColor = wdGray50       '50% 灰色'
        .InsertedTextColor = wdGreen        '緑'
        .InsertedTextColor = wdNoHighlight  '(なし)'
        .InsertedTextColor = wdPink         'ピンク'
        .InsertedTextColor = wdRed          '赤'
        .InsertedTextColor = wdTeal         '青緑'
        .InsertedTextColor = wdTurquoise    '水色'
        .InsertedTextColor = wdViolet       '紫'
        .InsertedTextColor = wdWhite        '白'
        .InsertedTextColor = wdYellow       '黄'
        '削除された箇所'
        .DeletedTextMark = wdDeletedTextMarkBold                '太字'
        .DeletedTextMark = wdDeletedTextMarkCaret               '^(キャレット)'
        .DeletedTextMark = wdDeletedTextMarkColorOnly           '色のみ'
        .DeletedTextMark = wdDeletedTextMarkDoubleStrikeThrough '二重取り消し線'
        .DeletedTextMark = wdDeletedTextMarkDoubleUnderline     '二重下線'
        .DeletedTextMark = wdDeletedTextMarkHidden              '隠し文字'
        .DeletedTextMark = wdDeletedTextMarkItalic              '斜体'
        .DeletedTextMark = wdDeletedTextMarkNone                '(なし)'
        .DeletedTextMark = wdDeletedTextMarkPound               '#(パウンド)'
        .DeletedTextMark = wdDeletedTextMarkStrikeThrough       '取り消し線'
        .DeletedTextMark = wdDeletedTextMarkUnderline           '下線'
        '(削除された箇所の)色'
        .DeletedTextColor = wdAuto
        .DeletedTextColor = wdBlack
        .DeletedTextColor = wdBlue
        .DeletedTextColor = wdBrightGreen
        .DeletedTextColor = wdByAuthor
        .DeletedTextColor = wdDarkBlue
        .DeletedTextColor = wdDarkRed
        .DeletedTextColor = wdDarkYellow
        .DeletedTextColor = wdGray25
        .DeletedTextColor = wdGray50
        .DeletedTextColor = wdGreen
        .DeletedTextColor = wdNoHighlight
        .DeletedTextColor = wdPink
        .DeletedTextColor = wdRed
        .DeletedTextColor = wdTeal
        .DeletedTextColor = wdTurquoise
        .DeletedTextColor = wdViolet
        .DeletedTextColor = wdWhite
        .DeletedTextColor = wdYellow
        '変更された行'
        .RevisedLinesMark = wdRevisedLinesMarkLeftBorder    '左罫線'
        .RevisedLinesMark = wdRevisedLinesMarkNone          '(なし)'
        .RevisedLinesMark = wdRevisedLinesMarkOutsideBorder '外枠'
        .RevisedLinesMark = wdRevisedLinesMarkRightBorder   '右罫線'
        '(変更された行の)色'
        .RevisedLinesColor = wdAuto
        .RevisedLinesColor = wdBlack
        .RevisedLinesColor = wdBlue
        .RevisedLinesColor = wdBrightGreen
        .RevisedLinesColor = wdByAuthor
        .RevisedLinesColor = wdDarkBlue
        .RevisedLinesColor = wdDarkRed
        .RevisedLinesColor = wdDarkYellow
        .RevisedLinesColor = wdGray25
        .RevisedLinesColor = wdGray50
        .RevisedLinesColor = wdGreen
        .RevisedLinesColor = wdNoHighlight
        .RevisedLinesColor = wdPink
        .RevisedLinesColor = wdRed
        .RevisedLinesColor = wdTeal
        .RevisedLinesColor = wdTurquoise
        .RevisedLinesColor = wdViolet
        .RevisedLinesColor = wdWhite
        .RevisedLinesColor = wdYellow
        'コメントの色'
        .CommentsColor = wdAuto
        .CommentsColor = wdBlack
        .CommentsColor = wdBlue
        .CommentsColor = wdBrightGreen
        .CommentsColor = wdByAuthor
        .CommentsColor = wdDarkBlue
        .CommentsColor = wdDarkRed
        .CommentsColor = wdDarkYellow
        .CommentsColor = wdGray25
        .CommentsColor = wdGray50
        .CommentsColor = wdGreen
        .CommentsColor = wdNoHighlight
        .CommentsColor = wdPink
        .CommentsColor = wdRed
        .CommentsColor = wdTeal
        .CommentsColor = wdTurquoise
        .CommentsColor = wdViolet
        .CommentsColor = wdWhite
        .CommentsColor = wdYellow
        '移動前'
        .MoveFromTextMark = wdMoveFromTextMarkBold
        .MoveFromTextMark = wdMoveFromTextMarkCaret
        .MoveFromTextMark = wdMoveFromTextMarkColorOnly
        .MoveFromTextMark = wdMoveFromTextMarkDoubleStrikeThrough
        .MoveFromTextMark = wdMoveFromTextMarkDoubleUnderline
        .MoveFromTextMark = wdMoveFromTextMarkHidden
        .MoveFromTextMark = wdMoveFromTextMarkItalic
        .MoveFromTextMark = wdMoveFromTextMarkNone
        .MoveFromTextMark = wdMoveFromTextMarkPound
        .MoveFromTextMark = wdMoveFromTextMarkStrikeThrough
        .MoveFromTextMark = wdMoveFromTextMarkUnderline
        '(移動前の)色'
        .MoveFromTextColor = wdAuto
        .MoveFromTextColor = wdBlack
        .MoveFromTextColor = wdBlue
        .MoveFromTextColor = wdBrightGreen
        .MoveFromTextColor = wdByAuthor
        .MoveFromTextColor = wdDarkBlue
        .MoveFromTextColor = wdDarkRed
        .MoveFromTextColor = wdDarkYellow
        .MoveFromTextColor = wdGray25
        .MoveFromTextColor = wdGray50
        .MoveFromTextColor = wdGreen
        .MoveFromTextColor = wdNoHighlight
        .MoveFromTextColor = wdPink
        .MoveFromTextColor = wdRed
        .MoveFromTextColor = wdTeal
        .MoveFromTextColor = wdTurquoise
        .MoveFromTextColor = wdViolet
        .MoveFromTextColor = wdWhite
        .MoveFromTextColor = wdYellow
        '移動後'
        .MoveToTextMark = wdMoveToTextMarkBold
        .MoveToTextMark = wdMoveToTextMarkColorOnly
        .MoveToTextMark = wdMoveToTextMarkDoubleStrikeThrough
        .MoveToTextMark = wdMoveToTextMarkDoubleUnderline
        .MoveToTextMark = wdMoveToTextMarkItalic
        .MoveToTextMark = wdMoveToTextMarkNone
        .MoveToTextMark = wdMoveToTextMarkStrikeThrough
        .MoveToTextMark = wdMoveToTextMarkUnderline
        '(移動後の)色'
        .MoveToTextColor = wdAuto
        .MoveToTextColor = wdBlack
        .MoveToTextColor = wdBlue
        .MoveToTextColor = wdBrightGreen
        .MoveToTextColor = wdByAuthor
        .MoveToTextColor = wdDarkBlue
        .MoveToTextColor = wdDarkRed
        .MoveToTextColor = wdDarkYellow
        .MoveToTextColor = wdGray25
        .MoveToTextColor = wdGray50
        .MoveToTextColor = wdGreen
        .MoveToTextColor = wdNoHighlight
        .MoveToTextColor = wdPink
        .MoveToTextColor = wdRed
        .MoveToTextColor = wdTeal
        .MoveToTextColor = wdTurquoise
        .MoveToTextColor = wdViolet
        .MoveToTextColor = wdWhite
        .MoveToTextColor = wdYellow
        '挿入されたセル'
        .InsertedCellColor = wdCellColorByAuthor    '校閲者別'
        .InsertedCellColor = wdCellColorLightBlue   '薄い青'
        .InsertedCellColor = wdCellColorLightGray   '薄い灰色'
        .InsertedCellColor = wdCellColorLightGreen  '薄い緑'
        .InsertedCellColor = wdCellColorLightOrange '薄いオレンジ'
        .InsertedCellColor = wdCellColorLightPurple '薄い紫'
        .InsertedCellColor = wdCellColorLightYellow '薄い黄'
        .InsertedCellColor = wdCellColorNoHighlight '(なし)'
        .InsertedCellColor = wdCellColorPink        '薄いピンク'
        '結合されたセル'
        .MergedCellColor = wdCellColorByAuthor
        .MergedCellColor = wdCellColorLightBlue
        .MergedCellColor = wdCellColorLightGray
        .MergedCellColor = wdCellColorLightGreen
        .MergedCellColor = wdCellColorLightOrange
        .MergedCellColor = wdCellColorLightPurple
        .MergedCellColor = wdCellColorLightYellow
        .MergedCellColor = wdCellColorNoHighlight
        .MergedCellColor = wdCellColorPink
        '削除されたセル'
        .DeletedCellColor = wdCellColorByAuthor
        .DeletedCellColor = wdCellColorLightBlue
        .DeletedCellColor = wdCellColorLightGray
        .DeletedCellColor = wdCellColorLightGreen
        .DeletedCellColor = wdCellColorLightOrange
        .DeletedCellColor = wdCellColorLightPurple
        .DeletedCellColor = wdCellColorLightYellow
        .DeletedCellColor = wdCellColorNoHighlight
        .DeletedCellColor = wdCellColorPink
        '分割されたセル'
        .SplitCellColor = wdCellColorByAuthor
        .SplitCellColor = wdCellColorLightBlue
        .SplitCellColor = wdCellColorLightGray
        .SplitCellColor = wdCellColorLightGreen
        .SplitCellColor = wdCellColorLightOrange
        .SplitCellColor = wdCellColorLightPurple
        .SplitCellColor = wdCellColorLightYellow
        .SplitCellColor = wdCellColorNoHighlight
        .SplitCellColor = wdCellColorPink
        '書式が変更された箇所'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkBold                '太字'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkColorOnly           '色のみ'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkDoubleStrikeThrough '二重取り消し線'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkDoubleUnderline     '二重下線'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkItalic              '斜体'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkNone                '(なし)'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkStrikeThrough       '取り消し線'
        .RevisedPropertiesMark = wdRevisedPropertiesMarkUnderline           '下線'
        '(書式が変更された)色'
        .RevisedPropertiesColor = wdAuto
        .RevisedPropertiesColor = wdBlack
        .RevisedPropertiesColor = wdBlue
        .RevisedPropertiesColor = wdBrightGreen
        .RevisedPropertiesColor = wdByAuthor
        .RevisedPropertiesColor = wdDarkBlue
        .RevisedPropertiesColor = wdDarkRed
        .RevisedPropertiesColor = wdDarkYellow
        .RevisedPropertiesColor = wdGray25
        .RevisedPropertiesColor = wdGray50
        .RevisedPropertiesColor = wdGreen
        .RevisedPropertiesColor = wdNoHighlight
        .RevisedPropertiesColor = wdPink
        .RevisedPropertiesColor = wdRed
        .RevisedPropertiesColor = wdTeal
        .RevisedPropertiesColor = wdTurquoise
        .RevisedPropertiesColor = wdViolet
        .RevisedPropertiesColor = wdWhite
        .RevisedPropertiesColor = wdYellow
        '印刷するときの用紙の向き'
        .RevisionsBalloonPrintOrientation = wdBalloonPrintOrientationAuto           '自動'
        .RevisionsBalloonPrintOrientation = wdBalloonPrintOrientationForceLandscape '常に横向き'
        .RevisionsBalloonPrintOrientation = wdBalloonPrintOrientationPreserve       '変更しない'
    End With
    
    With ActiveWindow.View
        '印刷およびWebレイアウト表示での吹き出しの仕様'
        .RevisionsMode = wdBalloonRevisions     '使用しない'
        .RevisionsMode = wdInLineRevisions      '常に使用する'
        .RevisionsMode = wdMixedRevisions       'コメント/書式にのみ使用'
        '文字列からの引き出し線を表示する'
        .RevisionsBalloonShowConnectingLines = False
        .RevisionsBalloonShowConnectingLines = True
        '余白'
        .RevisionsBalloonSide = wdLeftMargin    '左余白'
        .RevisionsBalloonSide = wdRightMargin   '右余白'
        '基準'
        .RevisionsBalloonWidthType = wdBalloonWidthPoints   'ミリメートル(mm)'
        .RevisionsBalloonWidthType = wdBalloonWidthPercent  'パーセント(%)'
        '吹き出し線の幅'
        .RevisionsBalloonWidth = MillimetersToPoints(76.2)
        .RevisionsBalloonWidth = 36
    End With
End Sub