前提・実現したいこと
データの一覧表**(シート名:全体)**を記したシートから該当の割り振ったナンバーに対応したデータを抽出するシート
**(シート名:データ抽出)**へ転記するというマクロをこちらのサイトから引っ張ってきて作成しました。
###データ転記用ソースコード
VBA
1Sub データ抽出実行() 2Dim ws01, ws02 As Worksheet 3 Dim I, M, lRow, mRow As Long 4 Dim kensaku As String 5 6 Set ws01 = Worksheets("全体") 7 Set ws02 = Worksheets("データ抽出") 8 9 10 mRow = ws02.Cells(Rows.Count, "A").End(xlUp).Row 'シート「データ抽出」の最終行を取得 11 ws02.Range("A3:F" & mRow + 1).Clear 'シート「データ抽出」にある前回の結果データをクリアー 12 13 14 kensaku = ws02.Range("B1") '検索するナンバーを「kensaku」へ代入 15 lRow = ws01.Cells(Rows.Count, "A").End(xlUp).Row 16 17 mRow = 3 'シート「データ抽出」に転記する開始行の3行目を設定 18 19 20 For I = 2 To lRow 21 22 If ws01.Cells(I, "E") Like "[" & kensaku & "]*" Then 'シート「全体」から指定したナンバーに該当した日付を検索する。 23 ws02.Range("A" & mRow & ":F" & mRow).Value = ws01.Range("A" & I & ":F" & I).Value '検索条件に該当する日報をシート「データ抽出」に転記する 24 mRow = mRow + 1 '転記する行に対して+1加算する。 25 End If 26 Next I 27 ws02.Range("A3:F" & mRow - 1).Borders.LineStyle = xlContinuous 'シート「データ抽出」に転記されたデータの最終行まで罫線を引く 28 29End Sub 30
このままだと、データ抽出シートのすべてのセルにおいて書式設定が以下のように標準形式の表示になるため、以下の記述を入れました。
書式設定変更のため追加したソースコード
VBA
1 ws02.Range(Range("A3"), Cells(Rows.Count, 1).End(xlUp)).NumberFormatLocal = "ggge""年""m""月""d""日""(aaa)" '日付 2 ws02.Range(Range("B3"), Cells(Rows.Count, 1).End(xlUp)).NumberFormatLocal = "hh:mm" '時間 3 ws02.Range(Range("C3"), Cells(Rows.Count, 1).End(xlUp)).NumberFormatLocal = "G/標準" '標準 4 ws02.Range(Range("D3"), Cells(Rows.Count, 1).End(xlUp)).NumberFormatLocal = "hh:mm" '時間 5 ws02.Range(Range("E3"), Cells(Rows.Count, 1).End(xlUp)).NumberFormatLocal = "G/標準" '標準 6 ws02.Range(Range("F3"), Cells(Rows.Count, 1).End(xlUp)).NumberFormatLocal = "G/標準" '標準 7 8 9End Sub 10
こちらを新たに追加して、実際の動きを見たのですが、形式の変更がありません。
動きを見ていると、一瞬形式の変更を行ったあと、標準の形式になるような動きを見せました。
試したこと
書式変更のソースが間違っていると思い、新しくワークブックに該当の書式変更のソースを記載して見てみたのですが、そちらは問題なく動きました。
単純なミスな気もするんですが、どうにも見つけられません。
ご指導をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/16 06:32