| 集計 |
Sub_Total = WorksheetFunction.Sum(Range(Cells(A, N), Cells(B, N)))
又は WorksheetFunction.Sum(Range("A1:A1000"))
又は Application.WorksheetFunction.Sum(Range("A1:A1000")) |
|---|---|
| Wait(一時停止) |
Application.Wait (Now() + "0:00:00.1")
指定時刻 = Now() + TimeValue("HH:MM:SS") '現在時刻より何分後 (例) 3分後なら 00:03:00
Application.Wait (指定時刻) 'この行でマクロ実行を指定時刻まで中断する
|
| Timer(現在時取得) |
Dim SinStart As Single Dim i As Single SinStart = Timer 処理A MsgBox "処理Aにかかった時間 : " & Timer - SinStart & "秒"Timerは午前0時からの経過秒数を単精度浮動小数点数型(Single)の値で返す |
| アクティブブック、アクティブシートの退避 |
ABook = ActiveWorkbook.Name ASheet = ActiveSheet.Name |
| アクティブブック、アクティブシートの復旧 |
Windows(ABook).Activate Sheets(ASheet).Select |
| Excelのセルを使って初期設定を行う |
InputBook = Range("B1").Value
InputPath = Range("B2").Value
NeedPrint = Range("B7").Value |
|---|---|
| セルに数式をそのまま表示したい (計算はせずに説明用に使う) |
文字列として表示する方法 =SUM(A1:A5)と表示したい場合「'=SUM(A1:A5)」と頭に「'」(アポストロフィ)を付けて入力します。 計算式を確認したい場合や印刷したい場合、簡単に切り替える方法 ショートカットキー【Ctrl】+【Shift】+【@】 (解除も同じです) メニュー操作で行う方法 メニューバーの【ツール】→【オプション】を選択。 【表示】タブを選択。 『数式』をクリックしてチェックを入れます。 |
| セル範囲の数式と値のクリア |
Range(Cells(DelStart, L), Cells(CurrentRow - 1, L)).Select Cells(CurrentRow - 1, L).Activate Application.CutCopyMode = False Selection.ClearContents |
| セルの範囲指定で削除 |
Rows(K & ":" & K).Select Selection.Delete Shift:=xlUp |
| 特定セルの集計 |
Range("F1").Select
ActiveCell.FormulaR1C1 = "=RC[-5]+RC[-3]+RC[-1]"
[ ]内に変数を使う場合の注意
"=SUM(R[行top]C:R[-1]C)"ではエラー、正しくは "=SUM(R[" & 行top & "]C:R[-1]C)" |
| セルの合計 |
Range("F9").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-1]C)"
|
| セル値の集計 |
Worksheetfunction.Sum( Range("L2:L" & RowMax) ) |
| 集計計算式による集計 |
Cells(CurrentRow, L).Select ActiveCell.FormulaR1C1 = "=SUM(R[" & SigStart & "]C:R[-1]C)" |
| 式、(または値)の読み出し |
MsgBox Cells(1, I).Formula |
| Excel操作による領域選択 |
[Shift]キーを押しながらアクティブセルを移動すると、移動した範囲が選択状態になる [Ctrl]キーを押しながら[End]キーを押すと、そのシートで使用されている範囲の右下に アクティブセルが移動する アクティブセルを現在使用しているセルの左上(セルA1)に置いた状態で、 [Ctrl]+[Shift]+[End]キーを押すと、現在使用しているセル範囲が自動的に選択される。 |
| プログラミングによる領域選択 |
CurrentRegion任意のセルが含まれているひとかたまりのセル範囲([Ctrl]+[Shift]+[*]キーの結果と同じ) Range(任意のセル, ActiveCell.SpecialCells(xlLastCell))任意のセルから 最終セルまでの セル範囲 ActiveSheet.UsedRange
Sheets("Sheet1").UsedRange ワークシートで使用されているセル範囲
|
| 切り捨て 四捨五入 切り上げ |
Num_countup = Application.RoundDown(実数, 0) Num_round = Round(実数, 0) Num_countdown = RoundUP (実数, 0) |
|---|---|
| ユーザ関数の作り方 |
Function 指定前日(本日 As Date) As Date 指定前日 = 本日 - 1 End Function -------------------------------------------- Sub 前日ファイル名() Dim 本日 As Date 本日 = Date 前日 = 指定前日(本日) MsgBox "本日=" & 本日 & vbCrLf & "前日=" & 前日 End Sub |
| 配列の初期化 |
Dim TBL(30, 5) As Variant Erase TBL |
| 1次元動的配列 |
Dim Data() As Variant
N = 0
For I = 2 To MaxRow
ReDim Preserve Data(N) As Variant
Data(N) = Cells(I).Value
N = N + 1
Next I |
| 2次元動的配列 |
Dim Data() As Variant
N = 0
For I = 2 To MaxRow
ReDim Preserve Data(19, N) As Variant
For J = 0 To 19
Data(J, N) = Cells(I, J + 1).Value
Next J
N = N + 1
Next I |
Public Work() As Variant
Sub UserForm2_Test()
Dim N As Integer
ReDim Preserve Work(9, 0) As Variant
Work(0, 0) = "交付日付"
xxxxxxxxxxx
Work(9, 0) = "担当"
N = 1
ReDim Preserve Work(9, N) As Variant
Work(0, N) = "2012年4月21日" '日付
xxxxxxxxxxx
Work(9, N) = "営業事務" '担当
UserForm2.Show vbModeless
End Sub |
|
| 定数定義と有効範囲 |
Option Explicit
' プロシージャを超えて参照する変数/定数は動作するプロシージャの前(外)で宣言する。
Public X ' ←他モジュールからも参照可(変数)
Private Y ' ←このモジュールからのみ参照可(変数)
Public Const A = "AAA" ' ←他モジュールからも参照可(定数)
Private Const B = "BBB" ' ←このモジュールからのみ参照可(定数)
Sub TEST()
' プロシージャ固有の変数/定数はプロシージャ内で使用する手前で宣言する。
Dim Y ' ←値はプロシージャを抜けるとリセットされる、同一名は
|
| 偶数番、奇数番で設定を変える |
Cells(4, 書出し列).Select
Selection.NumberFormatLocal = "#,##0_ "
If I Mod 2 = 1 Then
Selection.NumberFormatLocal = "#,##0.0_ "
End If
|