![見出し画像](https://assets.st-note.com/production/uploads/images/26331069/rectangle_large_type_2_2192e590cd4da7b939148b11e8ab6c12.png?width=1200)
【VBA】【没コード集】VBAで、文字列に誘導員という文字があるセルを、最下部の行から調べていき、見つけたら変数に格納して、見つけた行以外の、59列目と60列目に転記する場合。
お世話になっております。
合同会社ムジンケイカクプロ、代表=ムジンさんの作業メモでございます。
超限定的に役立つVBA
でございます。
広報ブログに載せるのもどうも違うので、どなたかに役立てばと思っております。
以下抜粋
Sub Yudoin()
Dim dateday As Variant
Dim datenum As Single
Dim raceplace As String
Debug.Print Time
'画面の再描画と自動計算を停止
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
SheetName = Worksheets("top").Range("A2")
Set TargetSheet = Worksheets(SheetName)
With TargetSheet
.Activate
MaxRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = MaxRow To 2 Step -1
CheckCell = Cells(i, 1).Value
If InStr(CheckCell, "誘導員") > 0 Then
CheckCell = Split(CheckCell, "】")
CheckCell2 = Split(CheckCell(1), " ")
Yudo_Name = CheckCell2(0) & CheckCell2(1)
Yudo_kyu = CheckCell2(2)
Else
Cells(i, 59) = Yudo_Name
Cells(i, 60) = Yudo_kyu
End If
Application.StatusBar = i & "回目の処理をしています...03"
DoEvents
Next i
End With
Application.StatusBar = False
'画面の再描画と自動計算を再開
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Debug.Print "end" & Time
End Sub
企業内でVBAをご利用の場合
経験が浅い方は特に、経験上動けばいいだけだと思うのですが、コピペする前に、一行ずつよーく見て貼り付けてください。
コピペする前に
プログラミング知識は、私もトップレベルとは言い難いのですが、会社の規模に関わらず、実現したいことが明確化してあれば、初心者でもなんとかなります。
このやりたいことを明確化は、別投稿で書かせていただきます。
どこかへVBAツールを外注を検討されている場合
うまい人はもっと上手いので、これを基準にこれ以上の方と契約されるといいでしょう。
弊社の上手いの観点は、これよりパッと見で、綺麗に書けているということです。
私は発想で勝負しているので、職業プログラマーではないですが、IT作業の自動化が得意な人なのです。
いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。