| |
|
|
Sample Macro 行列操作 |
 |
|
|
|
1) 挿入・削除 |
 |
 |
'=========================================================================================
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) 非表示・再表示 |
 |
 |
'=========================================================================================
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) 高さ・幅 |
 |
 |
'=========================================================================================
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) ひとつ飛びに処理 |
 |
 |
'=========================================================================================
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) 行・列数の取得 |
 |
 |
'=========================================================================================
Sub 選択範囲の行列数を取得する()
行数 = Selection.Rows.Count
列数 = Selection.Columns.Count
End Sub
'-----------------------------------------------------------------------------------------
Sub アクティブシートの行列数を取得する()
総行数 = ActiveSheet.Rows.Count '※1
総列数 = ActiveSheet.Columns.Count '※1
End Sub
'=========================================================================================
<コメント>
※1 ワークシート以外の場合は失敗する
|
6) 数式のセル参照を変換する |
 |
 |
'=========================================================================================
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) ※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
|
|