- ベストアンサー
VB2005でのEXCEL制御について
いつもお世話になってます。 私はVB入門者です。 VBからシートを選択して値を入れることは出来たのですが 範囲選択→格子罫線をひく、といったような操作について 調べたところ、マクロをつくりコピーアンドペーストでスムーズに いくということがわかったので、試したところうまくいきませんでした。 又、質問ナンバー QNo.3575919 に [Visual Basic2005でExcelに罫線を描く]とあり 「CreateObject("Excel.Application")」はソースに入っているか という部分がポイントのようなので、少しいじってはみたのですが うまくかけませんでした。 と、いうよりも理解できませんでした。 下記のコードでは選択範囲を指定する部分まで成功したものです。 アドバイスよろしくお願いします。 Sub excel_app() Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("C:\hoge.xls") xlSheets = xlBook.Worksheets xlBook.Worksheets(1).Range("A31:Y55").Select() xlBook.Worksheets(1).Range.Borders. ←これ以降がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBレスキュー(花ちゃん)を参考に Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("R:\aaa.xls") xlSheet = xlBook.Worksheets("a") xlApp.Visible = True Dim xlRange As Excel.Range Dim xlBorders As Excel.Borders 'Dim xlBorder As Excel.Border xlRange = xlSheet.Range("B2:F6") xlBorders = xlRange.Borders '枠線を実線で表示 xlBorders.LineStyle = Excel.XlLineStyle.xlContinuous '下側の線を指定 'xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeBottom) '下側の線を2重線で表示 'xlBorder.LineStyle = Excel.XlLineStyle.xlDouble '右側の線を指定 'xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeRight) '右側の線を太線で表示 'xlBorder.Weight = Excel.XlBorderWeight.xlThick '左側の線を指定 'xlBorder = xlBorders(Excel.XlBordersIndex.xlEdgeLeft) '左側の線を太線で表示 'xlBorder.LineStyle = Excel.Constants.xlGray75 ブック名・シート名はこちらの環境です。 ご参考になれば。
その他の回答 (1)
- onlyrom
- ベストアンサー率59% (228/384)
VB2005がないので何ですが。。。 >xlBook.Worksheets(1).Range("A31:Y55").Select() >xlBook.Worksheets(1).Range.Borders. ←これ以降がわかりません。 罫線を引いたり、色を付けたりの書式を設定するだけであれば セル範囲をSelectする必要はありません。 With xlBook.Worksheets(1).Range("A31:Y55").Borders .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With 各プロパティは自分で調べること。 以上。
お礼
罫線の詳細についても宣言するということですね? うまくできました。ありがとうございました
お礼
一定の行数を超えると新たな範囲に罫線をひくという 処理ができました! ありがとうございました。