見出し画像

【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作業の自動化が得意な人なのです。

いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。