• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2000マクロ記述について)

Excel2000マクロ記述について

このQ&Aのポイント
  • Excel2000マクロ記述についての質問です。滞留在庫表シートと表示再設定マスタシートを参照してマクロを作成したい場合、どのように記述すれば良いでしょうか?
  • 滞留在庫表シートの条件として、C列の5行目からデータが入っており、そのデータの頭8桁がBの場合はL221をV列に表示し、A又はM又はPの場合はL222をV列に表示します。その他の場合はブランクを表示します。
  • 表示再設定マスタシートでは、5行目にBを表示した場合はL221を、A又はM又はPを表示した場合はL222を表示します。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。KenKen_SP です。 ご質問文には矛盾があって判断にまようのですが、コードを書いて みました。お試し下さい。 Sub Sample()   Dim lngLastRow As Long   Dim i As Long   Dim varTmp As Variant   Dim strResult As String      Application.ScreenUpdating = False   With Sheets("マスター")     lngLastRow = .Range("C5").End(xlDown).Row     For i = 5 To lngLastRow       varTmp = .Cells(i, "C").Value       If Not IsEmpty(varTmp) Or Len(varTmp) = 8 Then         Select Case Mid$(varTmp, 8, 1)           Case Is = "B"             strResult = "L221"           Case Is = "A", "M", "P"             strResult = "L222"           Case Else             strResult = ""         End Select         .Cells(i, "V").Value = strResult       End If     Next i   End With End Sub

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 こちらも見ました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1543585 きちんとした全体的な内容を書かないと、マクロが必要なのか分かりません。 私が、#3 で書いた内容を移植しました。 なお、セルには、VBAから、 nullchar ""  は、入らなかったはずですね。どうしても必要なら、Formula から入れる必要がありますね。 Sub TestSample()  Dim c As Range  Dim num As Integer  'C5 を起点とした場合  For Each c In Range("C5", Range("C65536").End(xlUp))   num = InStr("BAMP", Mid(c.Value, 8, 1))   If num > 0 Then   'V列   If num = 1 Then c.Offset(, 19).Value = "L221"   If num > 1 Then c.Offset(, 19).Value = "L222"   Else   c.Offset(, 19).Formula = "="""""   End If  Next End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

VLOOKUP関数でできます。 VBAでVLOOKUP関数を使っても簡単です。何よりどんなに複雑な 規則性のない対応でもテーブルを作ってしまえばOKです。 A1:A5に ****************** *******B********** L221 *******A********** L222 *******M********** L222 *******P********** L222 とあるとします。 B列B1に=VLOOKUP(MID(A2,8,1),$G$2:$H$5,2,FALSE) と入れてB5まで複写します。 G2:H5に B L221 A L222 M L222 P L222 を作ります。 これだと表に該当なしの場合はエラーになるので =IF(ISERROR(VLOOKUP(MID(A7,8,1),$G$2:$H$5,2,FALSE)),"",VLOOKUP(MID(A7,8,1),$G$2:$H$5,2,FALSE))とします。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 マクロでなくても出来るような気がしますね。 V5~ =IF(ISERROR(FIND(MID(C5,8,1),"BAMP")),"","L22"&1+(FIND(MID(C5,8,1),"BAMP")>1)*1) データがA列だったら、 C5 →A5 に直してください。 なお、大文字・小文字の区別があります。

  • k-family
  • ベストアンサー率34% (180/523)
回答No.1

B列(B6)に =IF(MID(A6,8,1)="B","L221",IF(MID(A6,8,1)="A","L222",IF(MID(A6,8,1)="M","L222",IF(MID(A6,8,1)="P","L222","")))) を入れ下方向へコピーします。 >c列の5行目から はa列ですよね?

関連するQ&A