def print_area(*args)
      return @page_setup.print_area.dup if args.empty?
      row1, col1, row2, col2 = row_col_notation(args)
      return if [row1, col1, row2, col2].include?(nil)

      # Ignore max print area since this is the same as no print area for Excel.
      if row1 == 0 && col1 == 0 && row2 == ROW_MAX - 1 && col2 == COL_MAX - 1
        return
      end

      # Build up the print area range "=Sheet2!R1C1:R2C1"
      @page_setup.print_area = convert_name_area(row1, col1, row2, col2)
    end
def print_area(*args)
      return @page_setup.print_area.dup if args.empty?
      row1, col1, row2, col2 = row_col_notation(args)
      return if [row1, col1, row2, col2].include?(nil)

      # Ignore max print area since this is the same as no print area for Excel.
      if row1 == 0 && col1 == 0 && row2 == ROW_MAX - 1 && col2 == COL_MAX - 1
        return
      end

      # Build up the print area range "=Sheet2!R1C1:R2C1"
      @page_setup.print_area = convert_name_area(row1, col1, row2, col2)
    end
:call-seq:
   print_area(first_row, first_col, last_row, last_col)

 This method is used to specify the area of the worksheet that will
 be printed. All four parameters must be specified. You can also use
 A1 notation, see the note about {"Cell notation"}[#label-Cell+notation].

     worksheet1.print_area( 'A1:H20' );    # Cells A1 to H20
     worksheet2.print_area( 0, 0, 19, 7 ); # The same
     worksheet2.print_area( 'A:H' );       # Columns A to H if rows have data