回答受付が終了しました

マクロ作成で行き詰っております。 知恵をお貸しください。 マクロ初心者で、ネット検索で見様見真似でコードをコピーして使っています。

補足

「リスト」という名前のシートに対応する文字列をリスト作成して、 そこから対応する文字を検索してF列に入力する という場合はどのように書いたらよいでしょうか。 お時間ありましたらご教授頂けると助かります。 A列    B列 △    サンカク 〇    マル □    しかく 四角    しかく

Visual Basic | Excel106閲覧xmlns="http://www.w3.org/2000/svg">100

回答(2件)

0

Findメソッドのヘルプに、一定の範囲を循環的に検索する例が載ってます。 それをお手本にすれば、整ったプログラムになりますね。 1つの文字を検索するコードをサブプロシジャにすれば、解りやすいプログラムになります。 Sub sample_main() Const cChrs As String = "〇 □ △" Const cNames As String = "マル シカク サンカク" Dim xChrs, xNames, i As Long xChrs = Split(cChrs) xNames = Split(cNames) Application.ScreenUpdating = False For i = LBound(xChrs) To UBound(xChrs) Call 指定の文字を入力(xChrs(i), xNames(i)) Next i Application.ScreenUpdating = True End Sub Sub 指定の文字を入力(pChr, pName) Dim rng As Range, x1st As String With Range("K:K") Set rng = .Find(pChr, LookIn:=xlValues, LookAt:=xlPart) If Not rng Is Nothing Then x1st = rng.Address Do rng.Offset(0, -5).Value = pName Set rng = .FindNext(rng) Loop While rng.Address <> x1st End If End With End Sub

ご回答ありがとうございます。 こちらのコードで〇 □ △の入力はうまくできたのですが、このようなセットが20セットほどありまして、 Const cChrs As String = "〇 □ △ 丸 四角 三角 ・・・・" Const cNames As String = "マル シカク サンカク まる しかく さんかく ・・・・" ⇑のようにここに全て並べて記載しても大丈夫でしょうか。 文字数制限などはありますでしょうか。 初歩的な質問ですみません。

0

以下のようなものでしょうか? Sub 指定の文字を入力() Dim ii As Long For ii = 1 To Cells(Rows.CountLarge, "K").End(xlUp).Row Select Case Cells(ii, "K").Value Case "〇" Cells(ii, "F").Value = "マル" Case "□" Cells(ii, "F").Value = "シカク" Case "△" Cells(ii, "F").Value = "サンカク" Case Else End Select Next End Sub