履歴
実施したことを残していく
業務で困った際の参考にできることも理想とする
- 20241031(更新ver1.0):値の検索までを投稿
- 20241117(更新ver1.1):Outlookメール抽出マクロ(未完成)の追加
- 20250609(更新ver2.0):使用頻度の高いコード早見へ変更
- 20250701(更新ver2.1):一旦追記(そろそろまとめよ)
変数の型
- 文字列型:
As String
- 整数型:
As Long
- 論理型:
As Boolean
- 日付型:''As date''
検証したいとき
- MsgBox 変数
- Debug.Print 変数
合致
- 部分合致(「*」がついている方は何でもOK)
If Cells(1, 1) Like "*東京都*" Then
MsgBox "部分合致した!"
End If
- 完全合致
If Cells(1, 1) = "東京都" Then
MsgBox "完全合致した!"
End If
ブックやシート、セルのコントロール
- 最終行の取得
2は何列目かを指定
Dim lastRow As Long
lastRow = Cells(Rows.Count, 2).End(xlUp).Row
- 最終列を取得
2は何行目かを指定
Dim lastColumn As Long
lastColumn = Cells(2, Columns.Count).End(xlToLeft).Column
- Do untilを使って多少のレイアウトの変更があっても対応できるようにする
4には何列目かを指定、その列の「テスト」が何行目にあるのかをkitenに格納する。
kiten +1 とすれば「テスト」の下からのセルを認識できる。
Dim kiten As Long
kiten = 1
Do Until Cells(kiten, 4).Value = "テスト"
kiten = kiten + 1
Loop
MsgBox kiten
- 開いているブックをアクティブに
Dim i As Long
For i = 1 To Workbooks.Count
If Workbooks(i).Name Like "*ブックのキーワード*" Then
Workbooks(i).Activate
End If
Next i
- セルをアクティブに
Range("A1").Activate
- シートをアクティブに
Sheets("シート名").Activate
- アクティブセルを起点に、アクティブセルの1つ下や右のセルとかを参照
ActiveCell.Offset(1, 0).Activate 'これなら1行下へ
ActiveCell.Offset(-1, 0).Activate 'これなら1行上へ
- 連続したセルに同じ処理を行う(かなり使うと思う)
例:D4からD11セルまで「テスト」が入力される
Dim i As Long
For i = 4 To 11
Range("D" & i).Value = "テスト"
Next i
- セルの値が空白でなければ
If Range("A1").Value <> "" Then
MsgBox "空白じゃない"
End If
- セルのコピペ
Range("A1").Copy Range("C1")
- 別のシートへ範囲コピペ
Range("A1:D11").Select
Selection.Copy
Sheets("別シート").Range("A1").PasteSpecial
- フィルタリングの解除
If Sheets("Sheet1").FilterMode Then
Sheets("Sheet1").ShowAllData
End If
- フィルタリング(必ず事前にフィルタリングの解除を行うこと)
- fieldは列数
- テストは絞りたいワード
Sheets("Sheet1").Range("$A$1:$D$11").AutoFilter field:=2, Criteria1:="テスト"