マクロの勉強している初心者です。
VBAで作ったファイルからからファイル選択後、自動で該当のセルに読み込ませるマクロを作成しています。
ファイル読み込み後は、該当セルに記載できたのですが条件判定付きでセルに記載を行いたいです。
前提として読み込ませるエクセルファイルは、読み込み中はオープンしないで作っています。
実現したいことは以下になります。
①項目に記載されているもの(黄色枠)を判断して、別のエクセルにデータ部分を読み込ませたい(画像2)。
②データ部分には記載されているが項目には記載されていないもの(赤枠)に対しては、
"項目がありませんでした"というメッセージを別のエクセルに記載させたい(画像1の赤枠)。
実際の画像が以下になります。
画像1がファイル選択後、自動で黄色枠および赤枠に記載するマクロです。
クリアボタンはあるのですが無視してください。
コードが以下になります。
VBA
1Private Sub Select_Read_FilesButton_Click() 2'---------------------------- 3'FType :ファイルの種類 4'FPath :ファイルの参照パス 5'Prompt :ダイアログのタイトル 6'WS :対象のシート名 7'Pos :参照先のセル 8'Target :読み込むパス 9'---------------------------- 10 Dim FType, Prompt, Target As String 11 Dim FPath As Variant 12 Dim WS As Worksheet 13 Dim Pos As Long 14 15 Set WS = Worksheets("データ情報") 16 17 '選択できるファイルの種類をxlsに限定 18 FType = "Excelブック,*.xls" 19 20 'ダイアログのタイトルを指定 21 Prompt = "対象データファイルを選択して下さい" 22 23 'ファイル参照ダイアログの表示 24 FPath = Application.GetOpenFilename(FType, , Prompt) 25 26 If FPath = False Then 27 'ダイアログでキャンセルボタンが押された場合は処理を終了 28 End 29 End If 30 31 'B3セルにファイル名をセット 32 WS.Cells(5, 7).Value = FPath 33 34 Pos = InStrRev(Cells(5, 7).Value, "\") 35 36 ' "'"はファイル名からシート名まで括る 37 Target = "'" & Left(Cells(5, 7).Value, Pos) & "[" & Mid(Cells(5, 7).Value, Pos + 1) & "]" 38 39 'ExecuteExcel4Macroで読み込んでいるエクセルファイルをオープンさせない 40 Range("E8") = ExecuteExcel4Macro(Target & "読み込みデータ'!R2C4") 'A Sample表示 41 Range("E9") = ExecuteExcel4Macro(Target & "読み込みデータ'!R3C4") 'B Sample表示 42 Range("C10") = ExecuteExcel4Macro(Target & "読み込みデータ'!R4C4") 'C Sample表示 43 Range("E10") = ExecuteExcel4Macro(Target & "読み込みデータ'!R6C4") 'D Sample表示 44 Range("G10") = ExecuteExcel4Macro(Target & "読み込みデータ'!R8C4") 'E Sample表示 45 Range("I10") = ExecuteExcel4Macro(Target & "読み込みデータ'!R10C4") 'F Sample表示 46 47End Sub
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー