9

最近、VBA を使用して Excel でのピボット テーブルの作成を自動化する方法を学んでいましたが、このExcel.Range.Group()方法の実装は奇妙に感じました。4 番目のパラメーター はPeriods、ブール値の 7 つの要素の配列を取り、グループ化が秒、分、時間、日、月、四半期、または年であるかどうかを示します。通常、 1 つ以上のオプションがオンになっていることを示すためにEnum、メンバーをまとめて 'd できる型を使用して、このようなことが行われます。この関数はその良い例です。OrMsgBox

たとえば、私はこのような使い方を期待していたでしょう...

MyPivotTable.DataRange.Cells(1).Group Periods:=vbGroupPeriods.Days Or _
    vbGroupPeriods.Months

それ以外の...

MyPivotTable.DataRange.Cells(1).Group Periods:=Array(False, False, False, _
    True, True, False, False)

なぜそれが で行われるのかを理解するために周りを見回しましたがArray、これまでのところ手ぶらで出てきました。それで、私の質問は、なぜこのようにしたのですか?私が見ていない制限はありますか?それは誰かの個人的な選択でしたか?それともただの謎ですか?文句を言うのではなく、理解しようとするだけです。

4

2 に答える 2

2

Q1. なぜこのようにしたのですか?

多分それはあなたにもっと柔軟性を与えるからですか?私にとっては、True7回入力する方が簡単です

Array(True, True, True, True, True, True, True)

と言うより

vbGroupPeriods.Seconds Or _
vbGroupPeriods.Minutes Or _
vbGroupPeriods.Hours Or _
vbGroupPeriods.Days Or _
vbGroupPeriods.Months Or _
vbGroupPeriods.Quarters Or _
vbGroupPeriods.Years 

また、配列内のシーケンスを覚えるのはそれほど難しくありません...

秒 --> 分 --> 時間 --> 日 --> 月 --> 四半期 --> 年

Q2. 私が見ていない制限はありますか?

いいえ 制限はありません。

Q3. それは誰かの個人的な選択でしたか?それともただの謎ですか?

いいえ:)いいえミステリー。それは決して誰かの個人的な選択ではありません。Microsoft には、特定の機能を決定して教え込む Excel 開発専用のチームがあります。

于 2013-12-18T03:17:43.867 に答える