| 分類:[C#]
Excelのシート上にグループ化されたチェックボックスがあり その中のチェックボックスに対してチェックの状態を変更したく以下のようにしてみました。
public void CheckedInGroupCheckBox(string sheetName, string groupName, string checkboxName) { Excel.Worksheet sheet = sheets[sheetName]; Excel.Shapes shapes = sheet.Shapes; Excel.Shape group = null; Excel.Shape chk = null; Excel.GroupShapes g = null; for (int i = 1; i < shapes.Count; i++) { group = shapes.Item(i); if (group.Name == groupName) break; } g = group.GroupItems; chk = g.Item(checkboxName); // ★
ReleaseObj(ref sheet); ReleaseObj(ref shapes); ReleaseObj(ref group); ReleaseObj(ref chk); }
★の位置で目的のチェックボックスは取得できますが、 それに対してどの様にチェックを付ければいいのかが分かりません。
検索してみると、(VBAだと?)Valueに対してtrue/falseを設定すれば出来そうですが、 コンパイルエラーになってしまいます。 また、Worksheet.CheckBoxesメソッドではグループ化されたものは取得できませんでした。
※まだ貼り付けたメソッド自体試行錯誤中なので「そもそもどうやってtrue/false設定すんだよ!」という部分はスルーしてください。 |