表に罫線を引き印刷する
                                                        玄関へお回り下さい。
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からは既存のファイルにデータだけを送るようにした方が楽かも知れません。


2002/04/19
2006/12/07


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0