EXCEL超初心者マクロ(10)
項目の位置を特定する(ヘダーある時)
このマクロは、ヘダーの項目の位置が固定じゃない時、ヘダーを読んで位置を確定して、一番最後に分割して展開するものです。
管理ツール等で抽出する際に変わってしまう事があると要望にあったので作成しました。
分割は、数が固定ではないため、SplitとUBoundを使ってコントロールしています。
※各項目の宣言は、module1の上のほう、Option Explicitに書いてます。
Public xxxxxx as Long 等
MSG_FLG = MsgBox(" 処理コード分割実行OK? ", vbYesNo) If MSG_FLG = vbNo Then Exit Sub End If mySheetName001 = "csvin" ' ***クリア処理*** '### シートフィルタ解除サブプロシジー ### sheet_clear '### ヘダー位置検索 CNT01 = 0 Set set_data01 = Worksheets(mySheetName001).Range("A1") Do Until set_data01.Offset(0, CNT01).value = "" Or _ set_data01.Offset(0, CNT01).value = "処理コード1" If set_data01.Offset(0, CNT01).value = "処理コード" Then 'ISBN CNT02 = CNT01 End If CNT01 = CNT01 + 1 Loop set_data01.Offset(0, CNT01).value = "処理コード1" set_data01.Offset(0, CNT01 + 1).value = "処理コード2" set_data01.Offset(0, CNT01 + 2).value = "処理コード3" set_data01.Offset(0, CNT01 + 3).value = "処理コード4" set_data01.Offset(0, CNT01 + 4).value = "処理コード5" set_data01.Offset(0, CNT01 + 5).value = "処理コード6" Set set_data01 = set_data01.Offset(1, 0) Do Until set_data01.Offset(0, 1).value = "" '### MEISAI VWORK01 = Split(set_data01.Offset(0, CNT02).value, "/") '### 処理コード CNT03 = UBound(VWORK01) '### 分割数 For CNT04 = 0 To CNT03 '### CNT04を0から分割数まで回します。 set_data01.Offset(0, CNT01 + CNT04).value = VWORK01(CNT04) '### Next CNT04 Set set_data01 = set_data01.Offset(1, 0) Loop Sheets(mySheetName001).Select Range("A1").Select MSG_FLG = MsgBox(" 処理END(^^) ")
ディスカッション
コメント一覧
まだ、コメントがありません