WinAutomationでExcelファイルの列幅を変更する方法を紹介します。

 

Excelファイルの列幅を変更する方法

列の幅を変更する場合、対象の列を選択して右クリック、「列の幅」を選択して・・・とするのではないでしょうか?

もちろん同じことをロボットに代行させることはできますが、もっと簡単に列幅を変更する方法を紹介します。

もっと簡単な方法とはVBScriptを使う方法です。

「全然簡単じゃないよ!」と思われた方はコピペすればそのまま使えますのでご安心を^^

 

列幅を変更するVBScriptは以下の通りです。

Set objExcel = CreateObject(“Excel.Application”)
Set objWorkbook = objExcel.Workbooks.open(“%ExcelFilePath%”)

objExcel.Application.Visible = True
Set objSheet = objWorkbook.Sheets(“%SheetName%”)
objSheet.Columns(%ColumnIndex%).ColumnWidth = %ColumnWidth%

アクションの画面に反映するとこうなります。

Excelの列幅を変更

見ての通りVBScript内にWinAutomationの変数が埋め込まれています。

このWinAutomationの変数はVBScriptが評価される前に変換されます。

埋め込まれている変数は次の通りです。

  • %ExcelFilePath% : 列幅を変更する対象のExcelファイルのフルパス
  • %SheetName%    : 列幅を変更するシート名
  • %ColumnIndex%  : 変更対象の列の番号
  • %ColumnWidth%  : 変更後の列幅

例えばB列の列幅を30に変更したい場合、%ColumnIndex%に2を設定、%ColumnWidth%に30を設定します。

この4つの変数は事前に設定しておく必要があります。

 

Excelファイルの列幅を自動調整する方法

列幅の自動調整とは、その列に入っている値の文字数(幅)を読み取っていい感じの幅に調整してくれるExcelの機能です。

マウスカーソルを列と列の間に持っていきダブルクリックするとできるアレです。

列幅調整

列幅をイチイチ指定するのではなく自動的に調整させたいときは、こちらの方法でやってみてください。

 

マウス、キーボード操作で人と同じ操作をなぞってもよいのですが、例によってVBScriptでできてしまいます。

Set objExcel = CreateObject(“Excel.Application”)
Set objWorkbook = objExcel.Workbooks.open(“%ExcelFilePath%”)

objExcel.Application.Visible = True
Set objSheet = objWorkbook.Sheets(“%SheetName%”)

for col = %StartCol% to %EndCol%
    objSheet.columns(col).AutoFit()
next

アクションの画面はこうなります。

Excel列幅自動調整

この場合、事前に以下の変数を設定しておく必要があります。

  • %ExcelFilePath% : 列幅を変更する対象のExcelファイルのフルパス
  • %SheetName%    : 列幅を変更するシート名
  • %StartCol%          : 変更対象の列の開始番号
  • %EndCol%           : 変更対象の列の終了番号

例えばC列からG列までの列幅を自動調整したい場合、%StartCol%に3、%EndCol%に7を設定すればOKです。

 

良かったら活用してください!