Sample Macro  行列操作 [基本型] Previous Next

1) 行または列を挿入・削除 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 行を挿入する()
    Rows("4:5").Insert Shift:=xlDown            '※1 行番号で指定する方法
    Range("B2").EntireRow.Insert                '※2 セルで指定
End Sub
'---------------------------------------------------------------------------------
Sub 行を削除する()
    Rows("4:5").Delete Shift:=xlUp              '※1 行番号で指定する方法
    Range("B2").EntireRow.Delete                '※2 セルで指定
End Sub
'=================================================================================
Sub 列を挿入する()
    Columns("E:F").Insert Shift:=xlToRight      '※3 列名で指定する方法
    Range("B2").EntireColumn.Insert             '※4 セルで指定
End Sub
'---------------------------------------------------------------------------------
Sub 列を削除する()
    Columns("E:F").Delete Shift:=xlToLeft       '※3 列名で指定する方法
    Range("B2").EntireColumn.Delete             '※4 セルで指定
End Sub
'=================================================================================
<コメント>
※1 4:5には挿入または削除する行の上下行番号を記入
※2 B2には基準にする行内の任意のセルを記入
※3 E:Fには挿入または削除する列の左右列名を記入
※4 B2には基準にする列内の任意のセルを記入

2) 行または列を非表示・再表示 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 行を非表示_再表示する()
    Rows("4:5").EntireRow.Hidden = True        '4:5には非表示にする行の上下行番号を記入
    Rows("3:6").EntireRow.Hidden = False       '3:6には再表示したい行を囲む上下行番号記入
End Sub
'---------------------------------------------------------------------------------
Sub 列を非表示_再表示する()
    Columns("E:F").EntireColumn.Hidden = True  'E:Fには非表示にする列の左右列名を記入
    Columns("D:G").EntireColumn.Hidden = False 'D:Gには再表示したい列を囲む左右列名を記入
End Sub
'=================================================================================


3) 行の高さ・列の幅 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 行の高さを取得する()
    行の高さ = ActiveCell.RowHeight             '※1、3
    行の高さ = ActiveCell.Height                '※1
End Sub
'---------------------------------------------------------------------------------
Sub 行の高さの合計を取得する()
    行 = "2:4"                                 '2:4には変更する行範囲を記入
    行の高さの合計 = Range("A1:C3").Height       '※1
End Sub
'---------------------------------------------------------------------------------
Sub 行の高さを変更する()
    行 = "2:4"                                  '2:4には変更する行範囲を記入
    高さ = 5.25                                 '5.25には行の高さを記入 ※1
    Rows(行).RowHeight = 高さ
End Sub
'---------------------------------------------------------------------------------
Sub 行の高さを内容に合わせて調節する()
    行 = "2:4"                                  '2:4には変更する行範囲を記入
    Rows(行).AutoFit
End Sub
'---------------------------------------------------------------------------------
Sub 全ての行の高さを変更する()
    高さ = 11.25                                '11.25には行の高さを記入 ※1
    ActiveSheet.Cells.RowHeight = 高さ
End Sub
'---------------------------------------------------------------------------------
Sub 全ての行の高さを標準に設定する()
    ActiveSheet.Cells.UseStandardHeight = True
End Sub
'=================================================================================
Sub 列の幅を取得する()
    列幅P = ActiveCell.Width                    '※1
    列幅L = ActiveCell.ColumnWidth              '※2
End Sub
'---------------------------------------------------------------------------------
Sub 列の幅を変更する()
    列 = "F:F"                                  'F:Fには変更する列範囲を記入
    列幅L = 3.75                                '3.75には列の幅を記入 ※2
    Columns(列).ColumnWidth = 列幅L
End Sub
'---------------------------------------------------------------------------------
Sub 列の幅を内容に合わせて調節する()
    列 = "F:F"                                  'F:Fには変更する列範囲を記入
    Columns(列).AutoFit
End Sub
'---------------------------------------------------------------------------------
Sub 全ての列の標準の幅を設定する()
    標準列幅 = 10.38                            '10.38には標準にする列幅を記入 ※2
    ActiveSheet.StandardWidth = 標準列幅
End Sub
'---------------------------------------------------------------------------------
Sub 全ての列の幅を標準に設定する()
    ActiveSheet.Cells.UseStandardWidth = True
End Sub
'=================================================================================
<コメント>
※1 単位はポイント:印刷する文字のサイズ(高さ)を指定する基本単位
   1ポイントは約0.0353cm(1/72インチ)
※2 単位は標準スタイルの1文字分の幅 (プロポーショナルフォントでは数字の0の幅)
※3 指定したセル範囲のすべての行の高さが同じでないときはNull値が返る


4) ひとつ飛びに処理 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub ひとつ飛びに足す()
    Worksheets("SSS").Activate              '※1
    列 = 8                                  '※2 合計する列
    上 = 3                                  '※2 合計する列の上端行
    下 = 11                                 '※2 合計する列の下端行
    合計セル = "H13"                        '※3 合計を格納するセルの番号
    Range(合計セル).Value = 0               '合計セルをゼロにしておく
    For 行 = 上 To 下 Step 2                '※4 上端から始めて2行ごとに下端になるまで
        If Range(Cells(行, 列), Cells(行, 列)).Value <> "" Then 'セルの値がヌルでなければ
            Range(合計セル).Value = Range(合計セル).Value + _
            Range(Cells(行, 列), Cells(行, 列)).Value '合計セルに加える
        End If
    Next
End Sub
'=================================================================================
<コメント>
※1 SSSにはシート名を記入
※2 8、3、11には合計する列の、列番号、上端行番号、下端行番号を記入
※3 合計を格納するセルの番号を記入
※4 飛び間隔を変えたい場合は、Step の右の数値を変える(この例は2行間隔を意味する)
サンプルブックのダウンロードは ここをクリック (YNxv204_tobi.xls 39KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


5) 行・列数の取得 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 選択範囲の行列数を取得する()
    行数 = Selection.Rows.Count
    列数 = Selection.Columns.Count
End Sub
'---------------------------------------------------------------------------------
Sub アクティブシートの行列数を取得する()
    総行数 = ActiveSheet.Rows.Count             '※1
    総列数 = ActiveSheet.Columns.Count          '※1
End Sub
'=================================================================================
<コメント>
※1 ワークシート以外の場合は失敗する


6) 数式のセル参照を変換する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub セル参照を変換_R1C1からA1へ_列行とも相対参照()
    変換前 = "R3C5"                             '※1
    変換後 = Application.ConvertFormula(Formula:=変換前, _
            fromReferenceStyle:=xlR1C1, _
            toReferenceStyle:=xlA1, ToAbsolute:=xlRelative)
End Sub
'---------------------------------------------------------------------------------
Private Sub 数式の参照形式を変換する_R1C1からA1へ()
    変換前 = "=SUM(R2C1:R5C1)"                  '※2
    変換後 = Application.ConvertFormula(Formula:=変換前, _
            fromReferenceStyle:=xlR1C1, toReferenceStyle:=xlA1)
End Sub
'=================================================================================
<コメント>
※1 R3C5には変換したいセル参照(引数fromReferenceStyleで指定する形式で)を記入
※2 =SUM(R2C1:R5C1)には変換したい数式のセル参照(同上)を記入
※3 ConvertFormulaメソッドは数式のセル参照を変換する (A1形式:R1C1、相対参照:絶対、その両方)
構文 expression.ConvertFormula(Formula, FromReferenceStyle, ToReferenceStyle, ToAbsolute, RelativeTo )
   expression  Applicationと指定 必須
   Formula   変換対象の数式文字列 必須
   FromReferenceStyle  変換前の参照形式(xlA1 or xlR1C1) 必須
   ToReferenceStyle   変換後の参照形式(同上) 省略するとFromReferenceStyleに同じ
   ToAbsolute  変換後の参照の種類(定数は下記サンプルブック参照) 省略すると従来どおり
   RelativeTo   相対参照の基準となるセル 省略可
サンプルブックのダウンロードは ここをクリック (YNxv204_ConvertFormula.xls 38KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。

Excel VBA Macro






VBAの本 こちら





マクロ本 こちら





Excel本 こちら