ばくがの業務効率化チャンネル

このブログは個人的なエクセルの備忘録です

2021-01-01から1年間の記事一覧

同じフォルダ内のファイルを開いてコピーする

Sub 同じフォルダ内のファイルを開く() '同じフォルダ内のファイルを開いてコピーする 'パスとファイル名の変数宣言 Dim 保存場所 As String, ファイル名 As String '転記先と転記元の変数宣言 Dim 転記先, 転記元 As Workbook Set 転記先 = ActiveWorkbook …

まとめ3

Sub 最終行が非稼働日() '4列目の最後の稼働日の場合 If Cells(Rows.Count, 4).End(xlUp) = "非稼働日" Then '非稼働日セルの1段上の右は、 Cells(Rows.Count, 4).End(xlUp).Offset(-1, 1) = Cells(Rows.Count, 4).End(xlUp).Offset(-1, 1) + Cells(Rows.Co…

まとめ2

Sub 加算対象セル() '行の変数宣言 Dim 行 As Long '行を31行目からループ処理 For 行 = 31 To 2 Step -1 '4列目の最後の稼働日 If Cells(行, 4) = "稼働日" Then '6列目の合計には、対象の6列目+E34の合計 Cells(行, 6) = Cells(行, 6) + Range("E35") '対…

まとめ

Sub 最終行の右下を取得() '最終行が0以上の場合には、一旦枠外に転記する '目的のセルの変数宣言 Dim 目的のセル As Range '取得するセルは日付セルの最終行の1段下の右4列目 Set 目的のセル = Cells(Rows.Count, 2).End(xlUp).Offset(1, 4) '0以上の数字の…

非稼働日を翌営業日に加算する関数

VBAでCOUNTIFSをやってみる

VBAでCOUNTIFSをやってみる どうだろう?関数でも、やっぱりVBAのほうが便利なんだろうか? 関数の場合には、一旦、セルに組み込みしてしまえばそれほど、その後は工数が かからないと思うのですが

日付の自動入力

C列に文字が入力されていて、A列が空白の場合には A列に本日の日付を入力する Sub 日付加算() Dim 初回連絡日 As DateDim 経過日 As DateDim 行 As Long For 行 = 2 To 11 初回連絡日 = Cells(行, 2) 経過日 = DateAdd("d", 14, 初回連絡日) If Cells(行, 3)…

Sub 別のシートからVLookup2

Sub 別のシートからVLookup2() '参照範囲の宣言 Dim 参照範囲 As Range '参照範囲はシート3のテーブル Set 参照範囲 = Sheets("Sheet3").Range("A1").ListObject.Range '検索値宣言 Dim 検索値 As Variant '行番号宣言 Dim 行番 As Variant For 行番 = 2 To …

【VBA】別シートテーブルからのVlookup

VBA

VBAでも検索値を元にデータを引っ張ってくるのはVlookupが早いし便利ですねテーブルの指定は、ListObjectではなくても動作するみたいなんですが、なんか不具合が発生するんですかね

VBAでCountifを利用してみる

VBA

Sub カウント() ' 変数の宣言 Dim 集計 As Integer ' 商品名が「インテリア雑貨」であるセルをカウント 集計 = WorksheetFunction.CountIf(Range("H2:H10"), "インテリア雑貨") ' 集計結果をセルのR2に表示 Range("R2").Value = 集計 End Sub

【VBA】空白の列を削除して左につめる

VBA

今回のお題は、空白の列を削除して左につめる

【VBA】空白の行を削除して上に詰める

VBA

今回のお題は、空白の行を削除して上に詰めるコード youtu.be

【VBA】For Next と If

VBA

Sub 条件判定() Dim i As Long For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 4) = "" Then Cells(i, 5) = "キャンセル" ElseIf Cells(i, 4) = "完了" Then Cells(i, 5) = "完了" Else End If Next i End Sub

【VBA】別のシートからVLookup

VBA

Sub 別のシートからVLookup() Dim tbl As Range Set tbl = Sheets("Sheet2").Range("A1:B11") Dim x As String Dim i As Integer For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row x = Range("A" & i + 1).Value On Error Resume Next Dim ret As String re…

【VBA】オートフィルタで絞りこんで別シートにコピー

VBA

Sub オートフィルタのコピー() ’A1の6列目でキーワード絞り込み Range("A1").AutoFilter 6, "キーワード" ’A1のこの範囲を転記先シートのA1を起点にコピー Range("A1").CurrentRegion.Copy Sheets("転記先シート").Range("A1") End Sub

【VBA】シートから他シートに振分けコピー、シート名にセルの名称をつける

VBA

Sub シートへ振分け() Dim i As Long Range("A:A").Copy Range("Q1") Range("Q1").CurrentRegion.RemoveDuplicates 1, xlYes 'A列の重複なしリストをQ列に作成 With Sheets("Sheet1") 'シート1を選択 For i = 2 To Cells(Rows.Count, 17).End(xlUp).Row '2行…

【VBA】各シートへの一括処理

VBA

Sub 各シートへの同じ処理() Dim シート名 As Integer '変数としてシート名を使うFor シート名 = 1 To 5 'シート2から4のシートまでSheets(シート名).Select '〇番目のシートを選択する Dim 開始行 As Long '開始行変数宣言Dim 終了行 As Long '終了行変数宣…

【VBA】開始行から最終行までを一括削除

VBA

Sub 最終行までを一括削除() '開始行から最終行までを一括削除 Dim 開始行 As Long '開始行変数宣言 Dim 終了行 As Long '終了行変数宣言 開始行 = Range("P1").Value '開始行はP1セルの値 終了行 = Cells(Rows.Count, 1).End(xlUp) 'A列の最終行まで Rows(…

【VBA】各シートの不要行削除

VBA

Sub 各シートの不要行削除() Dim i As Long '変数宣言 Application.ScreenUpdating = False '画面止める処理 For i = Sheets("Sheet1").UsedRange.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 '削除対象シートの下から削除 If Sheets("Sheet1").Used…

【VBA】シートをCSVで所定フォルダに保存する

VBA

Sub CSVで保存() '変数宣言 Dim 保存先 As String '保存先設定 保存先 = ThisWorkbook.Path & "\ナレッジ用CSV.csv" 'シートコピー Sheets("Sheet2").Copy 'CSV出力 ActiveWorkbook.SaveAs 保存先, FileFormat:=xlCSV ActiveWorkbook.Close End Sub

【VBA】最終行に色を付ける

VBA

Sub 最終行色付け() Dim i As Integer '変数としてiを使う For i = 1 To 3 'シート1からのシートまで Sheets(i).Select 'i番目のシートを選択する Range("A" & Rows.Count).End(xlUp).EntireRow.Font.ColorIndex = 3'最終行色付け Next i'次のシートに移る E…

【VBA】各シートに同じ処理を実施する

VBA

Sub 各シートへのデータの反映() Dim シート名 As Integer '変数としてシート名を使う For シート名 = 2 To 4 'シート2から4のシートまで Sheets(シート名).Select '〇番目のシートを選択する '各シートの処理 Dim i As Long Application.ScreenUpdating = F…