kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Excelでチェックボックスを動的に作る。

 とりあえず作るだけはこんな方法でできます。

 Dim oSheet as Excel.Worksheet

 oSheet.OLEObjects.Add classtype:="Forms.CheckBox.1", _
   Width:=12, Height:=9.75, Left:=426, Top:=YPos

 本来は、ExcelでFormのコントロールを貼ると数式のところに

 =EMBED("Form.Checkbox.1","")

 とでる、あれをやれれば完璧なのですが、どうしてもうまくいかない。AddFormulaメソッドを使っても、#NAMEという名前参照エラーになっちゃうし…うーむ、わからん。うまくごまかすしかないか。
 結局今回とった方法はこんな感じ(G列に対してループを廻しています)

  Set chkbox = oSheet.Shapes.AddFormControl(xlCheckBox, 330, YPos, 11, 8)
     chkbox.ControlFormat.LinkedCell = "G" & CStr(i + 2)

 ただ、これラベルの編集と、チェックボックスを3Dにするプロパティが見つからないんですよねぇ。チェックボックスのプロパティから表示されるダイアログボックスでは項目があるので、どこかに設定があるはずなのですが。