- 日時: 2012/06/06 19:06
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:Excel VBA,Excel2010,列幅を取得,列幅を設定,文字列に合せ列幅を自動調整* *********************************************************************************** '=================================================================================================== '投 稿 日:2012.05.05 '投 稿 者:VBレスキュー(花ちゃん) 'タイトル:VB2010 から Excel の Worksheet の列幅を取得・列幅を設定 '========1=========2=========3=========4=========5=========6=========7=========8=========9=========0
Private Sub Button11_Click(sender As System.Object, e As System.EventArgs) Handles Button11.Click Call ExcelOpen("", "") '新規ファイルをオープンして、Excel を起動 '========================= 列幅を取得・列幅を設定 ============================
'-------------------- 下記のVB6.0用コードを移植 --------------------------- ' http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=128&no=6 '-------------------------------------------------------------------------- 'Excel 操作部分(列幅を取得・列幅を設定・セルの文字列長に合せて列幅を設定する) '列幅を取得(列幅の単位は、標準スタイルの 1 文字分の幅に相当します。 Dim xlRange As Excel.Range xlRange = xlSheet.Range("A:X")
'プロポーショナル フォントでは、数字の 0 の幅が列幅の単位になります) MessageBox.Show(Me, xlRange.ColumnWidth.ToString()) '8.38(72ピクセル)
'列幅を取得(ポイント単位) MessageBox.Show(Me, xlRange.Width.ToString()) '1296
'A列〜X列までの列幅を5に設定 xlRange.ColumnWidth = 5 'ここも下記行で、xlRange の参照先を変更するのでその前にデクリメントを 'しておかないと Range("A:X") の参照先がなくなり破棄できなくなる MRComObject(xlRange)
'仮データを入力 xlRange = xlSheet.Range("B1:D1") xlRange.Value = "あいうえおかきくけこ" 'データの文字列長に合せて列幅を自動調整 Dim xlColumns As Excel.Range xlColumns = xlRange.Columns 'この場合は、引数を指定しないので、これでOK xlColumns.AutoFit() MRComObject(xlColumns) MRComObject(xlRange) '確認のために、1秒間表示しておく System.Threading.Thread.Sleep(1000)
'============================================================================= 'Excelファイルを上書き保存(True 又省略すれば)して終了処理を実行 Call ExcelClose(IO.Path.GetFullPath(".\Test.xlsx"), False) 'False の場合保存しないで終了 'Excel.EXE がタスクマネージャに残っていないか調査(実使用時は必要なし) Call ProcessCheck() End Sub
|