表に罫線を引き印刷する |
VBからエクセルの表に罫線を引き・印刷設定をし印刷する (018) 動作確認 : WindowsXP(SP2) VB6.0(SP6) / Excel 2000 Excel 2002 Excel 2007 |
|
まず、VBからExcel及びWordを操作する時の注意事項を見て下さい Option Explicit
Private Sub Command1_Click() '★プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibraryに ' チェックを入れておいて下さい。'転載禁止 '================================================================== 'Excel の起動処理 '基本的な設定は[VBからエクセルを操作する]を参照して下さい。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) '================================================================== 'Excel を操作部分 '------------------ 仮データ作成 ---------------------- 'Excel のセルに値を代入します。 Dim xlCells As Excel.Range Dim i As Integer Dim j As Integer Set xlCells = xlSheet.Cells For i = 2 To 6 For j = 2 To 6 '30〜100 の範囲のランダムなデータを作成 xlCells(j, i).Value = CInt(70 * Rnd + 31) '転載禁止 Next j Next i '系列名の設定'転載禁止 xlCells(2, 1).Value = "国語" xlCells(3, 1).Value = "数学" xlCells(4, 1).Value = "英語" xlCells(5, 1).Value = "社会" xlCells(6, 1).Value = "体育" '項目名の設定 xlCells(1, 2).Value = "石原" xlCells(1, 3).Value = "小泉" xlCells(1, 4).Value = "田中" xlCells(1, 5).Value = "平沼" xlCells(1, 6).Value = "森山" xlApp.Visible = True 'ここまで[VBとエクセル間でデータのやりとりをする]と同じ '---------------------------------------------- Dim xlRange As Excel.Range Set xlRange = xlSheet.Range("A1:F6") '転載禁止 '表に罫線を引く 指定範囲に格子の罫線を引く xlRange.Borders.LineStyle = xlContinuous '実線 '表の外枠を太線に転載禁止 xlRange.Borders(xlEdgeTop).LineStyle = xlGray75 xlRange.Borders(xlEdgeLeft).LineStyle = xlGray75 xlRange.Borders(xlEdgeRight).LineStyle = xlGray75 xlSheet.Range("A6:F6").Borders(xlEdgeBottom).LineStyle = xlGray75 '項目欄を二重線で区切る xlSheet.Range("A1:F1").Borders(xlEdgeBottom).LineStyle = xlDouble xlSheet.Range("B1:B6").Borders(xlEdgeLeft).LineStyle = xlDouble '[ページ設定]ダイアログボックスを表示(参考) 'xlApp.Dialogs(xlDialogPageSetup).Show 'シートの印刷設定 With xlSheet.PageSetup .PaperSize = xlPaperA4 '用紙サイズをA4 '印刷の向き転載禁止 横=xlLandscape 縦 = xlPortrait .Orientation = xlPortrait '転載禁止 '各余白をセンチ(Cm)単位で設定 ' 注意転載禁止 ↓Application でも参照できるが解放されない .LeftMargin = xlApp.CentimetersToPoints(2) .RightMargin = xlApp.CentimetersToPoints(2) .TopMargin = xlApp.CentimetersToPoints(2.5) .BottomMargin = xlApp.CentimetersToPoints(2.5) .HeaderMargin = xlApp.CentimetersToPoints(1) .FooterMargin = xlApp.CentimetersToPoints(1) End With 'シートを印刷 xlSheet.PrintOut '印刷プレビューを表示(参考までに) 'xlSheet.PrintPreview '================================================================== '終了処理 '保存時の問合せを非表示に設定 xlApp.DisplayAlerts = False Set xlRange = Nothing Set xlCells = Nothing Set xlSheet = Nothing xlBook.Close 'Book を閉じる Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End Sub |
|
VBからでも色々設定は出来るようですが、エクセルの方で設定しておいてVBからは既存のファイルにデータだけを送るようにした方が楽かも知れません。 |