ExcelVBAへの道
 
第8章 コード例3
  1. マクロへのショートカットキーの追加
  2. マクロの実行キー(ショートカットキー)
  3. プロシージャ を Ctrl + a キーに
  4. 形式を選択して貼り付け
  5. セルへ入力省略形
  6. 範囲指定した領域に一度で計算式を相対指定する
  7. クリア
  8. 行を非表示
  9. 行を非表示
  10. シート1をシート3の後ろにコピーする
  11. シート1をシート3の後ろに移動する
  12. シートの最後に新しいシートを追加する
  13. ブック保存
  14. 変更が加えられると自動保存して閉じる
  15. 複合条件を設定する
  16. 個人用マクロブックについて
  17. ブックを開くと自動実行するようにする
  18. アドインファイルにするには
  19. 年齢を求めるVBA関数
  20. コンボボックスにリストを設定する
  21. リストボックスに日時を設定する
  22. RefEditでセル範囲を取得する
マクロへのショートカットキーの追加
マクロダイアログボックスでマクロ名選択後、右下のオプションボタンをクリックして
マクロオプションダイアログボックスで設定する。

マクロの実行キー(ショートカットキー)
はマクロ本体とは別に管理されている。

InsertProcプロシージャ を Ctrl + a キーに、
SpecialPrintProcプロシージャ を Shift + Ctrl + → キーに登録します。
Application.OnKey "^{a}", "InsertProc"
Application.OnKey "+^{RIGHT}", "SpecialPrintProc"

形式を選択して貼り付け
PasteSpecial(Paste,Operation,SkipBlanks,Transpose)
Selection.PasetSpecial(xlPasteValues)
もしくは、名前付き引数での指定だと
Selection.PasteSpecial Paste:=xlValues,SkipBlanks:=True

(Paste)

すべて
数式

書式
コメント
入力規則
罫線を除くすべて
列幅
数式と数値の書式
値の数値の書式

(Operation)

なし
加算
減算
乗算
除算

(SkipBlanks)

True
False

(Transpose)

True
False

セルへ入力省略形

[A1] = "文字列"
[B2].Offset(4) = 1234567

範囲指定した領域に一度で計算式を相対指定する
Selction.FormulaR1C1 = "=RC[-2]*RC[-1]"

クリア

Selection.Clear 'すべて
Selection.ClearFormats '書式
Selection.ClearContents ’数値と値
Selection.ClearComments 'コメント

行を非表示
Row(2).Hidden = True
Row("2:5").Hidden = True
Selection.Rows.Hidden = True

シート1をシート3の後ろにコピーする
Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")

シート1をシート3の後ろに移動する
Worksheets("Sheet1").Move After:=Worksheets("Sheet3")

シートの最後に新しいシートを追加する
Sheets.Add After:=Sheets(Sheets.count)

ブック保存
Workbooks("ブック保存名.xls").Save
Activeworkbook.SaveAs Filename:="ブック保存名"

変更が加えられると自動保存して閉じる
ActiveWorkbook.Close SaveChanges:=True

複合条件を設定する
If Time >= TimeSerial(5,0,0) And Time < TimeSerial(12,0,0) Then
ActiveCell.Value = "複合条件"
End If

個人用マクロブックについて
Personal.xlsが作成保存されている場合
メニューのウィンドウ>再表示
ドロップダウンリストからチェックすると再表示される。
通常は非表示に設定されてる。

ブックを開くと自動実行するようにする
ThisWorkbookオブジェクトのOpenイベントで
Private Sub Workbook_Open()

End Sub

アドインファイルにするには
名前を付けて保存>ファイルの種類>*xla>ファイル名をつけて保存する

年齢を求めるVBA関数
DateDiff("YYYY",開始日,終了日)

ActiveCell.Value = DateDiff("YYYY",TextBox1.Text,Date)

コンボボックスにリストを設定する
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "リスト1"
.AddItem "リスト2"
.AddItem "リスト3"
.AddItem "リスト4"
End With
End Sub

リストボックスに日時を設定する
Private Sub UserForm_Initialize()
For n = 0 To 9
ListBox1.AddItem Format(Date + n ,"yyyy/mm/dd")
Next n
ListBox1.ListIndex = 0
End Sub

RefEditでセル範囲を取得する
Range(RefEdit1.Text).Address(False,False)