Excelの列幅を調整するプログラムを作れないか試す。
実験用コードも含めて、うまくいかず撃沈
XlCall.Excel
こいつの使い方が良く分からないので、ちょっとどうしようもない状況かも
ソースコードを見るとデリゲートになっていて、どのタイミングでセットしてるのやらぱっと見不明
Tips集みたいなものを作らないと、ちょっと手軽に作れないかなと感じました。
ただコマンドバーはXMLで簡単に作れるので、問題となるのは「Excelに対する命令」くらいだと思います。
値の変更は簡単に出来るので
・書式設定
・Excelへの命令
の2点をクリアすれば業務で非常に役に立つかも
(※C#やF#に慣れている前提)
嬉しいのが xll ファイルを捨てれば、純粋なExcelだけを配布することができるので、マクロをわざわざ消すためのコードを書かなくて済みます。
個人的にこれは非常にありがたい機能です。
module DNASample001 open ExcelDna.Integration let msg () = printfn "Hello" let changeColumnWidth () = let col = new ExcelReference(1, 1) // (row,col) Range("B2") を指定 let colparams = [| 10, col, false, 3 |] // [ 不明, Range, 不明, 不明 ] 不明だらけのパラメータ XlCall.Excel(XlCall.xlcColumnWidth, colparams) // セット
■ソースコード全体
<DnaLibrary Language="Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider, FSharp.Compiler.CodeDom, Version=2.0.0.0, Culture=neutral, PublicKeyToken=a19089b1c74d0809"> <![CDATA[ module DNASample001 open ExcelDna.Integration let msg () = printfn "Hello" let changeColumnWidth () = let col = new ExcelReference(1, 1) // (row,col) Range("B2") を指定 let colparams = [| 10, col, true, 3 |] // [ 不明, Range, 不明, 不明 ] 不明だらけのパラメータ XlCall.Excel(XlCall.xlcColumnWidth, colparams) // セット ]]> <CustomUI> <commandBars xmlns="http://schemas.excel-dna.net/office/2003/01/commandbars"> <commandBar name="UserCustomBar"> <button caption="Button1" faceId="1695" ShortcutText="ALT+A" onAction="msg" /> <button caption="Button2" faceId="1695" ShortcutText="ALT+A" onAction="changeColumnWidth" /> </commandBar> </commandBars> </CustomUI> </DnaLibrary>