■
最終行を取得
Cells(Rows.Count, 1).End(xlUp).Row
別ブックのセルor範囲を指定
Workbooks("BookName.xlsx").Worksheets("SheetName").Cells(1, 2).Value Workbooks("BookName.xlsx").Worksheets("SheetName").Range("A:C")
VLOOKUP
Application.WorksheetFunction.VLookup("Word", Range("A:C"), 3, False)
※範囲を指定する際は、ブック名とシート名を明示すること
セルを配列に格納&検索
Dim arr As Variant Dim i As Long Dim line1 As Long '範囲を指定し、セルの値を二次元配列に格納する arr = Range("A1:B200") '配列の1から最後まで文字列"Word"を検索 For i = 1 To UBound(arr, 1) If arr(i, 1) = "Word" Then line1 = i End If Next j
※LBoundは1になることに注意
テキストファイル読み込み&置換&書き込み
Dim fso As Object Dim buf As String 'FileSystemObjectオブジェクト作成 Set fso = CreateObject("Scripting.FileSystemObject") 'テキストファイル読み込み&格納 With fso.OpenTextFile(ThisWorkbook.Path & "\" & "Template.txt", 1, False) buf = .ReadAll .Close End With '置換 buf = Replace(buf, "Word01", "Word02") 'テキストファイル書き込み With fso.OpenTextFile(ThisWorkbook.Path & "\" & "Result.txt", 2, True, 0) .Write buf .Close End With Set fso = Nothing
テキストファイル追加書き込み
Dim fso As Object Dim tso As Object Sheets("データシート").Select Set fso = CreateObject("Scripting.FileSystemObject") Set tso = fso.OpenTextFile(ThisWorkbook.Path & "\" & "test.txt", 8, False) With tso .WriteLine Now .Close End With Set tso = Nothing Set fso = Nothing
fso.OpenTextFile ( FileName [, IOMode] [, Create] [, Format] )
引数 | 説明 | 備考 |
---|---|---|
IOMode | ファイルを開く際のモード指定。 1: 読み込み, 2: 新規書き込み, 8: 追加書き込み |
規定値は1(読み込み) |
Create | ファイルが存在しない場合の動作。 True: 新規作成する, False: 新規作成しない |
規定値はFalse(新規作成しない) |
Format | 文字コード。 -2: システムデフォルト, -1: Unicode, 0: ASCII |
規定値は0(ASCII) |
configファイルからホスト名を抜き出す
Dim fso As Object Dim buf As String Dim arr1 As Variant Dim arr2 As Variant Dim i As Long Dim line1 As Long Dim hostname As String Set fso = CreateObject("Scripting.FileSystemObject") With fso.OpenTextFile(ThisWorkbook.PATH & "\" & "Sample1.txt", 1, False) buf = .ReadAll .Close End With '取り込みデータを改行で分割し、配列化 arr1 = Split(buf, vbCrLf) '配列の中から"hostname"を含む行を探す For i = 0 To UBound(arr1) If InStr(1, arr1(i), "hostname") <> 0 Then line1 = i Exit For End If Next i '"hostname"を含む行を半角スペースで分割し、配列化 arr2 = Split(arr1(line1), " ") If arr2(0) = "hostname" Then hostname = arr2(1) '←★arr2(1)がホスト名となる Else MsgBox "ERROR!!" End If MsgBox hostname
全シートに処理を実行
For i = 1 To Worksheets.Count With Worksheets(i) Debug.Print .Cells(1, 1).Value End With Next i
ディレクトリ作成
MkDir ThisWorkbook.Path & "\" & Format(Now, "yyyymmdd_hhmmss")
データシートの一覧からシートを生成
'データシートの最終行を取得 lastRow = Worksheets("Data").Cells(Rows.Count, 5).End(xlUp).Row 'シート生成&リネーム For i = lastRow To 3 Step -1 Worksheets("Template").Copy After:=Worksheets("Template") ActiveSheet.Name = "Sheet" & i Next i
Select Case
Select Case Cells(1, 1).Value Case Is = "a" Debug.Print "a" Case Else Debug.Print "e" End Select
Like
End SelectIf Cells(1, 1).Value Like "*aaaabbbbcccc*" Then Debug.Print "ok" Else Debug.Print "no" End If
ループから抜ける
Exit For
画面描画抑止
Application.ScreenUpdating = False '~処理~ Application.ScreenUpdating = True