�Ȃɂʂ˂́[��

No.8 ���[�N�V�[�g�̍ŏI�s�A�ŏI����擾����
2007/03/05 VBA
���[�N�V�[�g�̍ŏI�Z���i�ŏI�s�A�ŏI��j���擾����c
VBA���͂��߂��l�͒N�����ŏ��Ɉ�����������ł͂���܂����A�K���ɂ��C���^�[�l�b�g�Ō�������Ƃ����‚��̉����@�����‚���܂��B
�Ƃ��낪�c�������蓮���Ȃ�������A�z��O�̓�������邱�Ƃ�����܂��B�������������‚��̉����@�����邱�Ǝ��̂��������A���������{���̓����͂ǂ�H���̍ہA�����͂����肳���悤����Ȃ����Ƃ����̂����̃y�[�W�̎�|�ł��B

<S1> ���[�N�V�[�g�̍ő�s�A�ő����擾����

MaxRow = Rows.Count
MaxCol = Columns.Count
�܂���{����ł����A���[�N�V�[�g�̍ő�s�A�ő����擾����R�[�h�ł��B������񂱂ꎩ�͍̂ŏI�s�A�ŏI����擾������̂ł͂���܂���B
Rows�̓��[�N�V�[�g�̍s�S�̂�����킷�I�u�W�F�N�g�ŁAColumns�͗�S�̂�����킷�I�u�W�F�N�g�ł��B���̃��\�b�hCount�͐��A���Ȃ킿���ꂼ��s���A�񐔂�����킵�܂��B
�Ԃ����l��EXCEL�̃o�[�W�����ɂ���ĈقȂ�܂����AEXCEL97/2000/2003�ł�65,536�s�A256��ɂȂ�܂��B��قǔ������ꂽEXCEL2007�ł�1,048,576�s�A16,384��ŁA�Z�����ɂ���17,179,869,184�i171���j�A�]����1024�{�Ƃ����c��ȗʂɂȂ�܂��B65���S�l�ނ̖��O�����邱�ƂɂȂ�킯�ł����c�B

<S2> �������ɍŏI�s����������

MaxRow = Range("A1").End(xlDown).Row
MaxCol = Range("A1").End(xlToRight).Column
����Range�I�u�W�F�N�g��End�v���p�e�B���g���Ă݂܂��傤�BEnd(xlDown)�Ƃ͉������Ɍ��݂̗̈�̍ʼn��[��T���Ƃ����Ӗ��ł��B�}�N���ŋL�^����Ƃ킩��܂����A����End(xlDown)�̓V���[�g�J�b�g��[Ctrl]+���ɂ�����܂��B���̃R�[�h�͘A�������Z���ł���ꍇ�A�������ŏI�s���擾���邱�Ƃ��ł��܂��B

�ȉ��̂悤�ȃV�[�g��p�ӂ��Ă݂܂��傤�BA1�ɃJ�[�\����u���A[Ctrl]+���������Ă݂܂��B���Ғʂ肻�̗�̍ŏI�s�ł���A10�ɃJ�[�\�����ړ����邱�Ƃ��킩��Ǝv���܂��B

�Ƃ��낪�V�[�g�̓r���Ŕ����̃Z��������ꍇ�A�ȉ��̂悤�ȓ�������܂��B�l�̑��݂���A�������Z������‚̃u���b�N�Ƃ��āA���̏�[�A���[���ړ����܂��B����������Ƌ󔒂̕ς��ڂ�T���Ă���Ƃ����Ă�������������܂���B

���_�Ƃ��āA���̃R�[�h�͂��ׂẴf�[�^���A�������Z���ł��邱�Ƃ��ۏ؂���Ă���ꍇ�ɂ͎g�p�ł��܂����A�����łȂ��ꍇ�͎g���Ȃ��Ƃ������Ƃł��B


<S3> ������ɍŏI�s����������

MaxRow = Range("A65536").End(xlUp).Row
MaxCol = Range("IV1").End(xlToLeft).Column ' IV1=256��
����͂����Ƃ��m���Ă�����@�ł��傤���BVBA�̎Q�l���Ȃǂł���Ƃ��ĂłĂ���悤�ł��B
<S2>�ł̓Z�����A�����Ă��Ȃ��ꍇ�́~�ł������A������͘A�����Ă��Ȃ��Ă������Ɠ��삵�܂��B�d�g�݂Ƃ��Ă̓��[�N�V�[�g�̍ʼn��[�i65536�s�j�����Ɍ������ċ󔒂łȂ��Z������������Ƃ������̂ł��B���ꂾ�Ɠr���ŋ󔒃Z���������Ă����Ȃ��ł���ˁB

�������A���̃R�[�h�ɂ͖�肪3�‚���܂��B

EXCEL�̃o�[�W�����ɂ���čő�s�����قȂ邽�߁AEXCEL97�`2003�ł͓��삷�邪���̃o�[�W�����ł͓��삵�Ȃ��ꍇ������܂��B����������EXCEL2007���g��Ȃ����g�����Ƃ��Ă���舵���f�[�^�ʂ����������Ȃ��Ƃ����ꍇ�͖��ɂ͂Ȃ�Ȃ���������܂���B
A�񂾂����Ă���̂ŁA���̗��A��̍ő�s�𒴂���s�����݂����ꍇ�������l���擾�ł��܂���B
65536�s���ׂĖ��܂��Ă����ꍇ�͓��삵�Ȃ��ł��傤�B�i�������邱�Ƃł͂���܂��񂪁j

<S3-1> ������ɍŏI�s����������i���j

MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column
����� �̖�������������̂�EXCEL�̃o�[�W�����ɂ�����炸�����Ɠ����悤�ɂȂ�܂��B���l���W�������Ƃ��邽��Cells���g�p���Ă��܂������ʂ�Range���g�p�����ꍇ�Ɠ������ʂɂȂ�܂��B


<S4> �g�p�ς݂̍ŏI�Z���̑I�� �iSpecialCells�j

With Range("A1").SpecialCells(xlLastCell)
    MaxRow = .Row
    MaxCol = .Column
End With
����SpecialCells���\�b�h���g�p������ł��BSpecialCells�̈����Ƃ���xlLastCell���w�肷���"�g�p�ς݂̍ŏI�Z��"�Ƃ����Ӗ��ɂȂ�܂��B����̓V���[�g�J�b�g��[Ctrl]+[End]�i�g�p�ς݂̍ŏI�Z����I���j��[Ctrl]+[Shift]+[End]�i�g�p�ς݂̍ŏI�Z���܂ŗ̈���g���j�ɑ������܂��B

��͂肱�̕����ɂ����_������܂��B

�s�����폜������A���̌��ʂ𔽉f���Ȃ����Ƃł��B�‚܂�폜�O�̌��ʂ�Ԃ��Ƃ������Ƃł��B

��̂悤�ȃV�[�g������A4�`6�s���폜���܂��B
A1�ɃJ�[�\����u���A�L�[�{�[�h����[Ctrl]+[Shift]+[End]�������܂��B

����ƁA�폜�O�̗̈�ł���"A1:E10"���I������Ă��܂��܂��B�����EXCEL�̎d�l���o�O�Ȃ̂��͕s���ł����A���ʂƂ��Đ���������ł��Ă��Ȃ����Ƃ͊m���ł��B���Ȃ݂Ɉ�U���[�N�u�b�N��ۑ�����Ɛ���������ł���悤�ɂȂ�܂��B
�܂��s�̑}����Z���̃R�s�[�������ꍇ�͒���ł����������ʂ��Ԃ邩��s�v�c�Ȃ��̂ł��B

������‚̖��͒l�������Ă��Ȃ��Z���܂ŔF�����Ă��܂����Ƃł��B�����i�w�i�F��r���j���ݒ肳��Ă���ꍇ�A���̗̈���g�p�ς݃Z���Ƃ��ĔF�����Ă��܂��܂��B�ȉ��̗�ł�"E11"���ŏI�Z���Ƃ��ĔF�����Ă��܂��܂��B

<S5> �g�p�ς݂̍ŏI�Z���̑I�� �iUsedRange�j

With ActiveSheet.UsedRange
    MaxRow = .Rows.Count
    MaxCol = .Columns.Count
End With
���悢��{���̓o��ł��BUsedRange�v���p�e�B�͎w�肳�ꂽ���[�N�V�[�g�Ŏg��ꂽ�Z���͈͂�Ԃ��܂��B
�ł������̃R�[�h�ɂ͖��炩�ȊԈႢ������̂ł��B
�ȉ��̂悤�ȃ��[�N�V�[�g�i�ŏ��̍s�A��ɒl���Ȃ��j�̏ꍇ�AUsedRange��"B2:E10"�i���F�̘g���ň͂܂ꂽ�̈�j�ɂȂ�܂��BRows.Count�͂��̗̈�̍s���Ȃ̂�9�A������Columns.Count��9�ƂȂ�A9��9�s�‚܂�"D9"��Ԃ��Ă��܂��܂��B

�܂��AUsedRange�̓����Ƃ��Ĕ�\���̍s�E���I�[�g�t�B���^�Ŕ�\���ɂȂ��Ă���̈���܂݂܂��̂Œ��ӂ��K�v�ł��B

<S5-1> �g�p�ς݂̍ŏI�Z���̑I���i���j �iUsedRange�j

With ActiveSheet.UsedRange
    MaxRow = .Rows(.Rows.Count).Row
    MaxCol = .Columns(.Columns.Count).Column
End With
<S5>�̌�����������o�[�W�����ł��B��₱�����\���ł����W�J���Ă����Ƃ킩��₷���ł��B
.Rows(.Rows.Count).Row��UsedRange.Rows(9)�‚܂�"B2:E10"��9�s�ڂ�\���A����ɂ���.Row�Ƃ������Ƃ̓��[�N�V�[�g��10�s�ڂƂ������ƂɂȂ�܂��B

�������A���̃R�[�h��<S4>���l�����t���󔒃Z���܂ŃJ�E���g���Ă��܂����͎c���Ă��܂��B

<S6> �����t���Z�������O���� �iUsedRange�j

With ActiveSheet.UsedRange
    MaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
    MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
End With
�����t���Z�������O���Ēl�̓����Ă���͈͓��̍ŏI�s�A�ŏI������߂���@�ł��BUsedRange�̍ʼn��[�A�ʼnE�[���炻�ꂼ��l�̓����Ă���ŏI�s�A�ŏI�����������Ƃ������̂̂ł��B

Range�̃��\�b�h�ł���find�͌����_�C�A���O�i���j���[����[�ҏW]-[����]�j���̂��̂ł��B�������_�C�A���O�̊e�I�v�V�����Ƃقڈ�v���܂��B��1�����͌���������A�����ł�"*"�‚܂��łȂ��Ȃ�炩�̒l�������Ă���΃}�b�`���܂��B��3�����͌����Ώۂ�xlFormulas�͐����AxlValues�Œl��\���܂��B��5�����͌��������AxlByColumns�ŗ�����AxlByRows�ōs�����Ɍ������܂��B��6�����͗B��_�C�A���O�ɂ͂Ȃ�xlNext�őO���Ɍ����AxlPrevious�Ō���Ɍ����Ƃ����킯�ł��B

�܂Ƃ�

�Ō�̃R�[�h<S6>�͂���Ƃ��������_���Ȃ��ꉞ�͔͉𓚂Ƃ�������̂ł����A�������Ƃ����Ƃ����ł��Ȃ��AVBA�v���O�����ɂ͑����Ƃ������̂����肻�ꂼ�ꓚ�����Ⴄ�̂ł͂Ȃ��ł��傤���B�����Ă��̃v���O������<S3>���邢��<S3-1>�Ŗ��Ȃ����삷��̂ł��B
�܂��A�s�E��̔�\����I�[�g�t�B���^�̗L���ɂ���Ă��ꂼ�ꓮ�삪�قȂ�܂��B���ꂼ��̕Ȃ��n�m���Ďg��������΂����̂ł͂Ȃ����Ƃ����̂����_�Ƃ����Ă��������܂��B

������̃y�[�W�Ɉꗗ�\�ł܂Ƃ߂܂����̂łǂ����B

�֘A���F

�g�p�����E�Ɛӎ���



[�߂�]