トップページ > プログラム > 2018年01月13日 > gLbKwyK9x

書き込み順位&時間帯一覧

9 位/152 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000012100004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (アークセー Sxbd-IRwv)
Excel VBA 質問スレ Part51

書き込みレス一覧

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


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。