すぐに役立つエクセルVBAマクロ集 - すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
Macro
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile

500連発・組み方講座フォロー

Big Color Pallet

[広告]
 
Excel VBA Macro
Excel DownLoad
© 1997 - 2007
Yoshioh Nagai.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Sample Macro  行列操作 Previous Next
行列操作
 
1) 挿入・削除
2) 非表示・再表示
3) 高さ・幅
4) ひとつ飛びに処理
5) 行・列数の取得
6) 数式のセル参照を変換


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 行の高さを変更する()
    行 = "2:4"                                  '5.6には変更する行範囲を記入
    高さ = 5.25                                 '5.25には行の高さを記入 ※1
    Rows(行).RowHeight = 高さ
End Sub
'-----------------------------------------------------------------------------------------
Sub 全ての行の高さを変更する()
    高さ = 11.25                                '11.25には行の高さを記入 ※1
    ActiveSheet.Cells.RowHeight = 高さ
End Sub
'-----------------------------------------------------------------------------------------
Sub 全ての行の高さを標準に設定する()
    ActiveSheet.Cells.UseStandardHeight = True
End Sub
'=========================================================================================
Sub 列の幅を変更する()
    列 = "F:F"                                  'F:Fには変更する列範囲を記入
    幅 = 3.75                                   '3.75には列の幅を記入 ※2
    Columns(列).ColumnWidth = 幅
End Sub
'-----------------------------------------------------------------------------------------
Sub 全ての列の標準の幅を設定する()
    列幅 = 10.38                                '10.38には列の幅を記入 ※2
    ActiveSheet.StandardWidth = 列幅
End Sub
'-----------------------------------------------------------------------------------------
Sub 全ての列の幅を標準に設定する()
    ActiveSheet.Cells.UseStandardWidth = True
End Sub
'=========================================================================================
<コメント>
※1 単位はポイント
※2 単位は標準スタイルの1文字分の幅


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)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。