- Excel VBA 質問スレ Part51
888 :デフォルトの名無しさん (アークセー Sxbd-IRwv)[sage]:2018/01/13(土) 17:50:29.11 ID:gLbKwyK9x - >>885
普通はセルに入力された選手コードをわざわざVBA置換するなんてことはしないで、VLOOKUP等のワークシート関数を書くけどね 置換操作をVBAで書かなきゃいけない理由はあるの?
|
- Excel VBA 質問スレ Part51
890 :デフォルトの名無しさん (アークセー Sxbd-IRwv)[sage]:2018/01/13(土) 18:00:41.47 ID:gLbKwyK9x - >>887
検索置換のダイアログでシート内の選手コードを一括変換する、みたいな手作業の業務手順をそのままマクロ化しようとしているのかもしれないし、そういう場合はそもそもシートの設計や業務手順に問題がある場合が多い。 最初にVLOOKUP使えと指摘したあんたの感覚は基本的には正しいと思うぞ。
|
- Excel VBA 質問スレ Part51
892 :デフォルトの名無しさん (アークセー Sxbd-IRwv)[sage]:2018/01/13(土) 18:07:34.63 ID:gLbKwyK9x - >>889
VBAに慣れてる人ならセル値の置換と聞いただけでワークシート更新イベントを使いたいのかなって思いがちだよな 俺も最初はそう思ったわ でも質問者の質問内容を推測抜きで素直に読むとそうとは限らないんだよな
|
- Excel VBA 質問スレ Part51
897 :デフォルトの名無しさん (アークセー Sxbd-IRwv)[sage]:2018/01/13(土) 19:18:42.64 ID:gLbKwyK9x - >>893
こんな感じならどうかな 以下は、実行すると報告用シート内に含まれる選手コード全てを一気に置換する 複数の選手コードを含む場合も一発で置換できるはず 名簿にはコードの欄が空白の行がなく、名簿シートのA2セル以下に選手コードが入力されているものと仮定してる(A1は表見出し) セル値の一部が選手コードと一致する場合も置換されてしまうので、コードのみが入力されているセルの値だけを確実に置換したい場合、Replaceメソッドの引数のLookAt:=xlPart をLookAt:=xlWholeに変更してくれ Sub ReplaceCode Dim sh_list As WorkSheet '選手名簿シート Dim sh_report As WorkSheet '報告用シート Dim i As Long Set sh_list = WorkSheets("選手名簿シート") Set sh_report = WorkSheets("報告用シート") For i = 2 To sh_list.Range("A2").End("xlDown").Row sh_report.Cells.Replace What:=sh_list.Cells(i, 1).Value, Replacement:=sh_list.Cells(i, 2).Value, LookAt:=xlPart Next i End Sub
|