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>