• ベストアンサー

VBでエクセルに罫線を引くには?

VBからエクセルの表に罫線を引くようにしたいのですが、 使用しているVBが VB2010 Expressだからか、色々検索して試しても、 エラーが出てしまい、やり方が分からなくて困っています。 ちなみに関係ないとは思いますが、エクセルは2007を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんばんは。 まずは基本的なことの確認をします。 ・Excelへの参照設定はできていますよね?  できてないなら、「ソリューションエクスプローラ」から該当のプロジェクトを右クリックし、  「参照の追加」から「COM」タブで「Excel 12.0 Object Library」を選択して「OK」をクリックし  ておいてください。 ・VBでExcelを操作するのはなかなかやっかいです。Excelのマクロの記録は役には立ちますが  そのままでは使用できません。 ・また、いちいち「Select」しなくても罫線くらいは引けます。 以下のコードは、新しいExcelを開いてブックを追加し、Sheet1のA1:B2のセル範囲を太罫線で囲みます。 Imports Microsoft.Office.Interop.Excel Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim AppExcel As New Microsoft.Office.Interop.Excel.Application AppExcel.Visible = True Dim WB As Workbook WB = AppExcel.Workbooks.Add Dim WS As Worksheet WS = WB.Worksheets(1) With WS.Range("A1:B2") With .Borders(XlBordersIndex.xlEdgeLeft) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = XlColorIndex.xlColorIndexAutomatic .TintAndShade = 0 .Weight = XlBorderWeight.xlThick End With With .Borders(XlBordersIndex.xlEdgeTop) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = XlColorIndex.xlColorIndexAutomatic .TintAndShade = 0 .Weight = XlBorderWeight.xlThick End With With .Borders(XlBordersIndex.xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = XlColorIndex.xlColorIndexAutomatic .TintAndShade = 0 .Weight = XlBorderWeight.xlThick End With With .Borders(XlBordersIndex.xlEdgeRight) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = XlColorIndex.xlColorIndexAutomatic .TintAndShade = 0 .Weight = XlBorderWeight.xlThick End With End With End Sub End Class

mackymakimaki
質問者

お礼

参照設定というのは全く分かっていませんでした。 Selectはエラーになるので、withステートメントを使わずに1行で xlSheet.Range("A1:B10").Borders(xlInsideVertical).Weight = xlHairline というようにして対処していました。ichhabehungerさんのやり方は考えもしてませんでした。 おかげ様で何とかなりそうです。 ありがとうございました。

その他の回答 (1)

noname#131542
noname#131542
回答No.1

sub a() sheets("sheet1").activate range("A1").currentregion.select  罫線引き始めるrange 指定 selection.borders(xlleft).linestyle=xlcontinuous 左側指定 selection.borders(xlright).linestyle=xlcontinuous  右側部指定 selection.borders(xltop).linestyle=xlcontinuous 上部指定 selection.borders(xlbottom).linestyle=xlcontinuous 下部指定 end sub xlcontinuous 実線 xldashdot 1点鎖線   xldot 点線 xldash 破線 xlfashdotdot 2点鎖線 xldouble 二重線 xlslantdashdot 斜点線  xllinestylenone なし

mackymakimaki
質問者

お礼

回答ありがとうございます。 さらに色々と調べてみたところ、 Const xlDiagonalDown As Long = 5 Const xlDiagonalUp As Long = 6 Const xlEdgeLeft As Long = 7 Const xlEdgeTop As Long = 8 Const xlEdgeBottom As Long = 9 Const xlEdgeRight As Long = 10 Const xlInsideVertical As Long = 11 Const xlInsideHorizontal As Long = 12 Const xlContinuous As Long = 1 Const xlDashDot As Long = 4 Const xlDashDotDot As Long = 5 Const xlSlantDashDot As Long = 13 Const xlDash As Long = -4115 Const xlDot As Long = -4118 Const xlDouble As Long = -4119 Const xlLineStyleNone As Long = -4142 Const xlHairline As Long = 1 Const xlThin As Long = 2 Const xlThick As Long = 4 Const xlMedium As Long = -4138 という定数を宣言していないことが分かり、試したらうまくいきました。

関連するQ&A