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(^^) ")










ディスカッション
コメント一覧
まだ、コメントがありません