tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
VB2010からExcelのWorksheetの列幅を取得・列幅を設定(VB.NET) ( No.13 )  [親スレッドへ]
日時: 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



 [スレッド一覧へ] [親スレッドへ]